How to setup Awesome Window Manager with Debian
Recently I had the desire to try a tiling window manager. I chose Awesome Window Manager over at awesome.naquadah.org and Debian 7. Due to the fact that nothing comes ready-to-go with Awesome, guides helped me a lot during setup and I am here to return the favor.
Contents
Skills Needed
This is a moderate difficulty setup. My 6 complete installs took me about 6 days total, including learning time. I recommend you know how to do all of these or be ready to spend an hour on each learning it:
- Bash - know simple bash shell commands and scripting
- SSH - know the very basics
- apt-get - know how to install software and check error logs etc
- vi vim or nano - know how to edit text files without a GUI
- Manual partition creation during install of Linux (optional, helpful though)
Setup Rigs Tested
- Type: Lenovo G450 Laptop
- Debian Version: Debian 7 x64 DVD
- Installation Media: x64 DVD (with firmware folder), and USB install from unetbootin
- Hard Drive: 32gb Memory card! (sandisk ultra, class 10 UHS) on an internal card reader
- CPU: Intel Dual Core E8400 64-bit
- RAM: 4GB
- Type: Homebuilt i5-2500k desktop
- Debian Version: Debian 7 x64 DVD
- Installation Media: x64 DVD (with firmware folder), and USB install from unetbootin
- Hard Drive: 250GB internal SATA-2 Western Digital Caviar SE (all partitions wiped)
- CPU: i5-2500k
- RAM: 8GB
- Type: Dell Optiplex POS (14 years old!)
- Debian Version: Debian 7 x32 CD
- Installation Media: x32 CD (with firmware folder), and USB install from unetbootin
- Hard Drive: 20GB internal Western Digital
- CPU: 1.7GHz Pentium 4
- RAM: 512MB
- Type: Virtual Machine (Virtualbox)
- Host OS: DEBIAN 7 OF COURSE
- Debian Version: Debian 7 x32 CD
- Installation Media: x32 CD ISO image
- Hard Drive: 8gb VDI disk image
- CPU: 1x 100%
- RAM: 512MB
Installing Debian
Setup is straight forward and goes just like a normal install except for the fact that we do not install the Desktop Environment. If you have setup Debian 7 before or know Linux well, just go ahead and install without a desktop. For the rest of us, here are the steps
Get Debian
The first step in this process is to get Debian. You should be using torrents if you know how to help out Debian in return for their great OS, but HTTP is ok if you wont torrent. Make sure you select the proper download.
Download Explanation
- CPU type
- amd64 (64-bit) and its all 64 bit CPUs including Intel even tho its called amd64 - recommended
- i386 (32-bit) is for older computers or for better backwards compatibility.
- Download size
- CD Images - Base packages, only the bare essentials
- DVD Images - Base packages + extra stuff you will end up installing probably (6x larger download) - recommended
- Debian Torrents
- debian-7.0.0-amd64-DVD-1.iso.torrent 64-bit only, DVD around 4GB download, torrent file
- debian-7.0.0-amd64-CD-1.iso.torrent 64-bit only, CD around 650MB download, torrent file
- debian-7.0.0-i386-DVD-1.iso.torrent 32-bit only, DVD around 4GB download, torrent file
- debian-7.0.0-i386-CD-1.iso.torrent 32-bit only, CD around 650MB download, torrent file
- Debian HTTP/FTP Downloads - Use torrents if you can... These are direct downloads however if you need them
Installation Media
- Use the DVD edition if you can, it contains more packages which will minimize download time during installs. You only need CD 1 or DVD 1, the other discs contain the other packages that are less frequently used.
- Option 1: Using Unetbootin to create a bootable USB flash drive is convenient if you know how
- Option 2: Get an ISO and burn it to disc with a program like CDBurnerXP (freeware)
Before Install
- Unplug all hard drives from the computer except the one you are installing to or say goodbye to your data
- Clear the drive you are installing to using gparted or a bootable partition manager (I had problems with a pre-existing grub bootloader on my install hard drive)
During Install
- Select the option to use a network mirror
- UNSELECT the option "Desktop Environment" during install (it is in a checklist of stuff to install)
Special Notes About Installing
Skipping Desktop Environment install
- This will make it boot to command line, no windows, make sure you are ready!
Memory Card Install Notes
- Keep memory card UNPLUGGED until Debian is ready to detect hard drives to install to or it will read errors
- If you have 2GB+ of RAM, dont make a swap partition, just make one big ext4 / partition (swap + data on a single memory card is slllllooooww.)
Install Your Packages
This section goes over what happens after you install Debian, and are now at a command prompt (note: with NO desktop environment). We will be entering a series of commands as root to get the packages needed to run awesome, like an X server. Each command I list will have only a few packages we are asking to install, but there will be many it will say it needs. This is OK, they are called dependencies and they are essential as "background" programs, etc. Now, the first step is to remove the CD from being checked during program installations. You should no longer have your CD/DVD/USB install media in the system.
Setting up apt-get
Start text editor to edit sources of packages
nano /etc/apt/sources.list
Find this line:
deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official amd64 DVD Binary-1 20130504-14:44]/ wheezy contrib main
Make it into this line:
#deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official amd64 DVD Binary-1 20130504-14:44]/ wheezy contrib main
Press Ctrl + X to exit, and press y to save
Packages to apt-get
Here is a list of commands, one by one I used during my setup to build my own features from scratch on an awesome install. Accept all dependencies it asks you to download, some may have many. I will describe what set of programs and utils each command gives you also, so if you dont want that feature, skip it.
Use root user
su
Essential: Update list of packages available from apt-get
apt-get update
Essential: Get 2 important packages, sudo and vim
apt-get install vim sudo
Essential: Get the basic X window server, awesome, terminal (200+ packages)
apt-get install xinit awesome xterm
Recommended: If you want better than just an xterm window (100+ Packages)
apt-get install gnome-terminal
Recommended: If you want a good file browser (100 packages)
apt-get install nautilus
Recommended: clock, calc, notepad, code editor (8 total packages)
apt-get install galculator x11-utils leafpad geany
Recommended: If you want some internet apps (58 total packages)
apt-get install iceweasel pidgin transmission-gtk
Recommended: If you want media and audio (65 packages)
apt-get install alsa-utls mplayer mirage rhythmbox
Optional: If you want to connect to other computers (10 packages)
apt-get install filezilla putty vncviewer samba
Optional: If you want advanced utilities (48 packages)
apt-get install virtualbox q4wine gparted
Create Awesome Config Files (required)
Run these commands as your regular user, NOT ROOT!
Creates Awesome config directory (for current user only!), copies default config to it (make sure no trailing slashes!
mkdir ~/.config cp -fr /etc/xdg/awesome ~/.config
Basic System Setup
Here is where I take the time to change some config files before I go deep into configuring the GUI. I will explain each change, what it does and why I do it.
Require no password for logon (optional)
Yes, a security risk. I am behind a great firewall, and this is not my work PC so you may or may not want to do this. I personally love it. Here is how its done:
Switch to root account
su
Open inittab in an editor
vi /etc/inittab
Put a # symbol before this entry:
1:2345:respawn:/sbin/getty 38400 tty1
Make a new line above the one you changed with this:
1:2345:respawn:/bin/login -f MYUSERNAME tty1 </dev/tty1 >/dev/tty1 2>&1
No password for sudo (optional)
This one is a huge security risk if you are on a shared PC or whatnot. If your user gets hacked, root account is hacked also. That being said, I LOVE THIS ONE TOO LOL here is how its done:
Switch to root
su
Open /etc/sudoers
vi /etc/sudoers
Go to the end of the document, press INSERT to type, and on a new line enter this:
yourusername ALL=(ALL) NOPASSWD: ALL
Force a save over the read only file - in command mode it is :w!
Setup Awesome to Autostart
This step takes setting up some files that will be executed every time a user is logged on (or AUTO logged on in the above example). You will be creating files using either vi/vim or nano, whichever is your favorite text editor.
.xinitrc (essential)
This file goes in your home directory. it is called .xinitrc with a period starting its name to indicate it is hidden. My .xinitrc goes here: /home/bander/.xinitrc because my user is bander. Here is what should go inside this file:
#!/bin/sh xsetroot -solid black xsetroot -cursor_name top_left_arrow #bell volume 20% xset b 20 #screensaver off xset s off #monitor power savings in minutes for standby, sleep, off xset dpms 300 600 900 xmodmap $HOME/.Xmodmap xrdb -load $HOME/.Xdefaults ivman & #last line has to be the one to exec awesome exec /usr/bin/awesome
.xprofile (recommended)
This is where I set my display resolution to run how I want it when I login (default I think is 1024x768 even on a 1080p monitor). You will have to do some research as to what each video output is called on your system. You will have to modify my code to your own video output names. You can check what your video outputs are called by running:
xrandr -q
My .xprofile:
#Laptop Video Display Something, auto(max) resolution xrandr --output LVDS-1 --auto #External VGA port, off xrandr --output VGA-1 --off
.bash_profile (essential)
This one is simple, but I wonder if it could be redundant to .xinitrc. Either way, this goes in your home folder and only contains this:
xinit awesome
Here is my sample of
External Links
- Debian