Home -> Blog -> Software Propaganda
Software Propaganda
This page lists various software setups I use and consider valuable enough to advertise. It is by no means a complete list – it’s mostly what came to mind quickly when I decided to write this page. This page emphasizes components of my setup that I think most people do not have or do not make good enough use of.
- Arch Linux
- A cutting edge, rolling release Linux distribution. While I appreciate that it’s always up to date, I love it most because it presents all decisions to the user. Your Arch Install is considered complete when it boots and you have internet access and a package manager. Everything else you’re expected to do for yourself. The Arch Wiki fills in the gaps, telling you how to do things and often how things work. It is so good that even when I’m working on a non-Arch system I typically refer to it for help.
- LVM on LUKS
- My file system. LUKS is full disk encryption that (in my experience) just works. LVM lets you move/resize partitions without all the pain you’re used to if you’ve done it any other way before. It also has many other features that I haven’t used. Look them both up on the Arch Wiki.
- Pandoc (and write everything in Markdown)
- Pandoc advertises it as a file format converter. I specifically use it to convert Markdown files (plain text written in a specific format, based on how people write plain text in practice to make it readable) to HTML and PDF (through Latex) files. I use it for pretty much everything because this system is very easy to work with. I even use it to generate this website: the website is built with a Makefile that runs pandoc on .md files to create staic .html files (which I then serve with nginx). You can view the original markdown of any page by changing .html to .md in the URL.
- Git, plus a couple management tools
- I use git to track most of my files
- I write a couple simple tools (see mkgit and runin on my Github) to help me keep track of and manage all my git repositories (i.e. make sure I remember to commit and push things to my server regularly)
- I use git annex to store large files that I want to track this way. It isn’t perfect, but I haven’t found a better way using git. The other things I consider is building up a small amount of tooling around rsync.
- Do not do this with any files you don’t want your name/times/computer information associated with. Git stores a lot of things
- Awesome (Window Manager)
- A customizable tiling window manager. Tiling window managers are wonderful. I don’t claim it’s any better than other tiling window managers; it’s just the one I chose. I added a couple features to my setup:
- Tiny volume widget (TODO link) in the menu bar that can handle volumes > 100% (backed by pulseaudio)
- Battery status text
- Wireless network, ping status
- Brightness keys + helper scripts that make it work better than most brightness tools I see elsewhere (TODO link)
- Even more desktops, because 10 isn’t always enough. I’ve got an … unusual organization system, but it works for me.
- Mosh
- “Mobile SSH” basically ssh that handles intermittent connectivity. It uses ssh for initial authentication and does a key exchange to allow secure communication between the mosh client and mosh server
- Tmux
- Terminal multiplexer. I mostly use this together with mosh (not locally). Look it up.
- Makefiles
- It’s really nice to build things by just running “make”. It doesn’t even have to be code. Just do it!