Merge pull request #122605 from primeos/nixos-sway-extend-default-configuration

nixos/sway: Extend the default configuration for NixOS

Changed files
+20 -7
nixos
modules
programs
pkgs
applications
window-managers
+6 -2
nixos/modules/programs/sway.nix
···
extraOptions = cfg.extraOptions;
withBaseWrapper = cfg.wrapperFeatures.base;
withGtkWrapper = cfg.wrapperFeatures.gtk;
+
isNixOS = true;
};
in {
options.programs.sway = {
···
systemPackages = [ swayPackage ] ++ cfg.extraPackages;
etc = {
"sway/config".source = mkOptionDefault "${swayPackage}/etc/sway/config";
-
#"sway/security.d".source = mkOptionDefault "${swayPackage}/etc/sway/security.d/";
-
#"sway/config.d".source = mkOptionDefault "${swayPackage}/etc/sway/config.d/";
+
"sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
+
# Import the most important environment variables into the D-Bus and systemd
+
# user environments (e.g. required for screen sharing and Pinentry prompts):
+
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
+
'';
};
};
security.pam.services.swaylock = {};
+6
pkgs/applications/window-managers/sway/default.nix
···
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
, wlroots, wayland-protocols, libdrm
, nixosTests
+
# Used by the NixOS module:
+
, isNixOS ? false
}:
stdenv.mkDerivation rec {
···
inherit swaybg;
})
];
+
+
postPatch = lib.optionalString isNixOS ''
+
echo -e '\ninclude /etc/sway/config.d/*' >> config.in
+
'';
nativeBuildInputs = [
meson ninja pkg-config wayland scdoc
+8 -5
pkgs/applications/window-managers/sway/wrapper.nix
···
, withBaseWrapper ? true, extraSessionCommands ? "", dbus
, withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3
, extraOptions ? [] # E.g.: [ "--verbose" ]
+
# Used by the NixOS module:
+
, isNixOS ? false
}:
assert extraSessionCommands != "" -> withBaseWrapper;
···
with lib;
let
+
sway = sway-unwrapped.override { inherit isNixOS; };
baseWrapper = writeShellScriptBin "sway" ''
set -o errexit
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
···
fi
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS
-
exec ${sway-unwrapped}/bin/sway "$@"
+
exec ${sway}/bin/sway "$@"
else
-
exec ${dbus}/bin/dbus-run-session ${sway-unwrapped}/bin/sway "$@"
+
exec ${dbus}/bin/dbus-run-session ${sway}/bin/sway "$@"
fi
'';
in symlinkJoin {
-
name = "sway-${sway-unwrapped.version}";
+
name = "sway-${sway.version}";
paths = (optional withBaseWrapper baseWrapper)
-
++ [ sway-unwrapped ];
+
++ [ sway ];
nativeBuildInputs = [ makeWrapper ]
++ (optional withGtkWrapper wrapGAppsHook);
···
passthru.providedSessions = [ "sway" ];
-
inherit (sway-unwrapped) meta;
+
inherit (sway) meta;
}