|
10 months ago | |
---|---|---|
.config | 10 months ago | |
.local | 11 months ago | |
.Xresources | 10 months ago | |
.bashrc | 11 months ago | |
.gitignore | 1 year ago | |
.gitmodules | 11 months ago | |
.xinitrc | 1 year ago | |
.zprofile | 2 years ago | |
README.org | 10 months ago |
README.org
User-level configuration files
Introduction
a concrete apology
Hi. Welcome to my dotfiles repository.
Here you will find a self-chronicled history of my descent into madness. There's a lot of waffling back and forth with various features, so only read the actual commits if you really feel like it.
I do almost all system crafting on my Fedora machine, but everything is designed to be declarative and deployable. So far this only extends to UNIX-like platforms, but I might eventually figure out Windows file path resolution. Unless I don't. For now, we can make a hardlink in CMD to specific paths and just live in powershell.
I have a lot of things to say about powershell, but none of them are interesting so I'll keep them to myself for now.
For shell configs, look in .config/zsh. For scripts, .local/bin.
There's a whole bunch of other stuff too, which I'll eventually go and document.
an abstract wish
Self-documenting code does not exist, but some day there will be a self-tangling index.org in every sub-directory; this will essentially form a lazy man's web interface to his files. Until then, you're just gonna have to look at the code and figure out what it does yourself.
The configs
The terminal
Beyond handling true-color and UTF-8 nerd fonts, any terminal is sufficient in my book.
I currently use gnome-terminal on Fedora and Ubuntu (my server and media center both run ubuntu), kitty on MacOS, alacritty on arch/artix/whatever, and the totally vanilla default console host on Windows, unless I'm in cygwin/gitbash in which case I use their default mintty
.
The shell
I run ZSH. It's decently fast, POSIX compliant, and has zillions of options and menues and plugins.
I have copied Luke Smith's config layout of a .zprofile linked to its xdg-compliant location and setting $ZDOTDIR
to .config/zsh because having a clean $HOME
is nice. the .config/zsh/.zshrc sources functions.zsh and aliases.zsh, and will on first run attempt to install zplug for a few fun extensions.
Upon entering the shell it will run, among silent things, neofetch. While there are sort of alternatives, nothing quite hits the spot that neofetch does, at least for me. This may be partially because I have extended neofetch slightly in my config.conf:
- The "Packages" function is now asynchronous to work better on Fedora or other slow package managers (fight me)
- There is now a line for the current tmux pane if the current session is in one (otherwise says "N/A")
- When paired with my
.zshrc
, it now prints out the previous value of the TERM variable (before tmux sets it toscreen
) - It will print out your currently-booted init system. The Artix inits work as expected, systemd insults you, Android says 'android-init', and anything else (such as Windows) spews nonsense. (Need to double check the behavior of Windows. Perhaps I should poll for
svchost.exe
?)
The coreutil aliases
exa, if available, replaces ls
. GNU (or even BusyBox) ls
is by no means bad, but I like exa
's colors better. Also mandatory reminder that it's written in rust.
rg (ripgrep) replaces grep
. Honestly it's rather pointless because I'm not using any of rg
's extra features, but hey. Rust.
tree
is now exa -T
because colors. Note that if you want pass
for password management you still need the real tree
installed.
sl I like to have installed so I don't mistype ls
.
dc
the calculator is worthess. If I type dc
it is by accident. Thus, it's remapped to a special surprise here.
The Editor
For my old neovim config (formerly at .config/nvim), check https://github.com/MitchMarq42/nvim-configs.
For my current emacs configuration, check https://git.mitchmarq42.xyz/mitch/emacs.d.
Other things
TODO Old note on xkb custom mappings
For getting capslock -\> esc and held-capslock -\> super to work in sway, see https://gist.github.com/bendavis78/e8cc8371499b52ac276fbe864247fdb7. This will also suffice for any X11 window manager, or any other Wayland compositor that uses XKB instead of doing its own thing.
The file .local/share/supescaps.diff currently contains the instructions in this gist but automated; run doas patch < .local/share/supescaps.diff
and itmight magically work. You will have to re-do this every upgrade or reinstall of XKB/XCB/xorg/linux. Maybe make it a pacman hook?
^^^ the above doesn't work because I'm an idiot and can't write patch files. Should probably work it into that shell script that will also auto-detect the package manager and install everything automatically.
As of 2020, xkb accepts user-specific keyboard patches. Modifying system files is no longer needed, and was always bad practice. Please don't do it either.
TODO .config
Basic. Place where configs go. Visit the location for more info, another org document may or may not appear there.