diff --git a/flake.lock b/flake.lock index 7169b86..db95e2e 100644 --- a/flake.lock +++ b/flake.lock @@ -114,7 +114,44 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1753121425, + "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -221,6 +258,21 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1748710831, + "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, "nix-alien": { "inputs": { "flake-compat": "flake-compat", @@ -371,6 +423,30 @@ "type": "github" } }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts", + "mnw": "mnw", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1754137146, + "narHash": "sha256-V2AE32tLNvtYVBuc8ZRbkGjAZGsJchFbNVd6v5JXvg8=", + "owner": "NotAShelf", + "repo": "nvf", + "rev": "16d396f039ffefabf93b7b3261e2a17e2f84439b", + "type": "github" + }, + "original": { + "owner": "NotAShelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", @@ -378,6 +454,7 @@ "nix-alien": "nix-alien", "nix-minecraft": "nix-minecraft", "nixpkgs": "nixpkgs_3", + "nvf": "nvf", "sops-nix": "sops-nix", "stylix": "stylix", "valheim-server": "valheim-server" @@ -431,11 +508,11 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "gnome-shell": "gnome-shell", "nixpkgs": "nixpkgs_4", "nur": "nur", - "systems": "systems_2", + "systems": "systems_3", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -486,6 +563,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 44f293d..3e8fa6f 100644 --- a/flake.nix +++ b/flake.nix @@ -11,10 +11,15 @@ impermanence.url = "github:nix-community/impermanence"; stylix.url = "github:danth/stylix"; - nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git"; - # nix-minecraft.url = "github:Infinidoge/nix-minecraft"; nix-alien.url = "github:thiagokokada/nix-alien"; + nvf = { + url = "github:NotAShelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git"; + # nix-minecraft.url = "github:Infinidoge/nix-minecraft"; valheim-server.url = "github:kmjayadeep/valheim-server-flake"; valheim-server.inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/modules/home/terminal/development.nix b/modules/home/terminal/development.nix index 4fb1ea9..ef27627 100644 --- a/modules/home/terminal/development.nix +++ b/modules/home/terminal/development.nix @@ -1,7 +1,15 @@ -{ pkgs, lib, config, ... }: { +{ + pkgs, + lib, + config, + inputs, + ... +}: { options.mods.terminal.development.enable = lib.mkEnableOption "enables cli editor"; + imports = [inputs.nvf.homeManagerModules.default]; + config = lib.mkIf config.mods.terminal.development.enable { home.packages = with pkgs; [ # Nix @@ -34,18 +42,18 @@ settings = { keys.normal = { - "esc" = [ "collapse_selection" "keep_primary_selection" ]; + "esc" = ["collapse_selection" "keep_primary_selection"]; "Z" = { "Q" = ":quit!"; "Z" = ":write-quit!"; }; - "V" = [ "select_mode" "extend_to_line_bounds" ]; + "V" = ["select_mode" "extend_to_line_bounds"]; }; editor = { line-number = "relative"; completion-replace = true; bufferline = "always"; - rulers = [ 80 ]; + rulers = [80]; soft-wrap.enable = true; indent-guides.render = true; cursor-shape = { @@ -74,21 +82,117 @@ } { name = "glsl"; - language-servers = [ "glsl" ]; + language-servers = ["glsl"]; } { name = "wgsl"; - language-servers = [ "wgsl" ]; + language-servers = ["wgsl"]; } { name = "python"; auto-format = true; formatter = { command = "${pkgs.black}/bin/black"; - args = [ "-" "--quiet" "--line-length=79" ]; + args = ["-" "--quiet" "--line-length=79"]; }; } ]; }; + + programs.nvf = { + enable = true; + settings = { + vim = { + viAlias = false; + vimAlias = true; + lsp = { + enable = true; + formatOnSave = true; + }; + + languages = { + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + nix.enable = true; + nix.lsp.server = "nixd"; + + markdown.enable = true; + bash.enable = true; + rust.enable = true; + rust.crates.enable = true; + python.enable = true; + clang.enable = true; + }; + + statusline.lualine.enable = true; + telescope.enable = true; + autocomplete.nvim-cmp.enable = true; + autopairs.nvim-autopairs.enable = true; + tabline.nvimBufferline.enable = true; + treesitter.context.enable = true; + dashboard.alpha.enable = true; + comments.comment-nvim.enable = true; + + notes = { + # orgmode.enable = true; + todo-comments.enable = true; + }; + + spellcheck = {enable = true;}; + + binds = { + whichKey.enable = true; + cheatsheet.enable = true; + }; + + git = { + enable = true; + gitsigns.enable = true; + gitsigns.codeActions.enable = + false; # throws an annoying debug message + }; + + terminal = { + toggleterm = { + enable = true; + lazygit.enable = true; + }; + }; + + utility = { + diffview-nvim.enable = true; + surround.enable = true; + # multicursors.enable = true; + undotree.enable = true; + + motion = { + hop.enable = true; + leap.enable = true; + }; + }; + + visuals = { + nvim-web-devicons.enable = true; + nvim-cursorline.enable = true; + cinnamon-nvim.enable = true; + fidget-nvim.enable = true; + + highlight-undo.enable = true; + indent-blankline.enable = true; + }; + + ui = { + borders.enable = true; + noice.enable = true; + colorizer.enable = true; + illuminate.enable = true; + smartcolumn.enable = true; + fastaction.enable = true; + }; + }; + }; + }; }; }