I later moved to bspwm, maybe you might want to look at that as well --> bspwm
Well, in this article, I will follow step by step procedure of setting up i3. My dotfiles
First of all, install i3, i3lock & i3status. Generally, installing i3 will pull these as dependencies.
Edit your .xinitrc to launch i3.
exec i3
# If you wish to log to a file
exec i3 -V >> ~/.i3/i3log 2>&1
During the first run, i3 will ask for your default keybinding. Some help on keyboard layout is here.
Now, lets start editing the configuration files. The main config file is present at ~/.i3/config. First, one would prefer to have named workspaces. So the following has to be done for number of named workspaces you want. Check here.
# Name the workspaces
set $tag1 "1: www"
# switch to workspace
bindsym $mod+1 workspace $tag1
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $tag1
Wow, so now we have named workspaces (for which you have to login again) let us change some settings for i3bar in ~/.i3/config. Colors can be set here along with some position settings. Check for bar in config file as there are some defaults present. Help on these settings is available here.
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
colors {
# Whole color settings
background #000000
statusline #ffffff
separator #666666
# Type border background font
focused_workspace #008fff #007fff #ffffff
active_workspace #333333 #5f676a #ffffff
inactive_workspace #333333 #222222 #888888
urgent_workspace #aa0000 #990000 #ffffff
}
# i3bar position
position top
# Using custom i3status.conf
status_command i3status -c ~/.i3/i3status.conf
}
Edit the i3status config file if you want to tweak it. Don't forget to copy it to your home directory. Check out my i3status config. Official wiki is here.
cp /etc/i3status.conf ~/.i3/i3status.conf
Some applications have to launched at startup, like setting wallpaper, network manager applet etc.. This can be done from config file. Official wiki here.
# Startup programs
exec --no-startup-id nm-applet
exec --no-startup-id feh --bg-fill ~/Pictures/Dark-pattern.jpg
Next, we have to set up our screenlock, for which I use i3lock. I have a small shell script which does some magic. After that, some keybindings have to be done. Official wiki here.
# Custom KeyBinds
bindsym Control+mod1+l exec sh ~/.i3/i3lock.sh
bindsym Print exec scrot '%Y-%m-%d-%T_$wx$h_scrot.png' -e 'mv $f ~/Pictures/screenshots/'
Now, we have a screen looking something like this (Don't forget to get some cool wallpaper):
So, now let us transform our ugly looking setup :P, fonts first. Use a good font and change the setting in ~/.i3/config.
font pango: Monospace 8
Next up are out ugliest component. GTK Apps :P. Instead of editing configuration files and saving them, I highly recommend lxappearance, which has absolutely no dependencies! Use it set your GTK, Icon & Cursor theme. GTK themes are picked from ~/.themes & remaining from ~/.icons. My generated ~/.config/gtk-3.0/settings.ini looked like this
[Settings]
gtk-theme-name=Zukitwo
gtk-icon-theme-name=Faenza-Dark
gtk-font-name=Ubuntu 10
gtk-cursor-theme-name=Ecliz
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
Use some cool theme and even now, if the buttons are ugly make sure that you have the required gtk-engine installed. For instance, I use Zukwito, so I need gtk-engine-murrine. Now, your gtk apps must be cool as in any other DE.
A list of applications that I use
Type | : Application
---------------------|------------
**Window Manager** | : i3
**Editor** | : GVim
**Terminal** | : Terminator
**IRC Client** | : Weechat
**GTK Theme** | : Zukwito
**Icon Theme** | : Faenza
**Cursor Theme** | : Ecliz
**Music Player** | : Cmus
**Video Player** | : Mplayer
My .vimrc along with molokai colorscheme is present here.
WeeChat configuration:
Install and enable autoload of some plugins ( beep.pl , buffers.pl etc..).
Make sure, your terminal emulator responds to urgent bell. In terminator, set Terminal bell to Window List Flash. To simulate bell
echo -ne '\e'
# Sleep & change workspace to see the effect
sleep 5; echo -ne '\e'
PS: Don't forget to push your dotfiles to github so that anyone else can use those.