- QML 58.7%
- Lua 16.3%
- Shell 12.6%
- Python 12.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| agents | ||
| alacritty | ||
| arch | ||
| betterlock | ||
| bin | ||
| eid | ||
| fastfetch | ||
| fish | ||
| fontconfig | ||
| fuzzel | ||
| git | ||
| hosts | ||
| htop | ||
| hypr | ||
| logind | ||
| mako | ||
| quickshell/betterbar | ||
| swaylock | ||
| udev | ||
| vscode | ||
| xdg | ||
| README.md | ||
| screenshot1.jpg | ||
dotfiles
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).
