diff --git a/flake.lock b/flake.lock index 541a74e..f1ff11a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,28 @@ { "nodes": { + "beautysh": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "poetry2nix": "poetry2nix", + "utils": "utils_2" + }, + "locked": { + "lastModified": 1669854260, + "narHash": "sha256-Z8NAL3g4i5LAhxveNGJhrVDHxIBbUf1lVIy/Thr2RMU=", + "owner": "lovesegfault", + "repo": "beautysh", + "rev": "d616eb8d9d05ee4fb33de9c5521d99c3f0695d52", + "type": "github" + }, + "original": { + "owner": "lovesegfault", + "repo": "beautysh", + "type": "github" + } + }, "crane": { "inputs": { "flake-compat": "flake-compat", @@ -78,6 +101,22 @@ "type": "github" } }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -111,6 +150,36 @@ "type": "github" } }, + "flake-utils_2": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -133,6 +202,28 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -249,6 +340,22 @@ "type": "github" } }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1678872516, + "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-test": { "locked": { "lastModified": 1679009563, @@ -265,6 +372,82 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "beautysh": "beautysh", + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1680338538, + "narHash": "sha256-KEvisgrexkDRKN0wZtWW+74YbnXYrVieB6h3qnNCRcM=", + "owner": "pta2002", + "repo": "nixvim", + "rev": "3d64fab719567efea806d0e2cb09084f62072fa8", + "type": "github" + }, + "original": { + "owner": "pta2002", + "ref": "main", + "repo": "nixvim", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "nixvim", + "beautysh", + "utils" + ], + "nixpkgs": [ + "nixvim", + "beautysh", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658665240, + "narHash": "sha256-/wkx7D7enyBPRjIkK0w7QxLQhzEkb3UxNQnjyc3FTUI=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "8b8edc85d24661d5a6d0d71d6a7011f3e699780f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_3", + "gitignore": "gitignore_2", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1678976941, + "narHash": "sha256-skNr08frCwN9NO+7I77MjOHHAw+L410/37JknNld+W4=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "32b1dbedfd77892a6e375737ef04d8efba634e9e", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": "flake-compat_3", @@ -298,7 +481,8 @@ "home-manager": "home-manager", "impermanence": "impermanence", "lanzaboote": "lanzaboote", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "nixvim": "nixvim" } }, "rust-overlay": { @@ -340,6 +524,21 @@ "repo": "flake-utils", "type": "github" } + }, + "utils_2": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 0054b01..f873d83 100644 --- a/flake.nix +++ b/flake.nix @@ -6,8 +6,8 @@ url = "github:NixOS/nixpkgs/nixos-unstable"; }; - lanzaboote = { - url = "github:nix-community/lanzaboote/master"; + home-manager = { + url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -15,20 +15,18 @@ url = "github:nix-community/impermanence/master"; }; - home-manager = { - url = "github:nix-community/home-manager/master"; + lanzaboote = { + url = "github:nix-community/lanzaboote/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixvim = { + url = "github:pta2002/nixvim/main"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = - { self - , nixpkgs - , home-manager - , impermanence - , lanzaboote - , - } @ inputs: + outputs = { self, nixpkgs, home-manager, impermanence, lanzaboote, nixvim, }@inputs: let system = "x86_64-linux"; lib = nixpkgs.lib; diff --git a/home/default.nix b/home/default.nix index 51727da..01b2153 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,7 +1,4 @@ -{ impermanence -, pkgs -, ... -}: +{ impermanence, nixvim, pkgs, ... }: let user = import ../users/user.nix; in @@ -19,6 +16,7 @@ in home-manager.users.${user.primary.userName} = { pkgs, ... }: { imports = [ impermanence.nixosModules.home-manager.impermanence + nixvim.homeManagerModules.nixvim ./dev.nix ./downloader.nix diff --git a/home/dev.nix b/home/dev.nix index 7b9ca25..b13a3fe 100644 --- a/home/dev.nix +++ b/home/dev.nix @@ -4,7 +4,7 @@ let in { imports = [ - ./nvim.nix + ./nixvim.nix ]; home.packages = with pkgs; [ diff --git a/home/nixvim.nix b/home/nixvim.nix new file mode 100644 index 0000000..ac227cb --- /dev/null +++ b/home/nixvim.nix @@ -0,0 +1,66 @@ +{ config, pkgs, ... }: { + programs.nixvim = { + enable = true; + vimAlias = true; + viAlias = true; + extraConfigLuaPre = '' + vim.g.loaded_netrw = 1 + vim.g.loaded_netrwPlugin = 1 + vim.g.gitblame_date_format = '%r' + vim.g.gitblame_message_when_not_committed = ''' + ''; + options = { + autowrite = true; + background = "dark"; + clipboard = "unnamedplus"; + expandtab = true; + laststatus = 2; + list = true; + showmode = false; + swapfile = false; + number = true; + relativenumber = true; + shiftwidth = 2; + signcolumn = "yes"; + smartindent = true; + tabstop = 2; + termguicolors = true; + updatetime = 100; + wrap = true; + }; + extraPlugins = with pkgs.vimPlugins; [ dracula-nvim git-blame-nvim ]; + colorscheme = "dracula"; + plugins = { + treesitter = { + enable = true; + grammarPackages = with config.programs.nixvim.plugins.treesitter.package.builtGrammars; [ + bash dockerfile gitcommit gitignore git_rebase go markdown markdown_inline nix rust toml yaml + ]; + folding = true; + indent = true; + incrementalSelection.enable = true; + }; + treesitter-context = { + enable = true; + }; + treesitter-refactor = { + enable = true; + highlightCurrentScope.enable = true; + }; + telescope = { + enable = true; + extensions = { + fzf-native = { + enable = true; + fuzzy = true; + }; + }; + }; + fugitive.enable = true; + lualine = { + enable = true; + globalstatus = true; + }; + }; + }; +}