TGRO's Favoured Applications
What does The Great Radar Oven use to get stuff done?

Table of Contents

Site Map

Command Line

I use the command line to do almost everything that I do on a computer. This obviously excludes graphical work like image editing, and I prefer to consume visual media in applications designed for such tasks, but for the most part, the command line is all I have. I won't have the reasons for that on here, but I feel that most people would question how I get things done.

Text Editing/Word Processing

Emacs

This is, in my opinion, the best way to write anything: powerful, extensible, fast, modular, and has it's own section.

mg (Micro GnuEmacs)

What would result from a cross-breed of GNU Nano and Emacs? Enter mg, a tiny Emacs clone. It doesn't have most of the special features of Emacs, but if you just want a small, basic editor with Emacs keys then mg is your editor. mg to Emacs is basically what Vi now is to Vim (I think, I don't use Vi or Vim).

QEmacs (Quick Emacs)

After installing QEmacs, it became my new favourite tiny Emacs Clone. Despite being even smaller than mg, it still manages to pack in a dired-like mode, syntax highlighting and more. Really quite impressive indeed.

WordGrinder

When I started using the terminal a lot, but before learning about Org-mode, used WordGrinder. This is not a text editor, it is a word processor, but for the terminal. It's philosophy is that it gets out of your way and just lets you write, without needing to worry or procrastinate over silly formatting features. Indeed, it is not for everyone, but it lets you export to some of the more useful formats, and does the trick for most things.

Web Browsing

W3M

My browser of choice. The best features are that it has Emacs (as well as Vi) keybindings, many Emacs-esque features (I-search, etc), and it supports images. Even in the command-line! W3M (standing for World Wide Web wo Miru {Japanese: "See the world wide web"}) displays images using the package 'w3m-img', which I believe makes clever use of the frame-buffer, an oft-forgotten Linux feature that allows graphics without a GUI.

I also use this as a pager, as I find the way Less works annoying (though miles better than 'more').

Lynx

The father of all text-mode browsers. This is the oldest browser still under active development. It works a little differently to W3M, and is a tad bigger, but as this seems to be the browser that the sites who still support text-browsing test their compatibility on. Therefore it tends to be the case that if it doesn't work with W3M, then it will work on Lynx (though such problems are far and few between now).

Elinks

A browser similar to Lynx and Links (confusing) that claims to hold better support for tables and frames, as well as supporting colours, tabbed browsing, and menu driven configuration. Basically, it is Lynx with a couple of modernising touches. I do like Elinks, but I don't think that I use it enough to justify changing all the keybindings.

Games

While I don't play a lot of games, there certainly are a few that I admit spending more than a reasonable amount of time on.

Dungeon Crawl - Stone Soup (Crawl)

Crawl is an advanced text-mode rogue-like with a great interface that offers some of the most addicting gameplay of any text-based game. I have lost many an enjoyable hour playing this and only occasionally regret it. If playing this game, then I would recommend getting the latest version. Debian-based Linux distros tend especially to have an older version that, while still fun, doesn't offer the same amount of adventure or options.

ViTetris

Nothing to do with the editor apparently. ViTetris is a great little Tetris clone that should be an exercise in how to design a textual interface. I admit you have to be enthusiastic about Tetris to 'get' this one, though it is what really got me into Tetris. My high-score is 222764, which I don't believe is amazing, but I am nevertheless very proud of myself.

Hunt

From the bsd-games package available from every package manager that I am aware of, hunt is a simple 3rd-person top-down maze shooter. What makes it interesting is that it is multiplayer over LAN but requires no setup. When hunt first starts, it scans the network for an instance of hunt, and starts its own instance if it cannot find one. While the gameplay is simplistic, it is engrossing with a few friends and, unlike many modern, graphical games, your computer is almost definitely able to run this. I rarely see this game mentioned anywhere, which is a crying shame. I feel it to be a forgotten gem of a game; well worth trying out.

Frame-Buffer

The frame-buffer allows the console to draw graphics in Linux. Technically, it isn't text-based or TUI, but I am willing to give it a pass as it is console-based.

FBV

The Frame-Buffer Viewer is a standalone image viewer for the frame-buffer. It supports most image formats that I know of. This has come in more handy than I could ever express here.

FBPDF (inc FBDJVU)

This package allows the viewing of literary formats on the frame-buffer that often contain graphical elements, such as PDF, EPub, and DJVU files.

FBTerm

A terminal for the frame-buffer. FBTerm allows the console to use a wider range of fonts, and have a background image. This can improve readability and the general experience of using the command-line (though technically, you are using a terminal emulator).

FISH-Shell - Shell

The Friendly, Interactive Shell is an alternative shell to the de-facto standard, BASH (Borne-Again Shell). It adds colour, completions and abbreviations (not the same as aliases), as well as a better scripting language. This makes general shell tasks much faster. The console may attain similar functionality by using another popular shell, Zsh. I prefer Fish as it requires no setup (and has a much better name).

Pandoc - File Converter

An almost-universal file converter, Pandoc has become an invaluable tool for making readable documents from unreasonable amount of metadata. As Pandoc can convert between such a large amount of formats, I would recommend using this as a good alternative to Org-mode if you are not an Emacs user (and even if you are an Emacs user).

Wifish - WiFi Setup

Connecting to WiFi in the console can be slow and feels clunky; luckily there are programs to manage this process. One of the simpler tools is Wifish, a collection of scripts that make connecting easy. An interactive menu is available if you have the dialog utility installed. If you try and use the menu without this then you get my favourite error message of all time: "* Dude, you can't have a menu without the 'dialog' utility (yet) …".

Alpine - E-mail

Most command line e-mail clients take a lot of setup which, though something that I am familiar with, can still be finicky and annoying; particularly when your providers are G-Mail (from when I was young and naive), MS Outlook (for school, against my will), and Proton Mail (for me). Proton Mail does not offer free IMAP or POP3 access in the interests of security, and Outlook and G-Mail are annoyingly silent on some of the finer details. Alpine solves all of that, while still giving me all the functionality that I need to break it (if I want). I set up my G-Mail account in Alpine in less than 5 minutes (using this guide) and I have not looked back since.

Someone might hold the opinion that I should use an Emacs interfacing mail client. I will detail this more in future, but one UNIX philosophy is: "A program does one thing and do it well". Emacs dodges this by being more of a platform over a pure editor. Nevertheless, I prefer my Emacs setup to edit text and do so well. Alpine satisfies me with an option set to call Emacs for the e-mail writing; I have 5 TTYs set up, and rarely even log in to them all. I make exceptions for browsers as it is far easier to copy text into Emacs from Emacs.

Emacs

I use Emacs for a lot. There is a popular joke that it is really an OS with an OK text editor. For that reason I have included it here as it's own section later on in this page.

Emacs is great because it:

  • Runs in the command line.
  • Has its own package manager.
  • Is self-documenting.
    • Therefore has great documentation.
  • Is fast to use and run.
  • Is easy to extend and adjust by the user.
  • Elisp is relatively easy to learn and use.
  • Has a great community.

    Emacs changes it's functionality using different modes. These modes are very different from the type of modes used in Vim-like editors.

  • Major modes change a large amount of functionality such as keybindings, colour, and context-sensitive behaviour for a specific range of tasks, an easy example being programming language modes. There may only be one major mode active at one time.
  • Minor modes change a small aspect according to the user preference that is useful in many major modes. They allow users to turn features on and off. For example, FlySpell automatically spellchecks words as the user types and colours them accordingly. This would be useful in any mode that writes text for human consumption, but would be annoying when programming. There may be any number of minor modes enabled at one time.

EWW (With Org-Preview-HTML-Mode)

This is Emacs' native web browser. It has no support for JS, CSS but I quite like how EWW displays lists and that it is probably the fastest browser out. I use it in conjunction with org-preview-html-mode to give me a quick look at how the document is coming along (though I do this by mapping org-preview-html/html to C-c-p).

Org-Mode

This is the mode that gives Emacs all the functionality of a word processor (and more!). Technically, Org-mode started life as a clone of outline-mode with some minor visual tweaks and better default keybindings. Nowadays it can handle everything from organising your life with to-do lists (org-agenda) to generating websites with styling, images, code and mathematics. This is all performed using a minimalist markup syntax.

I make this site using Org-mode, proceed the obligatory images of this page in Emacs:

applications_computer_screen.png

Figure 1: I would recommend scrotty for screenshots in the console.

applications_computer_whole.jpg

Figure 2: Why yes, I do edit this site in the dark.

If you aren't an Emacs user but you want to reap the benefits of life in plain text then I would recommend using Markdown (more specifically, Pandoc markdown or R markdown), AsciiDoc, or ReStructured Text (ReST).

Erlang-Mode

As some may know, I use Erlang when I need to do a bit of programming. In my opinion, the Emacs major mode for Erlang provides the best IDE-like experience. It interfaces well to Erl, the Erlang VM, and the syntax highlighting is to your liking (though it is easy to change if not to yours). I keep the default keyboard shortcuts for compiling and running (C-c-p).

Erlang-mode's ability to automatically type out parts of Erlang's structure electrically makes it a joy to work with.

(N.B. 'electricity' in this case refers to a context-sensitive adjustment of the text. Look out for Electric-Pair minor mode later on)

Roguel-ike

Described as a coffee-break rogue-like, Roguel-ike is a simple game that I use to de-stress when trying to debug the occasional cryptic Elisp error message.

Minor Modes

Some highly recommended minor modes to make Emacs life that little bit easier.

  • Save-Place-Mode Returns the cursor to the same place in the file you left it. This is especially useful for larger files. For some reason, I could never get this to enable in the menu when I started using Emacs; instead, I recommend putting (save-place-mode 1) into your init file.
  • Electric-Pair-Mode Automatically places a right parenthesis after a left parenthesis. This is helpful when editing Lisp files, and for preventing the infuriating un-closed brackets and speech marks that I seem to see more and more.
  • Show-Paren-Mode Highlights the complementary parenthesis to the one under the cursor. Again, this is useful for Lisp programming and everyday use.
  • Aggressive-Indent-Mode/Org-Indent-Mode When editing plain text in Emacs, one finds themselves making good use of the tab key for indentation. However, Org-mode requires the use of the tab key for folding; plus it gets tedious. These modes automatically indent. The former automatically inserts spaces into the file to create a margin.

    The latter cleverly adjusts visual elements to give the buffer a 'false' margin. Lines wrap to the right point, and excess headline asterisks don't show. I alternate between these modes depending on what I am editing and what mood I am in.

  • Aggressive-Fill-Mode Paragraph 'filling' is a method of wrapping a paragraph before the end of the window using 'hard line breaks'. This mode inserts returns after each line and will automatically adjust them whenever the paragraph changes. It is like Auto-fill mode but, well, aggressive. I used this for everything and still occasionally do now.
  • Visual-Line-Mode Has the same effect as Aggressive-Fill-Mode but doesn't insert any breaks. It therefore handles buffer resizing much better. It also maintains the ability to truncate lines below a certain buffer width.
  • Flyspell-Mode An on-the-fly spellchecker, hence the name! This is inherently useful for writing human-articles in Emacs. I would recommend hunspell over ispell for least hair-tearing. UK users may have to download the Hunspell English GB -ise dictionary, if not included or available in the package manager. I ended up getting them working by chucking them into /usr/share/myspell/, renaming them to en_GB.* and then changing permissions with # chmod 755 en_GB.*. There may be a better way to do this.
  • Display-Time-Mode This little mode simply puts a little clock in the information bar at the bottom of each buffer. This is only really necessary if you are running Emacs in a command line: You don't have the system clock displayed in the corner of the screen.

    By default, this also displays a mail alert and system-load indicator. I disabled these by putting this into my init.el

    (setq display-time-mail-file 0) ;means 'don\'t check for mail'
    (setq display-time-default-load-average nil)
    
  • Column-Number-Mode Self-explanatory; this mode places the column number next to the line number in the info-bar. Comes in handy when darting quickly around the buffer.
  • WriteGood-Mode/ArtBollocks-Mode My writing has a chronic overuse of the passive voice and emphasis words like 'very'. This can make sentences confusing to read, especially for people for whom English might not be a fluent language. Plus, it makes my writing annoying to read through. Writegood-mode highlights when I use emphasis or passive voice, as well as duplicated words.

GUI

Bear in mind for this section that the only GUI that I use is on a Raspberry Pi, so I have limited power. I try to use packages that I can install from the default package repositories.

LibreCAD

A well-rounded 2D Computer Aided Design (CAD) package with controls that, while not immediately obvious, quickly become second nature. A particularly good LibreCAD feature is the command interface that allows some very powerful behaviour, such as drawing multiple lines with one command rather than manually making them with a mouse. If you are familiar with such a tool, it feels very much like a 2D revamped CATIA V4, or a much, much better 2D Design clone. That software made me want to vomit.

If you would prefer a free 3D package then I would recommend using FreeCAD. I only have a little experience with this, but it is a nice, parametric, CAD package with a good little tutorial.

Web Browsers

Conkeror

Not to be confused with similarly named web-&-file-browser similarly named Konqueror, Conkeror is an Emacs-like browser that conforms to modern web standards. Conkeror is actually a modified version and theme-ing of Firefox designed to look and feel a like Emacs. I use this when I need to something with a lot of graphical content and Emacs browsers just won't cut it.

Dillo

This used to be one of my favourite, most-used browsers. Dillo is fast; it has a simple interface deliberately only conforming to the web standards it feels you need to get more stuff done more quickly. I have sort-of replaced Dillo with console browsers, as when I am using my graphical computer, I generally want to do more-graphical stuff. Still, it can be nice to have some more visual elements.

I think that other browsers could learn something from Dillo, such as that downloads continue if you exit the main browser, as it uses wget with a GUI wrapper, and a good array of keyboard shortcuts.

LibreOffice

Possibly the most-famous free and open-source office suite, LibreOffice can fulfil almost all Microsoft Office needs. LibreOffice Writer (word processor) tries to support Microsoft Word formats as best as it can, but it can't work miracles: Sometimes things break. Use RTF or ODF instead. If you start using LibreOffice then I would recommend you take a look at some of the plugins.

LibreOffice also includes tools for producing and handling slideshows, diagramming, spreadsheets, databases, and mathematical equations.

LibreOffice is not going to be the power tool that takes you to the next level and I don't use it much myself anymore, but it usually works and will feel familiar to the Word transition-er.

Scribus

You may notice a tool not really covered by LibreOffice, MS Publisher. Publisher, while bloated and closed source (not to mention expensive), worked pretty well and didn't keep trying to move around pictures without asking like Word does.

Scribus is ten times better. It is a more professional tool but feels intuitive and easy to learn. Documentation can be a little strange but is OK, and like most open source packages, is more customise-able than its closed peers.

AbiWord

LibreOffice on a Pi can be slow. AbiWord is not. This is a very light word processor that does not let you mess around in too many options but gives you all the modern features that you would most likely use on the daily.

Inkscape

A well-known, well-used drawing package. Inkscape can be confusing, I am no designer and I have little experience of similar tools. I assume it is easy to get used to. People seem to have good things to say about Inkscape and the online community are active, helpful and vocal.

I used Inkscape to fill in the tgro.neocities.org button with colour and gradients, as LibreCAD only has rudimentary colour support (and rightly so).