32 Commits

Author SHA1 Message Date
funman300 996f11d333 drop snixembed: waybar provides its own SNI watcher
snixembed registered as the StatusNotifierWatcher but its
RegisterStatusNotifierItem implementation didn't accept SNI publishers
— Telegram, Vesktop, blueman-tray, and a libayatana-appindicator test
script all failed to register, leaving waybar's tray empty.

Removing snixembed lets waybar's tray module register itself as both
host AND watcher (when no other watcher exists). After this change,
all three SNI items registered immediately.

Trade-off: legacy XEmbed-based Wine tray icons no longer bridge to
SNI. The Wine System Tray host window rule is kept (still hides the
empty window off-screen) and the comment updated.

- niri/config.kdl: drop snixembed spawn-at-startup; update Wine rule
- packages.txt: drop snixembed (no longer used)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 14:10:44 -07:00
funman300 be1fa77c6e niri: propagate XDG_CURRENT_DESKTOP to systemd-user and dbus
The niri 'environment' block only affects processes niri spawns
directly. Apps launched via dbus activation or systemd-user (most
.desktop launches go through one of these) get systemd-user's env,
which still has bare 'niri' — set by niri-session BEFORE niri itself
runs.

Adding a one-shot spawn-at-startup that re-imports XDG_CURRENT_DESKTOP
from niri's env into both systemd-user and dbus-activation, after
niri starts. Future dbus-activated apps will see niri:GNOME.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:35:23 -07:00
funman300 be1d406b26 niri: set XDG_CURRENT_DESKTOP=niri:GNOME for tray support
Many tray libraries (Electron's, Qt's StatusNotifier) gate icon
creation on a recognised XDG_CURRENT_DESKTOP value. Bare "niri"
makes them silently skip tray creation. Adding ":GNOME" as a
fallback identifier keeps niri primary while letting apps create
their tray icons.

Vesktop and Telegram are confirmed to want tray icons but were
not creating them; this fix unblocks both.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:23:42 -07:00
funman300 4303562324 remove nm-applet and blueman-applet autostart
Both daemons were running but not registering SNI items on niri/Wayland,
leaving the waybar tray slot permanently empty. Network is already
accessible via the waybar network module (left-click → networkmanager_dmenu).
Bluetooth GUI (blueman-manager) is still available on demand; only the
applet is dropped.

Tray module stays configured so Electron apps (Discord/Vesktop, Steam,
etc.) still get a tray slot when they're running.

- niri/config.kdl: drop nm-applet and blueman-applet spawn-at-startup
- packages.txt: drop network-manager-applet (nothing else uses it);
  keep blueman package for blueman-manager GUI

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:19:07 -07:00
funman300 d1d3c7f0e9 niri: route volume keys through notification wrapper
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 12:17:31 -07:00
funman300 3eb101771e niri: route swayidle 30-min timeout through suspend-then-hibernate
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:22:53 -07:00
funman300 85ef13492e screenshot: revert flameshot, use grim+slurp+satty pipeline
Flameshot's portal-based capture path on niri triggers an
xdg-desktop-portal access prompt on every invocation, blocking
the screenshot itself. grim talks to wlr-screencopy directly and
never touches the portal, so no prompt.

Pipeline: slurp (region) → grim (capture) → satty (annotate +
copy + save). satty replaces the wofi action menu by being the
post-capture surface itself.

- scripts/screenshot.sh added
- install.sh symlinks it; flameshot.ini generator removed
- niri Mod+Print → "screenshot"
- packages.txt drops flameshot
- docs tables updated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 10:27:16 -07:00
funman300 004ffe3ec7 niri: bind Mod+Print to flameshot gui
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 23:08:14 -07:00
funman300 07388423a8 niri: float the Thunar file-operation progress dialog
The progress window for copy/move/delete operations is small and
transient — floating it stops it from taking over a column.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:49:55 -07:00
funman300 2b4054b44b niri: fix broken spawn-at-startup commands
- swww-daemon → awww-daemon (swww is not installed; awww 0.12.0-1 is)
- polkit-gnome-authentication-agent-1 → absolute path; the binary
  lives in /usr/lib/polkit-gnome/ which is not on PATH

Both daemons were silently failing to start at every login.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:53:46 -07:00
funman300 2c851c7561 add waybar-restart script and Mod+Shift+B keybind
scripts/waybar-restart.sh: kills waybar, waits for it to exit, then
relaunches detached via setsid. Symlinked into ~/.local/bin and bound
to Mod+Shift+B in niri.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:59:33 -07:00
funman300 b0daea2a73 waybar: fix GTK3 CSS variables, pin timezone, adjust screenshot keybind
- theme/colors.css: replace CSS custom properties (--var) with GTK3
  @define-color — GTK3 CSS parser rejects -- syntax, crashing waybar
- waybar/style.css, wofi/style.css, gtklock/style.css: update var(--x)
  references to @x to match
- waybar/config.jsonc: pin clock timezone to America/Vancouver
- niri/config.kdl: change Print to Mod+Print for screenshot keybind

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 11:38:48 -07:00
funman300 8a087d123f Housekeeping: fix theme SSOT, wire screenshot, remove dead swaylock
- mako/config: generate from theme/colors.json in install.sh instead of
  symlinking a static file — mako is the only tool that can't use CSS
  variables, so colors.json is now the single source of truth for it
- gtklock/config.ini: remove hardcoded /home/alex absolute path for style;
  gtklock falls back to $XDG_CONFIG_HOME/gtklock/style.css by default
- niri: replace inline grim spawn-sh with `spawn "screenshot"` to use the
  existing script (which also copies to clipboard via wl-copy)
- install.sh: add screenshot symlink; mako generation step
- packages.txt: add snixembed (used in niri spawn-at-startup, was missing)
- swaylock/config: delete (replaced by gtklock in previous commit)
- .gitignore: add mako/config (now generated, not tracked)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 12:02:56 -07:00
funman300 79ca9839f6 Add mouse battery widget, Bolt Launcher rule, cursor size; fix theme symlink
- waybar: add custom/mouse-battery module and mouse-battery.sh script
- niri: add Bolt Launcher floating rule; switch RuneLite to floating
- environment.d: set XCURSOR_SIZE=36
- install.sh: add symlinks for theme/colors.css and mouse-battery.sh (fixes @import path)
- .gitignore: exclude nohup.out

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:54:28 -07:00
funman300 8be00bc273 Replace swaylock with gtklock; centralise theme palette
- Replace swaylock with gtklock (username + password form lockscreen)
- Add gtklock/config.ini and gtklock/style.css (Tomorrow Night theme)
- Update niri keybindings and swayidle to invoke gtklock -d
- Update packages.txt: swaylock -> gtklock
- Update install.sh: add AUR helper detection (yay/paru), symlink gtklock configs
- Add theme/colors.css (CSS custom properties) and theme/colors.json
- Update waybar/style.css, wofi/style.css, gtklock/style.css to import shared palette
- Update README.md with project summary and component table
- Add ARCHITECTURE.md and CLAUDE.md
2026-04-24 12:56:58 -07:00
funman300 8c099437a4 niri: add snixembed startup and Wine tray window rule 2026-04-23 10:51:14 -07:00
funman300 299d4269ba niri: add float toggle hotkey, workspace binds, RuneLite window rule 2026-04-23 10:47:49 -07:00
funman300 888f46d791 niri: remove focus ring, add maximize keybind, set gaps to 0 2026-04-23 10:39:13 -07:00
funman300 c7713b3626 niri: remove window borders, keep focus ring 2026-04-23 10:32:38 -07:00
funman300 e39889affb niri: suspend after 30min idle to prevent overheating 2026-04-23 10:21:15 -07:00
funman300 5f7e96f864 modified: niri/config.kdl 2026-04-22 20:52:02 -07:00
funman300 50e274cc20 Fix RuneLite: add xwayland-satellite autostart and DISPLAY=:0 env var 2026-04-22 16:37:15 -07:00
funman300 cf85423fa3 Add window rules for gaming/RuneLite, fix Java Wayland blank window 2026-04-22 16:32:37 -07:00
funman300 fe3df936dd Add starship prompt, swaylock theme, thunar archive plugin, starship packages 2026-04-22 16:32:06 -07:00
funman300 31df897982 Add touchpad input config, XDG portal config, and fix screen sharing 2026-04-22 16:28:38 -07:00
funman300 732da63c5b Fix swayidle KDL syntax (single line) and add wofi style symlink to install.sh 2026-04-22 16:16:37 -07:00
funman300 c6f96bcac8 Add clipboard, idle timeouts, night light, bluetooth, and waybar improvements
- Add cliphist clipboard manager with wofi picker (Mod+Shift+C)
- Add wl-paste watch for clipboard history
- Add swayidle idle timeouts: blank at 5min, lock at 10min
- Add blueman-applet autostart (bluetooth tray)
- Add wlsunset night light for Vancouver (49.2N, 123.1W)
- Add clipboard-picker script and symlink in install.sh
- Waybar: add battery charging format, warning/critical states, tray config
- Waybar CSS: add warning (yellow) and critical (red) battery colors
2026-04-22 16:14:30 -07:00
funman300 50a189f08e Improve portability and add lid close setup
- Replace hardcoded sleep hook with swayidle in niri autostart
- Replace hardcoded dotfiles path in powermenu bind with plain 'powermenu'
- Replace hardcoded wofi style path with XDG path (~/.config/wofi/style.css)
- Update install.sh to symlink powermenu to ~/.local/bin and wofi/style.css
- Switch display manager from GDM to greetd with tuigreet
- Add logind drop-in for lid close: suspend on battery, lock on AC
2026-04-22 16:11:02 -07:00
funman300 44e1dc2eee Add powermenu script and apply Tomorrow Night color theme
- Add scripts/powermenu.sh with logout, restart, sleep, shutdown options
- Create wofi/style.css with Tomorrow Night colors
- Apply Tomorrow Night theme to niri, waybar, mako, alacritty, and wofi
2026-04-22 12:48:03 -07:00
funman300 42c52bd2a6 niri: fix config syntax for niri 25.11 2026-04-22 12:30:14 -07:00
funman300 59a340f69c modified: README.md
modified:   niri/config.kdl
2026-04-22 11:44:21 -07:00
funman300 2c9d9c7c32 Initial Niri + Wayland dotfiles 2026-04-22 11:40:31 -07:00