aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/sway
Commit message (Collapse)AuthorAgeFilesLines
* fix(sway): use read-only fuzzel history viewer for Super+Alt+nLibravatar sommerfeld2026-05-131-1/+1
| | | | | | | makoctl menu only acts on currently-visible notifications, not history (mako has no API to re-invoke arbitrary history entries). Replace with a small script that pipes 'makoctl history' through jq and fuzzel, then copies the selected entry to the clipboard for reference.
* fix(sway): use -- separator so makoctl menu stops parsing sh flagsLibravatar sommerfeld2026-05-131-1/+1
|
* fix(sway): extract id from fuzzel line for makoctl menuLibravatar sommerfeld2026-05-131-1/+1
| | | | | | makoctl menu <cmd> expects the command to emit just the notification id, but fuzzel --dmenu echoes the full '<id> <summary>' line. Pipe through cut -d' ' -f1 so mako can act on the selection.
* feat(sway): keybinds to restore and browse mako notification historyLibravatar sommerfeld2026-05-131-0/+2
| | | | | - Super+Ctrl+n: makoctl restore (re-show the most recent dismissed) - Super+Alt+n: makoctl menu fuzzel --dmenu (pick any from history)
* fix(sway): wait for protonmail-bridge IMAP before launching thunderbirdLibravatar sommerfeld2026-05-131-0/+11
| | | | | | | On cold boot Thunderbird would race protonmail-bridge and pop up a 'failed to login to 127.0.0.1' error. Poll 127.0.0.1:1143 (bridge's default IMAP port) for up to 15s before spawning TB. Gives up silently if the bridge doesn't come up.
* refactor(sway): manage waybar via systemd user serviceLibravatar sommerfeld2026-05-131-3/+1
| | | | | | | | Move waybar from sway's inline bar {} block to waybar.service pulled in by sway-session.target. Matches the pattern for mako, swayidle, poweralertd, display-watcher, cliphist. ExecReload sends SIGUSR2 so 'systemctl --user reload waybar' picks up config changes without a restart.
* fix(sway): rebind cliphist to $mod+p ($mod+v is splitv)Libravatar sommerfeld2026-05-131-2/+2
| | | | | $mod+v is sway's default splitv; my cliphist bind was shadowing it and emitting a warning. Move clipboard history to $mod+p / $mod+Shift+p.
* chore(fmt): apply shfmt and prettier formattingLibravatar sommerfeld2026-05-133-20/+20
| | | | | - shfmt -i 2 -ci -s on the four updated shell scripts (tabs → 2 spaces) - prettier --write on KEYBINDS.md and README.md
* feat(sway): bind brightness and ThinkPad XF86 multimedia keysLibravatar sommerfeld2026-05-132-0/+28
| | | | | | | | | | | | | | Install brightnessctl and bind all seven ThinkPad multimedia keys: - XF86MonBrightnessUp/Down → brightnessctl ±5% - XF86AudioMicMute → pactl source mute - XF86Bluetooth → bt-toggle.sh (bluetoothctl + notify-send) - XF86ScreenSaver (Fn+F2) → same as $mod+Shift+s (pause + swaylock) - XF86Sleep → systemctl suspend - XF86WLAN / XF86RFKill → rfkill toggle Note: rfkill may need a passwordless doas rule (permit nopass :wheel cmd rfkill) or group membership to write /dev/rfkill without privileges; not wired speculatively.
* feat(sway): warp pointer to focused containerLibravatar sommerfeld2026-05-131-0/+1
| | | | | | Pairs with focus_follows_mouse to prevent stale-hover focus-steal after keyboard navigation: the cursor jumps into the new focus so subsequent small mouse movements don't bounce focus back to where it used to be.
* feat(sway): inhibit_idle on fullscreen windowsLibravatar sommerfeld2026-05-131-0/+1
| | | | | Any fullscreen window now pauses swayidle's timer. Covers mpv, video calls, fullscreen browser video, etc.
* feat(sway): copy screenshots to clipboardLibravatar sommerfeld2026-05-131-2/+2
| | | | | Pipe grim through tee so Print / Shift+Print save to disk AND copy the PNG to the Wayland clipboard via wl-copy.
* feat(wayland): add cliphist clipboard historyLibravatar sommerfeld2026-05-131-0/+4
| | | | | | Install cliphist and wire two user services (text + image watchers) into sway-session.target. Bind $mod+v to pick an entry via fuzzel and $mod+Shift+v to delete one.
* fix(sway): keep focus on current workspace when stashing tbLibravatar sommerfeld2026-05-131-0/+4
|
* feat(sway): separate thunderbird autostart from super+t launch pathLibravatar sommerfeld2026-05-132-2/+23
| | | | | | | | Splitting the for_window 'move to scratchpad' action into a dedicated autostart helper so that super+t launches TB tiled (not stashed) when TB isn't already running. Previously the for_window rule would stash every new main window, forcing the user to press super+t twice after killing TB manually.
* refactor(sway): stash thunderbird in scratchpad instead of hidden wsLibravatar sommerfeld2026-05-133-42/+23
| | | | | | | | | waybar's sway/workspaces has no ignore-list (that option is hyprland-only), so the _tb workspace always leaked into the bar and into super+tab cycling. Using sway's native scratchpad solves both: the __i3_scratch workspace is filtered automatically. We run 'floating disable' right after 'scratchpad show' so the window lands tiled on the current workspace, preserving the intended UX.
* feat(sway): skip _tb stash when cycling workspaces with super+tabLibravatar sommerfeld2026-05-132-3/+21
|
* fix(sway): use get_workspaces for current ws in tb-toggleLibravatar sommerfeld2026-05-131-5/+3
| | | | | | get_tree's workspace nodes don't carry a .focused field (only con nodes do), so current_ws was empty and the script emitted a malformed swaymsg command. get_workspaces exposes .focused directly on each workspace.
* refactor(sway): make thunderbird toggle tile instead of floatLibravatar sommerfeld2026-05-132-3/+39
| | | | | | | | | | | | | Scratchpad is inherently floating; the user wants the main TB window to tile normally when shown and disappear completely when hidden. Park the main window on a hidden workspace _tb via for_window, then toggle it with a small swaymsg+jq script that moves it between _tb and the currently focused workspace. Child windows (compose, viewer, calendar, prefs) are unaffected and tile wherever they spawn. - Autostart thunderbird so the window exists on login, parked on _tb. - Hide _tb from waybar's workspace list. - Update KEYBINDS.md.
* fix(sway): scope thunderbird scratchpad rule to the main windowLibravatar sommerfeld2026-05-131-2/+2
| | | | | | | | | Matching only on app_id caused every TB window (compose, message viewer, calendar event, settings) to be parked in the scratchpad, leaving them hidden behind the main window. TB's main window title always ends in 'Mozilla Thunderbird'; child windows don't. Narrow both the for_window rule and the Super+t toggle with a title regex so only the main window is managed.
* revert(sway): drop thunderbird autostartLibravatar sommerfeld2026-05-131-1/+0
|
* feat(sway): size thunderbird scratchpad to fill workspaceLibravatar sommerfeld2026-05-131-1/+1
|
* fix(sway): use correct thunderbird app_id (org.mozilla.Thunderbird)Libravatar sommerfeld2026-05-131-2/+2
|
* feat(sway): park thunderbird in scratchpad, toggle with Super+tLibravatar sommerfeld2026-05-131-0/+5
| | | | | | | | Autostart thunderbird on sway launch; window rule parks it in the scratchpad immediately so it runs in the background firing mako notifications. Super+t toggles the window visible/hidden without quitting the app — works around the long-standing lack of native Linux tray support in Thunderbird.
* feat(sway): add Super+z QR mode (w=write, r=read)Libravatar sommerfeld2026-05-131-0/+9
|
* feat(sway): cursor theme + GTK4 dark mode via gsettingsLibravatar sommerfeld2026-05-131-0/+4
| | | | | | | | | | | - seat * xcursor_theme Adwaita 24: announces the cursor via cursor-shape-v1 for Wayland clients and exports XCURSOR_THEME/SIZE to Xwayland, so Xwayland GTK apps no longer fall back to the bitmap X cursor. - exec gsettings color-scheme prefer-dark: GTK4 ignores the settings.ini gtk-application-prefer-dark-theme key (GTK3 only); it reads the gnome color-scheme gsetting. This fixes light-mode GTK4 apps (gnome calculator, nautilus, modern GNOME apps).
* refactor(sway): manage swayidle as a user unit; drop logind overrideLibravatar sommerfeld2026-05-131-7/+0
| | | | | | | | | | | | | - New dot_config/systemd/user/swayidle.service, pulled in by sway-session.target alongside mako/display-watcher/poweralertd. Same lifetime as the rest of the session: starts after graphical-session, restarts on failure, stops on logout. - Drop the swayidle exec from sway config (was unmanaged background process with no restart, no logging hookup). - Revert etc/systemd/logind.conf overrides: swayidle handles idle-lock directly via Wayland ext-idle-notifier, so the logind IdleAction belt-and-suspenders is redundant. Run just etc-reset /etc/systemd/logind.conf on the host to restore pristine.
* fix(sway): swaylock -e (ignore-empty), not -i (which is --image)Libravatar sommerfeld2026-05-131-3/+3
|
* feat(sway): auto-lock on idle and before suspendLibravatar sommerfeld2026-05-131-1/+8
| | | | | | | | | | | - logind: IdleAction=lock, IdleActionSec=5min. systemd emits a lock signal at 5min idle (session becomes locked from logind PoV; swayidle listens and invokes swaylock). - swayidle: lock at 5min, blank display at 6min, lock before sleep. Closes the gap where lid-close or manual suspend would wake to an unlocked session. - swaylock: add -i (--ignore-empty-password) to ignore accidental Enter. - meta/wayland: add swayidle.
* sway: manage mako, poweralertd, display-watcher via systemd user unitsLibravatar sommerfeld2026-04-211-3/+1
| | | | | | | Replace sway exec launches with a sway-session.target that BindsTo graphical-session.target and Wants mako, poweralertd, and a new display-watcher.service. Services now get restart-on-failure, journal integration, and clean shutdown when sway exits.
* sway: auto-toggle display layout on external plug/unplugLibravatar sommerfeld2026-04-212-0/+21
|
* sway: display-toggle re-enables laptop screen when no external presentLibravatar sommerfeld2026-04-211-0/+6
|
* sway: add poweralertd for battery notifications via makoLibravatar sommerfeld2026-04-211-0/+1
|
* fix(rqr): restore zbarcam preview and propagate DISPLAY to XWaylandLibravatar sommerfeld2026-04-211-2/+2
| | | | | | | | | | | zbarcam needs an X11 display for the live camera preview, which sway provides via XWayland. Two changes to make that reliable: - sway/config: add DISPLAY to the systemd/dbus user-environment imports, so anything launched through those paths (not just direct sway execs) can reach XWayland. - rqr: default DISPLAY to :0 (sway's default XWayland socket) when unset, as a belt-and-suspenders fallback.
* style(shell): apply shfmt (-i 2 -ci -s)Libravatar sommerfeld2026-04-211-21/+21
|
* refactor: restructure to chezmoi source stateLibravatar sommerfeld2026-04-212-0/+202
Rename home/ contents to chezmoi naming conventions: - dot_ prefix for dotfiles and dot-dirs - private_dot_ for .gnupg and .ssh directories - private_ for 0600 files (nym.pub) - executable_ for scripts in .local/bin and display-toggle.sh - symlink_ for mimeapps.list symlink