My Dotfiles
Hi! These are my dotfiles that I use every day, primarily the terminal.
If you find something interesting, go ahead and take whatever you want from my dotfiles.
It is managed using yadm, a dotfile
manager. This makes it simple to set up a new computer with these files. In
order to set up a new system with these dotfiles, do the following:
Getting Started
First of all you need yadm, this can be installed on macOS via homebrew or on
Linux via the package manager of your choice.
macOS
Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"Install tools with Homebrew
brew bundle install --file=.BrewfileInstall tools on ArchLinux
xargs pacman -S --needed --noconfirm < [.pacmanfile](./.pacmanfile)Clone dotfiles with yadm
$ yadm clone https://github.com/steinbrueckri/dotfiles
Initialized empty shared Git repository in /steinbrueckri/.config/yadm/repo.git/
remote: Enumerating objects: 295, done.
remote: Counting objects: 100% (283/283), done.
remote: Compressing objects: 100% (133/133), done.
remote: Total 295 (delta 119), reused 282 (delta 118), pack-reused 12
Receiving objects: 100% (295/295), 183.96 KiB | 399.00 KiB/s, done.
Resolving deltas: 100% (120/120), done.
From https://github.com/steinbrueckri/dotfiles
* [new branch] master -> origin/master
Executing /steinbrueckri/.config/yadm/bootstrapHardware
Equipment list
Mobile
| Device Class | Vendor | Model |
|---|---|---|
| Keyboard | Nuphy | Air60 V2 |
| Keyboard Case | Nuphy | NuFolio V3 |
| Powerbank | Anker | 737 Powerbank aka PowerCore 24K |
| Mobile Router | GL.iNet | GL-XE300 (Puli) |
| Backpack | Peak Design | Everyday Backpack |
| Tech Pouch | Peak Design | Field Pouch V2 |
Office
| Device Class | Vendor | Model |
|---|---|---|
| Desk | BoHo-Moebel | Premium Line with oak table top |
| Desk Shelf | Balolo | Setup Cockpit |
| Chaire | HÅG | Capisco 8020 |
| Desk Lamp | Dyson | Solarcycle Morph |
| Monitor | Apple | Studio Display |
| Keyboard | Kinesis | Advantage360 |
| Mouse | Kensington | Expert Mouse Wireless Trackball |
| Headphones | Apple | AirPods Max |
Notebook
As my main device i use Macbook Pro 2021 ...
$ system_profiler SPHardwareDataType | grep -v "UDID\|UUID\|Serial"
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro18,4
Model Number: Z15K0004WD/A
Chip: Apple M1 Max
Total Number of Cores: 10 (8 performance and 2 efficiency)
Memory: 32 GB
System Firmware Version: 8419.80.7
OS Loader Version: 8419.80.7
Activation Lock Status: DisabledAs Keyboard i use a Kinesis Advantage360
with the blank keycap set from Kinesis kc360-bk
and my Keyboard layouts and macros
for it can be found in steinbrueckri/Adv360-Pro.
Key mappings and Aliases
My vim leader key is and the tmux leader is . The following
table is generate by ChatGPT so its maybe a lie. ;)
nvim Keybindings
| Mode | Key | Action |
|---|---|---|
| i | jk | Exit insert mode |
| n | Clear search highlight | |
| n | U | Redo last undone change |
| v | < | Indent left and reselect |
| v | > | Indent right and reselect |
| x | x | Delete without losing register contents |
| x | p | Paste over visual selection without losing register contents |
| n | Next buffer | |
| n | Previous buffer | |
| n | q | Close current buffer |
| n | Q | Force close current buffer |
| n | bd | Delete buffer |
| n | bm | Delete all marks |
| n | w | Save file |
| n | N | Create new buffer |
| n | e | Toggle file tree |
| n | gF | Create file and open |
| n | n | Find next and center |
| n | N | Find previous and center |
| n | fm | Execute make target |
| n | fa | Search in files |
| n | fc | Search in config files |
| n | ff | Search all files (ignoring .git) |
| n | fe | Find emojis |
| n | fp | Show yank history |
| n | fo | Show recent files |
| n | fr | Open search and replace |
| n | ft | Find open TODOs |
| n | gf | Open Fork and show Git status |
| n | gb | Git blame line |
| n | gg | Open line in Github |
| n | gl | Open LazyGit |
| n | fb | Find git branches |
| n | tw | Toggle word wrap |
| n | ud | Toggle database UI |
| n | tm | Toggle Markdown preview |
| n | Z | Show spell suggests |
| n | yc | Duplicate a line and comment out the first line |
| n | ts | Toggle Screenkey |
| n | tt | Toggle Terminal |
| n | to | Toggle Symbols |
| n | td | Toggle Diagnostics |
| n | tl | Toggle LSP Definitions |
| n | nn | Create quick note |
| n | nf | Search notes |
| n | no | Open note in Silverbullet |
| n | tq | Toggle quickfix list |
| n | ]q | Next item quickfix list |
| n | [q | Previous item quickfix list |
| n | Goto split up | |
| n | Goto split down | |
| n | Goto split left | |
| n | Goto split right | |
| n | sh | Create horizontal split |
| n | sv | Create vertical split |
tmux Keybindings
| Key | Action |
|---|---|
| C-a | Send prefix |
| _ | Split window horizontally |
| - | Split window vertically |
| h | Switch to home |
| u | Switch to userlike |
| C | New window |
| y | Toggle synchronize-panes and display message |
| v | Enter copy mode |
| p | Paste buffer |
| r | Reload ~/.tmux.conf and display message |
| - (copy-mode) | Copy-pipe-and-cancel to clipboard |
Fish Aliases
| Alias | Command |
|---|---|
| vim | nvim |
| vi | nvim |
| v | nvim |
| n | nvim |
| nvim-switch-nightly | bob use nightly |
| nvim-switch-stable | bob use stable |
| lg | lazygit |
| lgd | lazydot |
| lazydot | lazygit -ucd ~/.local/share/yadm/lazygit -w ~ -g ~/.local/share/yadm/repo.git |
| lol | git log --pretty=oneline --abbrev-commit --graph --decorate |
| gp | git pull |
| kx | kubectx |
| k | kubectl |
| kc | kubecolor |
| kn | kubens |
| k-debug | kubectl run --namespace default -i --tty 'debug-default-$USER' --image=steinbrueckri/debug --restart=Never --rm=true -- bash |
| k-debug-app | kubectl run --namespace istio-apps -i --tty 'debug-$USER' --image=steinbrueckri/debug --restart=Never --rm=true -- bash |
| newpyenv | uv venv .venv --python 3.12 && echo '{ "venvPath": ".", "venv": ".venv", "include": ["src", "tests"], "exclude": ["**/pycache", ".pytest_cache", ".ruff_cache", ".venv"] }' > pyrightconfig.json && mkdir -p src tests && source .venv/bin/activate.fish |
| activate_env_datacenter | source ~/Userlike/UserlikeDatacenter/.venv/bin/activate.fish |
| activate_env_code | source ~/Userlike/Userlike/.venv/bin/activate.fish |
| gcpil | gcloud compute instances list |
| gcpal | gcloud compute addresses list |
| gcpssh | gcloud compute ssh |
| gcpsshi | gcloud compute ssh --internal-ip |
| gcpsshiap | gcloud compute ssh --tunnel-through-iap |
| gcprdpiap | gcloud compute start-iap-tunnel $1 3389 --local-host-port=localhost:3389 --zone=$2 |
| do | doctl |
| do-new | doctl compute droplet create tmp --region ams3 --size s-2vcpu-2gb --image ubuntu-22-04-x64 --user-data-file .dotfileassets/digitalocean-cloudinit.yaml --ssh-keys "df:17:95:8d:31:56:39:27:d1:04:e3:12:52:36:ed:5b" |
| do-new-ssh | ssh $(doctl compute droplet list |
| localvm | multipass launch -c 4 -m 4G -d 50G -n localvm 20.04 --cloud-init .dotfileassets/multipass-common.yaml |
| dr | docker run -it --rm --entrypoint /bin/sh |
| rm-images | docker rmi (docker images -q) |
| tssh | tsh ssh (tsh ls | tail --lines=+3 | fzf -e | head -n 1 | cut -d ' ' -f1) |
| pwgen | date +%s | sha256sum | base64 | head -c 32 ; echo |
| cat | bat |
| hosts | hosts --auto-sudo |
| ls | eza --icons |
| top | btop |
| watch | viddy |
| myip | curl -s -H "Accept: application/json" ipinfo.io | jq -r .ip |
| ag | rg |
| tailscale | /Applications/Tailscale.app/Contents/MacOS/Tailscale |
| sslcheck | nmap --script ssl-cert -p 443 |
| sslyze | docker run --rm -it nablac0d3/sslyze:latest |
| lightmode | themr rose-pine-dawn |
| darkmode | themr rose-pine-moon |
| kill-ansible-ssh | ps aux | grep "ansible-" | grep "[mux]" | awk "{print $2}" | xargs kill -9 |
Screenshots
Here’s a glimpse of my terminal and setup:
Tests
Running Tests Locally
# All tests
just test
# Debug mode (drops to shell on failure)
just test-debug
# Open shell in test container
just shellCI
GitHub Actions runs just test (excludes slow markers for fast feedback).
Scheduled daily runs execute just test-all.
Requirements
- Docker
- Just command runner
Missing Features
Here are some planned improvements for future versions:
- Testing with multiple Neovim versions
- Testing across various Linux distributions
- Testing on macOS



