Returning to Text

(Day 17 of 30 Days of Blogging) I’ve been replacing the way I store personal todo lists and notes. Previously I was using Trello. Before that I used Tiddlywiki for a couple years. I used to work with a guy that swore by simply using a text file, so I started giving that a shot. In theory this approach has some major perks: It’s easy to add stuff: Just start typing.
Read more

Hacking i3: Window Promoting

(Day 16 of 30 Days of Blogging) One of the only things I miss from when I used xmonad many years ago was being able to hit a keybind to swap the currently focused window with the “master” window. I think the default keybind for that in xmonad is alt-Enter. i3 doesn’t have the concept of a master window, but if we consider the master window to just be the largest window, the same effect can be achieved:
Read more

A Blog Half Full

I’m halfway through 30 Days of Blogging. When I was a kid I really wanted to be a cartoonist. I wanted it so much that my first “job” was doing a daily comic strip for the local newspaper. I did that for 10 months straight, 6 days a week. At the end I was so sick of it I never wanted to pick up a pencil ever again. Hopefully blogging doesn’t end up the same way!
Read more

Simple Clipboard Management

(Day 14 of 30 Days of Blogging) Greenclip is really useful for recording your clipboard history and showing a menu to switch between items. Along the same lines I had an idea to write a tiny script that allows editing of the clipboard in vim. This has been handy when I need to quickly fix up some text before pasting it into a GUI application: #!/bin/sh -e file=`mktemp /tmp/clipboard-XXX` xsel --clipboard > "$file" xterm -e "$EDITOR-c 'set nofixeol' \"$file\"" xsel --clipboard < "$file" rm "$file" The nofixeol option prevents vim from adding a newline to the end of the clipboard, which is usually not desired.
Read more

Firefox Minimalism

(Day 13 of 30 Days of Blogging) I’ve been working on an opinionated and ultra-minimalist Firefox theme that pairs nicely with Tridactyl. I thought I’d share a few notes here. But first some pretty screenshots! Here’s what you’re greeted with when you open a Firefox window: Nope, it’s not a terminal, that text prompt is the address bar. Here’s what it looks like with a page in a single tab:
Read more

Media Companies are Complicit

(Day 12 of 30 Days of Blogging) Facebook, Twitter, and other media companies shouldn’t be applauded for finally deplatforming the American president after profiting off controversy for so many years. It took up until the very day that the American president lost the election for TV outlets to finally start calling out his bullshit. It took an act of terrorism to force social media’s hand against the communities allowed to grow on their platforms.
Read more

Access Recent Files From the Command Line

(Day 11 of 30 Days of Blogging) If you don’t already use Z you absolutely need to check it out. Z is a CLI tool that cd’s to a recently used directory, so that typing z foo will cd /my/deeply/nested/project/foobar7, as long as you’ve cd’ed into foobar7 sometime in the past. Z is great for jumping to recent directories… but is there an equivalent for opening recently used files? There’s fasd, but the way it works seems a bit too magical to me.
Read more

XTerm: It's Better Than You Thought

(Day 10 of 30 Days of Blogging) A couple months back I switched my terminal from xfce4-terminal to the venerable xterm. For some reason I always put xterm in the same bucket as xclock, xmessage, or any other prehistoric command starting with X that comes pre-installed on any graphical Linux distribution. It was surprising to learn that xterm is still very much actively developed. Even more surprisingly, it turns out xterm has incredibly low input latency compared to modern terminals.
Read more

Remote Movie Nights With Popcord

(Day 9 of 30 Days of Blogging) Several months ago during the height of the 2020 quarantine I released Popcord, a Chrome extension for watching videos with friends remotely. It’s designed to be used while on voice chat with friends and family, and simply handles synchronizing the playback position and state of the movie you’re all watching together. I’m pretty proud of how it turned out! Under the hood the system is made up of 3 different pieces: The browser extension, a web application, and a websocket server.
Read more

What's My IP Address?

(Day 8 of 30 Days of Blogging) Sometimes you need to determine your own IP address. There’s ip addr (the new ifconfig), which will tell you your local network IP. What about your external Internet-addressible IP? Use this: dig @resolver4.opendns.com myip.opendns.com +short This is faster than curl icanhazip.com or equivalent URLs, and more reliable too.