{ pkgs, inputs, ... }: let layout = pkgs.writeText "default.kdl" '' layout { tab { pane } swap_tiled_layout name="vertical" { tab max_panes=5 { pane split_direction="vertical" { pane pane { children; } } } tab max_panes=8 { pane split_direction="vertical" { pane { children; } pane { pane; pane; pane; pane; } } } tab max_panes=12 { pane split_direction="vertical" { pane { children; } pane { pane; pane; pane; pane; } pane { pane; pane; pane; pane; } } } } swap_tiled_layout name="horizontal" { tab max_panes=5 { pane pane } tab max_panes=8 { pane { pane split_direction="vertical" { children; } pane split_direction="vertical" { pane; pane; pane; pane; } } } tab max_panes=12 { pane { pane split_direction="vertical" { children; } pane split_direction="vertical" { pane; pane; pane; pane; } pane split_direction="vertical" { pane; pane; pane; pane; } } } } default_tab_template { pane size=1 borderless=true { plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" { format_left "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}" format_right "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]" mode_locked "#[fg=magenta,bold] {name} " mode_normal "#[fg=green,bold] {name} " mode_resize "#[fg=orange,bold] {name} " mode_default_to_mode "resize" tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#1D1D2E,fg=#C9D2F5]" tab_active "#[bg=#A6DA95,fg=#1D1D2E]#[bg=#A6DA95,fg=#A6DA95]#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]#[bg=#1D1D2E,fg=#A6DA95]" tab_sync_indicator " " tab_fullscreen_indicator "□ " tab_floating_indicator "󰉈 " datetime "#[bg=#C9D2F5,fg=#1D1D2E,bold]{format} " datetime_format "%Y-%m-%d %H:%M" datetime_timezone "Europe/Amsterdam" } } children pane size=2 borderless=true { plugin location="status-bar" } } } ''; helix_zellij = pkgs.writeText "helix.kdl" '' layout { tab { pane { command "hx" args "." } pane split_direction="vertical" size="20%" {} } swap_tiled_layout name="vertical" { tab max_panes=5 { pane split_direction="vertical" { pane pane { children; } } } tab max_panes=8 { pane split_direction="vertical" { pane { children; } pane { pane; pane; pane; pane; } } } tab max_panes=12 { pane split_direction="vertical" { pane { children; } pane { pane; pane; pane; pane; } pane { pane; pane; pane; pane; } } } } swap_tiled_layout name="horizontal" { tab max_panes=5 { pane pane } tab max_panes=8 { pane { pane split_direction="vertical" { children; } pane split_direction="vertical" { pane; pane; pane; pane; } } } tab max_panes=12 { pane { pane split_direction="vertical" { children; } pane split_direction="vertical" { pane; pane; pane; pane; } pane split_direction="vertical" { pane; pane; pane; pane; } } } } default_tab_template { pane size=1 borderless=true { plugin location="file:${inputs.zjstatus.packages.${pkgs.system}.default}/bin/zjstatus.wasm" { format_left "#[bg=#1D1D2E,fg=#C9D2F5,bold] {session} {mode} {tabs}" format_right "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{datetime}#[bg=#1D1D2E,fg=#C9D2F5]" mode_locked "#[fg=magenta,bold] {name} " mode_normal "#[fg=green,bold] {name} " mode_resize "#[fg=orange,bold] {name} " mode_default_to_mode "resize" tab_normal "#[bg=#C9D2F5,fg=#1D1D2E]#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#C9D2F5,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#C9D2F5,fg=#C9D2F5]#[bg=#1D1D2E,fg=#C9D2F5]" tab_active "#[bg=#A6DA95,fg=#1D1D2E]#[bg=#A6DA95,fg=#A6DA95]#[bg=#A6DA95,fg=#1D1D2E,bold]{name}{sync_indicator}{fullscreen_indicator}{floating_indicator}#[bg=#A6DA95,fg=#A6DA95]#[bg=#1D1D2E,fg=#A6DA95]" tab_sync_indicator " " tab_fullscreen_indicator "□ " tab_floating_indicator "󰉈 " datetime "#[bg=#C9D2F5,fg=#1D1D2E,bold]{format} " datetime_format "%Y-%m-%d %H:%M" datetime_timezone "Europe/Amsterdam" } } children pane size=2 borderless=true { plugin location="status-bar" } } } ''; in { programs.zellij = { # This autostarts zellij on zsh start # TODO find specific settings for vscode to avoid enable = true; enableZshIntegration = true; settings = { session_serialization = true; # theme = "catppuccin-macchiato"; themes = { catppuccin-mocha = { bg = "#585b70"; fg = "#cdd6f4"; red = "#f38ba8"; green = "#a6e3a1"; blue = "#89b4fa"; yellow = "#f9e2af"; magenta = "#f5c2e7"; orange = "#fab387"; cyan = "#89dceb"; black = "#181825"; white = "#cdd6f4"; }; catppuccin-macchiato = { bg = "#5b6078"; fg = "#cad3f5"; red = "#ed8796"; green = "#a6da95"; blue = "#8aadf4"; yellow = "#eed49f"; magenta = "#f5bde6"; orange = "#f5a97f"; cyan = "#91d7e3"; black = "#1e2030"; white = "#cad3f5"; }; }; }; }; home.file = { "layout" = { source = "${layout}"; target = ".config/zellij/layouts/default.kdl"; }; "helix_zellij" = { source = "${helix_zellij}"; target = ".config/zellij/layouts/helix.kdl"; }; }; #home.file = { # "config" = { # source = ./zellij.kdl; # target = ".config/zellij/config.kdl"; # }; #}; }