My Adventures making a WriterDeck

Or; How I stopped worrying about copying Veronica Explains' homework

Recently, I bought a Framework 13 laptop. Something that I've said I'd write a blog post about but haven't yet. It's been a bit of a time over here. It's still coming though! But, back on topic, having my Framework laptop has rendered my Chromebook-turned-Linux machine fully obsolete, which also means it's a prime candidate to faff around with! I do love a fun little project, especially if it teaches me some new things.

I came across a video by Veronica Explains, a channel I really enjoy and the one that turned me onto the idea of making my Chromebook a Linux device in the first place. This time, she was talking about the concept of a WriterDeck, a device solely for the purpose of writing. She talks about the benefits of having single-purpose devices as a way to keep distractions at bay. The idea of single-purpose devices interests me greatly as of late. It's the entire reason why I bought a record player, for example. Having a bit more intentionality in your life really helps you appreciate the activity at hand all the more, instead of using your “Do Everything-inator” to do everyting all at once and not pay attention to anything fully.

To explain a bit further what's driving this WriterDeck (that I'm typing on right now!), let me break it down:

The neovim part honestly worried me the most, and I really could've just gone with nano, since I've used that since forever and neovim seems... opinionated. But, like I said, I wanted to test and teach myself a bit so why the heck not. Plus, the markdown support helps with previewing my blog post right from neovim! image

Installing a headless Debian was no trouble at all. I downloaded the smaller .iso file from the Debian site, loaded it on my Ventoy USB stick and I was off to the races. Ventoy is great by the way. Instead of formatting an entire stick for one single installation, you just load all the .iso's you want on there (as long as they're under 4gb due to FAT32 constraints) and load up the one you want from the Ventoy boot menu. It's been really nice since I have a bunch of devices that all run their own distros, plus I need CloneZilla for work.

Grabbing tmux, syncthing and neovim was easy enough, but grabbing kmscon was a bit of a pain for a minute. Following Veronica's work, I added trixie-backports to my apt sources list, but it refused to grab the required dependencies. I went down a small rabbit hole of compiling the dependencies from source and got no-where, until I stumbled across the solution that, to grab the right version of kmscon and its dependencies, I needed to specify trixie-backports as the target to download from. New knowledge unlocked already, huzzah.

To configure tmux, I stumbled across a blog post on hamvocke.com that had some nice thoughts on how to configure some keybinds. Like using | for a horizontal split and – for a vertical split. As per Veronica's advice, I also installed light (to manage brightness) and acpi (to monitor battery). The tmux bar is now at the top and shows both the current time and the remaining battery in percentages. To make my ex-Chromebook play nice, I also needed to download a script by WeirdTreeThing to add keybinds for the Chromebook-exclusive function buttons up top. Good thing I don't need to run audio on this laptop anymore, because the same author wrote a script to enable audio across most Linuxified Chromebooks, but for some reason it stopped working properly on my particular model. Oh, and because I want my battery to last, I made sure to install the power-profiles-daemon so I could set it to power-saver mode. Gotta make use of that amazing Chromebook battery life, after all. image

Kmscon is pretty rad, too. Resizing text in your terminal is essential, if only to reduce eyestrain. And having a pretty font is always nice. I can see why Veronica enjoys Iosevka, though I might fiddle with other fonts later. One thing I did notice is that resizing text can introduce artifacts. For example, the underscore fully disappeared on me until I resized my text one notch up or down. Some italicized text also intermittently and randomly lost some letters. Further investigation on why that happens is needed. Most likely a combination of the resizing and the font, perhaps even the rendering engine kmscon uses.

Now, Neovim. After using it for a hot minute and going through the included Tutor program (:Tutor), I get it. It makes sense to have your navigation keys right there on the home row, even though I still instinctively use the arrow keys. Replacing words and letters is easy when you're reviewing your work later on, and it's a no brainer to use it as an IDE, especially on a terminal-only system. With Veronica's vimwiki blog post as a guide, I set-up neovim in such a way that it supports Markdown syntax and immediately shows the results. Nano could never. In fact, a cursory web search pretty much confirmed neovim is the only one that does more than just view .md files, but edit them with visual support as well. Sure, I could still use nano, but as long as I don't have the syntax down by memory, the visual aid is very welcome, indeed.

Finally, Syncthing. To my surprise, that was actually more annoying to setup via CLI than I expected. Announcing my WriterDeck to my existing setup required me to type out the entire ID of my main pc by hand, and for folder sharing I had to randomize a folder ID with sha1sum to even begin sending it over to my rig. BUT! I have it working, and as soon as I save this file, it'll be over there in a flash, ready for me to publish. I love that syncthing can just live on my systems and manage the file transfer for me. There's a ton of ways to do it of course, but now that I've set it up, it requires no input from me aside from remembering to boot it up when I need it.

image

And that's where I do have more to learn when it comes to Linux. Kmscon boots at launch for example, but tmux doesn't. I've tried to edit my .bashrc file to add it to boot, following this blog post by Veronica but it didn't take, so now I'm stumped. I would also want to add syncthing to launch at boot, or at the very least run in such a way that it doesn't hijacking an entire terminal window. I know it's possible, but I can't remember how. Neovim is definitely going to take more getting used to, and I wanna rice my tmux and vim a bit more to make it my own. Right now I'm using the retrobox color scheme in neovim, which admittedly is very pretty, but the terminal is still stock.

Finally, I did also went and installed a web browser, just because I can. I tried both w3m and browsh. Now, browsh in particular is really freaking neat, since it actually renders entire webpages, images and all! Well, within the confines of terminal graphics of course. However, most websites I tried were still too “advanced” for even browsh, especially because they have those big honking cookie popups that are hellish to click away from using a TUI browser. I'll have to look at sites that actually work well and learn the browser a bit better. And maybe I'll install a tui game or two... nethack or something. maybe that version of doom that renders directly into the framebuffer. Oh, right... The WriterDeck was supposed to be a distraction free device... but what if...!

See you next blog. :wq

Buy Me a Coffee at ko-fi.com

I write for fun, not for profit. It's not my job, nor do I intend to let myself get sucked in by gig-culture and turning my hobbies into jobs. That said, people have gladly supported me in the past, so if you feel inclined to do so, please follow my ko-fi link. Thank you very much either way <3