Configuring i3 for my setup

12 May 2014 Categories: Linux Tags: tricks info

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/
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):

Clean Screen


  • 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
gtk-font-name=Ubuntu 10
  • 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.


Dirty Screen

Other Apps

  • 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 ( , 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'

IRC Screen

PS: Don’t forget to push your dotfiles to github so that anyone else can use those.

comments powered by Disqus