main @ 245 LINES
[ HISTORY ] [ UP ]
┌─ NIX ──────────────────────────────────────────────────────────────────────┐
│ { │
│ osConfig, │
│ config, │
│ lib, │
│ ook, │
│ self', │
│ inputs', │
│ pkgs, │
│ ... │
│ }: let │
│ inherit (ook) color; │
│ inherit (osConfig.ooknet) console; │
│ inherit (osConfig.ooknet.host) admin; │
│ inherit (lib) getExe mkIf; │
│ │
│ cfg = osConfig.ooknet.console.tools.zellij; │
│ in { │
│ imports = [./options.nix]; │
│ config = mkIf (cfg.enable || console.multiplexer == "zellij") { │
│ programs.zellij = { │
│ enable = true; │
│ # pinned, see nixpkgs-zellij input │
│ package = inputs'.nixpkgs-zellij.legacyPackages.zellij; │
│ settings = { │
│ theme = "${color.slug}"; │
│ default_shell = "${admin.shell}"; │
│ default_layout = "default"; │
│ pane_frames = false; │
│ scrollback_editor = "${console.editor}"; │
│ themes = { │
│ "${color.slug}" = { │
│ fg = "#${color.base05}"; │
│ bg = "#${color.base00}"; │
│ black = "#${color.base00}"; │
│ red = "#${color.base08}"; │
│ green = "#${color.base0B}"; │
│ yellow = "#${color.base0A}"; │
│ blue = "#${color.base0D}"; │
│ magenta = "#${color.base0E}"; │
│ cyan = "#${color.base0C}"; │
│ white = "#${color.base05}"; │
│ orange = "#${color.base09}"; │
│ }; │
│ }; │
│ }; │
│ │
│ # layout configurations │
│ _layouts = { │
│ default = { │
│ tabs = │
│ #kdl │
│ '' │
│ tab name="terminal" focus=true { │
│ pane name="term" focus=true │
│ } │
│ ''; │
│ }; │
│ flake = { │
│ tabs = │
│ # kdl │
│ '' │
│ tab name="terminal" focus=true { │
│ pane name="term" cwd="$FLAKE" focus=true │
│ } │
│ tab name="editor" { │
│ pane name="edit" edit="$FLAKE" │
│ } │
│ tab name="git" { │
│ pane name="git" cwd="$FLAKE" command="lazygit" │
│ } │
│ ''; │
│ }; │
│ music = mkIf config.programs.spotify-player.enable { │
│ icon = "?"; │
│ tabs = │
│ # kdl │
│ '' │
│ tab name="spotify" focus=true { │
│ pane name="spotify" { │
│ borderless false │
│ command "${getExe self'.packages.spotify-player}" │
│ focus true │
│ } │
│ pane name="Visualizer" { │
│ borderless false │
│ split_direction "horizontal" │
│ size "20%" │
│ command "${getExe pkgs.cava}" │
│ } │
│ } │
│ ''; │
│ }; │
│ }; │
│ │
│ # keybind configuration │
│ extraSettings = │
│ # kdl │
│ '' │
│ keybinds clear-defaults=true { │
│ shared_except "locked" { │
│ bind "Alt 1" { GoToTab 1; } │
│ bind "Alt 2" { GoToTab 2; } │
│ bind "Alt 3" { GoToTab 3; } │
│ bind "Alt 4" { GoToTab 4; } │
│ bind "Alt 5" { GoToTab 5; } │
│ bind "Alt 6" { GoToTab 6; } │
│ bind "Alt 7" { GoToTab 7; } │
│ bind "Alt 8" { GoToTab 8; } │
│ bind "Alt 9" { GoToTab 9; } │
│ bind "Alt -" { Resize "Decrease" ; } │
│ bind "Alt =" { Resize "Increase" ; } │
│ } │
│ │
│ locked { │
│ bind "Alt g" { SwitchToMode "Normal" ; } │
│ } │
│ │
│ resize { │
│ bind "Alt r" { SwitchToMode "Normal" ; } │
│ bind "h" "Left" { Resize "Increase Left" ; } │
│ bind "j" "Down" { Resize "Increase Down" ; } │
│ bind "k" "Up" { Resize "Increase Up" ; } │
│ bind "l" "Right" { Resize "Increase Right" ; } │
│ } │
│ │
│ pane { │
│ bind "Alt p" { SwitchToMode "Normal" ; } │
│ bind "c" { Clear ; } │
│ bind "e" { TogglePaneEmbedOrFloating ; SwitchToMode "Nor │
│ mal" ; } │
│ bind "f" { ToggleFocusFullscreen ; SwitchToMode "Normal" │
│ ; } │
│ bind "j" "Down" { NewPane "Down" ; SwitchToMode "Normal" ; } │
│ bind "l" "Right" { NewPane "Right" ; SwitchToMode "Normal" ; } │
│ bind "n" { NewPane ; SwitchToMode "Normal" ; } │
│ bind "p" { SwitchFocus ; SwitchToMode "Normal" ; } │
│ bind "r" { SwitchToMode "RenamePane" ; PaneNameInput 0 ; │
│ } │
│ bind "w" { ToggleFloatingPanes ; SwitchToMode "Normal" ; │
│ } │
│ bind "x" { CloseFocus ; SwitchToMode "Normal" ; } │
│ bind "z" { TogglePaneFrames ; SwitchToMode "Normal" ; } │
│ } │
│ move { │
│ bind "Alt m" { SwitchToMode "Normal"; } │
│ bind "h" "Left" { MovePane "Left" ; } │
│ bind "j" "Down" { MovePane "Down" ; } │
│ bind "k" "Up" { MovePane "Up" ; } │
│ bind "l" "Right" { MovePane "Right" ; } │
│ } │
│ tab { │
│ bind "Alt t" { SwitchToMode "Normal" ; } │
│ bind "b" { BreakPane; SwitchToMode "Normal" ; } │
│ bind "h" { MoveTab "Left" ; } │
│ bind "l" { MoveTab "Right" ; } │
│ bind "n" { NewTab ; SwitchToMode "Normal" ; } │
│ bind "r" { SwitchToMode "RenameTab" ; TabNameInput 0 ; } │
│ bind "x" { CloseTab ; SwitchToMode "Normal" ; } │
│ bind "1" { GoToTab 1 ; SwitchToMode "Normal" ; } │
│ bind "2" { GoToTab 2 ; SwitchToMode "Normal" ; } │
│ bind "3" { GoToTab 3 ; SwitchToMode "Normal" ; } │
│ bind "4" { GoToTab 4 ; SwitchToMode "Normal" ; } │
│ bind "5" { GoToTab 5 ; SwitchToMode "Normal" ; } │
│ bind "6" { GoToTab 6 ; SwitchToMode "Normal" ; } │
│ bind "7" { GoToTab 7 ; SwitchToMode "Normal" ; } │
│ bind "8" { GoToTab 8 ; SwitchToMode "Normal" ; } │
│ bind "9" { GoToTab 9 ; SwitchToMode "Normal" ; } │
│ } │
│ scroll { │
│ bind "Alt s" { SwitchToMode "Normal" ; } │
│ bind "e" { EditScrollback; SwitchToMode "Normal" ; } │
│ bind "d" { HalfPageScrollDown ; } │
│ bind "u" { HalfPageScrollUp ; } │
│ bind "j" "Down" { ScrollDown ; } │
│ bind "k" "Up" { ScrollUp ; } │
│ bind "Home" { ScrollToTop ; SwitchToMode "Normal" ; } │
│ bind "End" { ScrollToBottom ; SwitchToMode "Normal" ; } │
│ bind "PageDown" { PageScrollDown ; } │
│ bind "PageUp" { PageScrollUp ; } │
│ bind "s" { SwitchToMode "EnterSearch" ; SearchInput 0 ; } │
│ } │
│ search { │
│ bind "Alt s" { SwitchToMode "Normal" ; } │
│ bind "n" { Search "down" ; } │
│ bind "p" { Search "up" ; } │
│ bind "c" { SearchToggleOption "CaseSensitivity" ; } │
│ bind "w" { SearchToggleOption "Wrap" ; } │
│ bind "o" { SearchToggleOption "WholeWord" ; } │
│ } │
│ entersearch { │
│ bind "Alt c" "Esc" { SwitchToMode "Scroll" ; } │
│ bind "Enter" { SwitchToMode "Search" ; } │
│ } │
│ renametab { │
│ bind "Alt c" { SwitchToMode "Normal" ; } │
│ bind "Esc" { UndoRenameTab ; SwitchToMode "Tab" ; } │
│ } │
│ renamepane { │
│ bind "Alt c" { SwitchToMode "Normal"; } │
│ bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } │
│ } │
│ session { │
│ bind "Alt o" { SwitchToMode "Normal" ; } │
│ bind "d" { Detach ; } │
│ bind "w" { │
│ LaunchOrFocusPlugin "session-manager" { │
│ floating true │
│ move_to_focused_tab true │
│ }; │
│ SwitchToMode "Normal" │
│ } │
│ } │
│ shared_except "locked" { │
│ bind "Alt g" { SwitchToMode "Locked" ; } │
│ bind "Alt q" { Quit ; } │
│ bind "Alt h" "Alt Left" { MoveFocusOrTab "Left" ; } │
│ bind "Alt l" "Alt Right" { MoveFocusOrTab "Right" ; } │
│ bind "Alt j" "Alt Down" { MoveFocus "Down" ; } │
│ bind "Alt k" "Alt Up" { MoveFocus "Up" ; } │
│ bind "Alt [" { PreviousSwapLayout ; } │
│ bind "Alt ]" { NextSwapLayout ; } │
│ } │
│ shared_except "normal" "locked" { │
│ bind "Enter" "Esc" { SwitchToMode "Normal" ; } │
│ } │
│ shared_except "pane" "locked" { │
│ bind "Alt p" { SwitchToMode "Pane" ; } │
│ } │
│ shared_except "resize" "locked" { │
│ bind "Alt r" { SwitchToMode "Resize" ; } │
│ } │
│ shared_except "scroll" "locked" { │
│ bind "Alt s" { SwitchToMode "Scroll" ; } │
│ } │
│ shared_except "session" "locked" { │
│ bind "Alt o" { SwitchToMode "Session" ; } │
│ } │
│ shared_except "tab" "locked" { │
│ bind "Alt t" { SwitchToMode "Tab" ; } │
│ } │
│ shared_except "move" "locked" { │
│ bind "Alt m" { SwitchToMode "Move" ; } │
│ } │
│ } │
│ ''; │
│ }; │
│ }; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ NIX ────────────────────────────────┐
│ { │
│ osConfig, │
│ config, │
│ lib, │
│ ook, │
│ self', │
│ inputs', │
│ pkgs, │
│ ... │
│ }: let │
│ inherit (ook) color; │
│ inherit (osConfig.ooknet) console; │
│ inherit (osConfig.ooknet.host) admin; │
│ inherit (lib) getExe mkIf; │
│ │
│ cfg = osConfig.ooknet.console.tools.zellij │
│ ; │
│ in { │
│ imports = [./options.nix]; │
│ config = mkIf (cfg.enable || console.multi │
│ plexer == "zellij") { │
│ programs.zellij = { │
│ enable = true; │
│ # pinned, see nixpkgs-zellij input │
│ package = inputs'.nixpkgs-zellij.legac │
│ yPackages.zellij; │
│ settings = { │
│ theme = "${color.slug}"; │
│ default_shell = "${admin.shell}"; │
│ default_layout = "default"; │
│ pane_frames = false; │
│ scrollback_editor = "${console.edito │
│ r}"; │
│ themes = { │
│ "${color.slug}" = { │
│ fg = "#${color.base05}"; │
│ bg = "#${color.base00}"; │
│ black = "#${color.base00}"; │
│ red = "#${color.base08}"; │
│ green = "#${color.base0B}"; │
│ yellow = "#${color.base0A}"; │
│ blue = "#${color.base0D}"; │
│ magenta = "#${color.base0E}"; │
│ cyan = "#${color.base0C}"; │
│ white = "#${color.base05}"; │
│ orange = "#${color.base09}"; │
│ }; │
│ }; │
│ }; │
│ │
│ # layout configurations │
│ _layouts = { │
│ default = { │
│ tabs = │
│ #kdl │
│ '' │
│ tab name="terminal" focus=true │
│ { │
│ pane name="term" focus=true │
│ } │
│ ''; │
│ }; │
│ flake = { │
│ tabs = │
│ # kdl │
│ '' │
│ tab name="terminal" focus=true │
│ { │
│ pane name="term" cwd="$FLAKE │
│ " focus=true │
│ } │
│ tab name="editor" { │
│ pane name="edit" edit="$FLAK │
│ E" │
│ } │
│ tab name="git" { │
│ pane name="git" cwd="$FLAKE" │
│ command="lazygit" │
│ } │
│ ''; │
│ }; │
│ music = mkIf config.programs.spotify │
│ -player.enable { │
│ icon = "?"; │
│ tabs = │
│ # kdl │
│ '' │
│ tab name="spotify" focus=true │
│ { │
│ pane name="spotify" { │
│ borderless false │
│ command "${getExe self'.pa │
│ ckages.spotify-player}" │
│ focus true │
│ } │
│ pane name="Visualizer" { │
│ borderless false │
│ split_direction "horizonta │
│ l" │
│ size "20%" │
│ command "${getExe pkgs.cav │
│ a}" │
│ } │
│ } │
│ ''; │
│ }; │
│ }; │
│ │
│ # keybind configuration │
│ extraSettings = │
│ # kdl │
│ '' │
│ keybinds clear-defaults=true { │
│ shared_except "locked" { │
│ bind "Alt 1" { GoToTab 1; │
│ } │
│ bind "Alt 2" { GoToTab 2; │
│ } │
│ bind "Alt 3" { GoToTab 3; │
│ } │
│ bind "Alt 4" { GoToTab 4; } │
│ bind "Alt 5" { GoToTab 5; │
│ } │
│ bind "Alt 6" { GoToTab 6; │
│ } │
│ bind "Alt 7" { GoToTab 7; │
│ } │
│ bind "Alt 8" { GoToTab 8; │
│ } │
│ bind "Alt 9" { GoToTab 9; │
│ } │
│ bind "Alt -" { Resize "Dec │
│ rease" ; } │
│ bind "Alt =" { Resize "Inc │
│ rease" ; } │
│ } │
│ │
│ locked { │
│ bind "Alt g" { SwitchToMod │
│ e "Normal" ; } │
│ } │
│ │
│ resize { │
│ bind "Alt r" { SwitchToMod │
│ e "Normal" ; } │
│ bind "h" "Left" { Resize " │
│ Increase Left" ; } │
│ bind "j" "Down" { Resize │
│ "Increase Down" ; } │
│ bind "k" "Up" { Resize │
│ "Increase Up" ; } │
│ bind "l" "Right" { Resize │
│ "Increase Right" ; } │
│ } │
│ │
│ pane { │
│ bind "Alt p" { SwitchT │
│ oMode "Normal" ; } │
│ bind "c" { Clear ; │
│ } │
│ bind "e" { ToggleP │
│ aneEmbedOrFloating ; SwitchToMode "Normal" ; │
│ } │
│ bind "f" { ToggleF │
│ ocusFullscreen ; SwitchToMode "Normal" ; } │
│ bind "j" "Down" { NewPane │
│ "Down" ; SwitchToMode "Normal" ; } │
│ bind "l" "Right" { NewPane │
│ "Right" ; SwitchToMode "Normal" ; } │
│ bind "n" { NewPane │
│ ; SwitchToMode "Normal" ; } │
│ bind "p" { SwitchF │
│ ocus ; SwitchToMode "Normal" ; } │
│ bind "r" { SwitchT │
│ oMode "RenamePane" ; PaneNameInput 0 ; } │
│ bind "w" { ToggleF │
│ loatingPanes ; SwitchToMode "Normal" ; } │
│ bind "x" { CloseFo │
│ cus ; SwitchToMode "Normal" ; } │
│ bind "z" { ToggleP │
│ aneFrames ; SwitchToMode "Normal" ; } │
│ } │
│ move { │
│ bind "Alt m" { SwitchT │
│ oMode "Normal"; } │
│ bind "h" "Left" { MovePan │
│ e "Left" ; } │
│ bind "j" "Down" { MovePan │
│ e "Down" ; } │
│ bind "k" "Up" { MovePan │
│ e "Up" ; } │
│ bind "l" "Right" { MovePan │
│ e "Right" ; } │
│ } │
│ tab { │
│ bind "Alt t" { SwitchToMode │
│ "Normal" ; } │
│ bind "b" { BreakPane; Sw │
│ itchToMode "Normal" ; } │
│ bind "h" { MoveTab "Left │
│ " ; } │
│ bind "l" { MoveTab "Righ │
│ t" ; } │
│ bind "n" { NewTab ; Swit │
│ chToMode "Normal" ; } │
│ bind "r" { SwitchToMode │
│ "RenameTab" ; TabNameInput 0 ; } │
│ bind "x" { CloseTab ; Sw │
│ itchToMode "Normal" ; } │
│ bind "1" { GoToTab 1 ; S │
│ witchToMode "Normal" ; } │
│ bind "2" { GoToTab 2 ; S │
│ witchToMode "Normal" ; } │
│ bind "3" { GoToTab 3 ; S │
│ witchToMode "Normal" ; } │
│ bind "4" { GoToTab 4 ; S │
│ witchToMode "Normal" ; } │
│ bind "5" { GoToTab 5 ; S │
│ witchToMode "Normal" ; } │
│ bind "6" { GoToTab 6 ; S │
│ witchToMode "Normal" ; } │
│ bind "7" { GoToTab 7 ; S │
│ witchToMode "Normal" ; } │
│ bind "8" { GoToTab 8 ; S │
│ witchToMode "Normal" ; } │
│ bind "9" { GoToTab 9 ; S │
│ witchToMode "Normal" ; } │
│ } │
│ scroll { │
│ bind "Alt s" { SwitchToMo │
│ de "Normal" ; } │
│ bind "e" { EditScroll │
│ back; SwitchToMode "Normal" ; } │
│ bind "d" { HalfPageSc │
│ rollDown ; } │
│ bind "u" { HalfPageSc │
│ rollUp ; } │
│ bind "j" "Down" { ScrollDown │
│ ; } │
│ bind "k" "Up" { ScrollUp ; │
│ } │
│ bind "Home" { ScrollToTo │
│ p ; SwitchToMode "Normal" ; } │
│ bind "End" { ScrollToBo │
│ ttom ; SwitchToMode "Normal" ; } │
│ bind "PageDown" { PageScroll │
│ Down ; } │
│ bind "PageUp" { PageScroll │
│ Up ; } │
│ bind "s" { SwitchToMo │
│ de "EnterSearch" ; SearchInput 0 ; } │
│ } │
│ search { │
│ bind "Alt s" { SwitchToMode │
│ "Normal" ; } │
│ bind "n" { Search "down" │
│ ; } │
│ bind "p" { Search "up" ; │
│ } │
│ bind "c" { SearchToggleO │
│ ption "CaseSensitivity" ; } │
│ bind "w" { SearchToggleO │
│ ption "Wrap" ; } │
│ bind "o" { SearchToggleO │
│ ption "WholeWord" ; } │
│ } │
│ entersearch { │
│ bind "Alt c" "Esc" { SwitchT │
│ oMode "Scroll" ; } │
│ bind "Enter" { SwitchT │
│ oMode "Search" ; } │
│ } │
│ renametab { │
│ bind "Alt c" { SwitchToMode │
│ "Normal" ; } │
│ bind "Esc" { UndoRenameTab │
│ ; SwitchToMode "Tab" ; } │
│ } │
│ renamepane { │
│ bind "Alt c" { SwitchToMode │
│ "Normal"; } │
│ bind "Esc" { UndoRenamePane; │
│ SwitchToMode "Pane"; } │
│ } │
│ session { │
│ bind "Alt o" { SwitchToMode │
│ "Normal" ; } │
│ bind "d" { Detach ; } │
│ bind "w" { │
│ LaunchOrFocusPlugin "ses │
│ sion-manager" { │
│ floating true │
│ move_to_focused_tab │
│ true │
│ }; │
│ SwitchToMode "Normal" │
│ } │
│ } │
│ shared_except "locked" { │
│ bind "Alt g" { S │
│ witchToMode "Locked" ; } │
│ bind "Alt q" { Q │
│ uit ; } │
│ bind "Alt h" "Alt Left" { M │
│ oveFocusOrTab "Left" ; } │
│ bind "Alt l" "Alt Right" { M │
│ oveFocusOrTab "Right" ; } │
│ bind "Alt j" "Alt Down" { M │
│ oveFocus "Down" ; } │
│ bind "Alt k" "Alt Up" { M │
│ oveFocus "Up" ; } │
│ bind "Alt [" { P │
│ reviousSwapLayout ; } │
│ bind "Alt ]" { N │
│ extSwapLayout ; } │
│ } │
│ shared_except "normal" "locked" │
│ { │
│ bind "Enter" "Esc" { SwitchT │
│ oMode "Normal" ; } │
│ } │
│ shared_except "pane" "locked" { │
│ bind "Alt p" { SwitchToMode │
│ "Pane" ; } │
│ } │
│ shared_except "resize" "locked" │
│ { │
│ bind "Alt r" { SwitchToMode │
│ "Resize" ; } │
│ } │
│ shared_except "scroll" "locked" │
│ { │
│ bind "Alt s" { SwitchToMode │
│ "Scroll" ; } │
│ } │
│ shared_except "session" "locked" │
│ { │
│ bind "Alt o" { SwitchToMode │
│ "Session" ; } │
│ } │
│ shared_except "tab" "locked" { │
│ bind "Alt t" { SwitchToMode │
│ "Tab" ; } │
│ } │
│ shared_except "move" "locked" { │
│ bind "Alt m" { SwitchToMode │
│ "Move" ; } │
│ } │
│ } │
│ ''; │
│ }; │
│ }; │
│ } │
└──────────────────────────────────────────────┘
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET