{ pkgs, ... }: { home.packages = [ pkgs.kak-lsp ]; programs.kakoune = { enable = true; config = { autoReload = "yes"; colorScheme = "tokyonight"; keyMappings = [ { key = ""; effect = ": fzf-mode"; mode = "normal"; docstring = "Open fzf-mode with ctrl-alt-p"; } { key = ""; effect = ": fzf-modef"; mode = "normal"; docstring = "Open fzf-mode file dialog with ctrl-p"; } ]; hooks = [ { name = "WinSetOption"; option = "filetype=(haskell)"; commands = '' lsp-enable-window ''; } ]; numberLines.enable = true; numberLines.highlightCursor = true; numberLines.relative = true; scrollOff.columns = 4; scrollOff.lines = 2; showMatching = true; ui.enableMouse = true; }; extraConfig = '' eval %sh{${pkgs.kak-lsp}/bin/kak-lsp --kakoune -s $kak_session} powerline-start ''; plugins = with pkgs.kakounePlugins; [ active-window-kak auto-pairs-kak fzf-kak kak-lsp kakboard kakoune-state-save kakoune-vertical-selection powerline-kak pkgs.tokyonight-kak # needs luar # pkgs.luar # tabs-kak ]; }; }