enable osc-8 hyperlinks in tmux
update spellfile
Launch foot with no tmux
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.