@ -5,7 +5,9 @@ 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.
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.
@ -18,25 +20,30 @@ Self-documenting code does not exist, but some day there will be a self-tangling
** The terminal
Beyond handling true-color and UTF-8 nerd fonts, any terminal is sufficient in my book.
I currently use [[https://wiki.gnome.org/Apps/Terminal][gnome-terminal]] on Fedora and Ubuntu (my server and media center both run Ubuntu), [[https://sw.kovidgoyal.net/kitty/][kitty]] on MacOS, [[https://github.com/alacritty/alacritty][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~.
I currently use [[https://wiki.gnome.org/Apps/Terminal][gnome-terminal]] on Fedora and Ubuntu (my server and media center both run Ubuntu, kinda), [[https://sw.kovidgoyal.net/kitty/][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.
** The shell
I run [[https://man.archlinux.org/man/zshall.1][ZSH]]. It's decently fast, POSIX compliant, and has /zillions/ of options and menus and plugins.
I run Eshell, the Emacs shell.
I used to run [[https://man.archlinux.org/man/zshall.1][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.
*** zsh
I have copied [[https://github.com/lukesmithxyz/voidrice][Luke Smith's config]] layout of a .zprofile linked to its xdg-compliant location and setting ~$ZDOTDIR~ to [[.config/zsh][.config/zsh]] because having a clean ~$HOME~ is nice. the [[.config/zsh/.zshrc][.config/zsh/.zshrc]] sources [[functions.zsh][functions.zsh]] and [[aliases.zsh][aliases.zsh]], and will on first run attempt to install [[https://github.com/zplug/zplug][zplug]] for a few fun extensions.
Upon entering the shell it will run, among silent things, [[https://github.com/dylanaraps/neofetch][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 [[https://github.com/tmux/tmux][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 ~screen~)
- 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
[[https://the.exa.website/][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.
- 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 ~svchost.exe~?)
**** The coreutil aliases
[[https://the.exa.website/][exa]], if available, replaces ~ls~. GNU (or even BusyBox) ~ls~ is by no means bad, but I like ~exa~'s colors better.
[[https://github.com/BurntSushi/ripgrep][rg]] (ripgrep) replaces ~grep~. Honestly it's rather pointless because I'm not using any of ~rg~'s extra features, but hey. Rust.
[[https://github.com/BurntSushi/ripgrep][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 ~tree~ installed.
@ -48,8 +55,10 @@ For my old [[https://neovim.io/][neovim]] config (formerly at [[.config/nvim][.c
For my current [[https://www.gnu.org/software/emacs/][emacs]] configuration, check https://git.mitchmarq42.xyz/mitch/emacs.d.
I have written several Emacs plugins. Most are at https://git.mitchmarq42.xyz/mitch, or else at https://github.com/MitchMarq42/.
* Other things
** TODO Old note on xkb custom mappings
** 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?+
@ -57,22 +66,3 @@ For my current [[https://www.gnu.org/software/emacs/][emacs]] configuration, che
+^^^ 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.