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.)

Comment via: google plus, facebook

Recent posts on blogs I like:

Development RCTs Are Good Actually

In defense of trying things out

via Thing of Things March 25, 2024

Clarendon Postmortem

I posted a postmortem of a community I worked to help build, Clarendon, in Cambridge MA, over at Supernuclear.

via Home March 19, 2024

How web bloat impacts users with slow devices

In 2017, we looked at how web bloat affects users with slow connections. Even in the U.S., many users didn't have broadband speeds, making much of the web difficult to use. It's still the case that many users don't have broadband speeds, both …

via Posts on March 16, 2024

more     (via openring)