<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nixos-config/machines/enzo/desktop.nix, branch main</title>
<subtitle>my nixos setup</subtitle>
<id>https://git.hwebs.info/nixos-config/atom?h=main</id>
<link rel='self' href='https://git.hwebs.info/nixos-config/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/'/>
<updated>2026-08-03T22:32:56Z</updated>
<entry>
<title>enzo/yambar: add niri + jq to service PATH</title>
<updated>2026-08-03T22:32:56Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-08-03T22:32:56Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=66be8debbf34b82a735b17c09ff400d30d8a48f1'/>
<id>urn:sha1:66be8debbf34b82a735b17c09ff400d30d8a48f1</id>
<content type='text'>
The new yambar niri-workspaces.sh script runs `niri msg --json` piped to
jq, and the workspace on-clicks run `niri msg action focus-workspace`.
yambar spawns these via execvp with no shell, so both binaries must be on
the service PATH alongside the existing libnotify/wireplumber.

Assisted-by: Claude Code:claude-opus-4-8
</content>
</entry>
<entry>
<title>yambar: add notify-send/wpctl to service PATH</title>
<updated>2026-08-03T18:01:21Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-31T21:31:18Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=720e66715a22cf5c278dfaf03da0cb927c8a2c7a'/>
<id>urn:sha1:720e66715a22cf5c278dfaf03da0cb927c8a2c7a</id>
<content type='text'>
yambar runs on-click commands via execvp with no shell, so the binaries
must be on the systemd service PATH. Since the bar moved from a niri spawn
(full login PATH) to a user service (minimal PATH), every on-click failed
with ENOENT. Add libnotify (notify-send) and wireplumber (wpctl).

Assisted-by: Claude Code:claude-opus-4-8
</content>
</entry>
<entry>
<title>desktop: centralize Adwaita cursor theme, fix pointer cursor on kusanagi</title>
<updated>2026-08-01T14:57:40Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-08-01T14:57:40Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=726ef32d2631f15f991591ef6879925e08f442f6'/>
<id>urn:sha1:726ef32d2631f15f991591ef6879925e08f442f6</id>
<content type='text'>
kusanagi set XCURSOR_THEME=Bibata-Modern-Classic but never declared the
theme in Nix — it only resolved while bibata-cursors lingered in an old
nix-env profile. Once that was gone the theme fell off the icon path and
the pointer/hand cursor disappeared.

Standardize both hosts on Adwaita (matching the shared niri config.kdl):
move XCURSOR_THEME/XCURSOR_SIZE and the adwaita-icon-theme package into
the shared profiles/desktop.nix so the theme is always on the icon path.
Drop the inert HYPRCURSOR_* vars (hyprcursor is unused under niri).

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>desktop: start bar+wallpaper via systemd; fortune greeter</title>
<updated>2026-07-31T14:51:20Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-31T14:51:20Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=9cba5e7886b326bfec049c4ca5024274e4b8e201'/>
<id>urn:sha1:9cba5e7886b326bfec049c4ca5024274e4b8e201</id>
<content type='text'>
Move the niri bar (yambar on enzo, waybar on kusanagi) and swaybg wallpaper out
of the shared stowed niri config and into per-machine systemd user services
bound to graphical-session.target, mirroring the existing xdg-user-dirs-update
unit. This makes the bar host-correct (kusanagi previously spawned yambar, which
isn't installed there) and keeps host-specific paths out of the shared config.

Also switch the greetd session to a small wrapper script that shows a fortune
greeting in tuigreet.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>refactor: shared desktop profile for enzo + kusanagi</title>
<updated>2026-07-31T00:14:09Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-31T00:14:09Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=ae5ecbb4199844b2b7883d99cd04ef468a03247d'/>
<id>urn:sha1:ae5ecbb4199844b2b7883d99cd04ef468a03247d</id>
<content type='text'>
profiles/desktop.nix becomes a username-agnostic shared base (niri, dconf, the
dark-theme portal fix, greetd, pipewire base, gpg agent, graphics, Firefox with
blank-home/no-bookmarks prefs, common desktop tools, font base). Both hosts now
import it.

Per-host desktop config splits into machines/&lt;host&gt;/desktop.nix:
- enzo: Adwaita cursor + monospace, HiDPI console font, yambar, hwebs groups.
- kusanagi (new file): GNOME/X11, printing/avahi/udisks2, pro-audio
  (rtkit/jack/32-bit), gpg ssh support, richer fonts, Bibata cursor, henz
  desktop groups, waybar/nm-applet.

Shared profile is username-agnostic (enzo=hwebs, kusanagi=henz): shared desktop
tools moved to environment.systemPackages, per-user groups stay in machine
files. Firefox now owned by the shared profile, so its redundant enable is
dropped from profiles/apps.nix. Dark theme + Firefox tweaks now apply to both
hosts. Both configurations build.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>enzo: revert to Firefox; portal fix gives it dark content for free</title>
<updated>2026-07-30T23:58:18Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-30T23:58:18Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=7498147ab59e26ad7a9d9c6e020ac1400e9b9524'/>
<id>urn:sha1:7498147ab59e26ad7a9d9c6e020ac1400e9b9524</id>
<content type='text'>
LibreWolf forces web content light via its fingerprinting protection even with
resistFingerprinting disabled and the portal read forced, so it never honored
the desktop dark setting. Plain Firefox honors the portal out of the box (dark
chrome and content) now that the portal serves prefer-dark via
xdg-desktop-portal-gtk.

Restore programs.firefox with the blank home/new-tab and no-bookmarks-toolbar
policy prefs; drop the LibreWolf package and its RFP/widget workarounds. No
theme prefs needed — dark comes from the portal.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>enzo: force LibreWolf to read the portal for color-scheme</title>
<updated>2026-07-30T23:53:58Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-30T23:53:58Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=0838d095c1b45ca18a9397d6109d9bd3f0b0b62c'/>
<id>urn:sha1:0838d095c1b45ca18a9397d6109d9bd3f0b0b62c</id>
<content type='text'>
The portal now correctly reports prefer-dark, but LibreWolf content stayed
light: Firefox's default widget.use-xdg-desktop-portal.settings = 2 ("auto")
reads GTK directly under bare niri and ignores the portal. Set it to 1 (always
use the portal) so web content's prefers-color-scheme follows the color-scheme
served by xdg-desktop-portal-gtk. LibreWolf doesn't set this pref, so "default"
status suffices.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>enzo: serve portal color-scheme from gtk backend so web content goes dark</title>
<updated>2026-07-30T23:49:53Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-30T23:49:53Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=ddd8f283326c65972d17eb1016e19539a6fac70e'/>
<id>urn:sha1:ddd8f283326c65972d17eb1016e19539a6fac70e</id>
<content type='text'>
LibreWolf chrome was dark (via GTK theme) but web content stayed light. Root
cause is the portal, not the browser: the niri module routes the Settings
interface to xdg-desktop-portal-gnome, whose color-scheme depends on
gnome-settings-daemon. Under bare niri (no GNOME session) gsd is absent, so the
portal reported "no preference" and content's prefers-color-scheme resolved
light.

Pin org.freedesktop.impl.portal.Settings to the gtk backend, which reads the
org.gnome.desktop.interface color-scheme dconf key directly (no gsd), and add
xdg-desktop-portal-gtk. The key merges into the niri module's
xdg.portal.config.niri. Now the portal reports prefer-dark and content follows.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>enzo: lock resistFingerprinting off so dark sites work</title>
<updated>2026-07-30T23:26:11Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-30T23:26:11Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=e9be3a6a753c09af64ef0f94481d5faa03bcef66'/>
<id>urn:sha1:e9be3a6a753c09af64ef0f94481d5faa03bcef66</id>
<content type='text'>
Setting it via the policy with Status "default" did not take effect: LibreWolf's
mozilla.cfg does defaultPref("privacy.resistFingerprinting", true), and a policy
"default" pref writes the same branch and loses the tie to the autoconfig, so
RFP stayed on — spoofing web content's prefers-color-scheme to light and
disabling the devtools toggle. Use Status "locked", which wins over defaultPref.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
<entry>
<title>enzo: switch to LibreWolf, drive dark theme via portal</title>
<updated>2026-07-30T23:16:05Z</updated>
<author>
<name>Henry J. Webster</name>
<email>hwebs@hwebs.info</email>
</author>
<published>2026-07-30T23:16:05Z</published>
<link rel='alternate' type='text/html' href='https://git.hwebs.info/nixos-config/commit/?id=13de30771074ef8053faa16d6a5751eaabe7e0b9'/>
<id>urn:sha1:13de30771074ef8053faa16d6a5751eaabe7e0b9</id>
<content type='text'>
Replace the programs.firefox block with LibreWolf. Since there's no
programs.librewolf module, bake the policy into the package via
librewolf.override { extraPolicies = ...; } — blank home/new-tab and no
bookmarks toolbar, merged with LibreWolf's own defaults. No profile or /etc
policy file to manage.

Handle dark mode desktop-wide instead of per-browser: set the dconf key
org/gnome/desktop/interface/color-scheme = prefer-dark, which the niri
xdg-desktop-portal (gnome/gtk) backends report to apps. Firefox/LibreWolf Auto
theme and GTK apps all go dark, so the per-browser theme prefs are gone.

LibreWolf defaults resistFingerprinting on, which spoofs web content's
prefers-color-scheme to light; disable it so pages honor the dark setting.

Assisted-by: Claude:claude-opus-4-8
</content>
</entry>
</feed>
