From 908200d6808bf961718ae96c5aad7ae6b0f8bda9 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sat, 12 Jul 2025 17:56:31 -0500 Subject: [PATCH] tests/zellij: add zellij layout test Signed-off-by: Austin Horstman --- tests/modules/programs/zellij/default.nix | 1 + tests/modules/programs/zellij/layout.nix | 142 ++++++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 tests/modules/programs/zellij/layout.nix diff --git a/tests/modules/programs/zellij/default.nix b/tests/modules/programs/zellij/default.nix index 83a55968..ec7e59b9 100644 --- a/tests/modules/programs/zellij/default.nix +++ b/tests/modules/programs/zellij/default.nix @@ -1,4 +1,5 @@ { zellij-enable-shells = ./enable-shells.nix; + zellij-layout = ./layout.nix; zellij-theme = ./theme.nix; } diff --git a/tests/modules/programs/zellij/layout.nix b/tests/modules/programs/zellij/layout.nix new file mode 100644 index 00000000..b99ced2e --- /dev/null +++ b/tests/modules/programs/zellij/layout.nix @@ -0,0 +1,142 @@ +{ pkgs, ... }: +{ + programs.zellij = { + enable = true; + layouts = { + dev = { + layout = { + _children = [ + { + default_tab_template = { + _children = [ + { + pane = { + size = 1; + borderless = true; + plugin = { + location = "zellij:tab-bar"; + }; + }; + } + { "children" = { }; } + { + pane = { + size = 2; + borderless = true; + plugin = { + location = "zellij:status-bar"; + }; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "Project"; + focus = true; + }; + _children = [ + { + pane = { + command = "nvim"; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "Git"; + }; + _children = [ + { + pane = { + command = "lazygit"; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "Files"; + }; + _children = [ + { + pane = { + command = "yazi"; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "Shell"; + }; + _children = [ + { + pane = { + command = "zsh"; + }; + } + ]; + }; + } + ]; + }; + }; + }; + }; + + nmt.script = '' + assertFileExists home-files/.config/zellij/layouts/dev.kdl + assertFileContent home-files/.config/zellij/layouts/dev.kdl \ + ${pkgs.writeText "layout-dev-expected" '' + layout { + default_tab_template { + pane { + borderless true + plugin { + location "zellij:tab-bar" + } + size 1 + } + children + pane { + borderless true + plugin { + location "zellij:status-bar" + } + size 2 + } + } + tab focus=true name="Project" { + pane { + command "nvim" + } + } + tab name="Git" { + pane { + command "lazygit" + } + } + tab name="Files" { + pane { + command "yazi" + } + } + tab name="Shell" { + pane { + command "zsh" + } + } + } + ''} + ''; +}