More Command Line Less GUI

Wed 26 December 2012

The intention of this post is to accqauint readers with applications available so if anyone out there with similar difficulties could benefit transition from GUI to command line apps that can be nested inside GNU Screen.

It's been awhile (pre-OPW) since I had done some serious business using my machine. Long after years of distro hopping, now my netbook barely can toggle between browser and gedit without showing some lag. Another reason why am hot on the pursuit of replacing most of my GUI apps into command line mode is that my muscle memory is wired to just CTRL + a all the time switch between apps. It almost intuitive to navigate through keyboard (press Meta + h to cycle through my windows in bluetile). To top it I am constantly shuttling between 2 cities (home and college) so I don't necessarily have the same resources of display everywhere. At home, my folks have a 17" monitor, at my own place I have a 24" monitor and when I don't have access to either of them, I have to use my 10" netbook monitor. Hence screen space must be utilized to the maximum without having to switch too much between open applications yet having access to all programs and having two main programs (yelp and an editor) in simultaneous view.

The big question: HOW?

These are the components of my GNU Screen:

  1. Cmus (for music)
  2. Ranger (for browsing directories and opening files)
  3. rTorrent (for torrents)
  4. Finch (for chat)
  5. Mutt (for email)
  6. Vim (for editing)

I did not have specific requirements for any of the command line apps listed meaning I had no features that I used/had seen in a GUI app that I wanted in the command line app for my transition. Except of course, vim and mutt.

Vim needed to able to do the following:

  1. Show me a 80 column width restriction for .xml and .page files
    Solution: In command mode (press ESC and then Shift + :), "set tw=79

  2. Show me non-printable characters such as spaces, tabs and carriage returns in light colors (still distinguishable from the background).
    Solution: In command mode, set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

  3. Open and edit multiple files and toggle through them.
    Solution: In command mode, type b

  4. Save opened files as sessions
    Solution: TODO!

  5. Color syntax highlighting for markup languages - xml, html and mallard.
    Solution: In command mode, set ft=xml

Vim has gracefully been able to do all of these! The learning curve was pretty steep for Vim but it's a worthwhile investment. The e-mail client is still a step-daughter. The keybindings have a steeper learning curve and am yet to head-first dive-in to learn them with the gusto required. For now, am only able to check and reply to email using mutt, for operations such as searching and archiving I still depend on Gmail, though I use HTML mode as to not to burden the browser with heavy javascript.

An honorable mention goes to xxxterm and luakit. Lightweight browsers make my machine still usable (till I buy new hardware). I use xxxterm though, better behaviour when compared to luakit. My mom who is a heavy mouse user is able to use xxxterm like any other browser she'd normally use.

Category: Linux