diff --git a/flake.lock b/flake.lock index 6a93757..47d489c 100644 --- a/flake.lock +++ b/flake.lock @@ -148,6 +148,24 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "nixvim", @@ -168,9 +186,9 @@ "type": "github" } }, - "flake-parts_2": { + "flake-parts_3": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib" + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { "lastModified": 1738453229, @@ -186,7 +204,7 @@ "type": "github" } }, - "flake-parts_3": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -208,6 +226,21 @@ "type": "github" } }, + "flake-root": { + "locked": { + "lastModified": 1723604017, + "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=", + "owner": "srid", + "repo": "flake-root", + "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "flake-root", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems_2" @@ -755,6 +788,27 @@ "type": "github" } }, + "nixd": { + "inputs": { + "flake-parts": "flake-parts", + "flake-root": "flake-root", + "nixpkgs": "nixpkgs_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1739259093, + "narHash": "sha256-pltdsmg4oh1AVNrMbKUgx1VPbndVdCGID5mrBmRIdVI=", + "owner": "nix-community", + "repo": "nixd", + "rev": "065dcb4cb2f8269d6d15d2b2491a79cff47f9550", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixd", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1739020877, @@ -772,6 +826,18 @@ } }, "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "nixpkgs-lib_2": { "locked": { "lastModified": 1738452942, "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", @@ -784,6 +850,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1734435836, + "narHash": "sha256-kMBQ5PRiFLagltK0sH+08aiNt3zGERC2297iB6vrvlU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4989a246d7a390a859852baddb1013f825435cee", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1741246872, "narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=", @@ -799,7 +881,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1740303746, "narHash": "sha256-XcdiWLEhjJkMxDLKQJ0CCivmYYCvA5MDxu9pMybM5kM=", @@ -815,7 +897,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1740367490, "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", @@ -831,7 +913,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1737003892, "narHash": "sha256-RCzJE9wKByLCXmRBp+z8LK9EgdW+K+W/DXnJS4S/NVo=", @@ -849,7 +931,7 @@ }, "nixvim": { "inputs": { - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ], @@ -887,12 +969,12 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "nixpkgs": [ "stylix", "nixpkgs" ], - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1740408283, @@ -933,11 +1015,11 @@ }, "nvf": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "flake-utils": "flake-utils_2", "mnw": "mnw", "nil": "nil", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nmd": "nmd", "systems": "systems_4" }, @@ -982,7 +1064,8 @@ "inputs": { "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_2", + "nixd": "nixd", + "nixpkgs": "nixpkgs_3", "nixvim": "nixvim", "nvf": "nvf", "stylix": "stylix", @@ -1044,7 +1127,7 @@ "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nur": "nur", "systems": "systems_5", "tinted-foot": "tinted-foot", @@ -1240,6 +1323,27 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixd", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734704479, + "narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "stylix", @@ -1305,7 +1409,7 @@ "yazi": { "inputs": { "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "rust-overlay": "rust-overlay_2" }, "locked": { diff --git a/flake.nix b/flake.nix index 2bfad25..1f85e7a 100644 --- a/flake.nix +++ b/flake.nix @@ -10,9 +10,9 @@ args = {inherit self inputs;}; mkSystem = hostname: nixpkgs.lib.nixosSystem { - specialArgs = args; - modules = [ - ./systems/${hostname}.nix + specialArgs = args; + modules = [ + ./systems/${hostname}.nix # Add the home-manager user home-manager.nixosModules.home-manager @@ -50,7 +50,8 @@ nvf.url = "github:notashelf/nvf"; nixvim.url = "github:nix-community/nixvim"; nixvim.inputs.nixpkgs.follows = "nixpkgs"; + nixd.url = "github:nix-community/nixd"; - stylix.url = "github:danth/stylix"; + stylix.url = "github:danth/stylix"; }; } diff --git a/users/modules/programs/nvf.nix b/users/modules/programs/nvf.nix index dee13a5..30e91ce 100644 --- a/users/modules/programs/nvf.nix +++ b/users/modules/programs/nvf.nix @@ -1,6 +1,11 @@ { inputs, ... }: { imports = [ inputs.nvf.homeManagerModules.default + ./nvf/lualine.nix + ./nvf/noice.nix + ./nvf/nvim-tree.nix + ./nvf/languages/nix.nix + ./nvf/conform-nvim.nix ]; programs.nvf = { @@ -42,6 +47,11 @@ silent = true; } ]; + languages = { + enableFormat = true; + enableLSP = true; + enableTreesitter = true; + }; }; }; } diff --git a/users/modules/programs/nvf/conform-nvim.nix b/users/modules/programs/nvf/conform-nvim.nix new file mode 100644 index 0000000..4f34095 --- /dev/null +++ b/users/modules/programs/nvf/conform-nvim.nix @@ -0,0 +1,5 @@ +{ + programs.nvf.settings.vim.formatter.conform-nvim = { + enable = true; + }; +} diff --git a/users/modules/programs/nvf/languages/nix.nix b/users/modules/programs/nvf/languages/nix.nix new file mode 100644 index 0000000..f64caa6 --- /dev/null +++ b/users/modules/programs/nvf/languages/nix.nix @@ -0,0 +1,9 @@ +{ inputs, ... }: { + programs.nvf.settings.vim.languages.nix = { + enable = true; + lsp = { + # package = inputs.nixd.packages.default; + server = "nixd"; + }; + }; +} diff --git a/users/modules/programs/nvf/lualine.nix b/users/modules/programs/nvf/lualine.nix new file mode 100644 index 0000000..829d8c5 --- /dev/null +++ b/users/modules/programs/nvf/lualine.nix @@ -0,0 +1,5 @@ +{ + programs.nvf.settings.vim.statusline.lualine = { + enable = true; + }; +} diff --git a/users/modules/programs/nvf/noice.nix b/users/modules/programs/nvf/noice.nix new file mode 100644 index 0000000..09bfa4c --- /dev/null +++ b/users/modules/programs/nvf/noice.nix @@ -0,0 +1,5 @@ +{ + programs.nvf.settings.vim.ui.noice = { + enable = true; + }; +} diff --git a/users/modules/programs/nvf/nvim-tree.nix b/users/modules/programs/nvf/nvim-tree.nix new file mode 100644 index 0000000..83e060a --- /dev/null +++ b/users/modules/programs/nvf/nvim-tree.nix @@ -0,0 +1,27 @@ +{ + programs.nvf.settings.vim = { + keymaps = [ + { + key = "t"; + mode = "n"; + action = ":NvimTreeToggle"; + silent = true; + } + ]; + filetree.nvimTree = { + enable = true; + setupOpts = { + disable_netrw = true; + hijack_netrw = true; + hijack_cursor = true; + actions.open_file.quit_on_open = true; + hijack_directories.auto_open = false; + view = { + cursorline = true; + side = "right"; + width = { min = "25%"; max = "25%"; }; + }; + }; + }; + }; +}