Do It In The Terminal

Terminal Options

Working in a terminal can be easily done in your full blown Desktop Environment or Window Manager by just starting up one or more terminal sessions. Here are some suggestions:

  • In GNU/Linux or *BSD start your default terminal in Gnome, KDE-Plasma, XFCE, etc., and you’re off and going.
  • In Windows 10 go to the Microsoft Store and search for one of the Linux-based subsystems available there (Ubuntu, Debian, Kali, SuSE, or OpenSUSE), install, and then run it. In Ubuntu, Debian, and Kali you can install any of the terminal apps using “sudo apt-get install appname“. In SuSE or OpenSUSE use “sudo zipper install appname“.
  • Start multiple terminals and drag them into a grid or lined up along one edge of your screen.
  • Install an alternative terminal program such as Terminator or Tilix which allows you to run a terminal that can be easily split vertically or horizontally with a couple of mouse clicks (these will not work in Windows).
  • Install tmux and run it inside your default terminal to easily split the screen into sectors (use Ctl+b then % to split vertically and use Ctl+b then ” to split horizontally). Note that with tmux your session will usually continue running in the background even if you accidentally close it, allowing you to recover the session and continue what you were working on. This is very handy when working on remote systems and protects you from losing your work when the connection fails. You can also start a session on one computer, move to another computer and reconnect to the session you were previously working on. Note that tmux will run in any of the Windows-based GNU/Linux subsystems but you will lose any background jobs if the main window is closed.

Another option is to use a “tiling” Window Manager as an alternative to Gnome or KDE-Plasma. A tiling WM will open programs side by side, automatically tiled so that no desktop space is wasted and your windows are not overlapping. These can help you work more efficiently when most of your work is done in terminals. Popular tiling Window Managers are i3 (or i3wm), Awesome, xmonad, and Ratpoison. For example, open a new terminal in i3 is as easy as pressing Super + Enter (keybindings are easily changed in the i3 config file).

Terminal Applications

Most of the applications mentioned below can be installed from your OS’s package manager. Of course you can also download the source code from the projects’ repositories or websites and compile from scratch.

Since all of these applications work within a terminal session they can also be used across a network, or even across the Internet, through an ssh session.

Navigation / File Management:

  • Midnight Commander – Usually called “mc” in most repos. Run the program by typing mc at the command line and pressing the enter key. MC is one of the oldest and simplest to use file managers for the command line. The colors can make it a little difficult to read on some screens or with some color schemes. Start the program with “mc -b” to run without color.
  • Ranger – a VIM-inspired file manager that use VI keybindings. For vi/vim users this file manager can really fly but you don’t have to know any of VIM the shortcuts to use it. Type “ranger” and press enter to start it up and roll through your files and folders with ease. Ranger will “preview” text files and PDFs in the right column. Press enter on a file and Ranger will load it up in VIM. You can change the default editor in Ranger’s config file to anything you want (such as nano or emacs). Ranger allows use of custom keybindings so you can create shortcuts such as “mp” to move selected files to your Pictures directory or “ug” to upload selected files to your Github account. Things can get really streamlined using Ranger
    • You can also add image and video previews in Ranger. As your scrolling through your file listings image previews are generated on the fly and displayed in the right column. To add the preview ability you’ll need to also install w3m-img and add “set preview_images true” to your config file to enable this. Enabling video previews is almost as easy, but check the wiki for exact details.

Tasks / To Do

  • todo.sh – this command line based todo manager will let you create tasks, prioritize them, assign them to projects, assign tags, and stores all the data in text files so you can read them with any text editor. Store them in Dropbox or NextCloud and access them from any computer with access. They also have smartphone apps so you can sync and manage your todo list on the go.
  • taskwarrior – similar to todo.sh but with even more features and will keep a timer running on tasks that you’ve started. Add tasks by typing “task add” followed by the task description. Type “man task” for an easy to follow man page on how to get the most of out this.
  • timewarrior – similar to taskwarrior but all about time management.
  • calcurse – handy full screen (terminal size) calendar program that has features for keeping appointments and a task list.

Web Browsers

  • w3m – the one with the most features, w3m will display inline images (if w3m-img is installed) and seems to render today’s websites very well (support tables, frames, color, and SSL connections)
  • lynx – the oldest text-based web browser still in acitve development.
  • There are others but most have problems with HTML 4 support, limited functionality, or are no longer maintained.

Email

  • mutt and neomutt – One of the most featureful text based email clients. Neomutt is a separate project with extra features but all current Mutt code is constantly integrated into Neomutt’s code. Most new features developed in Neomutt are eventually sent upstream to Mutt.
  • Alpine – a rewrite of the original Pine Message System. It is a project at the University of Washington and is still in active use.

Chat and Social Networking:

  • irssi (IRC chat client) – around since 1999, this has always been the goto IRC client for users working in the terminal. Configuration is beyond the scope of this document. Please see their documentation to get started.
  • rainbowstream (Twitter client) – this is a Python app and can by installed using “sudo pip install rainbowstream” as long as you have Python installed on your OS.
  • There isn’t much out there for Facebook, Google+ due to limited or restricted APIs. If you find something let us know!

Leave a Reply