Personal dotfiles for my Wayland/Sway setup on Arch (also tested on Debian & Fedora).
Includes configs for sway, waybar, wofi, wlogout, Neovim, ranger, kitty, GTK (3/4), udiskie, systemd --user services, and handy bin scripts.
.
├── bin/ # helper scripts (see below)
├── gtk/ # GTK 3/4 + environment.d
├── install-arch-packages.sh # Arch/Endeavour/Manjaro bootstrap
├── install-debian-packages.sh # Debian/Ubuntu bootstrap
├── install-fedora-packages.sh # Fedora bootstrap
├── kitty/ # kitty terminal
├── lidm-system/etc/lidm.ini # (optional) LIDM TTY/DM theme (system-wide)
├── nvim/ # Neovim (cmp, autopairs, my colors)
├── ranger/ # ranger config (nvim as editor, devicons, rifle)
├── screenshots/ # screenshots used above
├── sway/ # Sway WM (keybinds, autostart, lock, etc.)
├── systemd/ # user units (cliphist, power sounds, etc.)
├── udiskie/ # automount + notifications
├── waybar/ # waybar modules + style
├── wlogout/ # power menu (orange theme)
├── wofi/ # app launcher
└── zsh/ # .zshrc + powerlevel10k- Unified color scheme (dark gray base, orange
#df970daccents; normal mode orange, visual pink, insert green in Neovim). - Sway: sensible keybinds (Mod=Super), Wofi launcher, Waybar, lock, screenshots (grim/slurp/swappy), power menu.
- Waybar: compact layout, orange accent under focused workspace.
- Wlogout: custom layout with extra entries (firmware, sway reload, waybar restart, audio restart) & orange hover.
- Neovim: minimal but comfy — completion (nvim-cmp), snippets (LuaSnip), autopairs, custom palette.
- Ranger: opens text/code in
nvim, with handy mappings and devicons support. - Systemd --user: clipboard history (cliphist), plug/unplug & low-battery sound hooks, power profile autoswitch.
- bin/ scripts: quick clipboard picker, cheatsheet launcher, clipboard watchers, power sounds.
See also:
SECURITY.mdfor safety/OPSEC notes before publishing.
Make sure you have git and stow:
# Arch
sudo pacman -S --needed git stow
# Debian/Ubuntu
sudo apt update && sudo apt install -y git stow
# Fedora
sudo dnf install -y git stowmkdir -p ~/Repositories
cd ~/Repositories
git clone https://github.com/timkicker/dotfiles.git
cd dotfilesPick the script for your distro:
# Arch / Endeavour / Manjaro
chmod +x install-arch-packages.sh && ./install-arch-packages.sh
# Debian / Ubuntu
chmod +x install-debian-packages.sh && ./install-debian-packages.sh
# Fedora
chmod +x install-fedora-packages.sh && ./install-fedora-packages.shThis creates symlinks from $HOME to this repo (idempotent & reversible).
stow -vt "$HOME" sway waybar wofi wlogout nvim ranger zsh kitty gtk udiskie systemd binIf you get conflicts: either move/rename old files first or (advanced) adopt them:
# Danger zone: converts existing files into symlinks pointing back here
stow --adopt -vt "$HOME" sway waybar wofi wlogout nvim ranger zsh kitty gtk udiskie systemd bin
git status # review changes; commit if OKsystemctl --user daemon-reload
systemctl --user enable --now cliphist.service power-sound.service ppd-autoswitch.service sound-events.service usb-sound.service
# (services only start if their binaries/configs exist)This one is system-wide. Copy manually:
sudo cp -a lidm-system/etc/lidm.ini /etc/lidm.ini- Sway:
swaymsg reload(or log out/in) - Waybar: it is auto-started by Sway; or
pkill -x waybar; waybar & - Verify: configs are symlinked into
$HOME(ls -l ~/.config/...)
- Mod (Super) key bindings for focus/move, launcher (
wofi), terminal (kitty), screenshots (grim/slurp/swappy), lock (swaylock), and power menu (wlogout). - Autostarts: waybar, wallpaper restore, kanshi, nm-applet, udiskie, etc.
- Modules: workspaces, window, audio, network, power-profile, CPU/RAM/temp, backlight, keyboard-state, battery, clock, tray, power button.
- Styling via
waybar/style.css— orange accent#df970dfor focus/alerts.
- App launcher with my dark theme; Flatpaks are picked up via
.desktopfiles.
- Orange hover/focus; includes extra entries: firmware setup, sway reload, waybar restart, audio restart.
- Completion (
nvim-cmp), snippets (LuaSnip), autopairs. - Mode colors: Normal=orange, Visual=pink, Insert=green; dark gray background.
- Opens text/code with
nvim(rifle rules). - Cheats: press
eto edit,Sfor shell,Rreload,yy/ddto copy/move, etc.
cheatsheets-rofi— pick a file from~/Documents/Cheatsheetsvia rofi/wofi and open in$EDITOR(defaultnvim) inkitty.clip-pick— fuzzy pick from cliphist history via rofi/wofi.cliphist-watch.sh— background clipboard watchers for text/image & primary selection.power-sound-monitor— plays sounds on power plug/unplug & low battery.
Bind examples (in ~/.config/sway/config):
bindsym $mod+h exec ~/.local/bin/cheatsheets-rofi
bindsym $mod+c exec ~/.local/bin/clip-pick- Pull latest changes:
cd ~/Repositories/dotfiles
git pull
swaymsg reload # or re-login- Unstow (remove symlinks) for one module or all:
stow -Dt "$HOME" sway waybar wofi wlogout nvim ranger zsh kitty gtk udiskie systemd bin- Add new dotfiles: create the same path inside this repo (e.g.
foo/.config/foo/config), thenstow -vt "$HOME" fooand commit.
- Stow conflicts: move existing files away or use
stow --adoptcarefully (then commit the adopted files). - User services don’t start:
systemctl --user status <name>.service -l, check that binaries exist and paths in unit files are correct;systemctl --user daemon-reloadafter changes. - Flatpak apps missing in launcher: ensure
~/.local/share/flatpak/exports/shareand/var/lib/flatpak/exports/shareare inXDG_DATA_DIRS(seegtk/.config/environment.d/90-flatpak.conf).
Read SECURITY.md. TL;DR: keep secrets out of dotfiles, review .gitignore, and consider templating sensitive values.