TryExec needs absolute path too, otherwise the desktop file will be ignored
unless gnome-session is in PATH, in which case, we would not need to patch
Exec.
GPaste GNOME Shell extension uses GPaste library generated via introspection. Previously, we added the gpaste package to services.xserver.desktopManager.gnome3.sessionPath option, which
added its typelib directory to GI_TYPELIB_PATH environment variable globally, in order for GNOME Shell to be able to find it. This is not very Nix-y, though, so we have decided to patch the code to
append the path to the GI repository search path.
Additionally, the code relies on GPaste’s GSettings schemas, so we had to hard-code the paths to them as well. We ignored the GNOME Shell’s schemas, since they will already be available for the
extension inside GNOME Shell program.
This makes the command ‘nix-env -qa -f. --arg config '{skipAliases =
true;}'’ work in Nixpkgs.
Misc...
- qtikz: use libsForQt5.callPackage
This ensures we get the right poppler.
- rewrites:
docbook5_xsl -> docbook_xsl_ns
docbook_xml_xslt -> docbook_xsl
diffpdf: fixup
This adds configuration options which automate the configuration of NVIDIA Optimus using PRIME. This allows using the NVIDIA proprietary driver on Optimus laptops, in order to render using the NVIDIA GPU while outputting to displays connected only to the integrated Intel GPU. It also adds an option for enabling kernel modesetting for the NVIDIA driver (via a kernel command line flag); this is particularly useful together with Optimus/PRIME because it fixes tearing on PRIME-connected screens.
The user still needs to enable the Optimus/PRIME feature and specify the bus IDs of the Intel and NVIDIA GPUs, but this is still much easier for users and more reliable. The implementation handles both the X configuration file as well as getting display managers to run certain necessary `xrandr` commands just after X has started.
Configuration of commands run after X startup is done using a new configuration option `services.xserver.displayManager.setupCommands`. Support for this option is implemented for LightDM, GDM and SDDM; all of these have been tested with this feature including logging into a Plasma session.
Note: support of `setupCommands` for GDM is implemented by making GDM run the session executable via a wrapper; the wrapper will run the `setupCommands` before execing. This seemed like the simplest and most reliable approach, and solves running these commands both for GDM's X server and user X servers (GDM starts separate X servers for itself and user sessions). An alternative approach would be with autostart files but that seems harder to set up and less reliable.
Note that some simple features for X configuration file generation (in `xserver.nix`) are added which are used in the implementation:
- `services.xserver.extraConfig`: Allows adding arbitrary new sections. This is used to add the Device section for the Intel GPU.
- `deviceSection` and `screenSection` within `services.xserver.drivers`. This allows the nvidia configuration module to add additional contents into the `Device` and `Screen` sections of the "nvidia" driver, and not into such sections for other drivers that may be enabled.
Currently, vinagre fails to build with the following message:
vinagre/vinagre-utils.c: In function 'vinagre_utils_request_credential':
vinagre/vinagre-utils.c:686:2: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
_tmp12_ = g_strdup_printf (_tmp10_, _tmp11_);
^~~~~~~
vinagre-utils.c seems to be generated from vinagre-utils.vala. I
couldn't find anything weird in here, so let's disable
-Werror=format-nonliteral for now as done elsewhere, too.
We are patching GDM to respect GDM_SESSIONS_DIR environment
variable, which we are setting in the GDM module. Previously, we
only took care of a single code path, the one that handled session
start-up; missing the one obtaining the list of sessions.
This commit patches the second code path, and also whitelists the
GDM_SESSIONS_DIR so that it can be passed to the greeter.
Fixes#34101
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/gpaste/versions.
These checks were done:
- built on NixOS
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client -h’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client --help’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client help’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client -v’ and found version 3.28.2
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client --version’ and found version 3.28.2
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/gpaste-client version’ and found version 3.28.2
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped -h’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped --help’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped help’ got 0 exit code
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped -v’ and found version 3.28.2
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped --version’ and found version 3.28.2
- ran ‘/nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2/bin/.gpaste-client-wrapped version’ and found version 3.28.2
- found 3.28.2 with grep in /nix/store/qaadzk12f4bcqas0x09h89w74r6s740z-gpaste-3.28.2
- directory tree listing: https://gist.github.com/528b9d74e22700cfa3bb92a21baa9f09
This fixes USB redirection in gnome-boxes by ensuring that the
required PolicyKit action policy file is installed in the spice-gtk
package and adding that package to gnome-boxes propagatedUserEnvPkgs.