437 Commits

Author SHA1 Message Date
Austin Horstman
5ded124f91 lib: add deprecated option warning helpers 2026-06-04 12:20:09 -05:00
cinereal
fb6a0c6d39 modules: add modular services support
Adds `home.services`, an attribute set of nixpkgs
[modular services](https://nixos.org/manual/nixos/unstable/#modular-services)
sourced from `<nixpkgs/lib/services/lib.nix>`. Each service exposes
`process.argv` and the upstream NixOS-style systemd schema
(`systemd.lib`, `systemd.mainExecStart`, `systemd.service`,
`systemd.services`, `systemd.sockets`) by re-exporting
`nixos/modules/system/service/systemd/service.nix`. Service modules
shipped with `_class = "service"` (e.g.
`pkgs.<name>.passthru.services.default`) drop in unchanged --
service portability across module systems is the point of modular
services.

Lifted units are evaluated and translated from NixOS-style attrs
(`wantedBy`, `serviceConfig`, `unitConfig`, `environment`, ...) into
the section-based INI shape (`{ Unit; Service; Install; }`) that
home-manager's `systemd.user.{services,sockets}` consumes; only the
common keys are mapped, uncommon options remain reachable via
`unitConfig` / `serviceConfig` / `socketConfig`. Sub-services and
their units are dashed under the parent service name;
`process.argv` becomes the default `ExecStart` for the service's
primary unit, which defaults to `WantedBy=default.target`.

Mirrors the surface of nixpkgs' portable systemd module (services +
sockets only); other unit kinds home-manager supports natively
(timers etc.) are intentionally not modeled until upstream grows
them.

Each service's `configData.<name>` entries are materialized at
`$XDG_CONFIG_HOME/system-services/<service-prefix>/<name>` (mirroring
how `nixos/modules/system/service/systemd/{config-data-path,system}.nix`
lifts `configData` to `environment.etc`), with the absolute path
injected back into `configData.<name>.path` so the service can refer
to its files at a stable location.

Includes nmt tests covering: a basic `process.argv`-only service, a
service with a `configData` entry, and importing
`pkgs.ghostunnel.passthru.services.default` to assert the lifted user
unit contains the expected ExecStart flags and `LoadCredential`
entries.
2026-05-04 17:22:16 +02:00
Benedikt Rips
71402c5df3 treewide: mark unused lambda arguments 2026-04-13 22:02:40 -05:00
Austin Horstman
01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
Benedikt Rips
8ec54491cd sshAuthSock: fix naming scheme 2026-04-04 22:28:41 -05:00
Benedikt Rips
a61b22e323 ssh_auth_sock: init module
`$SSH_AUTH_SOCK` must not be set unconditionally through
'home.sessionVariables' since its value needs to be preserved if it
stems from a forwarded SSH agent. Hence, this commit establishes a
centralized, internal 'ssh_auth_sock.initialization' option for setting
`$SSH_AUTH_SOCK`. It checks whether its value has to be preserved and
injects the initialization code into the proper
'programs.(bash|fish|nushell|zsh).*' options.
2026-04-03 21:15:34 -05:00
luo jiyin
7d06e0cefe treewide: fix spelling errors 2026-03-11 22:32:16 -05:00
K900
332027bc0a treewide: use pkgs.lndir instead of pkgs.xorg.lndir
Follow the change in nixpkgs.
2026-02-05 10:59:19 -06:00
Austin Horstman
f84f474c1b zsh: respect xdg.enable for dotDir
Make sure we actually respect a user's `xdg.enable` preference.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman
780be8ef50 tests: disable release check bypass
nixos-unstable bumped

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-28 14:27:50 -06:00
Austin Horstman
ad0b497533 tests: disable release check temporarily
Remove after nixos-unstable bumped

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:16:38 -06:00
Austin Horstman
af119feb17 Revert "tmpfiles: migrate to an RFC42-style option"
This reverts commit 090aa14e5d.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
Benedikt Rips
090aa14e5d tmpfiles: migrate to an RFC42-style option 2025-11-02 23:02:10 -06:00
Benedikt M. Rips
f2f1076c1f treewide: remove no-ops (#8061) 2025-10-26 15:43:53 -05:00
Robert Helgesson
efcba687d3 xdg-mime-apps: add defaultApplicationPackages option
This option allows a user to inject default applications directly from
a list of specified packages. It was previously possible to do this,
but only through import from derivation.
2025-09-19 16:23:57 +02:00
Gaetan Lepage
e81d71d53a nix-remote-build: add module 2025-09-19 08:33:40 -05:00
Austin Horstman
ac351d435a tests/news: add new test for news entries
We need to catch the news entry issues sooner. Right now we don't have
any testing around them.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 00:11:26 -05:00
Austin Horstman
06c1392ca8 tests: implement auto importing for modules
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Thierry Delafontaine
427c96044f codex: init 2025-06-09 22:33:16 -05:00
Rishi Vora
e9763eb195 niriswitcher: add module (#7246) 2025-06-09 22:30:27 -05:00
Egor Konovalov
35e1f5a7c2 mc: add midnight commander module (#7225) 2025-06-09 09:25:11 -05:00
Aguirre Matteo
2835e8ba0a nyxt: add module (#7232) 2025-06-08 11:27:00 -05:00
Aguirre Matteo
bd8946c773 lazysql: add module (#7231) 2025-06-07 23:51:28 -05:00
jaredmontoya
86b95fc1ed aichat: init (#7207)
aichat is an all in one CLI tool for AI interactions.
On first run it prompts you to create a config so I made a home manager module to do this declaratively.
2025-06-04 13:35:39 -05:00
Austin Horstman
2ef52bcab5 tests: pass enableLegacyIfd arg
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-02 22:58:05 -05:00
Alex Hamilton
d36ac1f0db hwatch: add module (#7158) 2025-05-30 10:16:26 -05:00
MunsMan
13ed57aaa6 meli: adding the meli email client (#7111)
Meli email client integrated into the accounts.email.accouts settings.
2025-05-28 22:30:10 -05:00
Austin Horstman
5dc3bc3368 sketchybar: add module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Sefa Eyeoglu
cf9ff6d993 wayvnc: init (#7123)
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-05-24 18:38:54 -05:00
awwpotato
3f591550a9 formatter: remove script, add treefmt.toml + keep-sorted (#7056)
currently ./format does a bunch of stuff with git that was only necessary for nixfmt but not nixfmt-tree, so I deleted it (just use treefmt command directly instead). I also added keep sorted to keep the really long module lists sorted (already used in nixpkgs).
2025-05-20 12:42:51 -05:00
Damien Cassou
2097441633 services.home-manager.autoExpire: add support for darwin 2025-05-20 08:10:57 -05:00
awwpotato
74d31e1165 ptyxis: init module (#7075) 2025-05-16 15:29:26 -05:00
Nick DeGroot
a1a72d18ee pgcli: init (#7072) 2025-05-15 22:50:09 -05:00
Damien Cassou
c09ccd7d39 services.borgmatic: add initial support for darwin 2025-05-15 13:07:13 -05:00
Rosario Pulella
ad1e8bb782 dbus: Create with pacakges options (#7064)
This adds a module for dbus with only one option, `packages`.
The `dbus.packages` options allows users to specify packages to have
their dbus service files (from `/share/dbus-1/services`) linked to the
users dbus services directory (`$XDG_DATA_HOME/dbus-1/services/`),
effectively enabling the services.
2025-05-15 12:59:12 -05:00
awwpotato
8d832ddfda foliate: init (#7049) 2025-05-13 12:05:32 -05:00
Aguirre Matteo
910292fe34 halloy: add module (#7034) 2025-05-11 18:52:09 -05:00
Alex Hamilton
ecb2162422 numbat: add module
Numbat is a scientific calculator with full support for physical units.
2025-05-11 18:51:14 -05:00
Aguirre Matteo
8d2ee39915 waveterm: add module (#7004) 2025-05-09 08:17:40 -05:00
B1kku
a51598236f lutris: add module (#6964)
Add any number of wine packages
    Add any number of proton packages
    Link runners directly from nix instead of using lutris.
    Specify the steam package lutris should use.
    Extra packages passed to lutris (mainly since it's often missing essential things, such as umu-launcher)
2025-05-08 13:01:35 -05:00
pancho horrillo
3c59c5132b wayprompt: init module (#7002)
A module for configuring Wayprompt¹, a password-prompter for
Wayland, that can be used as a pinentry program for GnuPG (and more).

Provides a 'programs.wayprompt.settings', following RFC 42².

¹: https://git.sr.ht/~leon_plickat/wayprompt
²: https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2025-05-08 10:45:24 -05:00
awwpotato
5da6eafceb treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
Aguirre Matteo
8a318641ac sway-easyfocus: add module (#6976) 2025-05-04 21:46:28 -05:00
Aguirre Matteo
621986fed3 i3bar-river: add module (#6967) 2025-05-03 19:12:02 -05:00
Aguirre Matteo
d1bbab6b04 mako: refactor (#6948)
Refactors the services.mako module to replace all its configuration options with a freeform settings option and criterias. I also added a test for the configuration.
2025-05-03 19:09:56 -05:00
Ihar Hrachyshka
75268f6252 tests: enable all firefox tests on darwin (plus derivations) (#6960) 2025-05-03 10:51:18 -05:00
Aguirre Matteo
123297c57e onagre: add module (#6958) 2025-05-02 22:09:45 -05:00
Aguirre Matteo
d6b0c05457 visidata: add module (#6956) 2025-05-02 11:14:19 -05:00
Aguirre Matteo
f15be4feb6 clipcat: add module (#6946) 2025-05-02 08:22:35 -05:00
Aguirre Matteo
669e813c75 element-desktop: add module (#6935) 2025-05-02 08:17:24 -05:00