Code Ghar Official Linux Desktop
November 3, 2009
So I decided to take the plunge and use Linux on the desktop. This post describes how the first ever official Code Ghar Linux desktop was created. As I make changes to the computer, I will keep this post updated.
I first installed Fedora Rawhide (nightly build) using ext4 as the filesystem. After a couple days, I decided to add more memory to the system. Once this memory was installed successfully, the OS would not boot at all. I decided to not risk things further and went with Debian testing (Squeeze) instead. I am more comfortable with a Debian based system anyways so the choice wasn’t hard. I chose the netinstall CD and only installed the command line (did not choose the Desktop option during install).
I wanted to make best use of the 3GB RAM in my system. So I chose to install LXDE as my desktop environment. Since I was only running command line, I ran the following command to install LXDE.
sudo aptitude install xorg gdm lxde
I needed to run three main applications. I could either install a virtual machine running Windows to run these apps or install Wine. I decided to try out Wine. To install Wine, I ran the following command.
sudo aptitude install wine
Once installed, all you have to do is run the exe file to install your desired application and Wine takes care of the rest. But make sure you have searched that application on the Wine Application Database.
However much I want to move away from Windows, I just can’t because of some applications. I chose to use VirtualBox although I have been using VMware on Windows and Mac for a couple years now. To install VirtualBox on Debian, I followed their Wiki (VirtualBox Installation). Following are the commands I ran.
sudo aptitude install virtualbox-ose virtualbox-ose-modules-$(uname -r)
sudo invoke-rc.d udev reload
sudo modprobe vboxdrv
sudo addgroup vboxusers
sudo adduser codeghar vboxusers
I then logged out and logged back in for VirtualBox to be ready to be used.
To allow remote access to my machine using VNC, I chose to use X11VNC. To install it, I ran the following command:
sudo aptitude install x11vnc
To invoke it for my user (since I have a single-user machine), I ran the following command once I logged in. This command is all on one line (in case the formatting of the blog makes it appear different)
x11vnc -display :0 -xkb -bg -forever -passwd mypassword
What this does is that it allows you to access your actual desktop on port 5900, runs in the background (bg flag), does not stop after first remote client disconnects (forever flag) i.e. keeps running, and assigns a password (passwd) which must be used to authenticate yourself. The xkb flag was used because for some reason the shift key did not work when I ran a VNC client from another machine into this one. I forgot which resource I used to fix this issue but I will put up the link once I can find it again.
If my computer is restarted, I will have to run the same command again for me to be able to use VNC. This is why you need access to at least SSH to be able to run this command and start VNC. I added the following alias at the end of my
~/.bashrc file. This way I don’t have to retype the command all the time.
alias myvnc="x11vnc -display :0 -xkb -bg -forever -passwd mypassword"
Flash for Iceweasel (Firefox)
To install Adobe Flash, I followed the instructions on How to Install Adobe Flash in Debian Etch/Lenny/Sid. As they were very generic, I took only what I needed and did the following.
First I downloaded the debian-multilemedia-keyring package on the desktop. Then I ran the following command to add it to aptitude.
sudo dpkg -i ~/Desktop/debian-multimedia-keyring_2008.10.16_all.deb
The I modified my /etc/apt/sources.list and added the following line:
deb http://www.debian-multimedia.org testing main
I then ran the following command to update aptitude and then install Flash.
sudo aptitude update
sudo aptitude install flashplayer-mozilla
Remote File Access with SSHFS
I used the guide at Mount a remote file system through ssh Using sshfs to get this working. I strongly recommend that you read it thoroughly for better information. To install SSHFS, you also need to install FUSE, as below.
sudo aptitude install fuse-utils sshfs
Now you need to do two things: load the FUSE module (as below)
sudo modprobe fuse
and also add your user to the fuse group (as below)
sudo adduser codeghar fuse
I then had to log out and log back in for my user to be recognized as part of fuse group.
I then created a mount directory in my home folder, created folders for all remote file systems I need to access, and created aliases for mounting and un-mounting SSHFS “shares”.
To mount server1, I ran the following (also added this as a bash alias to save typing):
sshfs email@example.com:/home/remoteuser/ /home/codeghar/.mount/server1
To unmount server1, I ran the following (also added this as a bash alias to save typing):
fusermount -u /home/codeghar/.mount/server1
Following are the applications I also installed.
sudo aptitude install openoffice.org
sudo aptitude install wireshark
sudo aptitude install gvim
sudo aptitude install vncviewer
Another VNC client:
sudo aptitude install gtkvncviewer
Yet another (maybe better) remote viewing client (called Remote Desktop Viewer in Debian, Ubuntu, and Fedora):
sudo aptitude install vinagre
sudo aptitude install grsync
sudo aptitude install pidgin
sudo aptitude install epdfview
sudo aptitude install samba samba-client smbfs
Convert between DOS and Unix text files:
sudo aptitude install tofrodos
sudo aptitude install transmission
sudo aptitude install editra
Another (maybe even better) Text Editor:
sudo aptitude install geany