{lib, ...}: let inherit (lib.options) mkOption; inherit (lib.types) bool; inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.binds) mkMappingOption; in { options.vim.utility.smart-splits = { enable = mkOption { type = bool; default = false; description = '' Whether to enable smart-splits.nvim, a Neovim plugin for smart, seamless, directional navigation and resizing of splits. Supports tmux, Wezterm, Kitty, and Zellij multiplexer integrations. ''; }; setupOpts = mkPluginSetupOption "smart-splits" {}; keymaps = { resize_left = mkMappingOption "Resize Window/Pane Left" ""; resize_down = mkMappingOption "Resize Window/Pane Down" ""; resize_up = mkMappingOption "Resize Window/Pane Up" ""; resize_right = mkMappingOption "Resize Window/Pane Right" ""; move_cursor_left = mkMappingOption "Focus Window/Pane on the Left" ""; move_cursor_down = mkMappingOption "Focus Window/Pane Below" ""; move_cursor_up = mkMappingOption "Focus Window/Pane Above" ""; move_cursor_right = mkMappingOption "Focus Window/Pane on the Right" ""; move_cursor_previous = mkMappingOption "Focus Previous Window/Pane" ""; swap_buf_left = mkMappingOption "Swap Buffer Left" "h"; swap_buf_down = mkMappingOption "Swap Buffer Down" "j"; swap_buf_up = mkMappingOption "Swap Buffer Up" "k"; swap_buf_right = mkMappingOption "Swap Buffer Right" "l"; }; }; }