parent
7b8376e5d3
commit
b248510454
@ -0,0 +1,54 @@ |
||||
import ./make-test-python.nix ({ pkgs, ...} : { |
||||
name = "wmderland"; |
||||
meta = with pkgs.stdenv.lib.maintainers; { |
||||
maintainers = [ takagiy ]; |
||||
}; |
||||
|
||||
machine = { lib, ... }: { |
||||
imports = [ ./common/x11.nix ./common/user-account.nix ]; |
||||
test-support.displayManager.auto.user = "alice"; |
||||
services.xserver.displayManager.defaultSession = lib.mkForce "none+wmderland"; |
||||
services.xserver.windowManager.wmderland.enable = true; |
||||
|
||||
systemd.services.setupWmderlandConfig = { |
||||
wantedBy = [ "multi-user.target" ]; |
||||
before = [ "multi-user.target" ]; |
||||
environment = { |
||||
HOME = "/home/alice"; |
||||
}; |
||||
unitConfig = { |
||||
type = "oneshot"; |
||||
RemainAfterExit = true; |
||||
user = "alice"; |
||||
}; |
||||
script = let |
||||
config = pkgs.writeText "config" '' |
||||
set $Mod = Mod1 |
||||
bindsym $Mod+Return exec ${pkgs.xterm}/bin/xterm -cm -pc |
||||
''; |
||||
in '' |
||||
mkdir -p $HOME/.config/wmderland |
||||
cp ${config} $HOME/.config/wmderland/config |
||||
''; |
||||
}; |
||||
}; |
||||
|
||||
testScript = { ... }: '' |
||||
with subtest("ensure x starts"): |
||||
machine.wait_for_x() |
||||
machine.wait_for_file("/home/alice/.Xauthority") |
||||
machine.succeed("xauth merge ~alice/.Xauthority") |
||||
|
||||
with subtest("ensure we can open a new terminal"): |
||||
machine.send_key("alt-ret") |
||||
machine.wait_until_succeeds("pgrep xterm") |
||||
machine.wait_for_window(r"alice.*?machine") |
||||
machine.screenshot("terminal") |
||||
|
||||
with subtest("ensure we can communicate through ipc with wmderlandc"): |
||||
# Kills the previously open xterm |
||||
machine.succeed("pgrep xterm") |
||||
machine.execute("DISPLAY=:0 wmderlandc kill") |
||||
machine.fail("pgrep xterm") |
||||
''; |
||||
}) |
@ -0,0 +1,13 @@ |
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 17a4944..33406f3 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -10,7 +10,7 @@ include(BuildType)
|
||||
# Request C++14 standard, using new CMake variables.
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -Wall")
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
|
||||
# If the BuildType is Debug, then add -rdynamic.
|
||||
# (used to print stacktrace with function names)
|
@ -0,0 +1,49 @@ |
||||
{ lib, stdenv, fetchFromGitHub, cmake, libnotify, libX11, xorgproto, nixosTests }: |
||||
|
||||
stdenv.mkDerivation { |
||||
pname = "wmderland"; |
||||
version = "unstable-2020-07-17"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "aesophor"; |
||||
repo = "wmderland"; |
||||
rev = "a40a3505dd735b401d937203ab6d8d1978307d72"; |
||||
sha256 = "0npmlnybblp82mfpinjbz7dhwqgpdqc1s63wc1zs8mlcs19pdh98"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ |
||||
cmake |
||||
]; |
||||
|
||||
cmakeBuildType = "MinSizeRel"; |
||||
|
||||
patches = [ ./0001-remove-flto.patch ]; |
||||
|
||||
postPatch = '' |
||||
substituteInPlace src/util.cc \ |
||||
--replace "notify-send" "${libnotify}/bin/notify-send" |
||||
''; |
||||
|
||||
buildInputs = [ |
||||
libX11 |
||||
xorgproto |
||||
]; |
||||
|
||||
postInstall = '' |
||||
install -Dm0644 -t $out/share/wmderland/contrib $src/example/config |
||||
install -Dm0644 -t $out/share/xsessions $src/example/wmderland.desktop |
||||
''; |
||||
|
||||
passthru = { |
||||
tests.basic = nixosTests.wmderland; |
||||
providedSessions = [ "wmderland" ]; |
||||
}; |
||||
|
||||
meta = with lib; { |
||||
description = "Modern and minimal X11 tiling window manager"; |
||||
homepage = "https://github.com/aesophor/wmderland"; |
||||
license = licenses.mit; |
||||
platforms = libX11.meta.platforms; |
||||
maintainers = with maintainers; [ takagiy ]; |
||||
}; |
||||
} |
@ -0,0 +1,32 @@ |
||||
{ lib, stdenv, fetchFromGitHub, cmake, libX11, xorgproto }: |
||||
|
||||
stdenv.mkDerivation { |
||||
pname = "wmderlandc"; |
||||
version = "unstable-2020-07-17"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "aesophor"; |
||||
repo = "wmderland"; |
||||
rev = "a40a3505dd735b401d937203ab6d8d1978307d72"; |
||||
sha256 = "0npmlnybblp82mfpinjbz7dhwqgpdqc1s63wc1zs8mlcs19pdh98"; |
||||
}; |
||||
|
||||
sourceRoot = "source/ipc-client"; |
||||
|
||||
nativeBuildInputs = [ |
||||
cmake |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
libX11 |
||||
xorgproto |
||||
]; |
||||
|
||||
meta = with lib; { |
||||
description = "A tiny program to interact with wmderland"; |
||||
homepage = "https://github.com/aesophor/wmderland/tree/master/ipc-client"; |
||||
license = licenses.mit; |
||||
platforms = platforms.all; |
||||
maintainers = with maintainers; [ takagiy ]; |
||||
}; |
||||
} |
Loading…
Reference in new issue