diff --git a/home/baseline/tools.nix b/home/baseline/tools.nix index 4f1af94..a89614b 100644 --- a/home/baseline/tools.nix +++ b/home/baseline/tools.nix @@ -22,19 +22,98 @@ enableZshIntegration = pkgs.stdenv.hostPlatform.isDarwin; settings = { default_shell = "xonsh"; + plugins = { + autolock = { + _props.location = "https://github.com/fresh2dev/zellij-autolock/releases/download/0.2.2/zellij-autolock.wasm"; + _children = [ { + is_enabled = true; + } { + triggers = "nvim|vim|git"; + } { + reaction_seconds = "0.3"; + } { + print_to_log = true; + } ]; + }; + }; + load_plugins.autolock = {}; keybinds = { normal._children = [ { bind = { - _args = [ "Ctrl b" ]; + _args = [ "Enter" ]; + _children = [ { + WriteChars = "\\u{000D}"; + MessagePlugin = { + _args = [ "autolock" ]; + _children = [{}]; + }; + } ]; + }; + } + { + bind = { + _args = [ "Ctrl z" ]; _children = [ { - SwitchToMode._args = [ "locked" ]; + MessagePlugin = { + _args = [ "autolock" ]; + _children = [ + { + payload._args = [ "enable" ]; + } + ]; + }; + SwitchToMode._args = [ "Locked" ]; } ]; }; } - ]; + ]; # /normal + locked._children = [ + { + bind = { + _args = [ "Ctrl z" ]; + _children = [ + { + MessagePlugin = { + _args = [ "autolock" ]; + _children = [ + { + payload._args = [ "disable" ]; + } + ]; + }; + SwitchToMode._args = [ "Normal" ]; + } + ]; + }; + } + ]; # /locked + shared_except = { + _args = [ "locked" ]; + _children = [ { + bind = { + _args = [ "Ctrl h" ]; + MoveFocusOrTab._args = [ "Left" ]; + }; + } { + bind = { + _args = [ "Ctrl j" ]; + MoveFocus._args = [ "Down" ]; + }; + } { + bind = { + _args = [ "Ctrl k" ]; + MoveFocus._args = [ "Up" ]; + }; + } { + bind = { + _args = [ "Ctrl l" ]; + MoveFocusOrTab._args = [ "Right" ]; + }; + } ]; + }; # /shared_except }; # /keybinds }; # /settings }; diff --git a/home/baseline/vim/config.nix b/home/baseline/vim/config.nix index 6512b74..69f0998 100644 --- a/home/baseline/vim/config.nix +++ b/home/baseline/vim/config.nix @@ -135,6 +135,7 @@ notify.enable = true; remote-nvim.enable = true; web-devicons.enable = true; + zellij.enable = true; }; userCommands = { Ggr = {