Commit graph

1213 commits

Author SHA1 Message Date
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
linsui 6b2934d6e9 nixos/yazi: init 2023-09-03 17:28:12 +08:00
Jan Tojnar 434d160d7c
Merge pull request #234615 from linsui/dconf
nixos/dconf: support generating from attrs
2023-08-28 18:31:52 +02:00
Franz Pletz da9db25ca4
Merge pull request #222515 from codedownio/tmux-run-plugins-last 2023-08-26 22:47:33 +02:00
Ilan Joselevich 0f95d1cfe1
Merge pull request #248748 from acid-bong/zshLsColors
nixos/zsh: add enableLsColors
2023-08-24 22:04:43 +03:00
Tobias Widmann e4a62b0fd1 nixos/htop: fix boolean values in settings option
When generating htoprc, in order to be recognized by htop, a boolean value
of 'false' should be written as '0', not an empty string.
2023-08-20 00:10:24 +02:00
Lin Jian 1c704628dc
nixos/environment: stop setting ASPELL_CONF
We set[1] ASPELL_CONF to the last nix profile containing lib/aspell in
2013.  In 2017, aspell is patched[2] to search NIX_PROFILES, which
makes [1] not needed any more.

Deleting it is also agreed in this discussion[3].

[1]: 0192c02720
[2]: ba4cefe4ae
[3]: https://github.com/NixOS/nixpkgs/pull/30234
2023-08-16 09:18:45 +08:00
linsui 038d78d4ce nixos/dconf: add locks support 2023-08-15 19:20:39 +08:00
linsui fb52d5df86 nixos/dconf: add settings support 2023-08-15 19:20:39 +08:00
linsui cce75fa51e nixos/dconf: refractor
remove `with lib;`
profiles option now accepts packages in addition to paths.
profiles option is no longer internal.
cfgDir definition has been inlined.
pulled GIO_EXTRA_MODULES inside mkif.
removed pointless comments with section headings.
defined profiles are now turned into package, allowing to simplify the db update logic.
2023-08-15 19:20:39 +08:00
Acid Bong c76bb0d58e
nixos/zsh: add enableLsColors
Borrowed from nixos/bash/ls-colors module
2023-08-12 20:53:05 +03:00
Maximilian Bosch 66ab687151
Merge pull request #248131 from Ma27/captive-browser-setcap
nixos/captive-browser: drop setcap wrapper for captive-browser
2023-08-12 14:52:38 +02:00
Ilan Joselevich 2393e099a6
Merge pull request #247008 from fufexan/hyprland
Update hyprwm packages and nixos/hyprland
2023-08-12 14:55:29 +03:00
edef 8131fc5ee6 nixos/gnupg: require sockets.target, not just gpg-agent.socket
If other sockets are enabled, such as gpg-agent-browser.socket,
those should be started before gpg-agent.service as well.

Change-Id: I29d3f4b19db9e687425b594dcef863a88ec296c9
2023-08-12 03:19:10 +00:00
Maximilian Bosch 183be440fd
nixos/captive-browser: drop setcap wrapper for captive-browser
Since Linux 5.7 it's possible to set `SO_BINDTODEVICE` via `setsockopt(2)`
as unprivileged user if this operation doesn't imply escaping a VRF
interface[1].

Dropping the wrapper is actually desirable because `captive-browser`
itself doesn't drop capabilities and as a result, the capabilities are
passed on to `chromium` itself[2].

For older kernels, this is still necessary, hence the wrapper will only
be added nowadays if the kernel is older than 5.7.

[1] c427bfec18
[2] 08450562e5/bind_device_linux.go (L11-L14)
    and because our setcap wrapper makes all capabilities
    inheritable.
2023-08-10 14:06:38 +02:00
Artturin ea580ebee8 nixos/fish: Fix completion generator cross-compilation 2023-08-08 23:21:38 +03:00
Mihai Fufezan 50ad802e51
nixos/hyprland: remove xwayland.hidpi 2023-08-08 20:32:53 +03:00
Lin Jian 74fadae942
treewide: stop using types.string
It is an error[1] now.

[1]: https://github.com/NixOS/nixpkgs/pull/247848
2023-08-08 21:31:21 +08:00
Tom McLaughlin addfb000c4 tmux: add extraConfigBeforePlugins 2023-08-05 18:59:52 -07:00
Robert Hensing f8f9f13d57
Merge pull request #246386 from hercules-ci/lib-getExe-dont-make-name-assumption
lib.getExe: Do not make assumptions about the main program
2023-08-02 20:05:52 +02:00