4.3 KiB
4.3 KiB
Remaining Audit Findings
Items already completed: zsh, starship, git, ghostty, tmux config + scripts.
Sway
Security
- [high] waybar
custom/ssh-loginon-click runspkill -9 -t $(who | awk '{ print $2 }'). Unquoted command substitution causes word-splitting across multiple TTYs. Usepkill -HUPinstead of-9, and quote the substitution or target a specific TTY. - [medium]
80-autostart.confstartsprotonmail-bridge -nas bareexec. Consider systemd user service for proper lifecycle management. - [medium] swayidle timeout of 300s (5 min) is relatively long for an unattended workstation.
- [medium]
swaylock/configlacksshow-failed-attemptsandignore-empty-passwordverification. - [low]
wlsunset -l 46.1 -L 14.5exposes approximate geographic coordinates in public dotfiles.
Idiomacy
- [issue] host.d include is before config.d/* in main sway config. Host files cannot reference
$variablesfrom10-variables.conf. Move host.d include after config.d/*. - [issue]
41-theme-swayfx.confuses SwayFX-specific directives that error on stock sway. Gate or document. - [issue] Volume keybindings mix
pactl(mute toggle) andpamixer(volume up/down). Pick one consistently. Mic mute on F16 also usespactlinstead ofpamixer. - [issue] wob FIFO setup has race condition on sway restart. Consider wob 0.14+
--socketflag or$XDG_RUNTIME_DIR/wob.sockpath. - [issue] swayidle missing
lockevent handler (lock 'swaylock -f').loginctl lock-sessionwon't lock the screen without it. - [issue] No idle inhibitor configured. Fullscreen video will trigger lock after timeout. Options: waybar
idle_inhibitormodule,for_windowrule withinhibit_idle fullscreen, orsway-audio-idle-inhibit.
Waybar
- [issue]
custom/ssh-loginpolls every 1 second. Reduce to 10-30s. - [issue]
custom/ssh-loginon-click usespkill -9(SIGKILL). Use SIGHUP. - [dead]
custom/powermodule defined but not included in any bar's module list. - [issue]
style.cssreferences@define-colornames (@gray,@background-light,@foreground,@red, etc.) that are not defined in the file. They must come from an external GTK theme. Define them instyle.cssfor self-containment or document the dependency. - [issue] Hardcoded
#1e1e2e(Catppuccin Mocha) in#waybar .moduleconflicts with gruvbox scheme. Leftover from a template. - [note]
cpuon-click hardcodesghostty -e htop(waybar JSONC doesn't support sway variables).
Typos
50-keybind.confline 13:# programs'— trailing apostrophe50-keybind.confline 88:# xf86-brightnes— missing trailing 's'80-autostart.confline 1:# deamon— should be "daemon"
Structure
.gitignore
- [dead]
!alacrittyis tracked but alacritty is no longer used (ghostty replaced it). Remove or keep intentionally. - [issue]
!waybarand!binun-ignore entire directories with no interior filter. Every other program explicitly whitelists files. Tighten to two-level pattern:!waybar waybar/* !waybar/config.jsonc !waybar/style.css - [note]
!ghostty/themes,!sway/config.d,!sway/host.dalso un-ignore whole subdirectories. Intentional for sway (new drop-in files auto-tracked), worth noting for ghostty themes.
bin/ directory
bin/waybar-custom-cider.shis the only script and is waybar-specific. Consider moving towaybar/cider.shand updating the exec path inwaybar/config.jsonc.
SSH preview duplication
zsh/ssh-menudefines_ssh_menu_previewandtmux/tmux-ssherdefines_preview. Same function with cosmetic differences. Extract to a shared script (e.g.bin/ssh-preview) to eliminate drift. Thecommand -v hostguard is only in ssh-menu, not ssher.
Paths
tmux.confhardcodes~/.config/tmux/...in run-shell bindings instead of$XDG_CONFIG_HOME.flameshot.inihardcodes/home/matej/screens— breaks on other usernames/machines.swaylock/configandsway/config.d/20-output.confreference~/.assets/— not XDG, but consistent with each other.
Consistency
- Waybar CSS color variables depend on external GTK theme (see waybar section above).
- Swaylock uses
#000000/#ffffff(black/white) instead of gruvbox. May be intentional for contrast. - Alacritty config is dead weight if no longer used.