Vim for Distraction Free Writing

When I’m not using a journal to collect my thoughts I dig up my aging Toshiba NB505, a fifteen year old netbook that I saved from e-waste when my dad upgraded. It’s currently running Debain + i3wm and it’s last practical use if for drafting and editing text.

The keyboard, surprisingly is where this machine excelled, It offers tapered keys with a deep key activation. I rarely find myself hitting the wrong key. I’ve replaced the battery, twice for maybe $40 in total and it provides about four hours of screen time.

i3wm and Vim

Vim and i3wm provides a ultra minimalist user configurable desktop. In my case I use a top bar featuring up to ten desktop locations, estimated remaining battery time, CPU usage which is almost always below 3%, followed by the date and time. I tap meta-key + Enter and launch lxterm a lightweight configurable terminal window that takes up 100% of the remaining limited screen space.

I navigate to my Documents folder, create a sub-folder with today’s date and open Vim which I’ve also customized to enable line breaks and syntax highlighting, I prefer to edit in markdown.

Why I choose Vim

As a WordPress developer I spend a lot of time in a terminal windows running bash. Nano is often installed by default but lacks advanced features, or perhaps I didn’t bother to check. Vim is highly configurable and relies on keyboard navigation instead of menus. A massive advantage once I memorized the routines I use most frequently.

Vim allows me to enable and disable spellcheck and Debian provides flexibility to move the resulting file to the cloud or my thumb-drive for direct device to device transfer. Using free and open source workflows allow me to customize, add, remove, disable features that proprietary software have been increasingly used to interrupt users with notifications advertising features I don’t give a shit about or advertising some new scheme to drain recurring revenue from  their clients.

I Might Change My Process

This Toshiba netbook is a teenager, it shows its age through the decomposing soft lid plastics. Beyond writing this netbook provides no utility.

A year ago I changed career paths, WordPress no longer generates the majority of my income. I spend forty hours a week project planning, writing, researching, and editing on a Windows 11 laptop provided by my employer, unsurprisingly with feet planted deeply in Office 365, head in the Adobe Cloud. Muting notifications and hitting F11 to full screen notepad, windows or a terminal isn’t enough, interruptions make their way through.

Many Options

Migrate writing to my personal laptop which needs a battery replacement. Complicated because it requires special tools to disassemble. This is probably the most practical option since I’ll need to do it anyway.

Buy a Freewrite device, gain access to a highly desirable e-ink or RLCD display, but accept that I don’t own my software. I know I’ll enjoy using a Freewrite but my free-software mindset could get in the way. What if I hate the keyboard?

Use my iPad and keyboard folio with notifications disabled, this is not a comfortable as the Toshiba netbook because the Logitech keyboard feels like two thin sheets of plastic.

I could get a low powered computer like the Raspberry Pi and pair it with a keyboard and small screen. These are all things I want to consider before shoveling $350 to $700 towards a vendor locked in device.

As I accept my career adjustment and the undeniable reality that I’m a now writer I feel like I need to allow myself space to experiment with new techniques and devices that will improve my drafting experience. Perhaps, even with its flaws a Freewrite Traveler or Alpha might be a worth the expense even if it it is a failure. Am I willing to spend that much money on a single purpose proprietary device?

Debian Buster & i3wm

It occurred to me today that I’ve never optimized Debian and i3 together for my own purposes. I’ve themed it in Lubuntu and Ubuntu which consisted of adding it alongside those distributions. However, for Debian I decided to start with a lean install of components add i3 and only what I actually need. This resulted in an extremely stable, lightweight that will only really needs occasional updates.

The System

This system will be used for web projects, offline backups, and general web surfing. I don’t have a need for any proprietary extras or the latest versions of anything critical. Even as a web developer Firefox ESR will be just fine. If I require the latest and greatest version of anything I may install flatpack, snap or AppImage.

i3 window manager displaying clockwise from left screefetch, cmus, ranger and htop
I added Compton X compositor for terminal transparency.

Notable Software

  • Compton – lightweight compositor for desktop transparency
  • lightdm – lightweight log in screen
  • vim – coding
  • ranger – file manager
  • screenfetch – system information
  • htop – interactive system resource information
  • alsamixer – ncurses alsa interface
  • cmus – ncurses music player
  • xfce4-terminal – my favorite terminal
  • pianobar – Pandora Radio terminal client

Naturally, I included several traditional GUI applications that I can’t live without which did lead to about 100 extra packages in all.

  • Firefox Extended Support Release (ESR) – web browser
  • GNU Image Manipulation Program (GIMP) – image editor
  • KeepassXC – Password Manager

Firefox, GIMP, and Ranger in i3wm
Firefox, GIMP, and Ranger in i3 window manager.

The result is a lightweight multitasking system that I’ve been using for nearly 10 years still handles everything I throw at it without breaking a sweat.

Multitasking in Firefox
Multitasking in Firefox

885 packages in all

After Ricing i3wm

Yesterday I spent a great deal of the evening ricing the desktop and customizing it to my liking.

Debian "work from home" desktop
My Debian work from home user desktop

terminal in i3 and debian
My work from home desktop with xfce4-terminal displaying screenfetch results

After installing “all the things I’m nearly at 1000 packages. RAM is at a respectable 1.5GB with a LAMP webhost and several tabs open in Firefox.
If you’re curious about my setup I’ve linked my latest configuration files below.