Commit graph

1333 commits

Author SHA1 Message Date
Robert Hensing bef10a5ace
Merge pull request #269551 from tejing1/nixos-stub-ld
nixos/stub-ld: init module
2023-12-13 22:36:30 +01:00
Mihai Fufezan 79ddf33f84 nixos/hyprland: remove enableNvidiaPatches option
Hyprland now works on Nvidia without patching.
2023-12-13 21:16:16 +01:00
SharzyL 497903264e
nixos/firejail: fix typo 2023-12-11 21:47:43 +08:00
Sergey Vlasov 921ee60d2c nixos/ssh: pass XAUTHORITY to ssh-askpass 2023-12-11 15:44:32 +03:00
Jaakko Luttinen 5e329241e8
light: support brightness control keys 2023-12-09 14:36:07 +02:00
Jeff Huffman bf6f0d3cf4
nixos/ldso: init module 2023-12-03 16:23:44 -05:00
Weijia Wang d1fc3a5f9f
Merge pull request #253428 from Yarny0/tsm-freeform
nixos/tsm-client: migrate to freeform settings (RFC42)
2023-12-03 14:50:12 +01:00
Peder Bergebakken Sundt 1079eccc63
Merge pull request #262133 from h7x4/cleanup-screen-module
nixos/screen: clean up module
2023-12-02 15:56:45 +01:00
Yarny0 20a9a21b24 nixos/tsm-client: add migration code for freeform settings
To help users migrate from the previous
settings to new freeform settings type,
the commit at hand adds some
`mkRemovedOptionModule` and `mkRenamedOptionModule`.

These modules are not designed to work
inside an attribute set of submodules.
They create values for `assertions` and
`warnings` to inform the user of required changes.
Also, these informational texts do not contain
the full attribute path of the changed options.
To work around these deficiencies,
we define the required options `assertions` and `warnings`
inside the submodule and later add the values collected
inside these options to the corresponding top-level options.
In the course of doing so, we also add the full attribute path
to the informational texts so the user knows these warning
and error messages refer to the `tsmClient.servers` option.

Also, we have to filter out `warnings`, `assertions`, and
the "old" options when rendering the target config file.
2023-12-02 09:09:28 +01:00
Yarny0 98c03bf8c6 nixos/tsm-client: stricter assertions
Check for spaces or duplicate names in server config keys.
Since server config keys are case insensitive,
a setting like

```
{
  compression = "yes";
  Compression = "no";
}
```

would lead to an ambiguous configuration.
2023-12-02 09:09:27 +01:00
Yarny0 3fb29fecd5 nixos/tsm-client: use freeformType for server config
`tsm-client` uses a global configuration
file that must contain coordinates for each
server that it is supposed to contact.
This configuration consists of text
lines with key-value pairs.

In the NixOS module, these servers may be declared
with an attribute set, where the attribute name
defines an alias for the server, and the value
is again an attribute set with the settings for
the respective server.
This is organized as an option of type `attrsOf submodule...`.

Before this commit:

Important settings have their own option within
the submodule.  For everything else, there is
the "catch-all" option `extraConfig` that may
be used to declare any key-value pairs.
There is also `text` that can be used to
add arbitrary text to each server's
section in the global config file.

After this commit:

`extraConfig` and `text` are gone,
the attribute names and values of each server's attribute
set are translated directly into key-value pairs,
with the following notable rules:

* Lists are translated into multiple lines
  with the same key, as such is permitted by
  the software for certain keys.
* `null` may be used to override/shadow a value that
  is defined elsewhere and hides the corresponding key.

Those "important settings" that have previously been
defined as dedicated options are still defined as such,
but they have been renamed to match their
corresponding key names in the configuration file.
There is a notable exception:
"Our" boolean option `genPasswd` influences the "real"
option `passwordaccess', but the latter one is
uncomfortable to use and might lead
to undesirable outcome if used the wrong way.
So it seems advisable to keep the boolean option
and the warning in its description.
To this end, the value of `getPasswd` itself is
later filtered out when the config file is generated.

The tsm-backup service module and the vm test are adapted.

Migration code will be added in a separate
commit to permit easy reversal later, when the
migration code is no longer deemed necessary.
2023-12-02 09:09:27 +01:00
Yarny0 8b918ed8ab nixos/tsm-client: submodule doesn't need singleton list 2023-12-02 09:09:27 +01:00
Yarny0 5bc6eb731e nixos/tsm-client: server alias names cannot have spaces 2023-12-02 09:09:27 +01:00
Yarny0 fe96d79adf nixos/tsm-client: drop own checkIUnique for allUnique 2023-12-02 09:09:27 +01:00
Yarny0 363cf1e363 nixos/tsm-client: use mkPackageOption for wrappedPackage 2023-12-02 09:08:47 +01:00
Yarny0 cec6d7f51a nixos/tsm*: update product name and URLs
With the tsm-client 8.1.19.0 release,
IBM renamed the product brand from
"IBM Spectrum Protect" to "IBM Storage Protect":
https://www.ibm.com/support/pages/node/6964770 .

The package already got updated in commits
5ff5b2ae4c and
a4b7a62532 .

The commit at hand updates the modules accordingly.
2023-12-02 09:05:45 +01:00
Emily Trau 00bee09724
Merge pull request #264419 from Noodlez1232/joycond-cemuhook
joycond-cemuhook: init at unstable-2023-08-09
2023-12-01 22:00:55 +11:00
Weijia Wang a06a0562f1
Merge pull request #271302 from SohamG/patch-1
nixos/oddjobd: add SohamG as maintainer
2023-12-01 09:19:46 +01:00
Soham Gumaste e1c0473dc4 nixos/oddjobd: add SohamG as maintainer 2023-12-01 09:17:45 +01:00
h7x4 f12eabdcbe
nixos/screen: clean up 2023-12-01 01:35:29 +01:00
h7x4 79d3d59f58
treewide: replace mkPackageOptionMD with mkPackageOption 2023-11-30 19:03:14 +01:00
Peder Bergebakken Sundt 637577f1bb
Merge pull request #261704 from baloo/baloo/dublin-traceroute/init
dublin-traceroute: init at 2023.04.12
2023-11-30 18:17:24 +01:00
Weijia Wang feeae486de
Merge pull request #261702 from h7x4/replace-mkoption-with-mkpackageoption
treewide: use `mkPackageOption`
2023-11-30 02:49:30 +01:00
Emily Trau a557bce738
Merge pull request #270344 from hexclover/bump-mininet
mininet: 2.3.0 -> 2.3.1b4, make `mn` start again
2023-11-29 18:24:33 +11:00
Arthur Gautier 070bcf9da4 nixos/dublin-traceroute: init 2023-11-28 08:47:56 -08:00
Maëlys Bras de fer 03652db90b nixos/river: add xdg.portal.config 2023-11-28 00:49:03 +01:00
hexclover 4e6fc83b98 nixos/mininet: wrap with mininet in PYTHONPATH and ifconfig in PATH 2023-11-27 14:22:30 +08:00
h7x4 0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
K900 54c8998ba1 treewide: /lib/libexec -> /libexec
/lib/libexec doesn't exist.
2023-11-26 10:55:37 +03:00
ProminentRetail 2db2f446c2
nixos/git: add prompt.enable 2023-11-24 20:38:16 +01:00
Silvan Mosberger bf01ec00a0
Merge pull request #250949 from ShamrockLee/apptainer-localstatedir
apptainer, singularity: use self-contained LOCALSTATEDIR by default
2023-11-23 01:37:54 +01:00
Reed Riley ed84add157 nixos/starship: add comment describing why this uses a hardcoded path 2023-11-22 11:17:03 -08:00
Bobby Rong fd788f9d1a nixos/wayland: Add xdg.portal.config or xdg.portal.configPackages
See the changes in x-d-p 1.17 for details.
2023-11-21 08:42:17 +01:00
Reed Riley 71d9dab8f0 starship: change logic that sets STARSHIP_CONFIG so that it won't override a user-provided config 2023-11-17 11:17:52 -08:00
name_snrl e3a7f716c2 nixos/sway: refactoring of package option
Instead of the `defaultSwayPackage` variable that overrides `pkgs.sway`, use a
function that will override the user-defined package, but only if the package
contains the necessary arguments.
2023-11-13 23:06:45 +05:00
Fabian Möller cd631134df AusweisApp2: 1.26.7 -> 2.0.1 2023-11-13 13:43:39 +01:00
Anthony Roussel e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
~noodlez1232 f1047f611d joycond-cemuhook: init at unstable-2023-08-09 2023-11-10 18:09:55 -08:00
Adam Joseph bc2d598878 treewide: change pythonForBuild to pythonOnBuildForHost 2023-11-05 17:42:12 -08:00
Thiago Kenji Okada 3fcd5f430b
Merge pull request #263206 from kanashimia/revert-259066-add-renice-sway
Revert "nixos/sway: add enableRealtime option"
2023-11-04 21:59:06 +00:00
linsui 92c106c097 nixos/firefox: update document link 2023-11-03 17:05:37 +08:00
Acid Bong e7d95c440b
nixos/direnv: fix typo 2023-10-31 12:09:06 +02:00
Herwig Hochleitner a5e03844dc
Merge pull request #260091 from bendlas/fix-cdemu-service
cdemu: fix service setup
2023-10-27 14:46:57 +02:00
h7x4 8c2f678ff6 nixos/cardboard: use mkPackageOptionMD 2023-10-25 16:19:26 -03:00
Anderson Torres 6b2f0db256 nixos/cardboard: init
Copy-inspired from river.
2023-10-25 13:26:38 -03:00
Kanashimia 952bb841ae
Revert "nixos/sway: add enableRealtime option" 2023-10-24 21:38:32 +03:00
K900 60421a1622 firefox: start killing all the per-extension options 2023-10-22 17:13:42 +03:00
Ivan Jager 57436cf549 nixos/firefox: Fix package references
https://github.com/NixOS/nixpkgs/pull/262017 removed `with pkgs;` so setting
`programs.firefox.enable = true` resulted in evaluation errors like
`error: undefined variable 'ff2mpv'`

This still doesn't fix https://github.com/NixOS/nixpkgs/issues/262600
2023-10-21 16:53:32 -05:00
K900 186cd78231
Merge pull request #262017 from K900/firefox-preserve-old-args
nixos/firefox: preserve old wrapper args when overriding
2023-10-21 11:46:40 +03:00
Bjørn Forsman 142074c2a8 nixos: fix bad mkEnableOption descriptions
Fix descriptions that don't account for (1) the "Whether to enable"
prefix or (2) the automatically added trailing dot.
2023-10-20 16:22:40 +01:00
K900 23704cce1f nixos/firefox: preserve old wrapper args when overriding
Also some drive-by cleanups
2023-10-19 13:10:22 +03:00
r-vdp 97e3336a5b
fish: use the subcommand style for the status command
The flag style has been deprecated and will eventually be removed.
2023-10-19 08:40:56 +02:00
the-furry-hubofeverything ac30ac808a nixos/virt-manager: init 2023-10-18 21:02:37 +02:00
Maximilian Bosch 89ec004f59
nixos/regreet: make cage(1) args configurable
In my case I'd like to be able to add `-m last` to `cage` to make sure
that the login form from regreet isn't displayed half on my external
monitor and half on my laptop screen, but on the last connected monitor
only.

That's basically the issue described in #226586, though it's not a
proper fix since the login form is shown on one monitor only.
2023-10-18 14:01:32 +02:00
Artturi 32817b0b03
Merge pull request #259075 from schuelermine/patch/nixos/modules/nano/syntaxHighlight 2023-10-15 02:46:07 +03:00
Janik 96896946dd
Merge pull request #242371 from jfly/add-openvpn3-systemd-resolved-support 2023-10-13 19:58:37 +02:00
Jeremy Fleischman 7ee5699496
nixos/openvpn3: Add support for systemd-resolved
I noticed that openvpn3 is been clobbering my `/etc/resolv.conf` file. I
dug around a bit, and it turns out that upstream actually does have
support for systemd-resolved. I think it makes sense for us to
automatically enable that feature if the system is configured to use
systemd-resolved.

I opted to not change the default behavior of `pkgs.openvpn3`, but can
easily be convinced to change that if folks think I should.
2023-10-13 00:32:15 -07:00
Pol Dellaiera 30046d3bc1
nixos/module: add projecteur 2023-10-12 19:51:20 +02:00
figsoda a9cd086d3c
Merge pull request #260618 from Aleksanaa/nixos/bandwhich
nixos/bandwhich: add missing capabilities
2023-10-12 10:18:46 -04:00
aleksana bb777015c8 nixos/bandwhich: add missing capabilities 2023-10-12 15:53:55 +08:00
Herwig Hochleitner 13364f124a cdemu: fix service setup
closes https://github.com/NixOS/nixpkgs/issues/154613
2023-10-10 00:23:27 +02:00
Thiago Kenji Okada e7a621f8e9
Merge pull request #259066 from thiagokokada/add-renice-sway
nixos/sway: add enableRealtime option
2023-10-09 19:53:51 +01:00
Michele Guerini Rocco 2e54187399
Merge pull request #258347 from Benjamin-L/gnupg-agent-extraconfig
nixos/gnupg: add agent.settings option
2023-10-09 11:12:55 +02:00
Benjamin Lee f0a8e05a5d
nixos/gnupg: add agent.settings option 2023-10-05 18:43:23 -07:00
Thiago Kenji Okada 63fce4ce48 nixos/sway: add enableRealtime option
This option wraps the `sway` binary to allow it to request realtime
scheduling (SCHED_RR). This allow for possible lower latency, specially
when the system is under high load.

Available since Sway 1.8. See:
- https://github.com/swaywm/sway/pull/6994
- https://github.com/swaywm/sway/releases/tag/1.8
2023-10-05 15:26:47 +01:00
Anselm Schüler a5bc9ee49b
nixos/nano: enable syntaxHighlight by default 2023-10-05 00:15:32 +02:00
Anselm Schüler 8679b69dcd
nixos/nano: include extra syntax highlight files when syntaxHighlight is true 2023-10-05 00:12:42 +02:00
Maximilian Bosch 4305d167a2
Merge pull request #256407 from Ma27/motd-ordering
nixos/rust-motd: allow ordering sections
2023-10-04 19:25:18 +02:00
edef 77225e33c0
Merge pull request #248627 from edef1c/gpg-agent-sockets 2023-10-04 12:32:29 -04:00
Alyssa Ross dc439e41db nixos/environment: move XDG_CONFIG_DIRS to sessionVariables
Otherwise, in non-interactive contexts (e.g. systemd units), this
entry (the default) won't be in the list.  Only the profile relative
ones would be, since they were already using session variables.  This
is clearly not the correct behavior.
2023-10-02 18:47:48 +00:00
Ryan Lahfa 6f4a420057
Merge pull request #257719 from CardboardTurkey/regreet-fix-group 2023-10-02 13:28:37 +02:00
K900 e53c99eb17 treewide: use pkgs.config instead of config.nixpkgs.config
`pkgs` may be passed in externally, in which case `config.nixpkgs.config` will not be set.

Follow-up to #257458.
2023-10-01 20:48:40 +03:00
K900 eb8ce7930d
Merge pull request #257458 from K900/die-nixpkgs-config-die
treewide: fail when `nixpkgs.config` is set with explicit `pkgs`, remove all `nixpkgs.config` usages in in-tree modules
2023-10-01 10:11:15 +03:00
Maximilian Bosch 57de6a8550
nixos/rust-motd: refactor assertion and TOML generation
* `sort (<)` also works for strings (TIL!), so no need for comparing
  length and whether all keys from `cfg.settings` exist in `cfg.order`
  (slightly less overhead).

* Don't build another piece of JSON (`orderedSections`), simply use
  `cfg.settings`/`cfg.order` with `__structuredAttrs` to ensure a
  properly ordered TOML.

  This also has the upside of not having to do quote hackery.

* Also, a freeform submodule isn't strictly needed because we don't have
  any special options defined, so replacing that with
  `attrsOf format.type`.

Co-authored-by: Silvan Mosberger <github@infinisil.com>
2023-09-29 11:13:27 +02:00
Sandro Jäckel 5b9cdda1c2
nixos/nano: add enable, package option, do not create /etc/nanorc by default
and remove nano from environment.defaultPackages. In addition also cleanup the file in general.

This is a follow up to #220481

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2023-09-29 00:24:34 +02:00
Kiran Ostrolenk eb2c136196
regreet: fix user group in tmpfiles rules
Prior to this commit the derivation assumed a user's primary group has
the same name as the user themselves. This is standard on linux but not
necessary (and indeed I believe not the default on NixOS).

Closes #232184
2023-09-27 22:00:42 +01:00
Maximilian Bosch d77b59b41d
nixos/rust-motd: use a second attribute (order) for the of sections in TOML
Rather than using `priority` with `sortProperties`, a new option called
`order` defines the ordering of the sections. I.e.

    order = [ "global" "uptime" "banner" ]

means that `uptime` comes before `banner`. Please note that `global` is
for global settings and not a section. I figured that it'd be too much
magic to hide this in the implementation and ask the user to specify the
order of _each_ section in `settings` instead.

OTOH this makes the intent way clearer than priorities. Also, this
remains opt-in, the option defaults to `attrNames cfg.settings`, i.e.
all sections ordered alphabetically.
2023-09-26 23:28:40 +02:00
K900 d3c27efa36 nixos/firefox: remove nixpkgs.config usage 2023-09-26 18:02:01 +03:00
Artturi 87ee3c4fdf
Merge pull request #176886 from hyperfekt/nonderivation_fish-completion 2023-09-23 06:28:23 +03:00
Maximilian Bosch 214cf0b934
nixos/rust-motd: .attrs.json -> "$NIX_ATTRS_JSON_FILE"
That way the derivation can also be built in a `nix-shell` where
`.attrs.json` isn't under "$NIX_BUILD_TOP".
2023-09-21 13:17:13 +02:00
Maximilian Bosch 11376df6d4
nixos/rust-motd: allow ordering sections by priority
Closes #234802

The problem here is that with e.g.

    {
      uptime.prefix = "Up";
      banner.command = "hostname | figlet -f slant";
    }

`banner` still appears before `uptime` in the final motd text because
Nix sorts attribute names alphabetically internally.

To work around this without breaking compatibility or losing the
property to override individual sections in other modules - e.g.

    {
      banner.color = mkForce "blue";
    }

I decided to introduce an option `priority` here, similar to the
priority field for `nginx`[1] and with the same semantics (i.e. higher
value means lower priority).

Internally a bunch of env vars are generated, i.e. `env0` to `envN` for
`N` sections with each of them containing a declaration for the TOML,
i.e. `env0` contains `{ uptime.prefix = "Up"; }` and `env1` contains
`{ banner.command = "hostname | figlet -f slant"; }` if `uptime.priority`
is set to a value below 1000.

In this order, the declarations are concatenated together by `jq(1)`
which doesn't sort keys alphabetically which results in a JSON
representation with `uptime` before `banner`. This is finally piped to
`json2toml` which converts this into TOML for rust-motd.

[1] https://nixos.org/manual/nixos/unstable/options#opt-services.nginx.virtualHosts._name_.locations._name_.priority
2023-09-21 13:17:13 +02:00
Maximilian Bosch 0a71cf07a8
nixos/rust-motd: run once on bootup
That way e.g. the last login and uptime isn't completely bogus when
accessing a machine for the first time after a reboot.
2023-09-20 22:16:03 +02:00
Nick Cao e8e461df5d
Merge pull request #254833 from NickCao/qt4-leftover
nixos/environment: drop QT_PLUGIN_PATH for qt4 and kde4 as they has b…
2023-09-19 10:08:27 -04:00
Nick Cao 315168eba4
nixos/environment: drop MOZ_PLUGIN_PATH
There are currently no references to MOZ_PLUGIN_PATH treewide in gecko[1].
And the support for this environment variable was dropped in 2019[2].

See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1602308

[1] https://github.com/search?q=repo%3Amozilla%2Fgecko-dev+MOZ_PLUGIN_PATH&type=code
[2] https://hg.mozilla.org/mozilla-central/rev/9b4e603eb86a
2023-09-15 09:49:19 -04:00
tomf e5d8baafcd
nixos/yubikey-touch-detector: init (#254947)
* nixos/yubikey-touch-detector: init

* nixos/yubikey-touch-detector: enable user socket
2023-09-14 20:15:32 +00:00
Mihai Fufezan cef441709d nixos/hyprland: update portal override 2023-09-14 11:03:04 +02:00
Nick Cao 1ae69c5842
nixos/environment: drop KDEDIRS as a leftover from KDE4 2023-09-13 11:05:45 -04:00
Nick Cao 74c10dd002
Merge pull request #254941 from foo-dogsquared/update-clash-verge-docs
nixos/clash-verge: fix module descriptions
2023-09-13 09:01:24 -04:00
Gabriel Arazas ffa538dfc4 nixos/clash-verge: fix module descriptions 2023-09-13 20:30:28 +08:00
linsui 840f02aa54 nixos/yazi: add to module-list.nix 2023-09-13 14:48:24 +08:00
Nick Cao c463b4f200
nixos/environment: drop QT_PLUGIN_PATH for qt4 and kde4 as they has been removed 2023-09-12 18:43:09 -04:00
Fabián Heredia Montiel 8f711593fc
Merge pull request #254296 from Gerg-L/direnv
nixos/direnv: remove persistDerivations
2023-09-12 16:20:15 -05:00
nicoo 3222262ff1 nixos/bash: Drop workarounds for eterm 2023-09-12 13:10:41 +00:00
Gerg-L 59e48e33c4
nixos/direnv: remove persistDerivations 2023-09-09 17:24:43 -04:00
Weijia Wang 4fbea0f80b
Merge pull request #253071 from linsui/yazi
nixos/yazi: init
2023-09-07 22:57:22 +02:00
Weijia Wang 024c8c2bd4
Merge pull request #247618 from Majiir/streamdeck-ui-3.0.1
streamdeck-ui: 2.0.6 -> 3.0.1
2023-09-07 10:24:22 +02:00
Majiir Paktu 44813a8a61 streamdeck-ui: split desktop items 2023-09-06 21:38:23 -04:00
Niklas Hambüchen 5d778d1f03 Add programs.ecryptfs for mount wrappers.
The `ecryptfs` package refers to the setuid wrapper paths, but they do
not exist so far in NixOS.
2023-09-05 18:56:24 +00:00
Sandro Jäckel 7eff362ca4
nixos/ssh: inline askPassword 2023-09-03 17:12:55 +02:00
linsui 6b2934d6e9 nixos/yazi: init 2023-09-03 17:28:12 +08:00