systemd user environment persists across login sessions, so
XDG_SESSION_TYPE can be stale. Proactively set a custom variable
on each session start so ConditionEnvironment checks are reliable.
Use it for xsettingsd and random-background (X11-only services).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set the autoUpgrade flake reference globally in configuration.nix so
machines only need to opt in with system.autoUpgrade.enable.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GTK's menuAttachToWidget makes popup menus CSS descendants of the tray
widget, so .outer-pad.sni-tray * (specificity 0,2,0) was bleeding light
tray text colors into menu items. Fix by using the same parent selectors
with menu descendant types (.outer-pad.sni-tray menu menuitem *) for
specificity 0,2,2+ that definitively overrides the tray color rule.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tangled org-config now includes the org-window-habit use-package
block (added in efc50ec1) which uses elpaca-style :ensure recipes.
Standard use-package cannot parse these. Override the normalizer to
accept and ignore :ensure since all packages are provided via Nix.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Wrap network widget with withNmAppletMenu for click-to-open menu
- Use withLogLevels hook instead of manual enableLogger
- Remove unused aeson, directory, yaml dependencies
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use accent color (#f1b2b2) tint for the active workspace pill instead of
a white outline, so it's visually distinct from the active window
highlight. Add white border and background to the active window icon
container within workspaces. Also add nerd font family to mpris icon.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wrap the mpris grid in a box with a nerd font music note icon (U+F075A)
so it follows the same icon+label pattern as other widgets.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Increase global font size from 9pt to 11pt for better readability.
Add padding-right on icon-label icon elements to prevent nerd font
glyphs from overlapping adjacent text. Consolidate battery CSS
selectors to match the new single-widget structure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the separate batteryIconWidget + batteryTextWidget with a single
batteryWidget using batteryTextIconNew paired with textBatteryNew via
buildIconLabelBox. Switch diskUsageWidget from diskUsageLabelNew to
diskUsageNew which includes a nerd font disk icon.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the @import url() requirement, per-widget color variables,
workspace label positioning via padding (not margin, which GTK
overlays ignore), asymmetric workspace padding, active workspace
outline targeting, and bar border-radius.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Target .workspaces .active .outer-pad with an inset box-shadow to
highlight the currently focused workspace pill.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reduce bar alpha from 0.55 to 0.35 for more transparency and add
6px border-radius to match widget squircles.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Asymmetric inner-pad padding (10px left, 3px right) so workspace
number labels have room on the left without extra space on the right.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use padding on the workspace-label (not margin on the overlay-box,
which GTK overlays ignore) to inset the number into the pill area.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix CSS import syntax (bare `import` -> `@import url()`) so
@define-color variables from theme.css are available. Define
per-widget background/foreground/border colors and add CSS rules
for clock, disk-usage, sni-tray, battery, and backlight widgets.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add desktop-entry icon lookup to the rofi window picker scripts,
matching the XMonad setup's icon support. A shared helper script
(window-icon-map.sh) builds a class→icon mapping from .desktop files
and each picker uses rofi's dmenu icon protocol (\0icon\x1f).
Also replaces the X11-only "rofi -show window" with a native
Hyprland window picker using hyprctl clients.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The taffybar audio widget requires PulseAudio's DBus interface
(module-dbus-protocol) to read volume/mute state. Without it the
widget shows "n/a".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove detectBackendRobust and discovery helpers from taffybar.hs now
that the equivalent logic lives in System.Taffybar.Context.Backend
(taffybar PR #625). Update submodule and flake.lock accordingly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shell script that crops the top bar region from a screenshot using
ffmpeg, auto-detecting height from Hyprland's reserved area.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire up hyprlandBuildButtonController and
hyprlandBuildCustomOverlayController so workspace buttons are
clickable and the overlay layout is explicitly configured.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of relying solely on environment variables (which can be stale
from systemd --user), actively discover wayland sockets and Hyprland
instance signatures from XDG_RUNTIME_DIR. Fix up the process
environment so taffybar's internal backend detection agrees, and also
correct XDG_SESSION_TYPE in both directions. Add INFO-level logging
for backend selection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract color variables into a dedicated theme.css and import it from
the main stylesheet. Remove the bar gradient in favor of a flat
background, adjust workspace overlay-box margins, add SNI tray
double-padding fix, and clean up whitespace.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both hosts are long dead. Removes their CSS files, taffybar host
config entries, and synergy aliases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The org-config macro reads preface/custom/config/bind .el files from
user-emacs-directory at macro-expansion time. In CI this defaulted to
~/.emacs.d/ where those files don't exist, causing the build to fail.
Point it at the repo's emacs.d directory instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The org-window-habit use-package block had no :tangle header, so it
was never written to org-config-config.el. This meant the mode was
never activated and the advice on org-habit-parse-todo was never
installed, causing errors for habits without a scheduled repeater.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The pgtk Emacs build lacks HAVE_TEXT_CONVERSION so
overriding-text-conversion-style is void, but transient's .elc
compiled on X11 has static-if expanded to reference it directly.
Define the variable before transient loads when it's missing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>