From 0b73b9965414308edde42d7cbab9c5b403d0bf1f Mon Sep 17 00:00:00 2001 From: KeksNino Date: Thu, 30 Jul 2026 03:43:53 +0200 Subject: [PATCH] add nixvim --- flake.lock | 88 ++++++++++++++++++++++++++--- flake.nix | 19 +++++-- hosts/desktop/configuration.nix | 10 +++- hosts/desktop/home-manager/home.nix | 1 - modules/programs/neovim/keymaps.nix | 23 ++++++++ modules/programs/neovim/neovim.nix | 65 +++++++++++++++++++++ 6 files changed, 191 insertions(+), 15 deletions(-) create mode 100644 modules/programs/neovim/keymaps.nix create mode 100644 modules/programs/neovim/neovim.nix diff --git a/flake.lock b/flake.lock index e9974aa..c71f9e8 100644 --- a/flake.lock +++ b/flake.lock @@ -34,6 +34,27 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1782949081, + "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -71,7 +92,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1731533236, @@ -249,6 +270,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1784555310, + "narHash": "sha256-/FCliTPgiuV1owejZFNx3Ch9irdvkOfOFl+HHZ+DrtM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "421eebfd0ec7bccd4abe826ce62d7e6e83129493", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1767026758, "narHash": "sha256-7fsac/f7nh/VaKJ/qm3I338+wAJa/3J57cOGpXi0Sbg=", @@ -264,7 +301,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1783279667, "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=", @@ -280,7 +317,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1784007870, "narHash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=", @@ -296,6 +333,26 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_4", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1785364321, + "narHash": "sha256-BLuHl+nZKb+FDq3GAM6L+UBEiyVepXANA31fT1F56pw=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "acd69cc15d57004e8cb4495034320263a3d362ea", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, "root": { "inputs": { "bcdl-free": "bcdl-free", @@ -303,6 +360,7 @@ "home-manager": "home-manager", "millennium": "millennium", "nixpkgs": "nixpkgs_3", + "nixvim": "nixvim", "sls-steam": "sls-steam", "xremap-flake": "xremap-flake", "yazi": "yazi", @@ -366,6 +424,22 @@ } }, "systems_2": { + "locked": { + "lastModified": 1774449309, + "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", + "owner": "nix-systems", + "repo": "default", + "rev": "c29398b59d2048c4ab79345812849c9bd15e9150", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "ref": "future-26.11", + "repo": "default", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -400,8 +474,8 @@ "xremap-flake": { "inputs": { "crane": "crane", - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_4", + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_5", "xremap": "xremap" }, "locked": { @@ -421,7 +495,7 @@ "yazi": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "rust-overlay": "rust-overlay" }, "locked": { @@ -441,7 +515,7 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1785224333, diff --git a/flake.nix b/flake.nix index ebeb050..a38d73b 100644 --- a/flake.nix +++ b/flake.nix @@ -9,15 +9,16 @@ url = "github:AceSLS/SLSsteam"; inputs.nixpkgs.follows = "nixpkgs"; }; - zen-browser.url = "github:0xc000022070/zen-browser-flake"; - xremap-flake.url = "github:xremap/nix-flake"; - yazi.url = "github:sxyazi/yazi"; - millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; gsr-ui = { url = "github:rPlakama/gsr-ui-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + zen-browser.url = "github:0xc000022070/zen-browser-flake"; + xremap-flake.url = "github:xremap/nix-flake"; + yazi.url = "github:sxyazi/yazi"; + millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; bcdl-free.url = "git+https://git.pizzasucht.net/KeksNino/free-bandcamp-downloader"; + nixvim.url = "github:nix-community/nixvim"; }; outputs = @@ -31,6 +32,7 @@ millennium, gsr-ui, bcdl-free, + nixvim, ... }@inputs: let @@ -44,6 +46,7 @@ bcdl-free xremap-flake system + nixvim ; }; modules = [ @@ -73,7 +76,13 @@ ]; }; nixosConfigurations.music-server = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs bcdl-free system; }; + specialArgs = { + inherit + inputs + bcdl-free + system + ; + }; modules = [ ./hosts/music-server/configuration.nix ./hosts/music-server/hardware-configuration.nix diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 45f59ac..2248532 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -17,6 +17,7 @@ in ./packages.nix ../../modules/scripts.nix ../../modules/desktop/xremap.nix + ../../modules/programs/neovim/neovim.nix ]; # DISKS @@ -175,10 +176,9 @@ in services.lact.enable = true; services.rsync.enable = true; programs.kdeconnect.enable = true; - programs.neovim.enable = true; + # programs.neovim.enable = true; programs.tmux.enable = true; programs.bat.enable = true; - programs.nh.enable = true; programs.git = { enable = true; config = { @@ -204,11 +204,17 @@ in }; }; }; + programs.gnupg.agent = { enable = true; pinentryPackage = pkgs.pinentry-curses; }; + programs.nh = { + enable = true; + flake = "/home/user/nix-config"; + }; + programs.steam = { enable = true; package = pkgs.millennium-steam.override { diff --git a/hosts/desktop/home-manager/home.nix b/hosts/desktop/home-manager/home.nix index 6def3e2..52fff66 100644 --- a/hosts/desktop/home-manager/home.nix +++ b/hosts/desktop/home-manager/home.nix @@ -37,7 +37,6 @@ settings = { "org/cinnamon/desktop/applications/terminal" = { exec = "kitty"; - # exec-arg = ""; # argument }; }; }; diff --git a/modules/programs/neovim/keymaps.nix b/modules/programs/neovim/keymaps.nix new file mode 100644 index 0000000..388fee0 --- /dev/null +++ b/modules/programs/neovim/keymaps.nix @@ -0,0 +1,23 @@ +{ + programs.nixvim = { + globals = { + mapleader = " "; + }; + + keymaps = [ + { + action = "lua Snacks.explorer.open()"; + key = "e"; + } + { + mode = [ + "n" + "x" + "o" + ]; + action = ''lua require("flash").jump()''; + key = "s"; + } + ]; + }; +} diff --git a/modules/programs/neovim/neovim.nix b/modules/programs/neovim/neovim.nix new file mode 100644 index 0000000..5173d2d --- /dev/null +++ b/modules/programs/neovim/neovim.nix @@ -0,0 +1,65 @@ +{ nixvim, pkgs, ... }: +{ + imports = [ + nixvim.nixosModules.nixvim + ./keymaps.nix + ]; + + programs.nixvim = { + enable = true; + defaultEditor = true; + + clipboard.register = "unnamedplus"; + + colorschemes.tokyonight = { + enable = true; + settings = { + transparent = true; + }; + }; + + extraPlugins = [ pkgs.vimPlugins.boole-nvim ]; + + plugins = { + lualine.enable = true; + bufferline.enable = true; + yazi.enable = true; + cord = { + enable = true; + settings.display.theme = "atom"; + }; + neoscroll.enable = true; + snacks = { + enable = true; + settings = { + bigfile.enabled = true; + dashboard.enabled = true; + explorer = { + enabled = true; + auto_close = true; + }; + indent.enabled = false; + input.enabled = true; + picker.enabled = true; + notifier.enabled = true; + quickfile.enabled = true; + statuscolumn.enabled = true; + words.enabled = true; + }; + }; + telescope.enable = true; + which-key.enable = true; + flash.enable = true; + lsp.enable = true; + }; + + lsp = { + servers = { + lua_ls.enable = true; + nixd.enable = true; + }; + inlayHints.enable = true; + }; + }; + +}