7086 Commits
Author SHA1 Message Date
Austin Horstman 9e3e1d95be codex: add maintainer khaneliman 2026-06-25 14:21:12 -05:00
Austin Horstman 3d8f49f360 alacritty: normalize key binding escape sequences
`pkgs.formats.toml` escapes backslashes and cannot emit raw control
characters, so key-binding `chars` written as escape text (e.g.
"\uXXXX" or the "\^[" caret form) ended up as invalid literals in the
generated config. Rewrite each escape to a placeholder before
generation and restore it to "\u" afterward.

Use `builtins.split` so escapes are handled anywhere in the value,
including when repeated or mixed with other text.
2026-06-25 14:20:58 -05:00
085e92b04a github-copilot-cli: preserve args for local-type MCP servers
forCopilotFormat only checked for type == "stdio" to add back args,
missing the case where a server already has type = "local" (e.g. set
directly by a third-party module). This caused args to be absent in the
generated mcp-config.json, failing validation.

Also, running forCopilotFormat as an extraTransform meant it ran inside
transformMcpServer, which then filtered out args = [] in its cleanup
pass. Move forCopilotFormat to run after transformMcpServer so the
empty args list is preserved in the output.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 14:16:07 -05:00
Dionisie StratulatandGitHub 3b3ff17621 firefox: legacyUserProfileCustomizations when userChrome is present
When a user configures the userChrome option, automatically enable the
`toolkit.legacyUserProfileCustomizations.stylesheets` preference with
`mkDefault` priority so that the user chrome CSS is actually loaded.
The user can still override this in the settings option if needed.
2026-06-25 14:15:06 -05:00
r-vdpandAustin Horstman 3a70e333f2 fish: extract completion generator from the fish binary
fish 4.8.0 stops installing share/fish/tools/ and embeds the script
in the binary instead. Instead we use `status get-file` to extract it,
which works for fish >= 4.1.

See NixOS/nixpkgs#534907.
2026-06-24 22:36:00 -05:00
Austin Horstman a9232b8b10 launchd: use user domain for background agents
Move non-graphical Darwin services out of the GUI launchd domain so they can be managed from non-Aqua contexts such as SSH sessions.
2026-06-24 20:38:38 -05:00
Austin Horstman dc89b0c0bb launchd: add agent domain option
Allow Darwin LaunchAgents to target either the GUI or user launchd domain while preserving gui as the compatibility default.
2026-06-24 20:38:38 -05:00
Austin Horstman 062581938b claude-code: reject disabled mcp servers instead of dropping
Filtering disabled shared servers out of `.mcp.json` (#9457) collapsed
"present but disabled" and "absent" into the same output, so a server
set
`enabled = false` for OpenCode could no longer remain present in Claude
Code. `.mcp.json` has no per-server `enabled` field, but settings.json
does via `disabledMcpjsonServers`.

Keep disabled servers in `.mcp.json` and list them under
`disabledMcpjsonServers` (merged with any user-set value). This honors
the
disabled intent without dropping the server, and covers both shared and
Claude Code-native servers.
2026-06-23 11:54:25 -05:00
Benedikt RipsandAustin Horstman 1ac720f007 home: document the 'home.profileDirectory' default 2026-06-23 11:11:50 -05:00
ReStrangerandAustin Horstman d6b7bf1695 hyprland-qt-support: add news entry
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 16fdc3504e hyprland-qt-support: add test case
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 83c0e03687 hyprland-qt-support: init module 2026-06-23 11:10:25 -05:00
Bruno BELANYIandAustin Horstman 4b0b947474 zsh: add 'fastSyntaxHighlighting' 2026-06-23 08:09:29 -05:00
leiserfgandAustin Horstman 471a1d2f84 news: Add devenv entry 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 6cb9da2a4d devenv: init module 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 351959fcdb fzf: Add tests 2026-06-22 15:17:52 -05:00
leiserfgandAustin Horstman cb6bcc43e7 fzf: add nushell integration 2026-06-22 15:17:52 -05:00
mikaeladevandAustin Horstman af11a877f2 nvibrant: add module 2026-06-22 13:55:29 -05:00
Austin Horstman 66eb0fc116 docs: clarify new module news conditions
Clarify that new-module news should remain visible to users who have not enabled the new module yet.
2026-06-22 12:35:03 -05:00
leiserfgandAustin Horstman 979bfee6e1 vicinae: add firefox mesaging host 2026-06-22 08:19:19 -05:00
Austin Horstman d8dac1f668 ci: build docs in buildbot output
GitHub Actions runners lack a reusable /nix/store, so rendering the full
manual, options JSON, and manpages on every docs PR pays that cost
uncached. buildbot has a persistent store, so expose the docs outputs
there instead and leave the GHA docs step at the lightweight maintainers
check.
2026-06-21 23:44:06 -05:00
Austin Horstman f3dc0b8583 docs: update platform module guidance
Program and service modules are auto-imported now, so contributor docs should point platform-specific work at guarded module behavior and tests instead of loadModule.
2026-06-21 22:58:48 -05:00
Austin Horstman db97e414d5 docs: describe embedded module integration
Document the extra module arguments, shared modules hook, and NixOS activation modes so embedded Home Manager setup matches the current integration code.
2026-06-21 22:51:39 -05:00
Austin Horstman e731ff60ec docs: correct test command guidance
Document list and run commands separately, keep test runner usage through the flake wrapper, and avoid stale legacy full-suite commands.
2026-06-21 22:43:01 -05:00
Austin Horstman e45cc6e15a docs: fix manpage path
The generated home-configuration manpage is not compressed, so point contributors at the file that docs.manPages actually creates.
2026-06-21 22:20:43 -05:00
Austin Horstman 8f3bc61192 news: remove duplicate module announcements
Drop sparse duplicate entries for amberol and mpdscribble while keeping the richer platform-gated announcements.
2026-06-21 22:07:39 -05:00
Austin Horstman 5bf17310cf docs: preserve legacy manual links
Generate XHTML-safe redirect shims that route old single-page manual anchors to their mdBook pages.
2026-06-21 22:02:16 -05:00
Thierry DelafontaineandAustin Horstman d1ccd0721e news: add podman registries v2 entry 2026-06-21 09:20:14 -05:00
Thierry DelafontaineandAustin Horstman e3e24bfd0f podman: generate v2 registries.conf
Convert `services.podman.settings.registries` output to v2 format.
Keep legacy `insecure` and `block` inputs, add `registry` entries,
and warn when legacy options are used.

Update podman configuration tests and expected registries.conf output.

Resolves #9501
2026-06-21 09:20:14 -05:00
Austin Horstman 78e7d8b13e ci: checkout base ref for backports
Checkout v7 still treats the pull_request_target default ref as fork PR code, so pin the backport checkout to the trusted base SHA.
2026-06-20 16:06:13 -05:00
Austin Horstman ee6b160bcb ci: avoid fork head checkout in backport
Checkout v7 blocks fork PR head checkouts in pull_request_target workflows, so keep backport on the trusted base checkout and let the backport action fetch PR commits itself.
2026-06-20 16:01:01 -05:00
Anton MosichandAustin Horstman 61157d3c01 pimsync: have type be the first directive in storage blocks
pimsync 0.5.10 introduced a change to config parsing which now mandates
that the type directive is the first one in each storage block.
2026-06-20 15:54:19 -05:00
Austin Horstman 8695ecb389 tests/firefox: avoid building librewolf
Stub the Librewolf package in module tests so shared Firefox logic still runs without evaluating or building the insecure nixpkgs package.
2026-06-20 13:40:22 -05:00
Austin Horstman 8762262054 tests/darwinScrublist: add parallel-full
Scrub the default GNU Parallel package on Darwin so the module test does not build the failing DBD::CSV dependency.
2026-06-20 13:40:22 -05:00
dependabot[bot]andAustin Horstman 72a8bf11c8 flake: bump nixpkgs from ffa10e2 to 3e41b24
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `ffa10e2` to `3e41b24`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/ffa10e26ae11d676b2db836259889f1f571cb14f...3e41b24abd260e8f71dbe2f5737d24122f972158)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 3e41b24abd260e8f71dbe2f5737d24122f972158
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 13:40:22 -05:00
Juan C NunoandAustin Horstman a4ee5403ca home-manager: Pass extraArgs to nix-instantiate
My NIX_PATH is empty because of the new system.nix NixOS entry point.
I've been relying on -I options more and here they're not being passed
to nix-instantiate.
2026-06-20 12:38:59 -05:00
dependabot[bot]andAustin Horstman c3dfce6c63 ci: bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 12:35:00 -05:00
Robert Helgesson 37f21dfa5d tests: fix integration tests
This updates the integration tests so that they pass. Also prevent
auto-fixing some integration test files.
2026-06-20 00:05:51 +02:00
Austin Horstman 153bad8fb5 qt: stop rewriting platformTheme name gtk to gtk2
Setting `qt.platformTheme.name = "gtk"` silently rewrote the
QT_QPA_PLATFORMTHEME session variable to `gtk2` and pulled in the
qtstyleplugins and qt6gtk2 packages, which is not what users asked for
and relies on unmaintained packages. There is no `gtk` Qt platform
theme, so `gtk` now maps to Qt's built-in `gtk3` platform-theme plugin
and installs no extra packages.

Users who want the previous behavior can set
`qt.platformTheme.name = "gtk2"` explicitly, which keeps
QT_QPA_PLATFORMTHEME=gtk2 and installs qtstyleplugins and qt6gtk2. The
`qt.useGtkTheme` -> `qt.platformTheme` migration now maps the legacy
option to `{ name = "gtk2"; }` so existing configs are unaffected.

Fixes #8663
2026-06-19 12:28:04 -05:00
Austin Horstman e061b00885 broot: fix nushell integration br command
broot 1.51 renamed the printed nushell entry point from `br` to `main`,
intended to be loaded with `use` where the command takes the module's
name. Home Manager sources the snippet with `source`, so it began
defining a global `main` instead of `br`, breaking the `br` command in
nushell.

Rewrite the definition line back to `br` for the nushell shell function
so `source` keeps exposing `br` globally. Other shells are unaffected.

Fixes #9392
2026-06-19 10:53:03 -05:00
Austin Horstman 55730a2e34 ssh: document DAG ordering patterns
Expand the settings example so users can discover stable headers and list-shaped DAG helpers for ordered Host and Match blocks.
2026-06-19 10:13:44 -05:00
Austin Horstman fea021792d treefmt: format Python with ruff
Add ruff to the tree formatter so Python sources are kept consistently
formatted by 'nix fmt' and the CI format check. Test fixtures under
tests/modules are excluded since some are intentionally invalid Python.
Reformats the existing lib/python and tests scripts accordingly.
2026-06-19 10:00:25 -05:00
Austin Horstman 6aaf73d18d docs: build manual with mdbook
Switch the HTML manual renderer to mdBook while preserving existing docs package outputs and legacy redirect paths.
2026-06-19 10:00:25 -05:00
Austin Horstman 9b2afbdd47 docs: add contributing pointer
Point contributors at the manual contribution guidelines from the
repository root.
2026-06-19 10:00:10 -05:00
Austin Horstman 0043376f4e docs: clarify module contribution guidance
Document reviewer expectations for new modules so contributors can align option design, news, test organization, and commit structure before review.
2026-06-19 10:00:10 -05:00
mikaeladevandAustin Horstman 43f9f0abc6 misc: move modules spanning multiple files into subdirs
- modules/misc/qt.nix -> modules/misc/qt/default.nix
- modules/misc/gtk.nix -> modules/misc/gtk/default.nix
- modules/misc/news.nix -> modules/misc/news/default.nix
- modules/misc/xdg*.nix -> modules/misc/xdg/...
- modules/misc/nix*.nix -> modules/misc/nix/...
2026-06-19 08:59:16 -05:00
pancho horrilloandAustin Horstman c804fab681 difftastic: fix typo in example
The "dark" value actually applies to the `background` setting (which
I’ve omitted here since "dark" is its default value.)

I’ve given `color` the value "always", which will preserve colorization
when using `less` as a pager.

Extracted from `difft --help`¹:

Options:
...
        --color <WHEN>
            When to use color output.

            [env: DFT_COLOR=]
            [default: auto]
            [possible values: always, auto, never]

        --background <BACKGROUND>
            Set the background brightness. Difftastic will prefer brighter colours on dark backgrounds.

            [env: DFT_BACKGROUND=]
            [default: dark]
            [possible values: dark, light]

¹: which seems to be the authoritative source of documentation, as per
https://difftastic.wilfred.me.uk/usage.html#configuration-options
2026-06-18 23:47:04 -05:00
DrymarchonShaunandGitHub 266211649f hyprland: fix plugin loading when using lua
Move plugin loading to the top of the rendered ~/.config/hypr/hyprland.lua as plugins must be loaded before hl.config can be called with config keys added by the plugin, (binds using dispatchers added by plugins also fail if they are defined before the plugin is loaded)

This also switches over to using the (undocumented?) hl.plugin.load("/path/to/plugin.so") to load plugins, which has solved some strange race condition weirdness caused by using exec_cmd with hyprctl plugin load (I first tried moving renderStartHook to the top of the rendered config, but sometimes it seemed the hyprctl plugin load wouldn't finish loading the plugin before the rest of the config was loaded, causing the same errors about unknown config keys)
2026-06-18 22:39:21 -05:00
Dietrich DarochandAustin Horstman 3abeedcf40 zellij: Avoid starting on dumb terminals
This avoids https://github.com/zellij-org/zellij/issues/3824
2026-06-18 21:57:40 -05:00
0f4a317c06 lib.hm.dag: performance improvements
Avoid repeated attribute lookups and unnecessary intermediate allocations in
DAG helpers. Cache DAG names while normalizing before-edges to improve topoSort
performance on large DAGs.

Co-authored-by: Eman Resu <78693624+quatquatt@users.noreply.github.com>
2026-06-18 21:53:23 -05:00