about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Hilhorst <git@hilhorst.be>2021-11-21 21:57:49 +0100
committerGitHub <noreply@github.com>2021-11-21 21:57:49 +0100
commit5a14b59cd75779ab050f9384cbbe3b8aaee00dd5 (patch)
tree4dda2cf82e8ed49129bef4cb74b2b2e7c4788bf1
parentcb4c8d3e51e3596594b33834634cd89a4fd7c3c9 (diff)
parent83265a850dea2824456db1debf902520db1a536d (diff)
Merge pull request #122995 from primeos/sway-install-default-wallpaper
-rw-r--r--nixos/modules/programs/sway.nix2
-rw-r--r--pkgs/applications/window-managers/sway/default.nix14
-rw-r--r--pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch21
3 files changed, 31 insertions, 6 deletions
diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix
index caf329c2536a3..c64e01a20cb3d 100644
--- a/nixos/modules/programs/sway.nix
+++ b/nixos/modules/programs/sway.nix
@@ -123,6 +123,8 @@ in {
     ];
     environment = {
       systemPackages = [ swayPackage ] ++ cfg.extraPackages;
+      # Needed for the default wallpaper:
+      pathsToLink = [ "/share/backgrounds/sway" ];
       etc = {
         "sway/config".source = mkOptionDefault "${swayPackage}/etc/sway/config";
         "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index fb0cb31fad578..782bd360d730a 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -22,19 +22,22 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./sway-config-no-nix-store-references.patch
     ./load-configuration-from-etc.patch
 
     (substituteAll {
       src = ./fix-paths.patch;
       inherit swaybg;
     })
+  ] ++ lib.optionals (!isNixOS) [
+    # References to /nix/store/... will get GC'ed which causes problems when
+    # copying the default configuration:
+    ./sway-config-no-nix-store-references.patch
+  ] ++ lib.optionals isNixOS [
+    # Use /run/current-system/sw/share and /etc instead of /nix/store
+    # references:
+    ./sway-config-nixos-paths.patch
   ];
 
-  postPatch = lib.optionalString isNixOS ''
-    echo -e '\ninclude /etc/sway/config.d/*' >> config.in
-  '';
-
   nativeBuildInputs = [
     meson ninja pkg-config wayland-scanner scdoc
   ];
@@ -47,7 +50,6 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Ddefault-wallpaper=false"
     "-Dsd-bus-provider=libsystemd"
   ]
     ++ lib.optional (!enableXWayland) "-Dxwayland=disabled"
diff --git a/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch b/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch
new file mode 100644
index 0000000000000..bbb0f722b8bc2
--- /dev/null
+++ b/pkgs/applications/window-managers/sway/sway-config-nixos-paths.patch
@@ -0,0 +1,21 @@
+diff --git a/config.in b/config.in
+index 08703bef..f3872730 100644
+--- a/config.in
++++ b/config.in
+@@ -22,8 +22,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec --
+ 
+ ### Output configuration
+ #
+-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
+-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
++# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
++output * bg /run/current-system/sw/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+ #
+ # Example configuration:
+ #
+@@ -214,4 +214,4 @@ bar {
+     }
+ }
+ 
+-include @sysconfdir@/sway/config.d/*
++include /etc/sway/config.d/*