Developing on Linux

desktop

dotfiles

i3 - Tiling Window Manager

A tiling window manager is a type of window manager that arranges your windows as tiles, usually in such a way that makes managing them more efficient via keyboard shortcuts. i3 is my window manager of choice, after having used xmonad for a long time, i3 provides more flexibility and ease of configuration.

Here is a great sceencast which will help you understand the power of tiling window managers. i3 does a great job of managing multiple workspaces, even across multiple monitors. While developing I actively use 7 distinct workspaces across two monitors (soon probably three) and having an efficient way of transitioning (alt-#) is critical to maintaining my workflow speed.

Here is a bit of config that I added to i3 (see dotfiles for the full version)

# Zolmeister
# disabled status bar (see above)
# screen lock with ctrl + sup + l
bindsym Control+mod4+l exec i3lock -c 000000 -i ~/Pictures/Z/Z-bg.png
# set border to 1
new_window 1pixel
# hide border if 1 window
hide_edge_borders both
# Resize Containers, Vim-style                            ($mod+Control+[hjkl])
bindsym $mod+Control+j resize grow height 5 px or 5 ppt
bindsym $mod+Control+k resize shrink height 5 px or 5 ppt
bindsym $mod+Control+l resize grow width 5 px or 5 ppt
bindsym $mod+Control+h resize shrink width 5 px or 5 ppt

# custom colors
# class                 border  backgr. text    indicator
client.focused                #1793D0    #1793D0    #FFFFFF
client.focused_inactive    #333333    #333333    #999999
client.unfocused            #333333    #333333    #999999
client.urgent                #FF0000    #8C5665    #FF0000

# background image
exec --no-startup-id nitrogen --restore

# fix media keys and gtk theme issues
exec gnome-settings-daemon &

# fix deb file installation
exec /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &

ZSH + Powerline Shell

Most shells today run [Bash](http://en.wikipedia.org/wiki/Bash(Unixshell) however ZSH is an alternative which has great autocompletion and other nifty feature For my .zshrc file, check my dotfiles.

In addition, the ZSH framework oh-my-zsh provides some amazing features and shortcuts, definitely work checking out.

Powerline shell is a beautiful shell extension which takes care of drawing your prompt. I have customized it based on my ZSH theme to include additional git hints (like ±).

shell

Atom.io

Atom.io is without a doubt the best editor I have ever used. I have used Aptana (good, but bloated), Sublime Text (excellent, but not open source), and Brackets (ok, missing quite a few features) extensively. None of them compare to Atom (I refuse to use an editor that is not open-source, as my editor is a core part of my development workflow and I must have full control over it).

Some day I may switch to VIM/Emacs, but have been quite happy with my working speed in Atom.

Hardware

After joining Clay.io I have finally gotten around to building another desktop. The only spec requirements I had were a Linux friendly GPU (Nvidia), 32GB of RAM, and 4k monitor support.

Here is the build (newegg wishlist, missing PSU + case):