Work Desktop Setup

December 1st, 2016
tech
I spend most of my day standing in front of my work desktop, doing some combination of programming, code review, documentation, and email. Over the years I've figured out a relatively productive setup:

  • browser on one monitor
  • tile the rest of the space with tall terminals
  • put some extra terminals for starting jobs etc off on the side

This looks like:

(This is divided over two monitors, with the browser and the first vertical terminal on the left-hand monitor.)

I spent an embarrassingly long time having to hand-configure this each time I had to restart my computer, and avoiding restarting as much as possible to keep from having to do this, so I eventually learned how to use -geometry arguments to set this up:

# Make the background black.  Not that
# the background should ever be visible
# or anything.
fbsetroot -solid black

# Start and place terminals.  81 columns
# because code here is limited to 80
# columns and emacs reserves a column for
# the wrapping indicator.
uxterm -geometry 81x90+1428+0 &
uxterm -geometry 81x90+1920+0 &
uxterm -geometry 81x90+2412+0 &
uxterm -geometry 81x90+2904+0 &
uxterm -geometry 73x22+3396+0 &
uxterm -geometry 73x22+3396+310 &
uxterm -geometry 73x22+3396+620 &
uxterm -geometry 73x19+3396+930 &

google-chrome &

# Start the window manager last, and
# don't run it in the background.
fluxbox

Update 2018-02-08: I just got new monitors, both 2560x1440, so I now have 5120x1440 of space to work with. I'm not sure exactly how I want to set it up, but for now I have:

uxterm -geometry 81x109+2560+0 &
uxterm -geometry 81x109+3052+0 &
uxterm -geometry 81x109+3544+0 &
uxterm -geometry 81x109+4036+0 &
uxterm -geometry 79x8+4528+0 &
xclock -geometry 108x108+5010+0 &
uxterm -geometry 97x25+4528+128 &
uxterm -geometry 97x25+4528+476 &
uxterm -geometry 97x25+4528+824 &
uxterm -geometry 97x19+4528+1172 &

I also used to manually adjust the settings on xterms each time I started them up, but then I learned how to use xrdb. I put xrdb -l ~/.Xdefaults in my .xsession, which contains:

xterm*metaSendsEscape: true
xterm*reverseVideo: on
xterm*visualBell: False

I also have pretty strong preferences about how fonts should look. Specifically, unless I'm in a hidpi environment, I don't want the modern thing where you use a vector-graphics based (true type) font and then through some combination of hinting and antialiasing you fit it to the screen. Instead I want precisely pixel-aligned bitmap fonts, which happens to be exactly what xterm uses by default.

What am I talking about? Here's a zoomed-in view comparing xterm with its default font to gnome-terminal with its default one:

The gnome-terminal rendering isn't terrible, especially when you're at a normal zoom level, but it's much less crisp than the xterm rendering.

(This is one of the things that makes ssh-from-a-browsers annoying: I don't believe there's any way to get text to render device-pixel-perfect, so until hidpi displays are everywhere you can't get away from the blurry fonts there. This is much less of an issue for ordinary web text than terminal text, because I run my terminals at a much smaller font size to get as much as possible on the screen at once.)

Referenced in: Terminal Preferences

Comment via: google plus, facebook, substack

Recent posts on blogs I like:

On Apologizing To Kids

Everyone is so weird about apologizing to children.

via Thing of Things August 25, 2025

Against the Teapot Hold in Contra Dancing

The teapot hold is the most dangerous common contra dancing figure, so I’ve been avoiding it. The teapot hold, sometimes called a "courtesy turn hold,” requires one dancer to connect with their hand behind their back. When I realized I could avoid put…

via Emma Azelborn August 25, 2025

Little Puppy

She's very little and she likes to do stuff with me. She also likes to bark around and run around and jump around. She also likes to go to places with me and that's all I have.

via Nora Wise's Blog Posts August 23, 2025

more     (via openring)