From f58cee9df3abeaa73fc3178a056a60b47f9ab4a7 Mon Sep 17 00:00:00 2001 From: asnev Date: Sat, 4 Jul 2026 18:48:15 +0700 Subject: [PATCH] neovim babey --- README.md | 27 ++- configuration.nix | 41 +--- users/coyote/default.nix | 10 +- .../dotfiles/{ => helix}/helix-languages.toml | 0 users/coyote/dotfiles/{ => helix}/helix.toml | 0 users/coyote/dotfiles/nvim/.neoconf.json | 15 ++ users/coyote/dotfiles/nvim/init.lua | 2 + .../dotfiles/nvim/lua/config/autocmds.lua | 8 + .../dotfiles/nvim/lua/config/keymaps.lua | 3 + .../coyote/dotfiles/nvim/lua/config/lazy.lua | 53 +++++ .../dotfiles/nvim/lua/config/options.lua | 3 + .../coyote/dotfiles/nvim/lua/plugins/core.lua | 8 + .../dotfiles/nvim/lua/plugins/example.lua | 197 ++++++++++++++++++ users/coyote/dotfiles/nvim/stylua.toml | 3 + .../dotfiles/{vimrc-lisp => vim/vim-lisp} | 0 users/coyote/dotfiles/vim/vim-tab2 | 4 + users/coyote/dotfiles/vim/vim-tab4 | 4 + users/coyote/dotfiles/vim/vim-tabs | 4 + users/coyote/dotfiles/vim/vimrc | 32 +++ users/coyote/dotfiles/vimrc | 45 ---- users/coyote/home.nix | 50 ++--- 21 files changed, 402 insertions(+), 107 deletions(-) rename users/coyote/dotfiles/{ => helix}/helix-languages.toml (100%) rename users/coyote/dotfiles/{ => helix}/helix.toml (100%) create mode 100644 users/coyote/dotfiles/nvim/.neoconf.json create mode 100644 users/coyote/dotfiles/nvim/init.lua create mode 100644 users/coyote/dotfiles/nvim/lua/config/autocmds.lua create mode 100644 users/coyote/dotfiles/nvim/lua/config/keymaps.lua create mode 100644 users/coyote/dotfiles/nvim/lua/config/lazy.lua create mode 100644 users/coyote/dotfiles/nvim/lua/config/options.lua create mode 100644 users/coyote/dotfiles/nvim/lua/plugins/core.lua create mode 100644 users/coyote/dotfiles/nvim/lua/plugins/example.lua create mode 100644 users/coyote/dotfiles/nvim/stylua.toml rename users/coyote/dotfiles/{vimrc-lisp => vim/vim-lisp} (100%) create mode 100644 users/coyote/dotfiles/vim/vim-tab2 create mode 100644 users/coyote/dotfiles/vim/vim-tab4 create mode 100644 users/coyote/dotfiles/vim/vim-tabs create mode 100644 users/coyote/dotfiles/vim/vimrc delete mode 100644 users/coyote/dotfiles/vimrc diff --git a/README.md b/README.md index ec5e63b..4acb8eb 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,29 @@ ├── default.nix ├── dotfiles │   ├── fastfetch.jsonc - │   ├── helix-languages.toml - │   ├── helix.toml - │   └── vimrc + │   ├── helix + │   │   ├── helix-languages.toml + │   │   └── helix.toml + │   ├── nvim + │   │   ├── init.lua + │   │   ├── LICENSE + │   │   ├── lua + │   │   │   ├── config + │   │   │   │   ├── autocmds.lua + │   │   │   │   ├── keymaps.lua + │   │   │   │   ├── lazy.lua + │   │   │   │   └── options.lua + │   │   │   └── plugins + │   │   │   └── example.lua + │   │   ├── README.md + │   │   └── stylua.toml + │   └── vim + │   ├── vim-lisp + │   ├── vimrc + │   ├── vim-tab2 + │   ├── vim-tab4 + │   └── vim-tabs └── home.nix -7 directories, 14 files +13 directories, 27 files ``` diff --git a/configuration.nix b/configuration.nix index 1b1d6b0..7ab22ea 100644 --- a/configuration.nix +++ b/configuration.nix @@ -34,7 +34,6 @@ alsa.support32Bit = false; # temporarily set to 'false' to fix openblas issue pulse.enable = true; }; - flatpak.enable = true; }; security.rtkit.enable = true; @@ -53,10 +52,9 @@ nh alejandra # system utils firmware-updater mtr gnupg ddate testdisk tree wget btop dysk plocate - traceroute rlwrap entr + traceroute rlwrap entr # extra utils fd bat xh tlrc dust hyperfine ripgrep fzf eza - unstable.lazygit ]; shellAliases = { l = "eza --long --all"; @@ -66,11 +64,9 @@ }; programs = { - fish = { - enable = true; - package = pkgs.unstable.fish; - generateCompletions = false; - }; + fish.enable = true; + starship.enable = true; + atuin = { enable = true; settings.sync_address = "https://api.atuin.sh"; }; nix-ld = { enable = true; libraries = with pkgs; [ @@ -78,14 +74,6 @@ e2fsprogs ]; }; - starship = { - enable = true; - package = pkgs.unstable.starship; - }; - atuin = { - enable = true; - settings.sync_address = "https://api.atuin.sh"; - }; tmux = { enable = true; clock24 = true; @@ -109,20 +97,11 @@ fonts = { packages = with pkgs; [ # GUI fonts - inter - corefonts - vista-fonts - roboto - cantarell-fonts + inter corefonts vista-fonts roboto cantarell-fonts # fonts for i18n - noto-fonts - noto-fonts-cjk-sans - noto-fonts-cjk-serif - noto-fonts-color-emoji - noto-fonts-monochrome-emoji - unifont - unifont_upper - unifont-csur + noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif + noto-fonts-color-emoji noto-fonts-monochrome-emoji + unifont unifont_upper unifont-csur # terminal fonts nerd-fonts.iosevka ]; @@ -135,8 +114,6 @@ xdg.portal = { enable = true; config.common.default = ["gtk"]; - extraPortals = with pkgs; [ - xdg-desktop-portal-wlr - ]; + extraPortals = with pkgs; [xdg-desktop-portal-wlr]; }; } diff --git a/users/coyote/default.nix b/users/coyote/default.nix index cf4594c..dbc020a 100644 --- a/users/coyote/default.nix +++ b/users/coyote/default.nix @@ -18,9 +18,14 @@ in { environment = { systemPackages = with pkgs; [ + # system utils + unzip imagemagick ghostscript tectonic mermaid-cli # programming - biwascheme chicken guile sbcl - unstable.racket + python3 lua gcc clang chicken guile sbcl nodejs + unstable.racket + # devel + ast-grep luarocks stylua + unstable.lazygit # LSPs ty nil marksman systemd-lsp bash-language-server ]; @@ -29,6 +34,7 @@ in { programs = { starship = { + package = pkgs.unstable.starship; transientPrompt.enable = true; transientPrompt.left = "starship module character"; settings = { diff --git a/users/coyote/dotfiles/helix-languages.toml b/users/coyote/dotfiles/helix/helix-languages.toml similarity index 100% rename from users/coyote/dotfiles/helix-languages.toml rename to users/coyote/dotfiles/helix/helix-languages.toml diff --git a/users/coyote/dotfiles/helix.toml b/users/coyote/dotfiles/helix/helix.toml similarity index 100% rename from users/coyote/dotfiles/helix.toml rename to users/coyote/dotfiles/helix/helix.toml diff --git a/users/coyote/dotfiles/nvim/.neoconf.json b/users/coyote/dotfiles/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/users/coyote/dotfiles/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/users/coyote/dotfiles/nvim/init.lua b/users/coyote/dotfiles/nvim/init.lua new file mode 100644 index 0000000..2514f9e --- /dev/null +++ b/users/coyote/dotfiles/nvim/init.lua @@ -0,0 +1,2 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/users/coyote/dotfiles/nvim/lua/config/autocmds.lua b/users/coyote/dotfiles/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..4221e75 --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/config/autocmds.lua @@ -0,0 +1,8 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- +-- Add any additional autocmds here +-- with `vim.api.nvim_create_autocmd` +-- +-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) +-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") diff --git a/users/coyote/dotfiles/nvim/lua/config/keymaps.lua b/users/coyote/dotfiles/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..2c134f7 --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/config/keymaps.lua @@ -0,0 +1,3 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here diff --git a/users/coyote/dotfiles/nvim/lua/config/lazy.lua b/users/coyote/dotfiles/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..d73bfa1 --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/config/lazy.lua @@ -0,0 +1,53 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { + enabled = true, -- check for plugin updates periodically + notify = false, -- notify on update + }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/users/coyote/dotfiles/nvim/lua/config/options.lua b/users/coyote/dotfiles/nvim/lua/config/options.lua new file mode 100644 index 0000000..3ea1454 --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/config/options.lua @@ -0,0 +1,3 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here diff --git a/users/coyote/dotfiles/nvim/lua/plugins/core.lua b/users/coyote/dotfiles/nvim/lua/plugins/core.lua new file mode 100644 index 0000000..21da2fc --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/plugins/core.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + } + } +} diff --git a/users/coyote/dotfiles/nvim/lua/plugins/example.lua b/users/coyote/dotfiles/nvim/lua/plugins/example.lua new file mode 100644 index 0000000..17f53d6 --- /dev/null +++ b/users/coyote/dotfiles/nvim/lua/plugins/example.lua @@ -0,0 +1,197 @@ +-- since this is just an example spec, don't actually load anything here and return an empty spec +-- stylua: ignore +if true then return {} end + +-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim +-- +-- In your plugin files, you can: +-- * add extra plugins +-- * disable/enabled LazyVim plugins +-- * override the configuration of LazyVim plugins +return { + -- add gruvbox + { "ellisonleao/gruvbox.nvim" }, + + -- Configure LazyVim to load gruvbox + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, + + -- change trouble config + { + "folke/trouble.nvim", + -- opts will be merged with the parent spec + opts = { use_diagnostic_signs = true }, + }, + + -- disable trouble + { "folke/trouble.nvim", enabled = false }, + + -- override nvim-cmp and add cmp-emoji + { + "hrsh7th/nvim-cmp", + dependencies = { "hrsh7th/cmp-emoji" }, + ---@param opts cmp.ConfigSchema + opts = function(_, opts) + table.insert(opts.sources, { name = "emoji" }) + end, + }, + + -- change some telescope options and a keymap to browse plugin files + { + "nvim-telescope/telescope.nvim", + keys = { + -- add a keymap to browse plugin files + -- stylua: ignore + { + "fp", + function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, + desc = "Find Plugin File", + }, + }, + -- change some options + opts = { + defaults = { + layout_strategy = "horizontal", + layout_config = { prompt_position = "top" }, + sorting_strategy = "ascending", + winblend = 0, + }, + }, + }, + + -- add pyright to lspconfig + { + "neovim/nvim-lspconfig", + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- pyright will be automatically installed with mason and loaded with lspconfig + pyright = {}, + }, + }, + }, + + -- add tsserver and setup with typescript.nvim instead of lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { + "jose-elias-alvarez/typescript.nvim", + init = function() + require("lazyvim.util").lsp.on_attach(function(_, buffer) + -- stylua: ignore + vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) + vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) + end) + end, + }, + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- tsserver will be automatically installed with mason and loaded with lspconfig + tsserver = {}, + }, + -- you can do any additional lsp server setup here + -- return true if you don't want this server to be setup with lspconfig + ---@type table + setup = { + -- example to setup with typescript.nvim + tsserver = function(_, opts) + require("typescript").setup({ server = opts }) + return true + end, + -- Specify * to use this function as a fallback for any server + -- ["*"] = function(server, opts) end, + }, + }, + }, + + -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, + -- treesitter, mason and typescript.nvim. So instead of the above, you can use: + { import = "lazyvim.plugins.extras.lang.typescript" }, + + -- add more treesitter parsers + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "bash", + "html", + "javascript", + "json", + "lua", + "markdown", + "markdown_inline", + "python", + "query", + "regex", + "tsx", + "typescript", + "vim", + "yaml", + }, + }, + }, + + -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above + -- would overwrite `ensure_installed` with the new value. + -- If you'd rather extend the default config, use the code below instead: + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + -- add tsx and treesitter + vim.list_extend(opts.ensure_installed, { + "tsx", + "typescript", + }) + end, + }, + + -- the opts function can also be used to change the default opts: + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function(_, opts) + table.insert(opts.sections.lualine_x, { + function() + return "😄" + end, + }) + end, + }, + + -- or you can return new options to override all the defaults + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function() + return { + --[[add your custom lualine config here]] + } + end, + }, + + -- use mini.starter instead of alpha + { import = "lazyvim.plugins.extras.ui.mini-starter" }, + + -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc + { import = "lazyvim.plugins.extras.lang.json" }, + + -- add any tools you want to have installed below + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "stylua", + "shellcheck", + "shfmt", + "flake8", + }, + }, + }, +} diff --git a/users/coyote/dotfiles/nvim/stylua.toml b/users/coyote/dotfiles/nvim/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/users/coyote/dotfiles/nvim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file diff --git a/users/coyote/dotfiles/vimrc-lisp b/users/coyote/dotfiles/vim/vim-lisp similarity index 100% rename from users/coyote/dotfiles/vimrc-lisp rename to users/coyote/dotfiles/vim/vim-lisp diff --git a/users/coyote/dotfiles/vim/vim-tab2 b/users/coyote/dotfiles/vim/vim-tab2 new file mode 100644 index 0000000..3055d97 --- /dev/null +++ b/users/coyote/dotfiles/vim/vim-tab2 @@ -0,0 +1,4 @@ +setlocal expandtab +setlocal tabstop=2 +setlocal shiftwidth=2 +setlocal softtabstop=2 diff --git a/users/coyote/dotfiles/vim/vim-tab4 b/users/coyote/dotfiles/vim/vim-tab4 new file mode 100644 index 0000000..23b0937 --- /dev/null +++ b/users/coyote/dotfiles/vim/vim-tab4 @@ -0,0 +1,4 @@ +setlocal expandtab +setlocal tabstop=4 +setlocal shiftwidth=4 +setlocal softtabstop=4 diff --git a/users/coyote/dotfiles/vim/vim-tabs b/users/coyote/dotfiles/vim/vim-tabs new file mode 100644 index 0000000..0f56073 --- /dev/null +++ b/users/coyote/dotfiles/vim/vim-tabs @@ -0,0 +1,4 @@ +setlocal tabstop=4 +setlocal shiftwidth=4 +setlocal noexpandtab + diff --git a/users/coyote/dotfiles/vim/vimrc b/users/coyote/dotfiles/vim/vimrc new file mode 100644 index 0000000..5d129e0 --- /dev/null +++ b/users/coyote/dotfiles/vim/vimrc @@ -0,0 +1,32 @@ +set nocompatible +set encoding=utf-8 +set backspace=indent,eol,start +set clipboard=unnamedplus +set mouse=a +set history=1000 +set updatetime=300 + +syntax on +set ruler +set showcmd +set showmode +set laststatus=1 +set wildmenu +set wildmode=longest,list,full +set ttyfast +set lazyredraw + +filetype plugin indent on +set autoindent +set smartindent +set expandtab +set smarttab +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 + +set hlsearch +set incsearch +set ignorecase +set smartcase +set showmatch diff --git a/users/coyote/dotfiles/vimrc b/users/coyote/dotfiles/vimrc deleted file mode 100644 index 5bc2e24..0000000 --- a/users/coyote/dotfiles/vimrc +++ /dev/null @@ -1,45 +0,0 @@ -set nocompatible -set encoding=utf-8 -set backspace=indent,eol,start -set clipboard=unnamedplus -set mouse=a -set history=1000 -set updatetime=300 - -syntax on -set ruler -set showcmd -set showmode -set laststatus=1 -set wildmenu -set wildmode=longest,list,full -set ttyfast -set lazyredraw - -filetype plugin indent on -set autoindent -set smartindent -set expandtab -set smarttab -set tabstop=4 -set shiftwidth=4 -set softtabstop=4 - -set hlsearch -set incsearch -set ignorecase -set smartcase -set showmatch - -augroup LispIndent - autocmd! - autocmd FileType lisp,clojure,scheme,racket setlocal lisp autoindent showmatch expandtab tabstop=2 shiftwidth=2 softtabstop=2 - autocmd FileType lisp,clojure,scheme,racket setlocal lispwords+=defmacro,defmethod,define-syntax,let,let*,letrec,cond -augroup END - -augroup LanguageIndent - autocmd! - autocmd FileType javascript,typescript,html,css,json,nix setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab - autocmd FileType python,rust setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab - autocmd FileType go,make setlocal tabstop=4 shiftwidth=4 noexpandtab -augroup END diff --git a/users/coyote/home.nix b/users/coyote/home.nix index f8aa32b..71fd18b 100644 --- a/users/coyote/home.nix +++ b/users/coyote/home.nix @@ -1,4 +1,11 @@ -{pkgs, ...}: { +{pkgs, lib, ...}: +let + mkVimFt = src: langs: + builtins.listToAttrs (map (lang: { + name = ".vim/after/ftplugin/${lang}.vim"; + value = { source = src; }; + }) langs); +in { home = { stateVersion = "26.05"; # I hope you know what you're doing. :) @@ -7,7 +14,8 @@ shell.enableShellIntegration = true; packages = with pkgs; [ - fastfetch helix nodejs + # programs + fastfetch helix # productivity libreoffice-fresh karp keepassxc # multimedia @@ -22,29 +30,19 @@ (unstable.bottles.override { removeWarningPopup = true; }) ]; - file = { - ".vimrc".source = ./dotfiles/vimrc; - ".vim/after/ftplugin/lisp.vim".source = ./dotfiles/vimrc-lisp; - ".vim/after/ftplugin/scheme.vim".source = ./dotfiles/vimrc-lisp; - ".vim/after/ftplugin/clojure.vim".source = ./dotfiles/vimrc-lisp; - ".vim/after/ftplugin/racket.vim".source = ./dotfiles/vimrc-lisp; - ".config/fastfetch/config.jsonc".source = ./dotfiles/fastfetch.jsonc; - ".config/helix/config.toml".source = ./dotfiles/helix.toml; - ".config/helix/languages.toml".source = ./dotfiles/helix-languages.toml; - }; - }; - - services.flatpak = { - update.auto.enable = false; - update.onActivation = true; - uninstallUnmanaged = false; - packages = [ - # { appId = "app.Id.here"; origin = "flathub"; commit = "" } + file = lib.mkMerge [ + { + ".vimrc".source = ./dotfiles/vim/vimrc; + ".config/fastfetch/config.jsonc".source = ./dotfiles/fastfetch.jsonc; + ".config/helix/config.toml".source = ./dotfiles/helix/helix.toml; + ".config/helix/languages.toml".source = ./dotfiles/helix/helix-languages.toml; + ".config/nvim" = { source = ./dotfiles/nvim; recursive = true; }; + } + (mkVimFt ./dotfiles/vim/vim-tab2 [ "javascript" "typescript" "html" "css" "json" "nix" ]) + (mkVimFt ./dotfiles/vim/vim-tab4 [ "python" "rust" "java" "lua" ]) + (mkVimFt ./dotfiles/vim/vim-tabs [ "go" "make" ]) + (mkVimFt ./dotfiles/vim/vim-lisp [ "lisp" "scheme" "clojure" "racket" ]) ]; - overrides = { - global = { Context.sockets = ["wayland" "!x11" "!fallback-x11"]; }; - settings.Environment.XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons"; - }; }; programs = { @@ -53,6 +51,10 @@ packageConfigurable = pkgs.unstable.vim-full; defaultEditor = true; }; + neovim = { + enable = true; + package = pkgs.unstable.neovim-unwrapped; + }; git = { enable = true; settings = {