It's my dotfiles! This is me.
These dotfiles are managed using yadm and are primarily intended
for Fedora. To install, simply clone the repo into
$HOME and run the bootstrap
Executables/shell-scripts/bootstrap. The scripts for building packages
might max out your CPU all night, so be prepared.
This has been evolving since I was 14, yet nothing here lives that long before being rewritten.
My scripts generally have the
#!/usr/bin/env dash shebang, but the syntax is all
POSIX sh compatible.
I like to be on the bleeding edge of programs I use often, but with a stable OS running underneath them. I worked out the following solution:
If I use a program that runs in the terminal very often, I'll likely build it from
source and update to the latest git commit. Git repositories get cloned using
ghq. This way, if a program has a bug or is missing
a feature I want, I already have the latest snapshot of the repository cloned locally
on my machine so I can better understand the issue, report the bug, and/or push a
patch upstream. My
script runs these
C/C++ programs get compiled with the
-march=native flags, among others. Most
packages are also compiled using link-time optimization. Rust packages containing
C/C++ code use Clang instead of GCC.
I generally compile programs on my desktop and
rsync them to my laptop.
Pretty much all my programs run in the terminal. Exceptions include my web browser (if I can't avoid it), image viewer (imv), and media player (mpv)). If I'm not browsing heavy websites or playing high-res video, this setup is lightweight enough to use comfortably on a cheap single-board computer like the Raspberry Pi.
Stuff labeled with
* is built from source from the latest git commit.
I use Neovim's built-in Tree-sitter implementation and Language Server Protocol (LSP)
client along with the official nvim-lsp plugin
containing pre-made configs for popular language servers. Settings are split between
init.vim and Lua files. Over time, I'll migrate more configs from Vim script to
dash*for its ridiculously fast startup speed and minimal extensions over the POSIX spec. Statically-linked.
tmux*. By using a static binary with full link-time optimization that only sources user config files, my shell initialization time for the interactive prompt was cut in half.
I have an MPD-based music setup; this README includes a screenshot of it near the top.
I've written several scripts to control MPD and build playlists. My setup depends heavily upon rating tracks on a scale of 1-10 in the MPD sticker database.
imvand displays notifications; I might re-name the project and spin it off into something of its own.