NixOS-Config/home-manager/shared/shell/zellij/default.nix

108 lines
3.1 KiB
Nix
Raw Normal View History

2024-05-02 11:21:29 +02:00
{
lib,
pkgs,
inputs,
2024-05-02 11:21:29 +02:00
...
2024-05-02 13:12:03 +02:00
}: let
2024-05-02 13:41:41 +02:00
layout =
pkgs.writeText "default.kdl"
2024-05-02 13:12:03 +02:00
''
2024-05-02 14:18:50 +02:00
layout {
tab {
pane
}
2024-05-02 12:15:04 +02:00
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; }
}
}
}
2024-05-02 12:15:04 +02:00
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 "#[fg=#yellow,bold] {session} {mode} {tabs}"
format_right "#[bg=bg,fg=fg] #[bg=bg,fg=fg,bold]{datetime} #[bg=bg,fg=fg]"
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=bg,fg=fg] #[bg=bg,fg=fg,bold]{name} {sync_indicator}{fullscreen_indicator}{floating_indicator} #[bg=white,fg=cyan]"
tab_active "#[bg=bg,fg=fg] #[bg=black,fg=yellow,bold]{name} {sync_indicator}{fullscreen_indicator}{floating_indicator} #[bg=white,fg=cyan]"
2024-05-02 12:15:04 +02:00
tab_sync_indicator " "
tab_fullscreen_indicator " "
tab_floating_indicator "󰉈 "
2024-05-02 12:15:04 +02:00
datetime "#[fg=#yellow,bold] {format} "
datetime_format "%Y-%m-%d %H:%M"
datetime_timezone "Europe/Amsterdam"
}
}
children
pane size=2 borderless=true {
plugin location="status-bar"
2024-05-02 13:12:03 +02:00
}
2024-05-02 15:31:43 +02:00
}
2024-05-02 13:12:03 +02:00
}
'';
in {
programs.zellij = {
# This autostarts zellij on zsh start
# TODO find specific settings for vscode to avoid
enable = true;
enableZshIntegration = true;
2024-04-29 20:06:28 +02:00
};
home.file = {
2024-05-02 13:41:41 +02:00
"layout" = {
source = "${layout}";
target = ".config/zellij/layouts/default.kdl";
2024-05-02 13:41:41 +02:00
};
};
home.file = {
"config" = {
source = ./zellij.kdl;
target = ".config/zellij/config.kdl";
};
};
2024-04-29 20:06:28 +02:00
}