The way I work

The way I work


my desktop

debian The most important part of my setup is my Thinkpad X1 Carbon laptop with i7 CPU and 8 GB RAM running Debian testing.

To it, I've connected two external screens using the display port and HDMI ports on the laptop. No splitter or multiplexer was necessary. The three screens are all a part of the same desktop using xinemera and xrandr. I've written wee script which will add all available external screens to the virtual xinerama destkop. This makes my setup consistent regardless of having 0, 1 or 2 external screens (or 3 for that matter). The 'tkj setup-screens' command can be found here on github.

fluxbox

After the laptop itself, my favourite piece of equipment is my Happy Hacking Professional 2 keyboard.

Fluxbox gives me a lightning fast and is extremely configurable window manager while yet being pretty to look at and supports both GNOME and KDE dock apps. I've used it for quite a while now (since 2002) and have a quite stable .fluxbox configuration.

emacs2 web2 talk2
emacs web talk

The number of worskpaces have changed greatly over the years. It's been stable now since 2011, which hopefully means I've finally arrived at the "right" number of workspaces ;-) I'm using a 3x2 desktop grid where the lower 3 desktop row is the main row whereas the row above is offloading space for the applications on the main row. With three physical screens, that's in practice 18 virtual screens, which suits me just fine.

I primarily use the mouse for image editing and web browsing. Thus, I have a number of shortcuts configured in Fluxbox, including: maximise/minimise window, turn on/off window decorations (to get more screen real estate), navigate between workspaces, move & resise windows, switch between keyboard layouts (American is the best for programming, but i also need Norwegian and German for writing emails) and launch the most important applications (which normally just means urxvt and I then start applications from there) and jump to any open application on any workspace (search type search).

talk 💬

The talk workspace has the different chat clients which I haven't integrated into my Emacs workflow (yet), like Skype and Line.

web

firefox The web workspace has my main browser windows and web2 has whatever "other" browsers I need to run. Currently, my main browser is Firefox and my "other" browsers are Google Chrome, Chromium, Opera & Vivaldi. Of notable plugins for Firefox, I use Firebug, User Agent overrider and JSONView.

emacs

emacs Lastly, the emacs workspace is where I by far spend most of my time. I use Emacs for most things these days, including email (mu4e), chat on Jabber/GTalk, MSN, Lync/Microsoft Communicator and occationally Skype (bitlbee IRC gateway & erc), note taking (org-mode), Java (eclim & emacs-eclim), Python (anaconda-mode), presentation slides (markdown-mode, reveal.js & pandoc) JavaScript, BASH programming, HTML & CSS. My complete Emacs configuration is available here on github.

emacs2 is for other editors or shells that support Emacs, like running headless Eclipse through the eclim plugin. This is also where I start up IDEA whenever I need to run their debugger or do some large refactorings in my Java code.

Text is eyecandy too

On my right most screen, I have conky running on the root window, printing useful information of system resources like CPU, RAM, disk and network, as well as the top running processes, the time (I auto hid the window manager toolbar where the clock normally would show), the currently running music and so on. In many ways, conky displays the information that you'd typically have in small dock apps in the notification area of your desktop toolbar. You can find my conky configuration here

Shell matters 💻

terminal When I'm not in Emacs or surfing the web with my web browser, I'm in the shell. My terminal of choice is urxvt which is lightweight and at the same time has good Unicode support (up to 3 byte UTF-8 only, not 4 byte characters), is extendable with Perl and supports all features you might be using in xterm or aterm.

clipit To sync the clipboard with urxvt, I have the following perl snippet for calling xsel. Together with these settings in .Xresources, I get clickable links in the shell and get two way clipboard syncing between the other X applications and urxvt. Thanks to ClipIt clipboard manager I've never had any clipboard problems in any applictation no matter graphical toolkit: Gtk+, Qt, Swing & AWT applications all work without a hitch.

Music ♪ ♫ ♬

mpd At work I just have an "endless" playlist of all my music with keyboard shortcuts to pause/resume and skip. Currently, I'm using mpd which does a fine job of keeping track of my music. It's fast and runs in the background of everything.

At home, pretty is an important feature and I therefore tend to prefer Amarok, even though their old 1.4 version was better than the new branch of the music player, I think it's the best and most mature graphical player for the Linux destkop.


gmail torstein.k.johansen @ gmail ~ twitter @torsteinkrause