Your Linux Data Center Experts

Seems like every time you turn around there's a story about whether “Linux is ready for the desktop”. As someone who has been using a Linux desktop for over a decade, I just ignore them and keep typing. As an aside, I would like to say that we recently had an administrative assistant join the company and she was able to transition from Windows to Linux quickly and with no problems at all.

Anyway, tonight at the NCLUG meeting, I'm going to be one of a few people who are demonstrating our “desktop habits” – how we get things done. Read on for a list of the things I do to help me get work done.

  • Virtual desktops: I have 8 of them and active use 7 (with one in reserve :-). You'd think I'd have 11, but for once I've been able to avoid the Spinal Tap reference.
  • I have 3 desktops I reserve for special use. Desktop 1 has my task tracker on it and used to have my e-mail client. This is where I go for doing any of my task management related items. Desktop 3 has a full-screen firefox on it, and this is where I do almost all of my browsing (except if I bring up a small transient browser for a specific URL someone has pasted me). Desktop 7 has a full screen Thunderbird – I have switched from using mutt in a terminal on Desktop 1 to using Thunderbird. I may at some point move this to Desktop 1 when I get rid of my legacy mutt session.
  • I have a “konversation” IRC window pinned to all desktops in the lower left. We use IRC for company communications, so I like to have this all over the place. Though I've considered putting this only on Desktop 1.
  • All other desktops have 3 terminal windows. I do a lot of my work in the shell, or on remote systems. So, I use a lot of terminal sessions.
  • Grouping tasks by desktop. I often have multiple terminal sessions involved in work, either checking documentation, or multiple systems, or whatnot. So, I try to keep these on a single desktop for convenience.
  • No tabbed terminals. I don't use them. I use xterm. If I need multiple terminals, I use different windows, so I can see them all at once. So I just need to glance at another terminal rather than switching contexts and then switching back. Switching between desktops, tabs, or the like I find to be very invasive and costs me a lot of attention.
  • Every desktop with terminals has a common color scheme. I know that if I was working on our backup servers in orange, that it's Desktop 2. If I'm working on a clients mail servers in green, it's Desktop 4… This helps me remember where I was and where I need to go.
  • If I'm in the middle of a task, I try to keep the context on the Desktop. Either the next command I need to run ready at the prompt, or output from the last command. If a terminal has something on it, it's not available for re-use until I analyze what's there. So, I disable the “multiple frames” ability of the terminals, where when I edit a file or the like it switches to another buffer, and then switches back to the previous context. When I exit editing a file, I want the file contents to remain on screen.
  • I use “clear” when I'm done with a terminal. Once a task is complete, I will run “clear” on it. A clear terminal is one I can use for something else, if it has something on it it means I'm in progress in some task. I can quickly glance around to find out if I have something that's unfinished. This is why “clear” is by far my most used command (50% more used than the second place “ssh” and close third and forth “cd” and “ls”.
  • Similar to the above, I use Control-Enter in vi all the time. This moves the current line to be the top of the screen. For things where I'm reading downward, like text, I use this to make it obvious where I'm at and keep me reading forward. For code, where I'm looking at context, I'll often keep context above, but for text review I like to keep it at the top of the screen.
  • Very little window overlap. I hate hunting for windows that are buried under other windows. I have 7 virtual desktops and spread things over them, rather than making them deep.
  • Keyboard shortcuts for maximize window. I have Control-Alt with H, W, and M mapped to toggle max-height, max-width, and complete maximize. So if I'm looking at long lines, like a mail log, I will Control-Alt-W to get a wide window to have less wrap. Or if I need more context while looking at code, I'll do Control-Alt-H to get a really tall window.
  • Keyboard shortcuts for raise/lower window. Alt-L and Alt-H I have mapped to raise and lower the current window. Particularly useful if I have a maximized window and need to see something else, because I have so little overlap. It's nice to have these very handy.
  • When doing things on multiple machines, I tend to put the “source” or “primary” machine left and the “destination” or “secondary” right. This way I always know that I'm going from left to right, or left is more important. If I do a “reboot” on the left, I really think about it hard, for example.
  • Think hard about “Enter”. If I'm doing a dangerous command, or running on a particularly important machine, I will deliberately stop and re-read the command before hitting enter. I kind of have this physical thing where I take my right hand away from the keyboard, raised a bit above it ready to strike Enter, but requiring a very deliberate move to do so. I then think about it and then hit Enter when I'm happy.

There you have it. Those are some of my habits for getting things done. What are yours?

And to update the “What are your most recent commands” meme:

  • clear (756)
  • ssh (545)
  • cd (463)
  • ls (404)
  • vi (195)
  • sudo (110)
  • svn (91)
  • jwhois (63)
  • mutt (57)
  • rm (53)
  • scp (45)
  • host (43)
  • find (42)
  • pwd (34)
  • dpkg (33)
  • du (31)

The command I used for generating this (before reformatting and removing a few “custom scripts” is: awk '{ print $1 }' ~/.zsh_history | sort | uniq -c | sort -n | tail -20 | tac

comments powered by Disqus

Join our other satisfied clients. Contact us today.