Commit graph

1084 commits

Author SHA1 Message Date
Austin Horstman
165228b0ef launchd: restore gui domain defaults
Some checks are pending
/ triage (push) Waiting to run
GitHub Pages / publish (ubuntu-latest) (push) Waiting to run
User-domain agents are not rediscovered from the user LaunchAgents directory after reboot. Let built-in agents inherit the GUI default while keeping explicit user-domain configuration available.
2026-07-15 10:29:26 -05:00
David Thievon
7566825d46 swayimg: support new lua config
Closes: #9479
2026-07-11 21:30:09 -05:00
reesilva
f4d01c1d87 posting: add module
posting: add news
2026-07-08 17:33:28 -05:00
Leon Schwarzäugl
63d02d1c19 attic-client: init module 2026-07-06 20:46:24 -05:00
Austin Horstman
2fca6a7372 atuin: order nushell integration after fzf
Source the Nushell integration at order 2000 so fzf can keep chaining carapace at mkAfter while Atuin still wins Ctrl-R like it does in other shells.

Users who used programs.nushell.extraConfig = lib.mkAfter ... to beat Atuin now need lib.mkOrder 2001 or later.
2026-07-02 15:28:15 -05:00
Amadej Kastelic
2a37d71bbe herdr: add module 2026-06-30 12:14:44 -05:00
Austin Horstman
1c64122e70 codex: add context override file
Expose AGENTS.override.md declaratively and cover it in the existing TOML generation test.
2026-06-25 14:21:12 -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
ReStranger
d6b7bf1695 hyprland-qt-support: add news entry
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
Bruno BELANYI
4b0b947474 zsh: add 'fastSyntaxHighlighting' 2026-06-23 08:09:29 -05:00
leiserfg
471a1d2f84 news: Add devenv entry 2026-06-22 17:14:11 -05:00
mikaeladev
af11a877f2 nvibrant: add module 2026-06-22 13:55:29 -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
Thierry Delafontaine
d1ccd0721e news: add podman registries v2 entry 2026-06-21 09:20:14 -05: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
mikaeladev
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
Benedikt Rips
c8f0b8ed44 fontconfig: add RFC42-style config file settings 2026-06-18 14:16:03 -05:00
Benedikt Rips
4441446672 fontconfig: generate config with pkgs.formats.xml 2026-06-18 14:16:03 -05:00
Benedikt Rips
27a3154f42 fontconfig: disallow null as config file source
This brings `fonts.fontconfig.configFile.*.source` in line with
`home.file.*.source` and the like.
2026-06-18 14:16:03 -05:00
Benedikt Rips
4ce682641d fontconfig: add 'configFile.<name>.target' option
This brings `fonts.fontconfig.configFile` in line with `home.file` and
the like.
2026-06-18 14:16:03 -05:00
Benedikt Rips
4666af39e9 fontconfig: clarify 'configFile.<name>.*' descriptions 2026-06-18 14:16:03 -05:00
Austin Horstman
a786067676 mkFirefoxModule: assert managed package for global extensions
Reject globalExtensions when Home Manager has no browser-managed policy
carrier. This follows up the global extension policy work with a clear
failure mode, a regression test, and a news entry so affected users know
how to fix package = null setups.
2026-06-18 12:53:30 -05:00
Austin Horstman
d456f483f1 codex: add profile config support
Codex 0.134.0 stopped reading profile settings from [profiles.<name>] in config.toml and no longer supports the top-level profile selector.

Add a dedicated programs.codex.profiles option so Home Manager can write CODEX_HOME/<name>.config.toml files that match the current CLI --profile behavior. For Codex 0.134.0 and later, legacy programs.codex.settings.profiles entries are migrated into profile files with a warning, and removed legacy profile keys are omitted from config.toml so strict config loading keeps working. Older Codex versions keep the legacy config shape.
2026-06-18 08:19:47 -05:00
Austin Horstman
b9a29e51c5 opencode: support ordered settings entries
Use the shared DAG-aware JSON generator for programs.opencode.settings so order-sensitive permission rules can be expressed with lib.hm.dag entries.

Add a focused NMT test for last-match-wins permission output and news for existing opencode users.
2026-06-18 07:59:18 -05:00
Austin Horstman
652f754686 difftastic: support difftool-only git integration
Splitting git diff tools into the separate programs.difftastic module
made it impossible to register difftastic as a git difftool without also
forcing it as diff.external, since the boolean git.diffToolMode only
toggled between "external" and "external + difftool".

Replace git.diffToolMode with a git.mode enum ("external", "difftool",
"both") so difftastic can be wired as the difftool only, leaving
`git diff` untouched. The deprecated boolean is migrated automatically
via mkChangedOptionModule (true -> "both", false -> "external"),
preserving existing behavior.

Fixes #8592
2026-06-18 07:45:53 -05:00
csanthiago
c187002980 television: add themes option
Add a `themes` option to the television module, allowing users to define
custom themes that are written to `$XDG_CONFIG_HOME/television/themes/`
as individual TOML files. This follows the same pattern used by the
halloy and helix modules.


💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-06-17 19:16:21 -05:00
Peter Bittner
c51ac59e59 uv: manage Python versions and tools
Add programs.uv.python.{versions,default,prune} and
programs.uv.tool.{packages,prune} to install uv-managed Python versions
and tools during activation.

Install requests are passed verbatim to uv. Unpinned entries track the
latest release on each activation while pinned ones stay put: Python
requests without a patch component are installed with `uv python install
--upgrade` (exact patches, which uv refuses to upgrade, get a plain
install), and tools are refreshed with `uv tool upgrade <packages>`
scoped to the configured list. Both upgrades are scoped to the managed
entries, so installs Home Manager does not own are left untouched. prune
makes a set declarative by running `uv ... uninstall --all` before
reinstalling the listed entries.

The activation blocks run after linkGeneration so uv sees the freshly
linked uv.toml, and a null programs.uv.package is rejected once the
module emits activation commands.
2026-06-17 15:47:24 -05:00
ErinaYip
2a7b54df12 prismlauncher: add themes option 2026-06-16 22:42:18 -05:00
Pat L.
df4e046571
codex: Add support for installing plugins and marketplaces
Install the referenced plugins into $CONFIG_DIR/plugins and add them to
the marketplace file in `~/.agents/plugins/marketplace.json`. The
plugins are then enabled in `$CONFIG_DIR/config.toml`.

Also add support for custom plugin marketplaces via the `marketplaces`
option. Each marketplace entry is a local directory (or fetched package)
that Codex can browse to discover additional plugins. Marketplaces are
registered in `$CONFIG_DIR/config.toml` under [marketplaces.<name>] with
`source_type = "local"` pointing at the provided path. Setting either
`plugins` or `marketplaces` automatically enables the `features.plugins`
flag in the generated config.

Warn that if a derivation is being used as the source of the plugin, the
name of the derivation needs to match the plugin name in the manifest.
2026-06-16 15:35:13 -05:00
Austin Horstman
34dd288e65 antigravity-cli: update skills deployment path
The skills folder deployment path has been updated to
'~/.gemini/antigravity-cli/skills/' to align with the application's
configuration path structure from docs. I think the other path is just a
weird compatibility shim that app supports. strace shows it will search
it, but it also checks the documented path.
2026-06-16 08:06:05 -05:00
superflash41
74887eaee2 kiro-cli: add module 2026-06-10 09:48:41 -05:00
Malik
1ffdc28076 news: add entry for programs.mcp typed schema 2026-06-09 23:03:52 -05:00
Austin Horstman
d6f3413874 nixpkgs-disabled: show offending definition locations in warning
Surface the files that defined `nixpkgs.config`/`nixpkgs.overlays` in the
`useGlobalPkgs` warning and assertion, so users can find what set them
without inspecting `options.*.files` in the repl.
2026-06-09 17:15:30 -05:00
Austin Horstman
e9cbe69850 sshAuthSock: avoid cycles for socket providers
PR #9420 added set-SSH_AUTH_SOCK.service and ordered it before sshAuthSock.systemd.socketProviderUnit. When that provider is a socket unit, systemd default dependencies already order the socket before sockets.target while service defaults place set-SSH_AUTH_SOCK.service after basic.target. That creates a sockets.target -> basic.target -> set-SSH_AUTH_SOCK.service -> provider.socket -> sockets.target cycle.

For gpg-agent this makes systemd drop gpg-agent-ssh.socket, leaving SSH_AUTH_SOCK pointing at the expected S.gpg-agent.ssh path but with no socket listening there.

Only order and install the environment service against non-socket providers. Socket providers still get SSH_AUTH_SOCK imported through default.target.

Fixes #9432.
2026-06-08 12:04:33 -05:00
Perchun Pak
301871cd96 zellij: add support for plugins 2026-06-08 11:16:17 -05:00
Austin Horstman
eaca478c95 antigravity-cli: add migration news 2026-06-05 11:39:28 -05:00
Nikhil Singh
37e8eef933 pi-coding-agent: add module 2026-06-05 11:13:52 -05:00
Benedikt Rips
447fd9ff62 sshAuthSock: add news entry 2026-06-04 12:20:50 -05:00
Benedikt Rips
f1d5aa6f69 sshAuthSock: set in systemd
`SSH_AUTH_SOCK` is exported in shells only, which systemd does not
inherit from. With this commit, it is also set in systemd such that
systemd-managed applications can access the SSH agent by declaring
dependencies onto 'sshAuthSock.systemd.socketProviderUnit'.

Closes #7971.
2026-06-04 12:20:50 -05:00
Benedikt Rips
f4534a4f3c sshAuthSock: add option for initialization in Zsh
Initialization in Zsh defaults to the Bash initialization code since Zsh
is mostly Bash-compatible. This commit adds a dedicated Zsh
initialization code option to make the defaulting behaviour transparent
while also enabling overrides.
2026-06-04 12:20:50 -05:00
Benedikt Rips
efe95f113a sshAuthSock: use enable flag instead of nullable submodule 2026-06-04 12:20:50 -05:00
Austin Horstman
18b4e1ea6f xdg-user-dirs: assert extraConfig key warning 2026-06-04 12:20:09 -05:00
Austin Horstman
ff53fe10e0 qt: assert kde6 migration warning 2026-06-04 12:20:09 -05:00
Kays
f384af1bec macos-terminal: add module 2026-06-02 08:56:09 -05:00
Benedikt Rips
68227a9363 fontconfig: add test for font discovery 2026-06-02 08:22:25 -05:00
Benedikt Rips
c0436bc028 fontconfig: enable config files by default
This commit makes the `fonts.fontconfig.configFile.<name>.enable` option
true by default which matches the behaviour of `home.file` and the like.
2026-06-02 08:22:25 -05:00
Austin Horstman
a6a13bb0a0 hyprland: add extraLuaFiles option
Allow Lua configs to be split across managed files under XDG_CONFIG_HOME/hypr.

Treat extraLuaFiles attribute names as Lua module names, so dotted names such as lib.helpers write lib/helpers.lua while autoloading with require("lib.helpers").

Add assertions for invalid configType usage, generated hyprland.lua collisions, and duplicate resolved Lua file targets.
2026-06-01 21:32:10 -05:00
Austin Horstman
04ec113f8b zsh: load session vars from zprofile for login shells
Zsh reads .zshenv before system login startup files. On NixOS and macOS those later files can replace or reorder PATH, so home.sessionPath entries loaded from .zshenv may disappear or move behind system paths.

Keep .zshenv coverage for non-login shells, but source Home Manager session variables from .zprofile for login shells so PATH-like values are applied after system login setup.

Fixes #2991
2026-06-01 21:22:13 -05:00
Austin Horstman
948753061a home-manager: prepare 26.11
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-29 19:01:27 -05:00
Austin Horstman
1a95e2efb4 home-manager: set 26.05 as stable
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-25 11:31:36 -05:00