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
scripts in 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
update-all
script runs these
updates.
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.
$EDITOR
: Neovim*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
an init.vim
and Lua files. Over time, I'll migrate more configs from Vim script to
Lua.
dash*
for its ridiculously fast startup speed and
minimal extensions over the POSIX spec. Statically-linked.zsh*
inside 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.
imv
and
displays notifications; I might re-name the project and spin it off into something
of its own.