{ pkgs, ... }: # TODO Need to find a solution to have my own packages? # Or at least update to recent versions of the packages I do use in nixpkgs { home.sessionVariables.EDITOR = "nvim"; home.shellAliases = { vim = "nvim"; k = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex; cd $OLDPWD"; # kitaab zettel kz = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex -c :ZettelNew; cd $OLDPWD"; # kitaab get by tagged kt = "cd /home/anish/kitaab/vimwiki; eza *_index.wiki | fzf --preview 'bat --style=numbers --color=always --terminal-width -1 ./{}';cd $OLDPWD"; }; home.file.".config/nvim".source = ./config; #environment.systemPackages = with customPlugins; [ tidal ]; programs.neovim = { enable = true; # extraConfig = '' # filetype plugin on # set shortmess+=c # " Pasting # :map sy :!xclip -i # :vmap sy "*y # :map sp :r!xclip -o # " lua config # -- zen mode # require('zen-mode').setup{ # window = { # backdrop = 1.0, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal # -- height and width can be: # -- * an absolute number of cells when > 1 # -- * a percentage of the width / height of the editor when <= 1 # -- * a function that returns the width or the height # width = 120, -- width of the Zen window # height = 1, -- height of the Zen window # -- by default, no options are changed for the Zen window # -- uncomment any of the options below, or add other vim.wo options you want to apply # options = { # signcolumn = "no", -- disable signcolumn # number = false, -- disable number column # relativenumber = false, -- disable relative numbers # cursorline = false, -- disable cursorline # cursorcolumn = false, -- disable cursor column # foldcolumn = "0", -- disable fold column # list = false, -- disable whitespace characters # }, # }, # plugins = { # -- disable some global vim options (vim.o...) # -- comment the lines to not apply the options # options = { # enabled = true, # ruler = false, -- disables the ruler text in the cmd line area # showcmd = false, -- disables the command in the last line of the screen # }, # twilight = { enabled = true }, -- enable to start Twilight when zen mode opens # gitsigns = { enabled = false }, -- disables git signs # tmux = { enabled = false }, -- disables the tmux statusline # -- this will change the font size on kitty when in zen mode # -- to make this work, you need to set the following kitty options: # -- - allow_remote_control socket-only # -- - listen_on unix:/tmp/kitty # kitty = { # enabled = true, # font = "+2", -- font size increment # }, # }, # } # require('twilight').setup{} # EOF # ''; extraPackages = with pkgs; [ # used to compile tree-sitter grammar # python-with-my-packages # nodejs # clojure-lsp # clojure # clj-kondo terraform-lsp nil gopls gcc shellcheck shfmt proselint nixfmt # statix # nodePackages.typescript # nodePackages.typescript-language-server # luajitPackages.lua-lsp fennel-ls unstable.starpls-bin ]; plugins = with pkgs.unstable.vimPlugins; [ #hotpot hotpot-nvim nvim-navic # ui lualine-nvim neo-tree-nvim fzf-vim vim-devicons nvim-web-devicons telescope-nvim plenary-nvim FTerm-nvim barbar-nvim neovim-ayu rainbow_parentheses-vim auto-session which-key-nvim aerial-nvim todo-comments-nvim indent-blankline-nvim nvim-parinfer # Tree sitter (nvim-treesitter.withPlugins (p: [ p.nix p.clojure p.fennel p.lua p.html p.css p.regex p.supercollider p.beancount p.markdown_inline p.markdown p.glsl p.yaml p.toml p.dockerfile p.json p.go p.starlark ])) nvim-treesitter-context nvim-treesitter-textobjects # TODO undotree marks-nvim # language vim-nix emmet-vim csv-vim direnv-vim # conjure # kitaab stuff vimwiki vim-zettel hologram-nvim # lsp stuff nvim-lspconfig nvim-cmp cmp-nvim-lsp cmp-treesitter # cmp-conjure cmp-buffer cmp-path cmp-spell lspkind-nvim conform-nvim none-ls-nvim mini-nvim # nvim-lspfuzzy # git stuff vim-fugitive gitsigns-nvim fzf-checkout-vim # Clojure stuff # conjure vim-sexp vim-sexp-mappings-for-regular-people fennel-vim # nvim-luapad scnvim flash-nvim vim-beancount ] ++ [ pkgs.vimPlugins.vim-tidal ]; # withPython3 = true; # extraPython3Packages = pkgs: with pkgs; [ tasklib six ]; # vimAlias = true; }; }