about summary refs log tree commit diff
path: root/overlays/patches/nixpkgs-wayland/pkgs/sway
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/patches/nixpkgs-wayland/pkgs/sway')
-rw-r--r--overlays/patches/nixpkgs-wayland/pkgs/sway/default.nix56
-rw-r--r--overlays/patches/nixpkgs-wayland/pkgs/sway/load-configuration-from-etc.patch43
-rw-r--r--overlays/patches/nixpkgs-wayland/pkgs/sway/metadata.nix8
-rw-r--r--overlays/patches/nixpkgs-wayland/pkgs/sway/sway-config-no-nix-store-references.patch21
4 files changed, 128 insertions, 0 deletions
diff --git a/overlays/patches/nixpkgs-wayland/pkgs/sway/default.nix b/overlays/patches/nixpkgs-wayland/pkgs/sway/default.nix
new file mode 100644
index 000000000000..9bc77b0f5b9b
--- /dev/null
+++ b/overlays/patches/nixpkgs-wayland/pkgs/sway/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, meson, ninja
+, pkgconfig, scdoc
+, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
+, pango, cairo, libinput, libcap, pam, gdk-pixbuf
+, wlroots, wayland-protocols
+}:
+
+let metadata = import ./metadata.nix; in
+stdenv.mkDerivation rec {
+  pname = "sway-unwrapped";
+  version = "${metadata.rev}";
+
+  src = fetchFromGitHub {
+    owner = "swaywm";
+    repo = "sway";
+    rev = metadata.rev;
+    sha256 = metadata.sha256;
+  };
+
+  patches = [
+    ./sway-config-no-nix-store-references.patch
+    ./load-configuration-from-etc.patch
+  ];
+
+  postPatch = ''
+    # replace the version
+    date="$(date -d '${metadata.revdate}' +'%b %d %Y')"
+    sed -i "s/\([ \t]\)version: '\(.*\)',/\1version: '\2-${stdenv.lib.substring 0 8 metadata.rev} ($date, branch \\\'${metadata.branch}\\\')',/" meson.build
+  '';
+
+  nativeBuildInputs = [
+    pkgconfig meson ninja scdoc
+  ];
+
+  buildInputs = [
+    wayland libxkbcommon pcre json_c dbus libevdev
+    pango cairo libinput libcap pam gdk-pixbuf
+    wlroots wayland-protocols
+  ];
+
+  enableParallelBuilding = true;
+
+  mesonFlags = [
+    "-Ddefault-wallpaper=false" "-Dxwayland=enabled" "-Dgdk-pixbuf=enabled"
+    "-Dtray=enabled" "-Dman-pages=enabled"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "i3-compatible tiling Wayland compositor";
+    homepage    = https://swaywm.org;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos synthetica ];
+  };
+}
diff --git a/overlays/patches/nixpkgs-wayland/pkgs/sway/load-configuration-from-etc.patch b/overlays/patches/nixpkgs-wayland/pkgs/sway/load-configuration-from-etc.patch
new file mode 100644
index 000000000000..ba883682e7bb
--- /dev/null
+++ b/overlays/patches/nixpkgs-wayland/pkgs/sway/load-configuration-from-etc.patch
@@ -0,0 +1,43 @@
+From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001
+From: Michael Weiss <dev.primeos@gmail.com>
+Date: Sat, 27 Apr 2019 14:26:16 +0200
+Subject: [PATCH] Load configs from /etc but fallback to /nix/store
+
+This change will load all configuration files from /etc, to make it easy
+to override them, but fallback to /nix/store/.../etc/sway/config to make
+Sway work out-of-the-box with the default configuration on non NixOS
+systems.
+---
+ meson.build   | 3 ++-
+ sway/config.c | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 02b5d606..c03a9c0f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -129,7 +129,8 @@ if scdoc.found()
+ 	endforeach
+ endif
+ 
+-add_project_arguments('-DSYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
++add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c')
++add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
+ 
+ version = '"@0@"'.format(meson.project_version())
+ if git.found()
+diff --git a/sway/config.c b/sway/config.c
+index 4cd21bbc..dd855753 100644
+--- a/sway/config.c
++++ b/sway/config.c
+@@ -317,6 +317,7 @@ static char *get_config_path(void) {
+ 		"$XDG_CONFIG_HOME/i3/config",
+ 		SYSCONFDIR "/sway/config",
+ 		SYSCONFDIR "/i3/config",
++		NIX_SYSCONFDIR "/sway/config",
+ 	};
+ 
+ 	char *config_home = getenv("XDG_CONFIG_HOME");
+-- 
+2.19.2
+
diff --git a/overlays/patches/nixpkgs-wayland/pkgs/sway/metadata.nix b/overlays/patches/nixpkgs-wayland/pkgs/sway/metadata.nix
new file mode 100644
index 000000000000..463484605992
--- /dev/null
+++ b/overlays/patches/nixpkgs-wayland/pkgs/sway/metadata.nix
@@ -0,0 +1,8 @@
+{
+  repo_git = "https://github.com/swaywm/sway";
+  branch = "master";
+  upattr = "sway-unwrapped";
+  rev = "6991ac8c70869ca19a87cfc173e280cab7ff20d0";
+  sha256 = "sha256-LJFnprMblFxmTv782gwCls2X+6qDLD//b6fbuDJ8cTg=";
+  revdate = "2020-08-11 22:37:11Z";
+}
diff --git a/overlays/patches/nixpkgs-wayland/pkgs/sway/sway-config-no-nix-store-references.patch b/overlays/patches/nixpkgs-wayland/pkgs/sway/sway-config-no-nix-store-references.patch
new file mode 100644
index 000000000000..009c12959430
--- /dev/null
+++ b/overlays/patches/nixpkgs-wayland/pkgs/sway/sway-config-no-nix-store-references.patch
@@ -0,0 +1,21 @@
+diff --git a/config.in b/config.in
+--- a/config.in
++++ b/config.in
+@@ -21,8 +21,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
++#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill
+ #
+ # Example configuration:
+ #
+@@ -213,5 +213,3 @@ bar {
+         inactive_workspace #32323200 #32323200 #5c5c5c
+     }
+ }
+-
+-include @sysconfdir@/sway/config.d/*
+