Daniel's Dotfiles

My personal Linux dotfiles. I use Arch btw. The root of this repo is equivalent to my `$HOME` directory. - [This Repository](#this-repository) - [Note On Keybindings](#note-on-keybindings) - [Configuration Notes](#configuration-notes) - [Fish](#fish) - [Kakoune](#kakoune) - [Helix](#helix) - [Niri](#niri) - [Foot](#foot) - [Fuzzel](#fuzzel) - [gomi](#gomi) - [lazy git](#lazygit) - [aerc](#aerc) - [Waybar](#waybar) - [senpai](#senpai) - [Starship](#starship) ## This Repository I use this repository to sync and backup my dotfiles. I use the excellent [yadm] to manage the repo, and [autoyadm](https://git.sr.ht/~ficd/autoyadm) to automate committing & pushing on a timer. Therefore, these configs are: - Always up to date. - But potentially broken on any given commit (due to incomplete configs being pushed). If you see a file with a weird name, like `config##hostname.dbox`, it's leveraging `yadm`'s alternate files feature; the program will automatically symlink the appropriate file to its destination depending on what comes after the `##`. This is also how templates are handled (see [niri](./.config/niri)) for an example of this. ### Note On Keybindings I use Colemak-DH, which is a non-qwerty keyboard layout. Because I came up using Vim, I'm used to `hjkl` for movement. However, on this layout, `mnei` occupies the `hjkl` position. Thus, in most applications, I change the bindings so they're more comfortable for me to use. Please keep this in mind when copying my configs. ## Configuration Notes ### Fish Fish is my shell of choice. It provides unparalleled interactive UX OOTB, and is a joy to configure and extend. The Fish programming language is also a joy to use. ### Kakoune I've been configuring and enjoying Kakoune as my text editor lately. It's highly personalized, so I don't recommend copying it, but feel free to peruse for inspiration. ### Helix I used Helix for quite a few months. I had implemented some cool functionality using calls to external scripts; these may be of interest to you. ### Niri I use Niri as my Window manager. I've written quite a few custom scripts that work with Niri; you'll find references to them in the configuration, and the code for most is available in my [utils collection](https://sr.ht/~ficd/utils). ### Foot Foot is my terminal of choice. Not much to say here, since it's pretty light. ### Fuzzel I use fuzzel as my GUI picker. The config is pretty light, but I invoke `fuzzel` in a lot of other scripts. ### gomi The excellent `gomi` is aliased to `rm` in my shell config. ### lazygit My Git workflow involves a mix of raw git commands and liberal use of the lazygit TUI. It's a lovely tool and I highly recommend checking it out. ### aerc This is a TUI email client. Not _every_ necessary aspect is in this repository, namely the scripts used to authenticate with my providers, for obvious reasons. ### Waybar Like most Wayland users, Waybar is my... bar. My setup may seem a bit visually unusual due to there being both a top and bottom bar, but it works for me. I've written a couple of custom modules that provide better integration with Niri. ### senpai I use Senpai as a TUI IRC client. I'm not much of an IRC fiend, so I was drawn to Senpai because it works well OOTB without needing much configuration. It covers my needs perfectly. ### Starship My favourite shell prompt. Super fast and highly configurable.