diff options
author | Sigmanificient <edhyjox@gmail.com> | 2023-08-08 11:53:51 +0200 |
---|---|---|
committer | Sigmanificient <edhyjox@gmail.com> | 2023-08-20 18:20:39 +0200 |
commit | 0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64 (patch) | |
tree | b3f2bc297518bf7cdcae432a0c4d1d602676510a /nixos | |
parent | e936aa35a72c5e64f148d5d8bedf0a7c97e1a6de (diff) | |
download | nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar.gz nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar.bz2 nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar.lz nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar.xz nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.tar.zst nixlib-0482394fe0eb4d3eba91bded8e1d9dbef1bb7c64.zip |
ragnarwm: init at 1.3.1
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/x11/window-managers/default.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/x11/window-managers/ragnarwm.nix | 33 | ||||
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/ragnarwm.nix | 32 |
4 files changed, 67 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index ce1d4115f225..e180f2693e0c 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -35,6 +35,7 @@ in ./openbox.nix ./pekwm.nix ./notion.nix + ./ragnarwm.nix ./ratpoison.nix ./sawfish.nix ./smallwm.nix diff --git a/nixos/modules/services/x11/window-managers/ragnarwm.nix b/nixos/modules/services/x11/window-managers/ragnarwm.nix new file mode 100644 index 000000000000..0843b872dba5 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/ragnarwm.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.ragnarwm; +in +{ + ###### interface + + options = { + services.xserver.windowManager.ragnarwm = { + enable = mkEnableOption (lib.mdDoc "ragnarwm"); + package = mkOption { + type = types.package; + default = pkgs.ragnarwm; + defaultText = literalExpression "pkgs.ragnarwm"; + description = lib.mdDoc '' + The ragnar package to use. + ''; + }; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + services.xserver.displayManager.sessionPackages = [ cfg.package ]; + environment.systemPackages = [ cfg.package ]; + }; + + meta.maintainers = with lib.maintainers; [ sigmanificient ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 06d63b4f2d07..0e06e3997c41 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -667,6 +667,7 @@ in { rabbitmq = handleTest ./rabbitmq.nix {}; radarr = handleTest ./radarr.nix {}; radicale = handleTest ./radicale.nix {}; + ragnarwm = handleTest ./ragnarwm.nix {}; rasdaemon = handleTest ./rasdaemon.nix {}; readarr = handleTest ./readarr.nix {}; redis = handleTest ./redis.nix {}; diff --git a/nixos/tests/ragnarwm.nix b/nixos/tests/ragnarwm.nix new file mode 100644 index 000000000000..f7c588b92008 --- /dev/null +++ b/nixos/tests/ragnarwm.nix @@ -0,0 +1,32 @@ +import ./make-test-python.nix ({ lib, ...} : { + name = "ragnarwm"; + + meta = { + maintainers = with lib.maintainers; [ sigmanificient ]; + }; + + nodes.machine = { pkgs, lib, ... }: { + imports = [ ./common/x11.nix ./common/user-account.nix ]; + test-support.displayManager.auto.user = "alice"; + services.xserver.displayManager.defaultSession = lib.mkForce "ragnar"; + services.xserver.windowManager.ragnarwm.enable = true; + + # Setup the default terminal of Ragnar + environment.systemPackages = [ pkgs.alacritty ]; + }; + + 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"): + # Sleeping a bit before the test, as it may help for sending keys + machine.sleep(2) + machine.send_key("meta_l-ret") + machine.wait_for_window(r"alice.*?machine") + machine.sleep(2) + machine.screenshot("terminal") + ''; +}) |