Linux Mint 15 Olivia information and configuration tips for setting up your new installation.

An ideal Linux PC build.
An ideal Linux PC build.

View system load with the tload command.

Some more useful Linux commands.

How to see all available subnets using the ipcalc command.

Some incredible UNIX and Linux resources.

How to install Minecraft in Ubuntu 12.10 using a PPA.

How to get the last system boot time. And how to get info about the last logins.

A few useful networking networking commands. And how to get info about kernel modules.

A couple of tips for using the Awesome window manager.

Setting up your bash shell and some cool functions and tricks.

The best desktop environment to use for Linux Mint 14. KDE comes out on top.

Choosing a password for your online accounts. The best way to generate a suitable passcode that will be hard to break.

A simple desktop to use with dual monitors. using Tint2 and openbox.

How to get dual monitors working with the Linux Mint 14 distribution using the ATI drivers.

Using the apt commands to update Linux Mint 13.

Setting up dual monitors in Linux Mint 13.

Installing new MATE themes in Linux Mint 13.

How to set up the Mint Desktop Manager.

How to install the E17 window manager in Linux Mint 14.

How to install the GNU Grub 2.00 boot manager in Linux Mint 14.

How to view the system load in a terminal with the tload command.

The tload command is used to view the system load with a text graph, this is useful to have running in an xterm to view the load upon your CPU as you use your Linux system.

Type tload in a terminal to see the output of this command. Use the tload -d 1 command to have the graph update every second.

Some more useful Linux commands.

The pgrep command allows you to search for a process and it will return the PID of the running process.

[email protected]:~$ pgrep gedit
7578

This example shows how to kill a running process using the kill -9 command and pgrep.

kill -9 `pgrep top`

I had started top and then sent it into the background using Ctrl-Z. I then used the above command to kill this running process.

How to add your user to a newly added group in Linux.

Firstly; use the groupadd command to add a new group.

[email protected]:~# groupadd graphics

Then; add your existing user to that group.

[email protected]:~# usermod -G graphics homer

Now to verify that your user has been successfully added to that group.

[email protected]:~# grep homer /etc/group
homer:x:1000:
graphics:x:1010:homer

Use this command to set a new shell for your user.

[email protected]:~# usermod -s /bin/bash homer

How to see all available subnets and max hosts per network using the command line.

The ipcalc command is used for this. Download it here: Ipcalc.

Extract the archive using this command: tar -xvf ipcalc-0.41.tar.gz and then enter the directory thusly created. Then you may use the ./ipcalc 172.18.31.1/24 command to calculate the maximum hosts per network and the netmask required. The IP addresses are also shown in binary. This is useful if you wish to use this program to convert an IP to binary.

[email protected] ~/Documents/ipcalc-0.41 $ ./ipcalc 172.18.31.1/24   
Address:   172.18.31.1          10101100.00010010.00011111. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   172.18.31.0/24       10101100.00010010.00011111. 00000000
HostMin:   172.18.31.1          10101100.00010010.00011111. 00000001
HostMax:   172.18.31.254        10101100.00010010.00011111. 11111110
Broadcast: 172.18.31.255        10101100.00010010.00011111. 11111111
Hosts/Net: 254                   Class B, Private Internet

Here is another example using a different IP address. This command also shows what class the network is. 10.1.0.1 is a Class A network and this is shown in the output.

[email protected] ~/Documents/ipcalc-0.41 $ ./ipcalc 10.1.0.1/24
Address:   10.1.0.1             00001010.00000001.00000000. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   10.1.0.0/24          00001010.00000001.00000000. 00000000
HostMin:   10.1.0.1             00001010.00000001.00000000. 00000001
HostMax:   10.1.0.254           00001010.00000001.00000000. 11111110
Broadcast: 10.1.0.255           00001010.00000001.00000000. 11111111
Hosts/Net: 254                   Class A, Private Internet

Some incredible online UNIX and Linux resources.

UNIX in a Nutshell: http://docstore.mik.ua/orelly/unix3/unixnut/index.htm. The HTML version of the O,Reilly book.

UNIX Power tools: http://docstore.mik.ua/orelly/unix/upt/index.htm.

SSH the Secure SHell. A definitive guide: http://docstore.mik.ua/orelly/networking_2ndEd/ssh/index.htm.

Learning the UNIX operating system 5th edition: http://docstore.mik.ua/orelly/unix3/lunix/index.htm.

Sed & Awk 2nd edition: http://docstore.mik.ua/orelly/unix2.1/sedawk/index.htm.

How to install Minecraft in Ubuntu 12.10 using a PPA.


To install Minecraft in Ubuntu 12.10, just use these commands. This will install the unofficial Minecraft installer that will take care of the installation of the full Minecraft game.

[email protected] ~/Desktop $ sudo add-apt-repository ppa:minecraft-installer-peeps/minecraft-installer
[email protected] ~/Desktop sudo apt-get update
[email protected] ~/Desktop sudo apt-get install minecraft-installer

Once this is installed, run it from the menu or dash and Minecraft will be installed.

How to get the last system boot time.


To get the last system boot time; use the who command.

[email protected] ~/Code $ who -b
         system boot  2013-02-23 14:32

This is a more complex command that will print a more readable output of system uptime.

[email protected] ~/Code $ uptime | sed s/^.*up// | awk -F, '{ if ( $3 ~ /user/ ) { print $1 $2 } else { print $1 }}' | sed -e 's/:/\ hours\ /' -e 's/ min//' -e 's/$/\ minutes/' | sed 's/^ *//'
57 minutes

And of course you can use the uptime command to get the system uptime.

[email protected] ~/Code $ uptime
 15:32:42 up  1:00,  2 users,  load average: 0.81, 0.74, 0.67

You can also use the last command to get a history of the last reboots and uptimes of your Linux system.

[email protected] ~/Code $ last
john     pts/1        :0               Sat Feb 23 14:57   still logged in   
john     pts/0        :0               Sat Feb 23 14:36   still logged in   
reboot   system boot  3.5.0-17-generic Sat Feb 23 14:32 - 15:34  (01:02)    
john     pts/0        :0.0             Fri Feb 22 18:29 - 18:35  (00:05)    
john     pts/2        :0.0             Fri Feb 22 18:15 - 18:15  (00:00)    
john     pts/0        :0.0             Fri Feb 22 18:15 - 18:21  (00:06)    
john     pts/2        :0               Fri Feb 22 16:56 - 17:45  (00:49)    
john     pts/0        :0               Fri Feb 22 16:56 - 16:56  (00:00)    
john     pts/1        :0               Thu Feb 21 21:49 - 21:49  (00:00)    
john     pts/2        :0               Thu Feb 21 21:49 - 21:49  (00:00)    
john     pts/0        :0               Thu Feb 21 21:49 - 16:53  (19:04)    
john     pts/2        :0               Thu Feb 21 21:48 - 21:48  (00:00)    
john     pts/0        :0               Thu Feb 21 21:47 - 21:49  (00:01)    
john     pts/1        :0               Thu Feb 21 21:47 - 21:49  (00:01)    
john     tty1                          Thu Feb 21 21:46 - down   (20:50)    
john     tty1                          Thu Feb 21 21:46 - 21:46  (00:00)    
john     tty2                          Thu Feb 21 21:43 - down   (20:53)    
john     tty2                          Thu Feb 21 21:43 - 21:43  (00:00)    
reboot   system boot  3.5.0-17-generic Thu Feb 21 21:41 - 18:36  (20:55)    
reboot   system boot  3.5.0-17-generic Thu Feb 21 07:29 - 07:37  (00:08)    
john     pts/0        :0.0             Wed Feb 20 19:43 - 20:12  (00:29)    
john     pts/0        :0.0             Wed Feb 20 16:59 - 19:25  (02:26)    
john     pts/0        :0.0             Wed Feb 20 08:04 - 09:10  (01:05)    
john     pts/0        :0.0             Tue Feb 19 22:29 - 22:29  (00:00)    
john     pts/0        :0.0             Tue Feb 19 20:26 - 20:28  (00:02)    
john     pts/0        :0.0             Tue Feb 19 20:26 - 20:26  (00:00)    
john     pts/0        :0.0             Tue Feb 19 20:21 - 20:25  (00:04)    
john     pts/0        :0.0             Tue Feb 19 20:15 - 20:20  (00:04)    
john     pts/1        :0.0             Tue Feb 19 20:01 - 20:14  (00:13)    
john     pts/0        :0.0             Tue Feb 19 20:01 - 20:10  (00:08)    
reboot   system boot  3.5.0-17-generic Tue Feb 19 19:52 - 20:12 (1+00:19)   
reboot   system boot  3.5.0-17-generic Sun Feb 17 23:06 - 23:14  (00:07)    
john     pts/0        :0               Sat Feb 16 21:23 - 21:23  (00:00)    
john     pts/1        :0               Sat Feb 16 21:23 - 23:08  (01:45)    
reboot   system boot  3.5.0-17-generic Sat Feb 16 21:21 - 23:08  (01:46)    
reboot   system boot  3.5.0-17-generic Sat Feb 16 21:16 - 21:16  (00:00)    
john     pts/1        :0.0             Sat Feb 16 18:32 - 20:47  (02:14)    
john     pts/1        :0.0             Sat Feb 16 14:55 - 14:55  (00:00)    
john     pts/0        :0.0             Sat Feb 16 14:46 - 20:47  (06:01)    
john     tty1                          Sat Feb 16 12:41 - down   (08:06)    
john     tty1                          Sat Feb 16 12:41 - 12:41  (00:00)    
john     tty2                          Sat Feb 16 12:38 - 12:39  (00:00)    
john     tty2                          Sat Feb 16 12:38 - 12:38  (00:00)    
reboot   system boot  3.5.0-17-generic Sat Feb 16 12:37 - 20:47  (08:10)    
reboot   system boot  3.5.0-17-generic Fri Feb 15 14:28 - 14:29  (00:00)    
reboot   system boot  3.5.0-17-generic Fri Feb 15 10:40 - 14:12  (03:31)    
john     pts/0        :0.0             Thu Feb 14 18:15 - 20:57  (02:42)    
john     pts/0        :0.0             Thu Feb 14 17:18 - 17:18  (00:00)    
john     pts/0        :0.0             Wed Feb 13 23:25 - 23:49  (00:23)    
reboot   system boot  3.5.0-17-generic Wed Feb 13 23:01 - 20:57  (21:55)    
john     tty3                          Tue Feb 12 21:49 - down   (14:26)    
john     tty3                          Tue Feb 12 21:49 - 21:49  (00:00)    
john     tty2                          Tue Feb 12 21:46 - down   (14:29)    
john     tty2                          Tue Feb 12 21:46 - 21:46  (00:00)    
john     pts/1        :0.0             Tue Feb 12 21:12 - 21:45  (00:33)    
john     pts/0        :0.0             Tue Feb 12 20:55 - 21:45  (00:50)    
john     pts/0        :0.0             Tue Feb 12 20:06 - 20:34  (00:28)    
john     pts/0        :0.0             Tue Feb 12 18:23 - 19:56  (01:32)    
john     pts/0        :0.0             Tue Feb 12 17:49 - 17:53  (00:03)    
reboot   system boot  3.5.0-17-generic Tue Feb 12 17:39 - 12:15  (18:35)    
john     pts/2        :0.0             Sat Feb  9 13:26 - 14:33  (01:06)    
john     pts/2        :0.0             Fri Feb  8 22:48 - 01:22  (02:33)    
john     pts/1        :0.0             Fri Feb  8 22:46 - 14:33  (15:47)    
john     pts/0        :0.0             Fri Feb  8 22:43 - 14:33  (15:49)    
john     tty2                          Fri Feb  8 22:43 - down   (15:50)    
john     tty2                          Fri Feb  8 22:43 - 22:43  (00:00)    
reboot   system boot  3.5.0-17-generic Fri Feb  8 22:39 - 14:33  (15:54)    
john     tty2                          Fri Feb  8 22:19 - down   (00:15)    
john     tty2                          Fri Feb  8 22:19 - 22:19  (00:00)    
reboot   system boot  3.5.0-17-generic Fri Feb  8 22:16 - 22:34  (00:17)    
john     pts/0        :0.0             Fri Feb  8 14:57 - 15:17  (00:19)    
john     pts/1        :0.0             Fri Feb  8 11:36 - 11:36  (00:00)    
john     pts/0        :0.0             Fri Feb  8 11:26 - 12:48  (01:22)    
reboot   system boot  3.5.0-17-generic Fri Feb  8 11:16 - 15:17  (04:01)    
john     pts/0        :0.0             Thu Feb  7 17:00 - 17:48  (00:47)    
john     pts/1        :0.0             Wed Feb  6 23:15 - 08:17  (09:02)    
john     pts/0        :0.0             Wed Feb  6 22:48 - 08:17  (09:28)    
john     pts/2        :0               Wed Feb  6 21:41 - 22:46  (01:05)    
john     pts/1        :0               Wed Feb  6 17:16 - 22:46  (05:29)    
john     pts/0        :0               Wed Feb  6 17:13 - 22:46  (05:32)    
reboot   system boot  3.5.0-17-generic Wed Feb  6 17:12 - 17:48 (1+00:35)   
john     pts/1        :0               Sun Feb  3 19:42 - down   (20:50)    
john     pts/0        :0               Sun Feb  3 19:40 - down   (20:53)    
reboot   system boot  3.5.0-17-generic Sun Feb  3 19:39 - 16:33  (20:54)    
john     pts/0        :0.0             Sat Feb  2 13:43 - 14:39  (00:56)    
john     tty3                          Sat Feb  2 00:31 - 13:16  (12:44)    
john     tty3                          Sat Feb  2 00:31 - 00:31  (00:00)    
john     tty2                          Sat Feb  2 00:27 - 13:16  (12:49)    
john     tty2                          Sat Feb  2 00:27 - 00:27  (00:00)    
reboot   system boot  3.5.0-17-generic Sat Feb  2 00:26 - 14:40  (14:13)    
john     pts/0        :0               Fri Feb  1 16:57 - 20:06  (03:08)    
john     pts/1        :0               Fri Feb  1 16:56 - 16:57  (00:00)    
john     pts/0        :0               Fri Feb  1 16:50 - 16:50  (00:00)    
john     pts/0        :0               Fri Feb  1 11:36 - 13:33  (01:56)    
john     pts/1        :0               Fri Feb  1 00:14 - 00:17  (00:02)    
john     pts/0        :0               Fri Feb  1 00:07 - 00:25  (00:17)    

wtmp begins Fri Feb  1 00:07:55 2013

Another useful command for Linux systems is the lastlog command. This will print out information about the last logins for your system.

[email protected] ~/Code $ lastlog
Username         Port     From             Latest
root                                       **Never logged in**
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**
man                                        **Never logged in**
lp                                         **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
proxy                                      **Never logged in**
www-data                                   **Never logged in**
backup                                     **Never logged in**
list                                       **Never logged in**
irc                                        **Never logged in**
gnats                                      **Never logged in**
nobody                                     **Never logged in**
libuuid                                    **Never logged in**
syslog                                     **Never logged in**
messagebus                                 **Never logged in**
avahi-autoipd                              **Never logged in**
usbmux                                     **Never logged in**
kernoops                                   **Never logged in**
rtkit                                      **Never logged in**
speech-dispatcher                           **Never logged in**
colord                                     **Never logged in**
avahi                                      **Never logged in**
hplip                                      **Never logged in**
pulse                                      **Never logged in**
saned                                      **Never logged in**
mdm                                        **Never logged in**
john             tty1                      Thu Feb 21 21:46:16 +1100 2013
timidity                                   **Never logged in**
kdm                                        **Never logged in**
gdm                                        **Never logged in**
festival                                   **Never logged in**
ais                                        **Never logged in**

Useful networking commands.


This is the result of using the traceroute command on my netbook against the s2.enemy.org website. This command traces the path taken by network packets as they travel from your computer through the Internet and on to the target server. This command is perfect for capturing information about the network paths between you and the network server that you are sending packets to.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 3 ]
[ 00:20:46 ]
[ $ ]-> traceroute s2.enemy.org
traceroute to s2.enemy.org (62.116.11.3), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 4.187 ms 4.161 ms 4.209 ms
2 122-148-3-185.core.dodo.com.au (122.148.3.185) 39.611 ms 41.399 ms 42.120 ms
3 122-148-4-34.core.dodo.com.au (122.148.4.34) 42.987 ms 45.523 ms 46.872 ms
4 * * *
5 bundle-ether21.ken39.sydney.telstra.net (165.228.108.153) 59.733 ms 60.327 ms 60.253 ms
6 bundle-ether6.ken-core4.sydney.telstra.net (203.50.6.145) 62.895 ms 50.642 ms 46.826 ms
7 bundle-ether1.pad-gw2.sydney.telstra.net (203.50.6.29) 40.727 ms 52.640 ms 53.636 ms
8 203.50.13.114 (203.50.13.114) 44.893 ms 47.504 ms 48.982 ms
9 i-0-2-2-0.tlot-core01.bx.telstraglobal.net (202.84.140.50) 208.130 ms 208.776 ms 208.734 ms
10 i-6-1-0.nwk-core01.bi.telstraglobal.net (202.40.149.145) 262.551 ms 263.511 ms 264.849 ms
11 i-3-0-0.ultt-core01.bx.telstraglobal.net (202.84.249.26) 314.042 ms 316.154 ms 317.233 ms
12 lon2-core.gigabiteth3-0.swip.net (195.66.224.87) 322.986 ms 323.986 ms 323.128 ms
13 ams-core-1.pos0-7-2-0.tele2.net (130.244.192.13) 334.061 ms 335.490 ms 334.823 ms
14 ams-core-2.bundle-ether3.tele2.net (130.244.218.189) 333.408 ms 330.548 ms 332.980 ms
15 fra36-core-1.bundle-ether4.tele2.net (130.244.64.200) 338.993 ms 337.987 ms 338.087 ms
16 wen1-core-2.bundle-ether7.tele2.net (130.244.206.29) 349.576 ms 349.873 ms 349.872 ms
17 wen3-core-1.tengigabiteth2-1-0.tele2.net (130.244.205.72) 350.379 ms wen3-core-1.tengigabiteth10-1-0.tele2.net (130.244.205.74) 350.283 ms wen3-core-1.tengigabiteth2-1-0.tele2.net (130.244.205.72) 350.325 ms
18 130.244.49.118 (130.244.49.118) 350.686 ms 352.978 ms 350.250 ms
19 212.152.193.89 (212.152.193.89) 351.251 ms 355.463 ms 351.749 ms
20 81.189.132.90 (81.189.132.90) 360.766 ms 348.642 ms 348.666 ms
21 213.235.228.236 (213.235.228.236) 354.064 ms 354.208 ms 356.160 ms
22 86.59.38.110 (86.59.38.110) 353.146 ms 353.309 ms 353.092 ms
23 s3.enemy.org (62.116.11.3) 353.743 ms 352.852 ms 353.489 ms

The ping command is very useful when you need to find out if a server is up and how fast the connection is between you and them. I am using the -c 5 parameter to only bother sending 5 pings to the server to test the connection instead of a whole lot.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 5 ]
[ 00:36:44 ]
[ $ ]-> ping -c 5 s2.enemy.org
PING s2.enemy.org (62.116.11.3) 56(84) bytes of data.
64 bytes from s2.enemy.org (62.116.11.3): icmp_req=1 ttl=43 time=354 ms
64 bytes from s2.enemy.org (62.116.11.3): icmp_req=2 ttl=43 time=353 ms
64 bytes from s2.enemy.org (62.116.11.3): icmp_req=3 ttl=43 time=354 ms
64 bytes from s2.enemy.org (62.116.11.3): icmp_req=4 ttl=43 time=354 ms
64 bytes from s2.enemy.org (62.116.11.3): icmp_req=5 ttl=43 time=363 ms

--- s2.enemy.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 353.579/356.095/363.664/3.885 ms

The dig command is used to retrieve information about a target server, such as the nameservers and the IP address as well as the domain servers.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 6 ]
[ 00:37:01 ]
[ $ ]-> dig bing.com

; <<>> DiG 9.8.1-P1 <<>> bing.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

Use the wget command to retrieve a file from the Internet when you know the URL path to the file. This is useful for retrieving a single file from a website that you really need and then making use of it.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 11 ]
[ 00:46:38 ]
[ $ ]-> wget securitronlinux.com/lc/magik-1.txt
--2013-02-16 00:46:46--  http://securitronlinux.com/lc/magik-1.txt
Resolving securitronlinux.com (securitronlinux.com)... 174.122.176.251
Connecting to securitronlinux.com (securitronlinux.com)|174.122.176.251|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36386 (36K) [text/plain]
Saving to: `magik-1.txt'

100%[===================================================================================>] 36,386      76.4K/s   in 0.5s    

2013-02-16 00:46:47 (76.4 KB/s) - `magik-1.txt' saved [36386/36386]

To get information about the network adapter in your computer; use the ifconfig command. On my netbook; this command requires superuser privileges so I use sudo to gain those privileges.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 24 ]
[ 00:52:07 ]
[ $ ]-> sudo ifconfig wlan0
[sudo] password for john: 
wlan0     Link encap:Ethernet  HWaddr 00:25:d3:90:d1:54  
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::225:d3ff:fe90:d154/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:781 errors:0 dropped:0 overruns:0 frame:0
          TX packets:668 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:232798 (227.3 KiB)  TX bytes:70626 (68.9 KiB)

To get information about a certain kernel module that is installed on your Linux system, use the sudo modinfo command. This returns very useful information aobut the kernel module; such as the revision, description and the filename as well as the license.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 28 ]
[ 00:56:49 ]
[ $ ]-> sudo modinfo ext4
filename:       /lib/modules/3.2.0-4-486/kernel/fs/ext4/ext4.ko
license:        GPL
description:    Fourth Extended Filesystem
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
depends:        mbcache,jbd2,crc16
intree:         Y
vermagic:       3.2.0-4-486 mod_unload modversions 486

You could load this module with the sudo modprobe ext4 command; but if you are not using the ext4 filesystem this would be a waste of time. And if you are then the driver module would be in the /boot/initrd.img-3.2.0-2-486 filesystem and it would be loaded upon booting the machine to enable the Linux system to function.

The lsmod command will list all of the modules that are currently being used by your Linux system.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 31 ]
[ 01:05:51 ]
[ $ ]-> lsmod
Module                  Size  Used by
nls_utf8               12416  1 
nls_cp437              12417  1 
vfat                   17117  1 
fat                    40365  1 vfat
usb_storage            35245  2 
uas                    13175  0 
cryptd                 14125  0 
aes_i586               16608  1 
aes_generic            32970  1 aes_i586
cpufreq_userspace      12520  0 
cpufreq_stats          12645  0 
cpufreq_powersave      12422  0 
cpufreq_conservative    12987  0 
binfmt_misc            12778  1 
fuse                   51958  3 
loop                   17851  0 
dm_crypt               17920  0 
dm_mod                 57438  1 dm_crypt
snd_hda_codec_realtek   142274  1 
uvcvideo               52876  0 
snd_hda_intel          21945  2 
videodev               61827  1 uvcvideo
snd_hda_codec          63478  2 snd_hda_intel,snd_hda_codec_realtek
media                  13692  2 videodev,uvcvideo
snd_hwdep              12943  1 snd_hda_codec
snd_pcm_oss            36194  0 
snd_mixer_oss          17668  1 snd_pcm_oss
snd_pcm                53402  3 snd_pcm_oss,snd_hda_codec,snd_hda_intel
i915                  308253  3 
drm_kms_helper         22699  1 i915
drm                   130103  4 drm_kms_helper,i915
i2c_algo_bit           12713  1 i915
i2c_core               19116  5 i2c_algo_bit,drm,drm_kms_helper,i915,videodev
snd_page_alloc         12867  2 snd_pcm,snd_hda_intel
snd_seq_midi           12744  0 
snd_seq_midi_event     13245  1 snd_seq_midi
snd_rawmidi            18543  1 snd_seq_midi
joydev                 12959  0 
snd_seq                39764  2 snd_seq_midi_event,snd_seq_midi
iTCO_wdt               16945  0 
iTCO_vendor_support    12632  1 iTCO_wdt
snd_seq_device         13016  3 snd_seq,snd_rawmidi,snd_seq_midi
rng_core               12580  0 
arc4                   12418  2 
snd_timer              22478  2 snd_seq,snd_pcm
eeepc_wmi              12508  0 
asus_wmi               18278  1 eeepc_wmi
sparse_keymap          12719  1 asus_wmi
rt2800pci              13615  0 
rt2800lib              43217  1 rt2800pci
rt2x00pci              12768  1 rt2800pci
rt2x00lib              29158  3 rt2x00pci,rt2800lib,rt2800pci
eeprom_93cx6           12423  1 rt2800pci
mac80211              167554  3 rt2x00lib,rt2x00pci,rt2800lib
cfg80211              117653  2 mac80211,rt2x00lib
crc_ccitt              12331  1 rt2800lib
snd                    38796  15 snd_timer,snd_seq_device,snd_seq,snd_rawmidi,snd_pcm,snd_mixer_oss,snd_pcm_oss,snd_hwdep,snd_hda_codec,snd_hda_intel,snd_hda_codec_realtek
rfkill                 18715  5 cfg80211,asus_wmi
psmouse                59795  0 
coretemp               12782  0 
soundcore              12921  1 snd
pcspkr                 12554  0 
evdev                  13175  9 
acpi_cpufreq           12745  0 
serio_raw              12848  0 
mperf                  12421  1 acpi_cpufreq
video                  17412  1 i915
battery                12957  0 
ac                     12552  0 
button                 12817  1 i915
processor              23136  2 acpi_cpufreq
wmi                    13051  1 asus_wmi
xfs                   511016  1 
btrfs                 471514  0 
crc32c                 12576  1 
libcrc32c              12394  1 btrfs
zlib_deflate           21318  1 btrfs
sg                     21589  0 
sd_mod                 35425  7 
crc_t10dif             12332  1 sd_mod
ahci                   20821  2 
libahci                18429  1 ahci
libata                121219  2 libahci,ahci
scsi_mod              135503  5 libata,sd_mod,sg,uas,usb_storage
uhci_hcd               22506  0 
ehci_hcd               35684  0 
usbcore               100611  6 ehci_hcd,uhci_hcd,uvcvideo,uas,usb_storage
usb_common             12338  1 usbcore
atl1c                  31523  0 
thermal                13103  0 
thermal_sys            17752  3 thermal,processor,video

Having another look at the modinfo command, looking at the video module, we get this output.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 32 ]
[ 01:05:58 ]
[ $ ]-> sudo modinfo video
filename:       /lib/modules/3.2.0-4-486/kernel/drivers/acpi/video.ko
license:        GPL
description:    ACPI Video Driver
author:         Bruno Ducrot
alias:          acpi*:LNXVIDEO:*
depends:        thermal_sys
intree:         Y
vermagic:       3.2.0-4-486 mod_unload modversions 486 
parm:           brightness_switch_enabled:bool
parm:           allow_duplicates:bool
parm:           use_bios_initial_backlight:bool

How do you check if a certain directory is a mountpoint or not? With the mountpoint command of course.

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 3 ]
[ 10:09:55 ]
[ $ ]-> mountpoint /media/E0FD-1813/
/media/E0FD-1813/ is a mountpoint

[ [email protected] ]
[ Jobs 0.PWD: ~.bash 4.2.36. ] [ 4 ]
[ 10:10:05 ]
[ $ ]-> mountpoint /etc
/etc is not a mountpoint

We can see that the /media/E0FD-1813/ directory is a mountpoint but obviously the /etc directory is not.

Awesome WM tips.


To maximize a window in the Awesome window manager; press the Win + m and the window will take up the whole screen.

Press Win + r to open a run prompt in the top toolbar. Just type the name of the program you want to run; e.g xterm and hit press RETURN.

The awesome window manager supports a whole range of layouts to arrange your windows on your desktop. use the Win + Space key combination to cycle through the layouts for each of the 9 desktops that awesome has by default.

I like the Awesome window manager as it does exactly what I want without getting in my way. Larswm is a faster window manager; but I prefer the awesome layout with a toolbar at the top that shows running applications and the time as well as buttons for the 9 desktops. This is very nice to run on a netbook as it is very fast and usable on a slower machine.

Bash shell tricks and useful scripts.

This is a very useful bash function to use for converting all files in a folder to lowercase. Just type lowercase * to use this function.

function lowercase()  # move filenames to lowercase.
{
    for file ; do
        filename=${file##*/}
        case "$filename" in
        */*) dirname==${file%/*} ;;
        *) dirname=.;;
        esac
        nf=$(echo $filename | tr A-Z a-z)
        newname="${dirname}/${nf}"
        if [ "$nf" != "$filename" ]; then
            mv "$file" "$newname"
            echo "lowercase: $file --> $newname"
        else
            echo "lowercase: $file not changed."
        fi
    done
}

Here is a function that will remove all bad symbolic links in a folder. This is very useful for cleaning up old folders.

function badlink()
# From Atomic magazine #43 August 2004. http://www.atomicmpc.com.au
{
	DEFAULT=$(tput sgr0);
	FILELIST=.badlink.list

	[ -e $FILELIST ] && $( rm -fr $FILELIST )

	function checklink()
	{
		for badlink in $1/*; do
			[ -h "$badlink" -a ! -e "$badlink" ] && echo \
			\"$badlink\" >> $FILELIST
			[ -d "$badlink" ] && checklink $badlink
		done
	}

	for directory in `pwd`; do
		if [ -d $directory ] ; then
			checklink $directory;
		fi
	done

	if [ -e $FILELIST ] ; then
		for line in $(cat $FILELIST); do
			echo $line | xargs -r rm | echo -e "$line \
			-removed"
			echo
		done
		rm -fr $FILELIST
	else
		printf "Bad symlinks not found.\n\n"
	fi
} # End Atomic function.

Do you want to list the logged on users easily? This simple one liner will do the tricks.

finger -lmps $LOGNAME | sed -e "s/On/Logged in/g" | grep "since"

The bash shell allows for the use of if statements to check if a certain command exists. Here is an example where we are checking to see if the /usr/bin/finger command exists before calling it.

if [ -x /usr/bin/finger ] ; then
	INFO=$(finger -lmps $LOGNAME | sed -e "s/On/Logged in/g" | grep "since" )
else
	INFO=$(uname -msov)
fi

In this example we also have an else statement; this allows us to use a fallback command in case the /usr/bin/finger command is not installed. In this example below; I show a code sample that allows you to have a separate prompt for the virtual console and a more elaborate prompt for your Xorg terminals. This is using the aforementioned bash if statements.

if [ $DISPLAY ] ; then  # Testing for either xterm or rxvt or uxvt or uxterm...
	# etc. Works in a xterm on Open Solaris just fine...
	PS1='\n[ \e[041m\e[40m\e[37m\e[1m\[email protected]${OSRELEASE}\e[41m\e[0m ]\n[ \
\e[033mJobs \j.\e[0m\e[30m\e[41m\e[1m\e[33mPWD: \w.\s \V.\e[0m ] [\e[4m \# \
\e[0m]\n[ \t ]\n[ \$ ]-> '
	PS2='=> '
fi

# Outside of X we use this!
if [ "$TERM" == "linux" ]; then
	PS1='\e[31m\e[40m\e[37m\e[1m\[email protected]${OSRELEASE}.\e[0m\n \e[30m\e[41m\e[1m \
\e[33mPWD\w.\e[0m \
\s.\n \V. \# \$> '
fi

These bash scripts and tricks are very useful for your day to day Linux usage. Here is the lowercase bash function in action.

[ [email protected] ]
[ Jobs 0.PWD: ~/Pictures.bash 4.2.36. ] [ 11 ]
[ 23:50:55 ]
[ $ ]-> lowercase *
lowercase: 1341177416596.jpg not changed.
lowercase: 1344777085695.jpg not changed.
lowercase: 1348324049537.jpg not changed.
lowercase: 1348489952071.gif not changed.
lowercase: 1349352994106.jpg not changed.
lowercase: 1349353171065.jpg not changed.
lowercase: 1351714720919.jpg not changed.
lowercase: 16022012195.jpg not changed.
lowercase: DSCF2607.JPG --> ./dscf2607.jpg
lowercase: DSCF2608.JPG --> ./dscf2608.jpg
lowercase: DSCF2609.JPG --> ./dscf2609.jpg
lowercase: DSCF2610.JPG --> ./dscf2610.jpg
lowercase: DSCF2611.JPG --> ./dscf2611.jpg
lowercase: DSCF2612.JPG --> ./dscf2612.jpg
lowercase: DSCF2613.JPG --> ./dscf2613.jpg
lowercase: DSCF2614.JPG --> ./dscf2614.jpg
lowercase: DSCF2615.JPG --> ./dscf2615.jpg
lowercase: DSCF2616.JPG --> ./dscf2616.jpg
lowercase: DSCF2617.JPG --> ./dscf2617.jpg
lowercase: DSCF2618.JPG --> ./dscf2618.jpg
lowercase: DSCF2619.JPG --> ./dscf2619.jpg
lowercase: DSCF2620.JPG --> ./dscf2620.jpg
lowercase: DSCF2621.JPG --> ./dscf2621.jpg
lowercase: DSCF2622.JPG --> ./dscf2622.jpg
lowercase: DSCF2623.JPG --> ./dscf2623.jpg
lowercase: DSCF2624.JPG --> ./dscf2624.jpg
lowercase: DSCF2625.JPG --> ./dscf2625.jpg
lowercase: DSCF2626.JPG --> ./dscf2626.jpg
lowercase: DSCF2627.JPG --> ./dscf2627.jpg
lowercase: DSCF2628.JPG --> ./dscf2628.jpg
lowercase: DSCF2631.JPG --> ./dscf2631.jpg
lowercase: DSCF2632.JPG --> ./dscf2632.jpg
lowercase: DSCF2633.JPG --> ./dscf2633.jpg
lowercase: DSCF2634.JPG --> ./dscf2634.jpg
lowercase: DSCF2635.JPG --> ./dscf2635.jpg
lowercase: DSCF2636.JPG --> ./dscf2636.jpg
lowercase: DSCF2637.JPG --> ./dscf2637.jpg
lowercase: P1010894.JPG --> ./p1010894.jpg
lowercase: P1020194.JPG --> ./p1020194.jpg
lowercase: P1020195.JPG --> ./p1020195.jpg
lowercase: P1020196.JPG --> ./p1020196.jpg
lowercase: P1020197.JPG --> ./p1020197.jpg
lowercase: P1020198.JPG --> ./p1020198.jpg
lowercase: P1020199.JPG --> ./p1020199.jpg
lowercase: P1020200.JPG --> ./p1020200.jpg
lowercase: P1020201.JPG --> ./p1020201.jpg
lowercase: P1020202.JPG --> ./p1020202.jpg
lowercase: P1020203.JPG --> ./p1020203.jpg
lowercase: P1020204.JPG --> ./p1020204.jpg
lowercase: P1020205.JPG --> ./p1020205.jpg
lowercase: P1020206.JPG --> ./p1020206.jpg
lowercase: P1020207.JPG --> ./p1020207.jpg
lowercase: P1020208.JPG --> ./p1020208.jpg
lowercase: P1020209.JPG --> ./p1020209.jpg
lowercase: P1020210.JPG --> ./p1020210.jpg
lowercase: P1020211.JPG --> ./p1020211.jpg
lowercase: P1020212.JPG --> ./p1020212.jpg
lowercase: P1020213.JPG --> ./p1020213.jpg
lowercase: Screenshot - 030812 - 15:48:10.png --> ./screenshot - 030812 - 15:48:10.png
lowercase: Screenshot - 200712 - 15:04:43.png --> ./screenshot - 200712 - 15:04:43.png
lowercase: timelapse not changed.
lowercase: wagganight.jpg not changed.
lowercase: Wista_Strings_Wallpaper_by_chamillitarysk8r.png --> ./wista_strings_wallpaper_by_chamillitarysk8r.png
lowercase: xterm1.jpg not changed.
lowercase: xterm2.jpg not changed.

Do you want to convert the contents of a text file to html entities so that you can post it on your website like I do? Then this one liner will perform this task admirably.

[ [email protected] ]
[ Jobs 0.PWD: ~/Documents.bash 4.2.36. ] [ 17 ]
[ 23:58:01 ]
[ $ ]-> perl -MHTML::Entities -ne 'print encode_entities($_)' tmp.txt > tmp2.txt

This is how I converted the output of the lowercase function to include html entities so that I could post it on my website. Using a perl one liner can be a very useful way to perform a task easily. If you want a comprehensive traceroute command for Linux Mint that will provide a very good traceroute output then the mtr command will be what you want. I installed this on Linux Mint 12 Debian Edition after adding the extra repositories and this gives you a good look at a webserver. Type sudo apt-get install mtr-tiny to install this command.

Read more bash tips on this page: http://samrowe.com/wordpress/advancing-in-the-bash-shell/.

Dual screen computer system.

How to install the full KDE 4.9 desktop on Linux Mint 14.


The best choice among all of the various desktop environments available for Linux Mint 14 is the KDE 4.9 desktop environment. This works perfectly with a dual monitor configuration; the only caveat is that you must have a separate wallpaper on each monitor as you can not have a wallpaper that spans both screens. But you can cut a dual screen wallpaper into two halves and create a pseudo spanned desktop that way. This is a minor annoyance as this desktop environment is still a perfect choice for a day to day desktop.

Type sudo apt-get install kde-full to install the KDE desktop environment on Linux Mint 14. This command will pull in all of the packages and install the full KDE desktop environment.

How to create a secure password.


Are you confused when choosing a password for your online accounts? Then you can use this website to generate a custom password that will provide enough security to thwart all but the most determined crackers. Go to http://strongpasswordgenerator.com/ and select a password at least 80 characters in length. This will provide more than enough entropy to make the task of brute forcing your password very difficult indeed.

The Tint2 panel.

A better desktop window manager to use with dual monitors.

When you are using dual monitors on your Linux machine; it makes more sense to use the Tint2 panel and the openbox window manager. Here is my .xsession file that i am using to load my custom desktop. Just create this file in the root of your home directory and then logout. At the login screen choose the default system session and the .xsession file will be read and the instructions executed.

#!/bin/bash

tint2 &
xterm &
xterm &
conky &

exec openbox

The Tint2 panel will display on both monitors and it will only show buttons for running applications on its own screen. That I guess is better than having one panel that spans both screens and is full of buttons. This way you can clearly see which application is running on each screen. This screenshot illustrates this concept. There is some more information about the custom .xsession here: https://wiki.ubuntu.com/CustomXSession.

If this does not work properly on your system; you might not have xterm installed yet. Type sudo apt-get install xterm to install it.

How to get dual monitors working with Linux mint 14 and ATI drivers.


The Linux Mint 14 distribution does work well with dual monitors. The arandr utility does not seem to work with this new release; I ended up using the ATI Catalyst Control Centre to setup the dual monitor configuration and save an xorg.conf files that enables the dual monitor desktop upon loading Xorg.

Here is the posting explaining more about this and how to get this working with the ATI Control Centre: http://www.securitronlinux.com/bejiitaswrath/linux-mint-14-dual-monitor-support-works-after-all-with-ati/.

How to get dual monitors working with Linux mint 14 and ATI drivers.

Updating the Linux Mint distribution from the command-line.


The Linux Mint distribution is based on Debian and like the Debian Squeeze distribution you can update the installed software from the command-line.

The apt suite of commands are used to achieve this. This command below will update the repositories list on your system.

sudo apt-get update

And this command will install any pending updates.

sudo apt-get upgrade

If you wish to remove a package that is installed on your system; use this command.

sudo apt-get remove

There are more examples here: http://gwiki.securitronlinux.com/Debian_apt_command.

Setting up dual monitors in Linux Mint 13 with the MATE desktop.

My Linux Mint 13 MATE desktop.

The arandr utility that is used to configure dual monitors.
The arandr utility that is used to configure dual monitors.

I have managed to get dual monitors working with the Linux Mint 13 MATE desktop. I installed the arandr utility with the sudo apt-get install arandr command and then I configured the layout of my dual screens to suit and once that was squared away the dual monitor display was working. The panels will not span across the dual monitor display; but this is a step in the right direction. I did not need superuser privileges to configure this either. The arandr utility is pictured to the left; this utility makes this whole process very simple indeed. I can drag windows from one desktop to another and the whole desktop is very fast. I found out that if I select a dual-screen wallpaper and set it as the wallpaper; MATE offers a span option so that the wallpaper can span across both of your monitors. This looks awesome with the Digital Blasphemy wallpaper I have. So at least the MATE desktop works well with dual monitors. On Windows 7; you can not get the taskbar to span both of the monitors without adding a utility to set this up; so the Linux Mint desktop is equal on that front. Having dual monitors allows you do spread out your Windows; mine is 3360*1050 pixels; that is a lot of space for all of your windows.

Most of the forum postings I have found advocated editing the Xorg.conf file; but modern releases of Xorg do not have one by default. This little utility makes the task of setting up dual monitors easy and is more fun than editing a configuration file. I could have used the AMD Control Centre as root to set this up as well; if you are using an ATI card like I am then this could be an option as well. At least this works well with Linux Mint; I did not want to be running Windows all of the time; the anti-virus warning popups really get on your nerves after a while, that is why Linux is the better option on the desktop. And the MATE desktop is the evolution of the former Gnome 2.32.2 desktop that was all the rage before the Gnome 3 desktop came out. Gnome 2.32.2 and Compiz was the best combination you could get for a fast and attractive desktop that can be used day to day for all of your work. You can use the Compiz compositor for the MATE desktop as well; this is what you would want if you are interested in using the desktop cube and many other desktop effects.

The easy way to install new MATE themes in Linux Mint 13.

MATE Appearance preferences window.
MATE Appearance preferences window.

To install themes easily for the MATE desktop; just open the Appearance preferences window and click the Get more themes online link at the bottom. This will open a web page with a listing of categories. Click the Controls option and you will be presented with a page of themes with screenshots that showcase a lot of awesome themes for MATE. Just click the link at the bottom of each entry and the theme archive will download. Then click the Mint menu and open the Downloads folder in Caja and find the archive that you downloaded. Drag this into the Appearance Preferences window and the theme will be installed. After that you will be prompted to activate the theme that you have installed. Click yes and the the theme will change to the one that you just downloaded. This is a very good way to install themes and shows the flexibility of the MATE desktop and how easy it is to customize the desktop to suit the user. The best way to use the MATE desktop is by adding a second panel at the top of the screen and putting the system tray and menus at the top and only having the taskbar and show desktop button on the bottom one.

This is a traditional Gnome 2.32.2 desktop layout and recommended for any Linux user. You can add a traditional Gnome 2.32 styled menu to the panel to replace the Mint menu should you wish that; I do that as the Gnome 2.32 styled menu is easier to use. The themes available for the MATE desktop are quite stunning; the artists who make these are doing quite a good job. To install a new wallpaper; just download a nice image from the Internet and then drag it into the desktop backgrounds window. Then the wallpaper will be set as your desktop background image. I just wish that it was easier to set up dual monitors on Linux Mint and Ubuntu. On Windows 7 is is very easy using the Ultramon utility to configure your screens and to span a wallpaper and the task bar across dual screens; but on Linux it is very difficult indeed. This is something that needs to be fixed; earlier releases of Linux Mint and Ubuntu were easily capable of displaying on dual monitors and this needs to be fixed to make sure that Linux can keep taking over the install base from Windows 8.

Using Linux commands to find hardware information.

Using the sysctl and other commands to return hardware information.

Using the shred command and other useful commands for creating and removing files.

How to make Linux Mint KDE look like Windows Vista or 7. This is a great way to style the KDE desktop to look just like Windows 7.

Setting up the Mint Desktop Manager (MDM).

Mint Desktop Manager configuration screen.
Mint Desktop Manager configuration screen.

This screen-shot shows the Mint Desktop manager configuration screen. This allows you to configure the Linux Mint 13 login manager; choosing themes and many other options. The ability to configure the login manager was present in the Gnome 2 desktop, with the GDM configuration tool. The MATE desktop has the MDM configuration tool which is exactly the same thing. The configuration options that were missing from recent Ubuntu releases are back with the new MATE desktop. Users expect to be able to configure the login manager and choose various themes and configure the login manager to behave as they expect.

Thanks to the Linux Mint developers for finally caring about the users and giving them a Linux distribution that provides the options that are long gone with the creation of Ubuntu.

There is a forum post here that has information on porting GDM themes to MDM. http://forums.linuxmint.com/viewtopic.php?f=47&t=100790.

To convert a GDM login manager theme to work with MDM, you must first decompress the tar.gz archive to your Desktop, then enter the directory and rename the GdmGreeterTheme.desktop file to MdmGreeterTheme.desktop and then edit it to look like this. This is all you need to do to convert a GDM theme to MDM so that the login manager can use this as a valid theme.

# This is not really a .desktop file like the rest, but it's useful to treat
# it as such

[MdmGreeterTheme]
Encoding=UTF-8
Greeter=blueswirl.xml
Name=Blue Swirl
Description=Theme for GNOME Linux Desktop. Based on the Pixel Girl Theme by fabiand.
Author=darkknight, fabiand, michaelchan, tigert
Copyright=2006 Darkknight
Screenshot=screenshot.jpg

Then re-compress the directory thusly: tar -cvf BlueSwirl.tar BlueSwirl ; gzip BlueSwirl.tar and then type sudo mdmsetup to open the MDM login manager configuration window and add the theme. This is no longer necessary when you are using the Linux Mint 14 distribution as the version of MDM shipped with it supports the old GDM themes perfectly. But for Linux Mint 13 this is still necessary.

Installing Enlightenment E17 on Linux Mint 13 Maya.

The Enlightenment E17 desktop for Linux is available in the repositories for Mint. Just type sudo apt-get install e17 to install this excellent desktop.

Enlightenment E17 wallpaper selection dialog.
Enlightenment E17 wallpaper selection dialog.

Installing the new Grub 2.00 on Linux Mint 13.


Firstly, download the tarball for the GNU Grub 2.00 release here: GNU Grub 2.00.

Then unpack the tarball:

[email protected]:~/Documents$ tar -xvf grub-2.00.tar.gz

Then cd into the created folder and run the ./configure script.

[email protected]:~/Documents/grub-2.00$ ./configure --prefix=/usr

We will need to install the dependencies for the successful compilation of this software.

[email protected]:~/Documents/grub-2.00$ sudo apt-get install bison gawk flex m4 libfuse2 libfuse-dev zfs-fuse libfreetype6-dev

Then compile and install the software.

[email protected]:~/Documents/grub-2.00$ make

[email protected]:~/Documents/grub-2.00$ sudo make install

After this, you may type sudo grub-install /dev/sda This will install the GRUB bootloader to the boot sector, then type sudo update-grub to make sure the boot menu is updated.

Miscellaneous information for Linux Mint 13.

http://www.securitronlinux.com/bejiitaswrath/nice-cinnamon-themes-for-linux-mint-13-maya/ Lovely themes for the Cinnamon desktop in Linux Mint 13 and Fedora Core 17.

http://www.securitronlinux.com/bejiitaswrath/mate-desktop-on-linux-mint-13-some-nice-gtk-and-icon-themes-to-make-it-look-very-nice/ Some nice themes for the Linux Mint 13 MATE desktop.

More themes for the MATE desktop, these are some quality themes; http://www.securitronlinux.com/bejiitaswrath/another-selection-of-very-nice-linux-mint-mate-themes/.

Some tips on the MATE desktop and compiling a vanilla kernel on Linux Mint 13; http://www.securitronlinux.com/bejiitaswrath/linux-mint-mate-desktop-and-con/.