Merge pull request #296479 from marcusramberg/marcus/nimdow
nixos/nimdow: module updates
This commit is contained in:
commit
468417b7f3
4 changed files with 43 additions and 6 deletions
|
@ -8,16 +8,23 @@ in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
services.xserver.windowManager.nimdow.enable = mkEnableOption (lib.mdDoc "nimdow");
|
services.xserver.windowManager.nimdow.enable = mkEnableOption (lib.mdDoc "nimdow");
|
||||||
|
services.xserver.windowManager.nimdow.package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.nimdow;
|
||||||
|
defaultText = "pkgs.nimdow";
|
||||||
|
description = lib.mdDoc "nimdow package to use";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.xserver.windowManager.session = singleton {
|
services.xserver.windowManager.session = singleton {
|
||||||
name = "nimdow";
|
name = "nimdow";
|
||||||
start = ''
|
start = ''
|
||||||
${pkgs.nimdow}/bin/nimdow &
|
${cfg.package}/bin/nimdow &
|
||||||
waitPID=$!
|
waitPID=$!
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
environment.systemPackages = [ pkgs.nimdow ];
|
environment.systemPackages = [ cfg.package pkgs.st ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -582,6 +582,7 @@ in {
|
||||||
ndppd = handleTest ./ndppd.nix {};
|
ndppd = handleTest ./ndppd.nix {};
|
||||||
nebula = handleTest ./nebula.nix {};
|
nebula = handleTest ./nebula.nix {};
|
||||||
netbird = handleTest ./netbird.nix {};
|
netbird = handleTest ./netbird.nix {};
|
||||||
|
nimdow = handleTest ./nimdow.nix {};
|
||||||
neo4j = handleTest ./neo4j.nix {};
|
neo4j = handleTest ./neo4j.nix {};
|
||||||
netdata = handleTest ./netdata.nix {};
|
netdata = handleTest ./netdata.nix {};
|
||||||
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
||||||
|
|
25
nixos/tests/nimdow.nix
Normal file
25
nixos/tests/nimdow.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
|
name = "nimdow";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ marcusramberg ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.machine = { lib, ... }: {
|
||||||
|
imports = [ ./common/x11.nix ./common/user-account.nix ];
|
||||||
|
test-support.displayManager.auto.user = "alice";
|
||||||
|
services.xserver.displayManager.defaultSession = lib.mkForce "none+nimdow";
|
||||||
|
services.xserver.windowManager.nimdow.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
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("meta_l-ret")
|
||||||
|
machine.wait_for_window(r"alice.*?machine")
|
||||||
|
machine.screenshot("terminal")
|
||||||
|
'';
|
||||||
|
})
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, buildNimPackage, fetchFromGitHub, testers }:
|
{ lib, buildNimPackage, fetchFromGitHub, nixosTests, testers }:
|
||||||
|
|
||||||
buildNimPackage (finalAttrs: {
|
buildNimPackage (finalAttrs: {
|
||||||
pname = "nimdow";
|
pname = "nimdow";
|
||||||
|
@ -25,14 +25,18 @@ buildNimPackage (finalAttrs: {
|
||||||
substituteInPlace src/nimdowpkg/config/configloader.nim --replace "/usr/share/nimdow" "$out/share/nimdow"
|
substituteInPlace src/nimdowpkg/config/configloader.nim --replace "/usr/share/nimdow" "$out/share/nimdow"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests.version = testers.testVersion {
|
passthru.tests = {
|
||||||
package = finalAttrs.finalPackage;
|
nimdow = nixosTests.nimdow;
|
||||||
version = "v${finalAttrs.version}";
|
version = testers.testVersion {
|
||||||
|
package = finalAttrs.finalPackage;
|
||||||
|
version = "v${finalAttrs.version}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib;
|
meta = with lib;
|
||||||
finalAttrs.src.meta // {
|
finalAttrs.src.meta // {
|
||||||
description = "Nim based tiling window manager";
|
description = "Nim based tiling window manager";
|
||||||
|
platforms = platforms.linux;
|
||||||
license = [ licenses.gpl2 ];
|
license = [ licenses.gpl2 ];
|
||||||
maintainers = [ maintainers.marcusramberg ];
|
maintainers = [ maintainers.marcusramberg ];
|
||||||
mainProgram = "nimdow";
|
mainProgram = "nimdow";
|
||||||
|
|
Loading…
Reference in a new issue