modules/home/common/desktop: add zellij swap layouts
This commit is contained in:
parent
badaffb532
commit
b58a822be5
2 changed files with 101 additions and 46 deletions
|
@ -9,6 +9,8 @@
|
||||||
{
|
{
|
||||||
_file = ./default.nix;
|
_file = ./default.nix;
|
||||||
|
|
||||||
|
imports = [ ./zellij.nix ];
|
||||||
|
|
||||||
options.common.desktop = {
|
options.common.desktop = {
|
||||||
enable = lib.mkEnableOption "Common configuration for desktop machines";
|
enable = lib.mkEnableOption "Common configuration for desktop machines";
|
||||||
};
|
};
|
||||||
|
@ -67,51 +69,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zellij = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
keybinds = {
|
|
||||||
shared_except = {
|
|
||||||
_args = [ "locked" ];
|
|
||||||
unbind = "Ctrl q";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."zellij/layouts/compacter.kdl".text = ''
|
|
||||||
layout {
|
|
||||||
pane split_direction="vertical" {
|
|
||||||
pane
|
|
||||||
}
|
|
||||||
|
|
||||||
pane size=1 borderless=true {
|
|
||||||
plugin location="file:${inputs'.zjstatus.packages.default}/bin/zjstatus.wasm" {
|
|
||||||
hide_frame_for_single_pane "true"
|
|
||||||
|
|
||||||
format_left "{mode}#[fg=fg,bg=bg,bold] {session}#[bg=bg] {tabs}"
|
|
||||||
format_right "#[fg=#424554,bg=bg]::{datetime}"
|
|
||||||
format_space "#[bg=bg]"
|
|
||||||
|
|
||||||
mode_normal "#[bg=green] "
|
|
||||||
mode_locked "#[bg=magenta] "
|
|
||||||
mode_tab "#[bg=blue] "
|
|
||||||
mode_tmux "#[bg=red] "
|
|
||||||
mode_default_to_mode "tmux"
|
|
||||||
|
|
||||||
tab_normal "#[fg=#6C7086,bg=bg] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
|
||||||
tab_active "#[fg=#9399B2,bg=bg,bold,italic] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
|
||||||
tab_fullscreen_indicator "□ "
|
|
||||||
tab_sync_indicator " "
|
|
||||||
tab_floating_indicator " "
|
|
||||||
|
|
||||||
datetime "#[fg=#9399B2,bg=bg] {format} "
|
|
||||||
datetime_format "%A, %d %b %Y %H:%M"
|
|
||||||
datetime_timezone "Europe/Warsaw"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
99
modules/home/common/desktop/zellij.nix
Normal file
99
modules/home/common/desktop/zellij.nix
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
{ inputs', ... }:
|
||||||
|
{
|
||||||
|
# TODO: Move zellij to a wrapper
|
||||||
|
programs.zellij = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
keybinds = {
|
||||||
|
shared_except = {
|
||||||
|
_args = [ "locked" ];
|
||||||
|
unbind = "Ctrl q";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."zellij/layouts/compacter.kdl".text = ''
|
||||||
|
layout {
|
||||||
|
default_tab_template {
|
||||||
|
children
|
||||||
|
pane size=1 borderless=true {
|
||||||
|
plugin location="file:${inputs'.zjstatus.packages.default}/bin/zjstatus.wasm" {
|
||||||
|
hide_frame_for_single_pane "false"
|
||||||
|
|
||||||
|
format_left "{mode}#[fg=fg,bg=bg,bold] {session}#[bg=bg] {tabs}"
|
||||||
|
format_right "#[fg=#424554,bg=bg]::{datetime}"
|
||||||
|
format_space "#[bg=bg]"
|
||||||
|
|
||||||
|
mode_normal "#[bg=green] "
|
||||||
|
mode_locked "#[bg=magenta] "
|
||||||
|
mode_tab "#[bg=blue] "
|
||||||
|
mode_tmux "#[bg=red] "
|
||||||
|
mode_default_to_mode "tmux"
|
||||||
|
|
||||||
|
tab_normal "#[fg=#6C7086,bg=bg] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
||||||
|
tab_active "#[fg=#9399B2,bg=bg,bold,italic] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
||||||
|
tab_fullscreen_indicator "□ "
|
||||||
|
tab_sync_indicator " "
|
||||||
|
tab_floating_indicator " "
|
||||||
|
|
||||||
|
datetime "#[fg=#9399B2,bg=bg] {format} "
|
||||||
|
datetime_format "%A, %d %b %Y %H:%M"
|
||||||
|
datetime_timezone "Europe/Warsaw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_tiled_layout name="vertical" {
|
||||||
|
tab max_panes=4 {
|
||||||
|
pane split_direction="vertical" {
|
||||||
|
pane
|
||||||
|
pane { children; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tab max_panes=7 {
|
||||||
|
pane split_direction="vertical" {
|
||||||
|
pane { children; }
|
||||||
|
pane { pane; pane; pane; pane; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tab max_panes=11 {
|
||||||
|
pane split_direction="vertical" {
|
||||||
|
pane { children; }
|
||||||
|
pane { pane; pane; pane; pane; }
|
||||||
|
pane { pane; pane; pane; pane; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_tiled_layout name="horizontal" {
|
||||||
|
tab max_panes=3 {
|
||||||
|
pane
|
||||||
|
pane
|
||||||
|
}
|
||||||
|
tab max_panes=7 {
|
||||||
|
pane {
|
||||||
|
pane split_direction="vertical" { children; }
|
||||||
|
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tab max_panes=11 {
|
||||||
|
pane {
|
||||||
|
pane split_direction="vertical" { children; }
|
||||||
|
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||||
|
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_tiled_layout name="stacked" {
|
||||||
|
tab min_panes=4 {
|
||||||
|
pane split_direction="vertical" {
|
||||||
|
pane
|
||||||
|
pane stacked=true { children; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue