the new and improved!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mitchell Marquez 13037b3c98 Waylock: show dependencies 4 weeks ago
.config Do things<M-Esc> 1 month ago
.local Waylock: show dependencies 4 weeks ago
.Xresources add Xresources, for emacs stuff 8 months ago
.bashrc brave-browser shortcut: broken 9 months ago
.emacs-profile Add chemacs configuration. This commit done through magit! 4 months ago
.emacs-profiles.el Add chemacs configuration. This commit done through magit! 4 months ago
.gitignore trim gitignore 12 months ago
.gitmodules Xmonad: include stack file and source repos 2 months ago
.xinitrc xinitrc: switch back to xfmonad 2 months ago
.zprofile add zsh things 1 year ago some things may or may not have changed idk 6 months ago

User-level configuration files


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 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 menus 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 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

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

For my current emacs configuration, check

Other things

TODO Old note on xkb custom mappings

For getting capslock -\> esc and held-capslock -\> super to work in sway, see 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.

TODO .config

Basic. Place where configs go. Visit the location for more info, another org document may or may not appear there.

Test, needs to be a different file

  ;; (require 'openwith)
  ;; (setq browse-url-mail nil)
  (setq browse-url-mailto-function 'browse-url-generic)
  ;; (setq browse-url-generic-program "open")
  (let ((calendar-date-display-form calendar-iso-date-display-form))
    (calendar-date-string (calendar-current-date)))