No description
  • QML 58.7%
  • Lua 16.3%
  • Shell 12.6%
  • Python 12.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-08 13:56:30 +02:00
agents quadlet-cicd: generic skill for rootless quadlet deploys 2026-10-08 13:56:30 +02:00
alacritty Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
arch docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
betterlock Drop em dashes to match the AGENTS.md writing rule 2026-08-29 12:18:22 +02:00
bin docs(hypr): note Hyprland disconnects duplicate lock clients 2026-09-03 18:01:16 +02:00
eid docs: eID manual 2026-09-25 00:41:37 +02:00
fastfetch Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
fish feat(fish): pass -H to nnn (show hidden files) 2026-09-25 00:42:06 +02:00
fontconfig fix(fontconfig): stop the optical-size rules overriding requested fonts 2026-08-31 12:16:15 +02:00
fuzzel docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
git docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
hosts hypr: let a host opt out of the idle lock, and do so on the desktop 2026-08-29 15:51:30 +02:00
htop docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
hypr docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
logind Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
mako Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
quickshell/betterbar feat(quickshell): show stream and sink sample rate and bit depth 2026-09-25 00:47:05 +02:00
swaylock Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
udev quickshell: read the ROG headset battery, and fix the mouse's device type 2026-08-29 13:52:58 +02:00
vscode docs: clean up AI clutter 2026-09-21 16:11:26 +02:00
xdg Take in the laptop's configs, and the hypr + quickshell rice 2026-08-28 23:48:58 +02:00
README.md feat(vscode): add vscode config 2026-08-30 11:09:45 +02:00
screenshot1.jpg docs: add screenshot the the readme 2026-08-29 15:07:43 +02:00

dotfiles

screenshot

Per-tool directories mirroring their target paths under $HOME. Configs are symlinked into place, not copied, so an edit here is live everywhere:

ln -s ~/Projekty/dotfiles/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml
ln -s ~/Projekty/dotfiles/hypr/hyprland.lua        ~/.config/hypr/hyprland.lua
ln -s ~/Projekty/dotfiles/quickshell/betterbar     ~/.config/quickshell/betterbar
ln -s ~/Projekty/dotfiles/bin/emoji-picker         ~/.local/bin/emoji-picker
ln -sfn ~/Projekty/dotfiles/vscode/settings.json "$HOME/.config/Code - OSS/User/settings.json"

Two of those targets are per-machine rather than shared, and pick a role out of hosts/:

ln -sfn ~/Projekty/dotfiles/hosts/desktop/monitors.lua ~/.config/hypr/host.lua
ln -sfn ~/Projekty/dotfiles/hosts/desktop/sway.conf    ~/.config/sway/host.conf

Which displays exist is the only thing that genuinely differs between machines, so it is the only thing kept out of the shared configs. Everything else, the palette, the keymap, the window rules, the bar, is identical everywhere and there is no per-machine branch to merge. See hosts/README.md for the roles, the data contract and what is detected at runtime instead.

hypr/ (Hyprland, native Lua config) and quickshell/ (the QML bar) live here. The Rust workspace they call into, betterbar (the sway bar) and betterlock (the ext-session-lock locker), is a separate repo, built with cargo build --release.

Essential packages

# session: compositor, bar, launcher, notifications, wallpaper, idle, lock
pacman -S hyprland xorg-xwayland xdg-desktop-portal-hyprland quickshell \
          alacritty fuzzel mako swaybg swayidle swaylock grim flameshot \
          swayfx kanshi                      # sway fallback session; kanshi only where a dock comes and goes

# audio, bluetooth, network, devices, media keys
pacman -S pipewire pipewire-pulse pipewire-alsa wireplumber pavucontrol playerctl \
          bluez bluez-utils blueman udiskie udisks2 upower brightnessctl \
          iw iwd wl-clipboard wtype

# fonts: SF Pro is the UI face, the rest are fallbacks the fontconfig rules name
pacman -S ttf-nerd-fonts-symbols otf-font-awesome noto-fonts-cjk ttf-dejavu \
          gsfonts inter-font cantarell-fonts

# shell and CLI
pacman -S fish git git-credential-oauth gnome-keyring libsecret github-cli \
          htop fastfetch nnn less man-db nano wget 7zip pacman-contrib \
          zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting

# editor: Code - OSS, extensions come from Open VSX, see vscode/README.md
pacman -S code

# remote access
pacman -S openssh tailscale sshfs

# building the betterbar/betterlock workspace
pacman -S rustup gtk4 gtk4-layer-shell pam clang pipewire base-devel pkgconf

AUR, no helper assumed. Each is git clone https://aur.archlinux.org/<pkg>.git && cd <pkg> && makepkg -Asi:

Package Why
apple-fonts SF Pro Text/Display, the UI typeface. Apple re-uploads the DMGs in place, so run updpkgsums first or makepkg fails its integrity check
ttf-apple-emoji colour emoji matching the rest of the type
apple_cursor the macOS XCursor theme, named by XCURSOR_THEME
bemoji backs bin/emoji-picker
iwgtk Wi-Fi panel the bar opens (iwd only)
oh-my-zsh-git only if the zsh config is used
scenefx0.5 dependency of swayfx

Two fontconfig rules ship disabled in conf.avail and have to be enabled by hand, or emoji and bar glyphs fall back to tofu:

sudo ln -sf /usr/share/fontconfig/conf.avail/75-apple-color-emoji.conf /etc/fonts/conf.d/
sudo ln -sf /usr/share/fontconfig/conf.avail/10-nerd-font-symbols.conf /etc/fonts/conf.d/
fc-cache -r

Enable per machine: systemctl enable --now bluetooth tailscaled and systemctl --user enable --now pipewire pipewire-pulse wireplumber.

betterlock additionally needs /etc/pam.d/betterlock and its themes in /usr/share/betterlock/themes; see that repo's README.

Wireless peripherals whose charge the bar reads over a vendor HID channel need a udev rule before their /dev/hidraw* node is reachable, and the rules that openlogi installs for Logitech hardware need a reload they do not get on install; see udev/README.md.

Runtime assets that are deliberately untracked: ~/.local/share/backgrounds/ (wallpaper.jpg, lockscreen.jpg).