aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--todo.org55
1 files changed, 55 insertions, 0 deletions
diff --git a/todo.org b/todo.org
index c4760a9..481e6fe 100644
--- a/todo.org
+++ b/todo.org
@@ -106,6 +106,61 @@ A custom waybar module providing three time-keeping functions, surfaced in the b
Implementation notes (to flesh out when picked up): waybar =custom= module(s) with =exec= polling or a persistent =exec= script emitting JSON; click actions to start/pause/reset; a small state file under =~/.local/state= or =~/.local/var=. Lives in the hyprland tier (=dotfiles/hyprland/.config/waybar/= + a backing script in =hyprland/.local/bin/=). TDD the backing script per testing.md.
+** TODO [#B] Collapsible waybar sides :waybar:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-06-09
+:END:
+Let either side of the waybar collapse horizontally to a minimal base set, toggled by a click. Each collapsible side carries a small triangle / arrowhead pointing toward the screen edge it collapses into (away from center). Clicking it collapses that side to its base set and flips the arrow to point back toward center; clicking again restores the full side. Same shape-changes-with-state idea as the auto-dim indicator.
+
+- *Right-side base set* (proposed): the date/time, optionally plus the systray. Everything else on the right (sysmonitor group, netspeed, pulseaudio, the toggles) hides.
+- *Left-side base set*: TBD (workspaces only, or menu + workspaces).
+
+Implementation notes: waybar has no native per-side collapse, so this is custom. Options to explore: (a) swap between a full and a collapsed waybar config on click via a signal/exec, (b) rewrite the modules array and reload (heavy), (c) a state file the modules read to hide/show a group via CSS. Likely a state file (=$XDG_RUNTIME_DIR=) + per-side toggle scripts + a targeted waybar refresh, mirroring the existing custom-module + signal pattern. Lives in the dotfiles repo (=hyprland/.config/waybar/= + =hyprland/.local/bin/=). TDD the toggle scripts per the dotfiles suite.
+
+** TODO [#B] Network-manager dropdown, nmcli-backed with GPG-stored secrets :waybar:network:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-06-09
+:END:
+Replace the current wifi/network waybar component with a self-contained network manager driving nmcli directly (no =nmtui= dependency). Same look as the existing indicator; clicking it drops down the management interface (design open, keep it minimalistic).
+
+Core functionality:
+- Add / edit / remove connections.
+- List saved connections by SSID, ordered by recency (most-recently-used first); select one to switch to it.
+- Recognize a wired/ethernet connection even when plugged in after the session started, and allow selecting it at any time. Switch freely: ethernet↔wifi, wifi↔wifi.
+- Match all current functionality of the existing wifi/network component (status icon, signal strength, tooltip).
+
+Credential storage:
+- Store connection definitions + passwords in a GPG-encrypted file under =~/.config= (appropriate XDG location), encrypted to Craig's private key.
+- Passphrase cadence configurable: decrypt once per session, once per hour (via gpg-agent cache TTL), or never (plaintext / stays decrypted). *Default is unencrypted* — encryption is opt-in.
+
+Design / open questions (propose before building):
+- Dropdown UI tech: a GTK layer-shell panel (like pocketbook), a fuzzel/rofi-style menu, or a waybar-native expanding group.
+- Relationship to NetworkManager's own store (=/etc/NetworkManager/system-connections=, root-only): does the GPG store supplement or replace it, and how do they stay in sync.
+- Whether to keep the existing =custom/netspeed= throughput readout alongside the new SSID/status indicator.
+
+Implementation notes: backing scripts in the dotfiles repo (hyprland tier); nmcli for every NM op (device status, con up/down, add/modify/delete, wifi rescan/list). TDD the nmcli-wrapper logic with a fake nmcli on PATH. Sizable — worth a =docs/design/= doc before implementation.
+
+** TODO [#B] Desktop-settings dropdown panel :waybar:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-06-09
+:END:
+One waybar dropdown gathering the desktop toggles and sliders into a single settings panel, opened from a gear/settings glyph on the bar. Incorporate:
+- *Auto-dim* toggle (the =custom/dim= feature just shipped — fold in here, or keep the standalone indicator and mirror it).
+- *Brightness* slider (backlight, via brightnessctl).
+- *Keyboard-backlight* brightness slider (brightnessctl on the kbd_backlight class).
+- *Mouse* enable/disable toggle — shown only when a mouse is connected.
+- *Trackpad* enable/disable toggle — shown only when a trackpad is connected (mirror =toggle-touchpad= / =touchpad-auto=).
+- *Idle inhibitor* (the existing =idle_inhibitor= module).
+- *Airplane mode* (the existing =airplane-mode= toggle; laptop-only).
+
+The conditional rows (mouse, trackpad, airplane) appear only when their hardware/context applies — reuse the laptop/device detection the airplane and touchpad indicators already do.
+
+Design / open questions (propose before building):
+- Panel tech: sliders need a real toolkit (waybar can't host a slider), so a GTK4 + gtk4-layer-shell app like pocketbook is the likely shape.
+- Which existing standalone bar modules (dim, touchpad, airplane, idle_inhibitor) collapse INTO this panel vs. stay on the bar as quick-access indicators. Craig's call.
+
+Implementation notes: a small GTK layer-shell app (mirror pocketbook's structure: src-layout Python package, pytest, Makefile) talking to brightnessctl / hyprctl / the touchpad + airplane helpers. Lives in the dotfiles repo or in-tree like pocketbook. TDD the backing toggle/slider logic. Sizable — worth a design doc first.
+
** TODO [#B] Separate mpd playlist_directory from music_directory :mpd:music:quick:
:PROPERTIES:
:LAST_REVIEWED: 2026-06-09