957b7a476e
This adds a basic test for Sway. Because Sway is an important part of the Wayland ecosystem, is stable, and has few dependencies this test should also be suitable for testing core packages it depends on (e.g. wayland, wayland-protocols, wlroots, xwayland, mesa, libglvnd, libdrm, and soon libseat). The test is modeled after the suggested way of using Sway, i.e. logging in via a virtual console (tty1) and copying the configuration from /etc/sway/config (we replace Mod4 (the GNU/Tux key - you've replaced that evil logo, right? :D) with Mod1 (Alt key) because QEMU monitor's sendkey command doesn't support the former). The shell aliases are used to make the sendkey log output shorter. Co-authored-by: Patrick Hilhorst <git@hilhorst.be>
64 lines
1.9 KiB
Nix
64 lines
1.9 KiB
Nix
{ lib, stdenv, fetchFromGitHub, substituteAll, swaybg
|
|
, meson, ninja, pkg-config, wayland, scdoc
|
|
, libxkbcommon, pcre, json_c, dbus, libevdev
|
|
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
|
|
, wlroots, wayland-protocols, libdrm
|
|
, nixosTests
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "sway-unwrapped";
|
|
version = "1.6";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "swaywm";
|
|
repo = "sway";
|
|
rev = version;
|
|
sha256 = "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8";
|
|
};
|
|
|
|
patches = [
|
|
./sway-config-no-nix-store-references.patch
|
|
./load-configuration-from-etc.patch
|
|
|
|
(substituteAll {
|
|
src = ./fix-paths.patch;
|
|
inherit swaybg;
|
|
})
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
meson ninja pkg-config wayland scdoc
|
|
];
|
|
|
|
buildInputs = [
|
|
wayland libxkbcommon pcre json_c dbus libevdev
|
|
pango cairo libinput libcap pam gdk-pixbuf librsvg
|
|
wlroots wayland-protocols libdrm
|
|
];
|
|
|
|
mesonFlags = [
|
|
"-Ddefault-wallpaper=false"
|
|
"-Dsd-bus-provider=libsystemd"
|
|
];
|
|
|
|
passthru.tests.basic = nixosTests.sway;
|
|
|
|
meta = with lib; {
|
|
description = "An i3-compatible tiling Wayland compositor";
|
|
longDescription = ''
|
|
Sway is a tiling Wayland compositor and a drop-in replacement for the i3
|
|
window manager for X11. It works with your existing i3 configuration and
|
|
supports most of i3's features, plus a few extras.
|
|
Sway allows you to arrange your application windows logically, rather
|
|
than spatially. Windows are arranged into a grid by default which
|
|
maximizes the efficiency of your screen and can be quickly manipulated
|
|
using only the keyboard.
|
|
'';
|
|
homepage = "https://swaywm.org";
|
|
changelog = "https://github.com/swaywm/sway/releases/tag/${version}";
|
|
license = licenses.mit;
|
|
platforms = platforms.linux;
|
|
maintainers = with maintainers; [ primeos synthetica ma27 ];
|
|
};
|
|
}
|