Commit Graph

81 Commits

Author SHA1 Message Date
funman300 a812715e46 docs: spec for volume change notification
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 10:36:47 -07:00
funman300 0de20dcd12 power-profile: signal fan widget on profile change
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:55:54 -07:00
funman300 841ee432d6 docs: implementation plan for power-profile fan-trigger
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:54:44 -07:00
funman300 5f00fdc2be docs: spec for power-profile→fan sync trigger
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:52:28 -07:00
funman300 096ac3f76a powermenu: route Sleep through suspend-then-hibernate
Aligns the third sleep path (power menu) with the lid handler and
the swayidle 30-min timer — all three now suspend immediately and
hibernate after HibernateDelaySec (30 min).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:30:32 -07:00
funman300 de657685db docs: document one-time hibernation enablement
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:24:50 -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 fdcec3dd7d logind+sleep: track lid hibernate config; deploy via install.sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:19:51 -07:00
funman300 e3a6986f81 docs: align lid-hibernate spec with PARTUUID-based resume
Spec said `findmnt -no UUID /` and `resume=UUID=` but the script
correctly uses PARTUUID throughout (matches the system's existing
root=PARTUUID= convention).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:18:25 -07:00
funman300 126b03ad26 scripts: guard enable-hibernation against empty root PARTUUID
If `findmnt -no PARTUUID /` returns nothing (root on LVM, no GPT,
unusual mount state) the script would silently write a broken
resume=PARTUUID= line to /etc/kernel/cmdline. Bail with an error
message instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:18:25 -07:00
funman300 86cfcb0da5 scripts: add enable-hibernation.sh (one-time bootstrap)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:08:28 -07:00
funman300 4e69e155d7 docs: implementation plan for lid-close hibernate
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:05:26 -07:00
funman300 d2e9b47584 docs: spec for lid-close hibernate (suspend-then-hibernate)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 16:59:23 -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 7a5a276efd docs: track implementation plans for fan-profile auto and flameshot
Both plans were generated during their respective implementation
runs but never committed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 23:18:31 -07:00
funman300 4775c16bb4 docs: fix table alignment after flameshot rename
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 23:18:31 -07:00
funman300 5995139b44 docs: update screenshot tool reference to flameshot
The "Tooling" tables in README.md and ARCHITECTURE.md still listed
grim + slurp after the flameshot swap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 23:15:16 -07:00
funman300 d9f4538ea7 screenshot: remove old grim/slurp/wofi pipeline (replaced by flameshot)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 23:11:20 -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 4db0d690a9 install: generate flameshot.ini with idempotent guard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 23:04:04 -07:00
funman300 caa34f2fd9 packages: add flameshot 2026-05-05 22:56:58 -07:00
funman300 c44ab1e266 docs: spec for flameshot screenshot tool swap
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 22:52:19 -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 370b4aa096 fan-profile: drop redundant 2>/dev/null on mapping function call
map_profile_to_strategy never writes to stderr — the suppression was
silencing nothing real and would mislead a future reader.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 11:33:50 -07:00
funman300 9ff1190549 fan-profile: render auto mode and reconcile fw-fanctrl on poll
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 11:29:56 -07:00
funman300 cc164dfa50 fan-profile: route 'auto' menu choice through state file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 11:24:58 -07:00
funman300 b04357de87 fan-profile: add state path and profile→strategy mapping (unused yet)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 11:05:14 -07:00
funman300 ef4d8cb44d docs: spec for fan-profile auto mode
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:58:54 -07:00
funman300 d4daad2071 waybar: reformat config.jsonc (editor auto-format)
Trailing commas added throughout and modules-right expanded to one
key per line. Semantically identical — waybar's JSONC parser accepts
trailing commas.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:53:46 -07:00
funman300 c27f72a8a8 packages: add starship; swap swww for awww
starship is required by fish/config.fish (starship init fish | source)
but was missing — fresh installs would have a broken shell prompt.

swww was listed but the actually-installed wallpaper daemon is awww
(matching the niri/config.kdl change in the previous commit).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:53:46 -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 6372695b16 remove orphan files: autostart.sh and tracked mako/config
scripts/autostart.sh was never symlinked or referenced — niri's
spawn-at-startup directives cover everything it launched.

mako/config is gitignored (install.sh generates it from
theme/colors.json) but was still tracked from the initial commit.
The stale ~/.config/mako/config symlink that pointed at the repo
caused install.sh's writes to land back in the repo. Removed both
so install.sh now correctly produces a real generated file in
~/.config/mako/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:53:46 -07:00
funman300 c21a2834b7 revert tray drawer feature and remove mouse-battery module
The tray drawer added complexity (drawer config, custom chevron module,
state-feedback CSS) for what amounts to a small visual refinement.
Removed in favour of the original always-visible tray. The mouse-battery
indicator was also removed from the bar.

Deletes:
- waybar/mouse-battery.sh + symlink + install.sh entry
- group/tray-drawer + custom/mouse-battery blocks in config.jsonc
- #custom-tray-arrow rules from style.css
- docs/superpowers/{specs,plans} for the drawer feature

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:41:00 -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 1305b1cda1 docs: sync tray drawer plan with shipped color-shift implementation
Plan was originally written assuming `transform: rotate` would work
in GTK 3 CSS; it doesn't. Spec was already updated in 1646dfc; this
brings the plan in line so historical readers see the same approach
across spec, plan, and code.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:35:57 -07:00
funman300 67fbea93a4 waybar: drop unused children-class from tray drawer
No CSS rule targets .tray-drawer-child — speculative key with no
consumer. YAGNI cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:30:35 -07:00
funman300 1646dfcd90 waybar: drop unsupported CSS transform from tray drawer arrow
GTK 3 CSS (used by waybar) treats `transform` as a fatal parse error,
so the rotation approach killed waybar entirely. Use a color shift
from @tn-fg-muted to @tn-fg as the expanded-state feedback instead.
Matches the existing style.css convention (battery/cpu/temperature
states all use color shifts, not transforms).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:29:58 -07:00
funman300 8b35df2989 waybar: style tray drawer chevron with rotation feedback
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 21:27:00 -07:00
funman300 51353cecd0 waybar: collapse tray icons behind a click-to-reveal drawer
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:22:48 -07:00
funman300 17abe4651e waybar: switch clock display to 12hr format
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:22:48 -07:00
funman300 412034ea9f docs: spec for waybar tray drawer (collapsible icons)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 21:14:13 -07:00
funman300 7ab5116e5d waybar: work around DST bug in built-in clock module
waybar 0.15.0's clock module reads PST instead of PDT, showing time
an hour behind. Replace with custom/exec calling date directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 10:18:55 -07:00
funman300 a210977a0e xdg: add discord scheme handler for vesktop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 11:38:52 -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 d923cfb5cf screenshot: fix action separator and add Pictures dir guard 2026-04-28 11:28:50 -07:00
funman300 b2c2f2d394 screenshot: add post-capture notification and wofi action picker 2026-04-28 11:26:56 -07:00
funman300 a8650c2c86 packages: add satty and swappy 2026-04-28 11:25:35 -07:00
funman300 a6ed78846b docs: add interactive screenshot implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 11:24:33 -07:00
funman300 5639219d9f docs: add interactive screenshot design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 11:22:51 -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