||4 weeks ago|
|.config||2 months ago|
|.local||4 weeks ago|
|.Xresources||1 year ago|
|.bashrc||7 months ago|
|.emacs-profile||2 months ago|
|.emacs-profiles.el||2 months ago|
|.gitignore||2 years ago|
|.gitmodules||10 months ago|
|.xinitrc||2 months ago|
|.zprofile||2 years ago|
|README.org||8 months ago|
User-level configuration files
- The configs
- Other things
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.
For Emacs stuff (which is most of what I do), check out https://git.mitchmarq42.xyz/mitch/emacs.d.
I do almost all system crafting on my Bedrock Linux 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, or don't use windows.
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.
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.
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, kinda), kitty on MacOS, and the totally vanilla default console host on Windows, unless I'm in cygwin/gitbash in which case I use their default
mintty or sometimes
ConEmu to be fancy.
I run Eshell, the Emacs shell.
I used to run ZSH. It's decently fast, POSIX compliant, and has zillions of options and menus and plugins, but the scripting just doesn't compare to eshell.
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:
- When inside Emacs (see env var
INSIDE_EMACS) it will show an Emacs ascii logo
- 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 to
- It will print out your currently-booted init system. The Artix and Guix 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
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.
rg (ripgrep) replaces
grep. Honestly it's rather pointless because I'm not using any of
rg's extra features, but hey. Whatever.
tree is now
exa -T because colors. Note that if you want
pass for password management you still need the real
sl I like to have installed so I don't mistype
dc the calculator is worthess. If I type
dc it is by accident. Thus, it's remapped to a special surprise here.
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 it
might 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.