···173173supports Glamor (2D graphics acceleration via OpenGL) and is actively
174174maintained, it may perform worse in some cases (like in old chipsets).
175175176176+There is a second driver, `intel` (provided by the xf86-video-intel package),
177177+specific to older Intel iGPUs from generation 2 to 9. It is not recommended by
178178+most distributions: it lacks several modern features (for example, it doesn't
179179+support Glamor) and the package hasn't been officially updated since 2015.
180180+181181+Third generation and older iGPUs (15-20+ years old) are not supported by the
182182+`modesetting` driver (X will crash upon startup). Thus, the `intel` driver is
183183+required for these chipsets.
184184+Otherwise, the results vary depending on the hardware, so you may have to try
185185+both drivers. Use the option
186186+[](#opt-services.xserver.videoDrivers)
187187+to set one. The recommended configuration for modern systems is:
188188+189189+```nix
190190+{
191191+ services.xserver.videoDrivers = [ "modesetting" ];
192192+}
193193+```
176194::: {.note}
177195The `modesetting` driver doesn't currently provide a `TearFree` option (this
178196will become available in an upcoming X.org release), So, without using a
···180198experience screen tearing.
181199:::
182200183183-There also used to be a second driver, `intel` (provided by the
184184-xf86-video-intel package), specific to older Intel iGPUs from generation 2 to
185185-9.
186186-This driver hasn't been maintained in years and was removed in NixOS 24.11
187187-after it stopped working. If you chipset is too old to be supported by
188188-`modesetting` and have no other choice you may try an unsupported NixOS version
189189-(reportedly working up to NixOS 24.05) and set
201201+If you experience screen tearing no matter what, this configuration was
202202+reported to resolve the issue:
190203191204```nix
192205{
193206 services.xserver.videoDrivers = [ "intel" ];
207207+ services.xserver.deviceSection = ''
208208+ Option "DRI" "2"
209209+ Option "TearFree" "true"
210210+ '';
194211}
195212```
213213+214214+Note that this will likely downgrade the performance compared to
215215+`modesetting` or `intel` with DRI 3 (default).
196216197217## Proprietary NVIDIA drivers {#sec-x11-graphics-cards-nvidia}
198218
+4
nixos/doc/manual/release-notes/rl-2505.section.md
···37373838- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
39394040+- The `intel` video driver for X.org (from the xf86-video-intel package) which was previously removed because it was non-functional has been fixed and the driver has been re-introduced.
4141+4042- The Mattermost module ({option}`services.mattermost`) and packages (`mattermost` and `mmctl`) have been substantially updated:
4143 - {option}`services.mattermost.preferNixConfig` now defaults to true if you advance {option}`system.stateVersion` to 25.05. This means that if you have {option}`services.mattermost.mutableConfig` set, NixOS will override your settings to those that you define in the module. It is recommended to leave this at the default, even if you used a mutable config before, because it will ensure that your Mattermost data directories are correct. If you moved your data directories, you may want to review the module changes before upgrading.
4244 - Mattermost telemetry reporting is now disabled by default, though security update notifications are enabled. Look at {option}`services.mattermost.telemetry` for options to control this behavior.
···194196- `ast-grep` remove `sg` command to prevent conflict with `sg` command from shadow-utils. If you need legacy sg command compatibility with old code, you can use `ast-grep.override { enableLegacySg = true; }`
195197196198- rename package `wtf` to `wtfutil`.
199199+200200+- The udev rules of the libjaylink package require users to be in the `jlink` instead of `plugdev` group now, since the `plugdev` group is very uncommon for NixOS. Alternatively, access is granted to seat sessions.
197201198202- `python3Packages.beancount` was updated to 3.1.0. Previous major version remains available as `python3Packages.beancount_2`.
199203
+27
nixos/modules/hardware/libjaylink.nix
···11+{
22+ config,
33+ lib,
44+ pkgs,
55+ ...
66+}:
77+88+let
99+ cfg = config.hardware.libjaylink;
1010+in
1111+{
1212+ options.hardware.libjaylink = {
1313+ enable = lib.mkEnableOption ''
1414+ udev rules for devices supported by libjaylink.
1515+ Add users to the `jlink` group in order to grant
1616+ them access
1717+ '';
1818+ package = lib.mkPackageOption pkgs "libjaylink" { };
1919+ };
2020+2121+ config = lib.mkIf cfg.enable {
2222+ users.groups.jlink = { };
2323+ services.udev.packages = [ cfg.package ];
2424+ };
2525+2626+ meta.maintainers = with lib.maintainers; [ felixsinger ];
2727+}
···17517175171751817518 nix = nixVersions.stable;
17519175191752017520+ # Overlays for CppNix nightly, Lix, or Tvix want to change the default Nix
1752117521+ # implementation in Nixpkgs by overriding `pkgs.nix`. However, some packages
1752217522+ # link against the internal/unstable CppNix APIs directly, and these packages
1752317523+ # will break if built with different versions or implementations of Nix.
1752417524+ #
1752517525+ # If you want to swap out the Nix implementation in your package set, you
1752617526+ # don't want these packages to break. Therefore, some packages will refer to
1752717527+ # `nixForLinking` explicitly, at least until these dependencies can be sorted out.
1752817528+ nixForLinking = nixVersions.stable;
1752917529+1752017530 nixStatic = pkgsStatic.nix;
17521175311752217532 lixVersions = recurseIntoAttrs (callPackage ../tools/package-management/lix {