Arch Linux dotfiles, managed with dotm.
- WM: Hyprland (via uwsm) + waybar + hyprpaper + hypridle/hyprlock + hyprsunset
- Terminal: kitty + zsh
- Editor: neovim + lazygit
- Files: lf + thunar
- Audio: mpd + ncmpcpp + mpv
- Audio switching: audio-device-switcher (PipeWire sink selection via wpctl + dmenu)
- Bluetooth: bt-audio (connect/disconnect paired BT audio devices via dmenu, auto-switch PipeWire sink)
- Screenshots: swappy (annotation tool)
- Input: fcitx5 + mozc (Japanese)
- Theme: Materia GTK + Kvantum + Papirus icons
- Browser: Firefox (flatpak, arkenfox user.js with overrides)
- Cloud sync: Nextcloud (sandboxed, systemd user service)
- Proxy: sing-box (config download + runner script, per-host URL from secrets)
- Encrypted vault: keys-vault (gocryptfs FBE for
~/keys, passphrase in GNOME Keyring, systemd user service with stale FUSE recovery) - Scripts: ffmpeg_jp (Japanese/English audio extraction + manual track selection), rename_subs (subtitle renaming by episode), cabl (clipboard plumber / search dispatcher via dmenu), wofi-launcher (sandboxed application launcher with icons and usage sorting), dmenu (sandboxed wofi wrapper for dmenu compatibility)
No framework (oh-my-zsh, etc.) — prompt, completions, keybindings are configured manually.
robbyrussell-style prompt with inline git branch + dirty indicator (✗), implemented as a shell function (no plugin).
~/.local/bin is prepended to $PATH via zsh's path array, deduplicated with typeset -U path.
- zsh-autosuggestions — fish-like suggestions
- zsh-syntax-highlighting — command highlighting
- zoxide — smart
cd - fzf — fuzzy finder (
Ctrl-Tfiles,Alt-Cdirs,Ctrl-Rhistory) - direnv — per-directory env
FZF uses fd for file/dir discovery and bat/eza for previews.
- Create age key:
mkdir -p ~/keys/age
age-keygen -o ~/keys/age/dotm.txt- Initialize the vault:
keys-vault init
keys-vault open- Add public key to
.sops.yamland re-encrypt secrets:
# Edit .sops.yaml, add new recipient
sops updatekeys secrets.enc.yaml- Add host data to secrets:
sops secrets.enc.yaml
# Add entries under the relevant application keysgit clone https://github.com/fkzys/dotfiles.git
cd dotfiles
dotm init
dotm applyDuring init, dotm will prompt for feature flags (nvidia, laptop, etc.).
All packages (pacman, AUR, flatpak, gitpkg, pnpm) are managed by dotm via dotm.toml. A bootstrap script (scripts/bootstrap.sh.tmpl) installs the prerequisite tools (aurutils, gitpkg) on new machines before calling dotm apply.
Some configs based on tatsumoto-ren/dotfiles:
.local/bin/cabl.local/bin/dmenu- mpd, ncmpcpp, lf, fontconfig, mpv/input.conf
AGPL-3.0-or-later
