Commits
pinentry-auto uses pinentry-tty when a TTY is available, falls back to
pinentry-rofi otherwise. Set once in rbw config so the agent stays
unlocked across calls (changing pinentry config restarts the agent,
which was dropping the unlocked state).
HedgeDoc was OOMing at 6GB due to a Node.js memory leak.
- MemoryMax=1G: systemd kills and restarts if it exceeds 1GB
- NODE_OPTIONS --max-old-space-size=512: limits V8 heap
- Restart=always: ensures it comes back after OOM kills
Remove separate games user. Add hidraw udev rule for
gamepad support in Wine/Proton.
- mod+w: flatten all workspace windows into tabbed layout
- mod+Tab: cycle focus through leaf windows in tree order
- Remove split bindings (mod+b/v) to avoid accidental sub-containers
- Remove autotiling (replaced by explicit layout control)
Teaches the agent how to:
- Use ghidra-analyzeHeadless for static analysis and decompilation
- Write custom Ghidra scripts for targeted analysis
- Use GDB in batch mode to debug running processes
- Combine both for full reverse engineering workflows
Create window with first tab URL directly instead of creating
a blank window and trying to clean up the new tab afterwards.
- Auto-joins rooms when invited
- Detects IMDb and TMDB links, requests media via Jellyseerr
- Resolves IMDb IDs through Radarr/Sonarr
- Checks if media already exists and replies with direct flax.lassul.us link
- Webhook listener for Radarr/Sonarr download notifications
- Tracks requests and notifies rooms when downloads complete
- Uses LoadCredential for secrets (matrix token, API keys)
- Daemon: only tracks workspace/directory, emits events, persists tabs
- Remove on_create/on_enter/on_leave hooks, tmux management, restore flag
- Firefox extension: saves tabs to ~/workspaces/<name>.json via daemon
- Firefox extension: anchor window keeps Firefox alive, hidden in scratchpad
- Daemon registers sway for_window rule before Firefox starts
- Firefox service: Restart=always, starts after workspace-manager
- Native host: passes tab save/load through daemon (single writer)
- Workspace menu: simplified to restore tabs, close, edit, delete
- Remove workspace-on-new.sh (no longer needed)
- NixOS module: only directory option remains
Adapted to upstream rename in NixOS/nixpkgs#475836.
- Add workspace-menu (mod4+space): save layout, restore, close, edit, delete
- Add workspace-on-new: prompt to restore or start fresh on new workspace
- Pass restore flag through daemon -> native host -> Firefox extension
- Skip prompt for workspaces that already have windows
- Move NixOS module from 3modules/ to tools/ as wrapperModule
- Declare flake.wrapperModules option for multi-module merging
- swayidle was calling plain 'systemctl suspend' instead of suspend-then-hibernate
- add explicit SuspendMode/SuspendState to sleep.conf
- Add amdgpu.dcdebugmask=0x10 to prevent GPU hang when gaming with external display
- Add configurationLimit=10 to prevent /boot from filling up
muchsync writes tags directly to the xapian database, bypassing
notmuch's synchronize_flags. This means read/unread status from
mutt never gets reflected in Maildir filenames, so Dovecot (IMAP)
still shows messages as unread.
Add a systemd path unit that watches the notmuch xapian directory
and renames files to add/remove the S (Seen) flag based on the
notmuch unread tag.
- Auto-joins rooms when invited
- Detects IMDb and TMDB links, requests media via Jellyseerr
- Resolves IMDb IDs through Radarr/Sonarr
- Checks if media already exists and replies with direct flax.lassul.us link
- Webhook listener for Radarr/Sonarr download notifications
- Tracks requests and notifies rooms when downloads complete
- Uses LoadCredential for secrets (matrix token, API keys)
- Daemon: only tracks workspace/directory, emits events, persists tabs
- Remove on_create/on_enter/on_leave hooks, tmux management, restore flag
- Firefox extension: saves tabs to ~/workspaces/<name>.json via daemon
- Firefox extension: anchor window keeps Firefox alive, hidden in scratchpad
- Daemon registers sway for_window rule before Firefox starts
- Firefox service: Restart=always, starts after workspace-manager
- Native host: passes tab save/load through daemon (single writer)
- Workspace menu: simplified to restore tabs, close, edit, delete
- Remove workspace-on-new.sh (no longer needed)
- NixOS module: only directory option remains
- Add workspace-menu (mod4+space): save layout, restore, close, edit, delete
- Add workspace-on-new: prompt to restore or start fresh on new workspace
- Pass restore flag through daemon -> native host -> Firefox extension
- Skip prompt for workspaces that already have windows
- Move NixOS module from 3modules/ to tools/ as wrapperModule
- Declare flake.wrapperModules option for multi-module merging
muchsync writes tags directly to the xapian database, bypassing
notmuch's synchronize_flags. This means read/unread status from
mutt never gets reflected in Maildir filenames, so Dovecot (IMAP)
still shows messages as unread.
Add a systemd path unit that watches the notmuch xapian directory
and renames files to add/remove the S (Seen) flag based on the
notmuch unread tag.