diff --git a/modules/graphical/sway/default.nix b/modules/graphical/sway/default.nix index 6e151061..211198ec 100644 --- a/modules/graphical/sway/default.nix +++ b/modules/graphical/sway/default.nix @@ -158,7 +158,7 @@ in exec ${config.chvp.graphical.firefox.package}/bin/firefox '' + (lib.optionalString config.chvp.programs.element.enable '' workspace 3 - exec ${pkgs.element-desktop-wayland}/bin/element-desktop + exec ${pkgs.element-desktop}/bin/element-desktop ''); extraSessionCommands = '' export XDG_SESSION_TYPE=wayland diff --git a/modules/programs/element/default.nix b/modules/programs/element/default.nix index b682635b..b087417c 100644 --- a/modules/programs/element/default.nix +++ b/modules/programs/element/default.nix @@ -11,7 +11,7 @@ { path = ".config/Element"; type = "cache"; } ]; home-manager.users.charlotte = { ... }: { - home.packages = [ pkgs.element-desktop-wayland ]; + home.packages = [ pkgs.element-desktop ]; }; }; } diff --git a/patches/151902.patch b/patches/151902.patch new file mode 100644 index 00000000..26b68098 --- /dev/null +++ b/patches/151902.patch @@ -0,0 +1,344 @@ +From 72181a8b55ef51c2ac3fee3a58f7e97b5aa89700 Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Thu, 23 Dec 2021 20:19:41 +0100 +Subject: [PATCH 1/8] sway: 1.6.1 -> 1.7-rc1 + +--- + pkgs/applications/window-managers/sway/default.nix | 8 ++++---- + pkgs/top-level/all-packages.nix | 4 +--- + 2 files changed, 5 insertions(+), 7 deletions(-) + +diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix +index ec08568f0589c..0b1f0cd3e0e0e 100644 +--- a/pkgs/applications/window-managers/sway/default.nix ++++ b/pkgs/applications/window-managers/sway/default.nix +@@ -1,5 +1,5 @@ + { lib, stdenv, fetchFromGitHub, substituteAll, swaybg +-, meson, ninja, pkg-config, wayland-scanner, scdoc ++, meson_0_60, ninja, pkg-config, wayland-scanner, scdoc + , wayland, libxkbcommon, pcre, json_c, dbus, libevdev + , pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg + , wlroots, wayland-protocols, libdrm +@@ -12,13 +12,13 @@ + + stdenv.mkDerivation rec { + pname = "sway-unwrapped"; +- version = "1.6.1"; ++ version = "1.7-rc1"; + + src = fetchFromGitHub { + owner = "swaywm"; + repo = "sway"; + rev = version; +- sha256 = "0j4sdbsrlvky1agacc0pcz9bwmaxjmrapjnzscbd2i0cria2fc5j"; ++ sha256 = "1c46p2paywwhvjr6iaw5bhm92wxw0njldg6727xdmfnjj27v5603"; + }; + + patches = [ +@@ -43,7 +43,7 @@ stdenv.mkDerivation rec { + ]; + + nativeBuildInputs = [ +- meson ninja pkg-config wayland-scanner scdoc ++ meson_0_60 ninja pkg-config wayland-scanner scdoc + ]; + + buildInputs = [ +diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix +index 0627a2fb20021..a6e0b133cd068 100644 +--- a/pkgs/top-level/all-packages.nix ++++ b/pkgs/top-level/all-packages.nix +@@ -26143,9 +26143,7 @@ with pkgs; + inherit (xorg) xcbutilrenderutil; + }; + +- sway-unwrapped = callPackage ../applications/window-managers/sway { +- wlroots = wlroots_0_14; +- }; ++ sway-unwrapped = callPackage ../applications/window-managers/sway { }; + sway = callPackage ../applications/window-managers/sway/wrapper.nix { }; + swaybg = callPackage ../applications/window-managers/sway/bg.nix { }; + swayidle = callPackage ../applications/window-managers/sway/idle.nix { }; + +From ebe0d3b6b730529a476f72e3df66bb15e0caeb87 Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Tue, 28 Dec 2021 17:01:06 +0100 +Subject: [PATCH 2/8] nixos/sway: alacritty -> foot (WIP) + +--- + nixos/modules/programs/sway.nix | 4 ++-- + nixos/tests/sway.nix | 3 ++- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/nixos/modules/programs/sway.nix b/nixos/modules/programs/sway.nix +index c64e01a20cb3d..bb9904d195606 100644 +--- a/nixos/modules/programs/sway.nix ++++ b/nixos/modules/programs/sway.nix +@@ -90,10 +90,10 @@ in { + extraPackages = mkOption { + type = with types; listOf package; + default = with pkgs; [ +- swaylock swayidle alacritty dmenu ++ swaylock swayidle foot dmenu + ]; + defaultText = literalExpression '' +- with pkgs; [ swaylock swayidle alacritty dmenu ]; ++ with pkgs; [ swaylock swayidle foot dmenu ]; + ''; + example = literalExpression '' + with pkgs; [ +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index 3476ebab3e26c..63f9099a864f0 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + + environment = { + # For glinfo and wayland-info: +- systemPackages = with pkgs; [ mesa-demos wayland-utils ]; ++ systemPackages = with pkgs; [ mesa-demos wayland-utils alacritty ]; + # Use a fixed SWAYSOCK path (for swaymsg): + variables = { + "SWAYSOCK" = "/tmp/sway-ipc.sock"; +@@ -72,6 +72,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + machine.screenshot("alacritty_glinfo") + machine.succeed("pkill alacritty") + ++ # TODO: Switch to foot (or add an additional foot test) and use $mod+Return: + # Start a terminal (Alacritty) on workspace 3: + machine.send_key("alt-3") + machine.succeed( + +From 4d2a5a6954d3a380f2298a5704d982e613b74024 Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Sun, 2 Jan 2022 13:26:05 +0100 +Subject: [PATCH 3/8] nixos/tests/sway: Fix the test by switching to the Pixman + renderer + +--- + nixos/tests/sway.nix | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index 63f9099a864f0..bdcbc0ab113e9 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -17,7 +17,12 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + # Use a fixed SWAYSOCK path (for swaymsg): + variables = { + "SWAYSOCK" = "/tmp/sway-ipc.sock"; +- "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; ++ # TODO: Investigate if we can get hardware acceleration to work (via ++ # virtio-gpu and Virgil). We currently have to use the Pixman software ++ # renderer since the GLES2 renderer doesn't work inside the VM (even ++ # with WLR_RENDERER_ALLOW_SOFTWARE): ++ # "WLR_RENDERER_ALLOW_SOFTWARE" = "1"; ++ "WLR_RENDERER" = "pixman"; + }; + # For convenience: + shellAliases = { + +From 6266655558b22957d079cbec949ef54ed44c8fb7 Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Sun, 2 Jan 2022 13:32:49 +0100 +Subject: [PATCH 4/8] nixos/tests/sway: Verify if Sway exited successfully + +--- + nixos/tests/sway.nix | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index bdcbc0ab113e9..5f27f380ee40e 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -110,9 +110,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + # Exit Sway and verify process exit status 0: + machine.succeed("su - alice -c 'swaymsg exit || true'") + machine.wait_until_fails("pgrep -x sway") +- +- # TODO: Sway currently segfaults after "swaymsg exit" but only in this VM test: +- # machine # [ 104.090032] sway[921]: segfault at 3f800008 ip 00007f7dbdc25f10 sp 00007ffe282182f8 error 4 in libwayland-server.so.0.1.0[7f7dbdc1f000+8000] +- # machine.wait_for_file("/tmp/sway-exit-ok") ++ machine.wait_for_file("/tmp/sway-exit-ok") + ''; + }) + +From db073180b0690401a5cb2abd3a0fb0386cb00382 Mon Sep 17 00:00:00 2001 +From: Patrick Hilhorst +Date: Sun, 2 Jan 2022 21:46:54 +0100 +Subject: [PATCH 5/8] nixos/tests/sway: update for sway 1.7 + +--- + nixos/tests/sway.nix | 38 +++++++++++++++++++++++++------------- + 1 file changed, 25 insertions(+), 13 deletions(-) + +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index 5f27f380ee40e..33c1ed66f552d 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -1,4 +1,4 @@ +-import ./make-test-python.nix ({ pkgs, lib, ...} : ++import ./make-test-python.nix ({ pkgs, lib, ... }: + + { + name = "sway"; +@@ -26,11 +26,25 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + }; + # For convenience: + shellAliases = { +- test-x11 = "glinfo | head -n 3 | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; ++ test-x11 = "glinfo | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok"; + test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok"; + }; ++ ++ # To help with OCR: ++ etc."xdg/foot/foot.ini".text = lib.generators.toINI { } { ++ main = { ++ font = "inconsolata:size=14"; ++ }; ++ colors = rec { ++ foreground = "000000"; ++ background = "ffffff"; ++ regular2 = foreground; ++ }; ++ }; + }; + ++ fonts.fonts = [ pkgs.inconsolata ]; ++ + # Automatically configure and start Sway when logging in on tty1: + programs.bash.loginShellInit = '' + if [ "$(tty)" = "/dev/tty1" ]; then +@@ -66,30 +80,28 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : + machine.wait_for_file("/run/user/1000/wayland-1") + machine.wait_for_file("/tmp/sway-ipc.sock") + +- # Test XWayland: ++ # Test XWayland (foot does not support X): + machine.succeed( + "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'" + ) + machine.wait_for_text("alice@machine") + machine.send_chars("test-x11\n") + machine.wait_for_file("/tmp/test-x11-exit-ok") +- print(machine.succeed("cat /tmp/test-x11.out")) +- machine.screenshot("alacritty_glinfo") ++ machine.copy_from_vm("/tmp/test-x11.out") ++ machine.screenshot("alacrittyglinfo") + machine.succeed("pkill alacritty") + +- # TODO: Switch to foot (or add an additional foot test) and use $mod+Return: +- # Start a terminal (Alacritty) on workspace 3: ++ # Start a terminal (foot) on workspace 3: + machine.send_key("alt-3") +- machine.succeed( +- "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=wayland DISPLAY=invalid alacritty'" +- ) ++ machine.sleep(3) ++ machine.send_key("alt-ret") + machine.wait_for_text("alice@machine") + machine.send_chars("test-wayland\n") + machine.wait_for_file("/tmp/test-wayland-exit-ok") +- print(machine.succeed("cat /tmp/test-wayland.out")) +- machine.screenshot("alacritty_wayland_info") ++ machine.copy_from_vm("/tmp/test-wayland.out") ++ machine.screenshot("foot_wayland_info") + machine.send_key("alt-shift-q") +- machine.wait_until_fails("pgrep alacritty") ++ machine.wait_until_fails("pgrep foot") + + # Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if + # $WAYLAND_DISPLAY is correctly imported into the D-Bus user env): + +From 7f06407d4f5b37c3f9ce7c22a10a49dd2d406a29 Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Sun, 9 Jan 2022 18:46:16 +0100 +Subject: [PATCH 6/8] sway: 1.7-rc1 -> 1.7-rc2 + +--- + pkgs/applications/window-managers/sway/default.nix | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix +index 0b1f0cd3e0e0e..f96ff9e51c4de 100644 +--- a/pkgs/applications/window-managers/sway/default.nix ++++ b/pkgs/applications/window-managers/sway/default.nix +@@ -12,13 +12,13 @@ + + stdenv.mkDerivation rec { + pname = "sway-unwrapped"; +- version = "1.7-rc1"; ++ version = "1.7-rc2"; + + src = fetchFromGitHub { + owner = "swaywm"; + repo = "sway"; + rev = version; +- sha256 = "1c46p2paywwhvjr6iaw5bhm92wxw0njldg6727xdmfnjj27v5603"; ++ sha256 = "1cl1wqh0j9z0i1xqn2cy3r6y6s3awgx1yb5p8nsvy1k58d8805pg"; + }; + + patches = [ + +From 02a162f479aa17a90212acc613c1117a25170d0e Mon Sep 17 00:00:00 2001 +From: Michael Weiss +Date: Sun, 9 Jan 2022 18:59:22 +0100 +Subject: [PATCH 7/8] nixos/tests/sway: Some optional changes + +--- + nixos/tests/sway.nix | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/nixos/tests/sway.nix b/nixos/tests/sway.nix +index 33c1ed66f552d..43b8c84730427 100644 +--- a/nixos/tests/sway.nix ++++ b/nixos/tests/sway.nix +@@ -87,8 +87,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: + machine.wait_for_text("alice@machine") + machine.send_chars("test-x11\n") + machine.wait_for_file("/tmp/test-x11-exit-ok") ++ print(machine.succeed("cat /tmp/test-x11.out")) + machine.copy_from_vm("/tmp/test-x11.out") +- machine.screenshot("alacrittyglinfo") ++ machine.screenshot("alacritty_glinfo") + machine.succeed("pkill alacritty") + + # Start a terminal (foot) on workspace 3: +@@ -98,6 +99,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: + machine.wait_for_text("alice@machine") + machine.send_chars("test-wayland\n") + machine.wait_for_file("/tmp/test-wayland-exit-ok") ++ print(machine.succeed("cat /tmp/test-wayland.out")) + machine.copy_from_vm("/tmp/test-wayland.out") + machine.screenshot("foot_wayland_info") + machine.send_key("alt-shift-q") + +From b7808ba8eeda0e6c1810f8cc7754fda25083326f Mon Sep 17 00:00:00 2001 +From: Patrick Hilhorst +Date: Sun, 16 Jan 2022 20:42:55 +0100 +Subject: [PATCH 8/8] sway: 1.7-rc2 -> 1.7-rc3 + +--- + pkgs/applications/window-managers/sway/default.nix | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix +index f96ff9e51c4de..2c17a1a03ea01 100644 +--- a/pkgs/applications/window-managers/sway/default.nix ++++ b/pkgs/applications/window-managers/sway/default.nix +@@ -12,13 +12,13 @@ + + stdenv.mkDerivation rec { + pname = "sway-unwrapped"; +- version = "1.7-rc2"; ++ version = "1.7-rc3"; + + src = fetchFromGitHub { + owner = "swaywm"; + repo = "sway"; + rev = version; +- sha256 = "1cl1wqh0j9z0i1xqn2cy3r6y6s3awgx1yb5p8nsvy1k58d8805pg"; ++ hash = "sha256-kRVWwu6q9PqmXoYO2xrVRYwLaPGVy8CCzR0a9DeFJ8c="; + }; + + patches = [