dotfiles/README.md

117 lines
3.4 KiB
Markdown

<h1>Daniel's Dotfiles</h1>
My personal Linux dotfiles.
I use Arch btw.
The root of this repo is equivalent to my `$HOME` directory.
<!--toc:start-->
- [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)
<!--toc:end-->
## 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.