A usable Linux desktop

  • Arch Linux
  • ZFS via ZFS on Linux (binary repositories are available for Arch)
  • zsh — an advanced shell.
  • X.org — no desktop manager necessary, use startx and create an .xinitrc. For example:
    setxkbmap your keyboard layout
    xscreensaver -no-splash &
    exec awesome >> ~/.cache/awesome/stdout 2>> ~/.cache/awesome/stderr
  • When running in a virtual machine you may want to override the detected video modes. This can be accomplished by prepending something such as the following to your .xinitrc, where X, Y and R are the horizontal and vertical resolutions and the refresh rate respectively and modeline is the output of cvt X Y exclusive of the initial Modeline "XxY_R" part:
    xrandr --newmode XxY modeline
    xrandr --addmode Virtual1 XxY
    xrandr --output Virtual1 --mode XxY
  • Awesome Window Manager — a tiling window manager that minimises the time you spend rearranging windows.
  • Microsoft TTF Fonts (Times New Roman, Arial, Courier New, Trebuchet MS, Verdana, etc.)
  • Infinality.net freetype & fontconfig Patches — these are necessary to prevent Linux font rendering from sucking. With fontconfig correctly tuned, font rendering is “acceptably close” to Windows 7 Cleartype.

    Use the “Windows 7” fontconfig preset that comes with the Infinality.net patches. Alternately, the following settings constitute sensible defaults for TrueType hinted fonts at normal font sizes rendered on an LCD: rgba=rgb, hinting=true, autohint=false, antialias=true, hintstyle=hintfull, lcdfilter=lcddefault, force_autohint=false, dpi=72

  • lxterminal — The menu bar can be disabled.
  • Firefox — Vimperator, NoScript, HTTPS Everywhere, Status4Evar, Cookie Monster. Firefox is set to accept cookies for the current session only. Disable the navigation bar. Extension icons can be placed on the tab bar or alternately on the addon bar. Some addons can be configured to place their items in the context menu, which eliminates the need to place their icon anywhere. Make sure you configure shortcut prefixes for your preferred search engines.
  • screen — For multiplexing consoles and deattaching. Can also be useful for its multiuser mode. Make screen behave in a sane fashion using the following .screenrc:
    defutf8 on
    term "screen-256color"
    encoding UTF-8
    startup_message off
  • vim — basic suggestions for your .vimrc:
    set nocp nobk expandtab ts=2 sw=2 ai foldmethod=syntax foldcolumn=1 foldlevel=8 ff=unix ffs=unix,dos,mac
    set number mouse=a modeline ruler backspace=2 columns=85 encoding=utf-8 fileencoding=utf-8 fileencodings=ucs-bom,utf-8
    set nobomb acd spell textwidth=79
    map <F9> :make
    map <F1> :Explore <CR>
    if has("autocmd")
      filetype plugin indent on
    endif
    syntax on
    
  • git — use it to keep track of and synchronize all your various dotfiles.
  • irssi — works excellently with either screen or ZNC (or both). Configure to display several channels in one window. Excellent for keeping track of multiple low-traffic channels without having to keep switching tabs.
  • ZNC — IRC bouncer.

To be elaborated upon.

font customizations applied using Stylish Firefox extension