{ inputs, ... }: { config.dendritic.features.cli-zellij = { homeModules = [ ( { config, pkgs, ... }: let zjstatus-pkg = inputs.zjstatus.packages.${pkgs.system}.default; in { stylix.targets.zellij.enable = false; stylix.targets.tmux.enable = false; programs.zellij = { enable = true; settings = { show_startup_tips = false; pane_frames = false; default_mode = "locked"; mouse_mode = true; simplified_ui = true; on_force_close = "detach"; copy_command = "wl-copy"; default_shell = "zsh"; theme = "dendritic"; themes.dendritic = { fg = "#${config.lib.stylix.colors.base05}"; bg = "#${config.lib.stylix.colors.base00}"; black = "#${config.lib.stylix.colors.base01}"; red = "#${config.lib.stylix.colors.base08}"; green = "#${config.lib.stylix.colors.base0B}"; yellow = "#${config.lib.stylix.colors.base0A}"; blue = "#${config.lib.stylix.colors.base0D}"; magenta = "#${config.lib.stylix.colors.base0E}"; cyan = "#${config.lib.stylix.colors.base0C}"; white = "#${config.lib.stylix.colors.base07}"; orange = "#${config.lib.stylix.colors.base09}"; }; }; extraConfig = '' layout { default_tab_template { pane size=2 borderless=true { plugin location="file://${zjstatus-pkg}/bin/zjstatus.wasm" { format_left "{mode}#[bg=#${config.lib.stylix.colors.base00}] {tabs}" format_center "" format_right "#[bg=#${config.lib.stylix.colors.base00},fg=#${config.lib.stylix.colors.base0D}]#[bg=#${config.lib.stylix.colors.base0D},fg=#${config.lib.stylix.colors.base00},bold] #[bg=#${config.lib.stylix.colors.base02},fg=#${config.lib.stylix.colors.base05},bold] {session} " format_space "" mode_locked "#[bg=#${config.lib.stylix.colors.base08},fg=#${config.lib.stylix.colors.base00},bold] 🔒 LOCKED #[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base08}]█" mode_normal "#[bg=#${config.lib.stylix.colors.base0B},fg=#${config.lib.stylix.colors.base00},bold] 🔓 NORMAL #[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base0B}]█" mode_scroll "#[bg=#${config.lib.stylix.colors.base0A},fg=#${config.lib.stylix.colors.base00},bold] SCROLL #[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base0A}]█" tab_normal "#[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base0D}]█#[bg=#${config.lib.stylix.colors.base0D},fg=#${config.lib.stylix.colors.base00},bold]{index} #[bg=#${config.lib.stylix.colors.base02},fg=#${config.lib.stylix.colors.base05},bold] {name}#[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base02},bold]█" tab_active "#[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base09}]█#[bg=#${config.lib.stylix.colors.base09},fg=#${config.lib.stylix.colors.base00},bold]{index} #[bg=#${config.lib.stylix.colors.base02},fg=#${config.lib.stylix.colors.base05},bold] {name}#[bg=#${config.lib.stylix.colors.base03},fg=#${config.lib.stylix.colors.base02},bold]█" tab_separator "#[bg=#${config.lib.stylix.colors.base00}] " } } children } } keybinds clear-defaults=true { shared { bind "Alt h" { MoveFocus "Left"; } bind "Alt j" { MoveFocus "Down"; } bind "Alt k" { MoveFocus "Up"; } bind "Alt l" { MoveFocus "Right"; } bind "Alt f" { ToggleFloatingPanes; } bind "Alt n" { NewPane; } } locked { bind "Ctrl b" { SwitchToMode "Normal"; } } normal { bind "Ctrl b" { SwitchToMode "Locked"; } bind "Enter" "Esc" { SwitchToMode "Locked"; } bind "h" { MoveFocus "Left"; } bind "j" { MoveFocus "Down"; } bind "k" { MoveFocus "Up"; } bind "l" { MoveFocus "Right"; } bind "|" { NewPane "Right"; } bind "-" { NewPane "Down"; } bind "x" { CloseFocus; } bind "f" { ToggleFloatingPanes; } bind "z" { ToggleFocusFullscreen; } bind "t" { NewTab; } bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } bind "s" { SwitchToMode "Scroll"; } bind "d" { Detach; } bind "q" { Quit; } } scroll { bind "s" "Esc" "Enter" { SwitchToMode "Normal"; } bind "j" { ScrollDown; } bind "k" { ScrollUp; } bind "d" { HalfPageScrollDown; } bind "u" { HalfPageScrollUp; } } renametab { bind "Enter" "Esc" { SwitchToMode "Normal"; } } } ''; }; } ) ]; }; }