diff --git a/flake-modules/nvim.nix b/flake-modules/nvim.nix index 89832f3..75fd4e8 100644 --- a/flake-modules/nvim.nix +++ b/flake-modules/nvim.nix @@ -17,10 +17,7 @@ }; }; moduleDev = nvimModule { }; - moduleHeadless = nvimModule { - jhome.nvim.dev.enable = false; - jhome.nvim.reduceSize = true; - }; + moduleHeadless = nvimModule { jhome.nvim.dev.enable = false; }; moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; }; moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; }; moduleNoBundledBins = nvimModule { diff --git a/flake.lock b/flake.lock index 6a0bb47..d99bcc6 100644 --- a/flake.lock +++ b/flake.lock @@ -281,11 +281,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739624908, - "narHash": "sha256-f84lBmLl4tkDp1ZU5LBTSFzlxXP4926DVW3KnXrke10=", + "lastModified": 1739484910, + "narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a60651b217d2e529729cbc7d989c19f3941b9250", + "rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8", "type": "github" }, "original": { @@ -330,11 +330,11 @@ ] }, "locked": { - "lastModified": 1739708385, - "narHash": "sha256-H6qPfgE8P6rYMpwj9GsmcZEry52O3U82IqJJy6hx/88=", + "lastModified": 1739632145, + "narHash": "sha256-maNBjf9whO303r4+8ekfAZOrf3sHnw6DLiSph5xnXJw=", "owner": "nix-community", "repo": "nixvim", - "rev": "d636d254088a2fa49b585b79097a2766d4e3af80", + "rev": "b8c55873998948bf14a2b6cf30f9ad5ecdf79818", "type": "github" }, "original": { diff --git a/home/default.nix b/home/default.nix index d4ec811..851e89c 100644 --- a/home/default.nix +++ b/home/default.nix @@ -37,9 +37,6 @@ in }; }) (lib.mkIf cfg.enable { - # Add gopass if pass is enabled - packages = lib.optional config.programs.password-store.enable pkgs.gopass; - nix.settings.use-xdg-base-directories = fromOs [ "nix" "settings" @@ -72,10 +69,12 @@ in homedir = "${config.xdg.dataHome}/gnupg"; }; # Mail client - himalaya.enable = lib.mkDefault true; + himalaya.enable = true; + # Another shell + nushell.enable = true; # Password manager password-store = { - enable = lib.mkDefault true; + enable = true; package = pkgs.pass-nodmenu; settings.PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass"; }; @@ -116,6 +115,11 @@ in home = { stateVersion = "22.11"; # Extra packages + packages = [ + pkgs.gopass + pkgs.sshfs + pkgs.unstable.gitoxide + ]; # Extra variables sessionVariables = { CARGO_HOME = "${config.xdg.dataHome}/cargo"; diff --git a/home/gui/default.nix b/home/gui/default.nix index c24ddcf..bd81732 100644 --- a/home/gui/default.nix +++ b/home/gui/default.nix @@ -71,8 +71,6 @@ in enable = true; scripts = builtins.attrValues { inherit (pkgs.mpvScripts) uosc thumbfast; }; }; - # Text editor - nixvim.clipboard.providers.wl-copy.enable = lib.mkDefault true; # Status bar waybar = { enable = true; diff --git a/home/options.nix b/home/options.nix index 2f65337..4334c16 100644 --- a/home/options.nix +++ b/home/options.nix @@ -199,7 +199,6 @@ in [ "typos" ] # low false positive rate typo checker [ "gcc" ] # GNU Compiler Collection [ "git-absorb" ] # fixup! but automatic - [ "gitoxide" ] # git but RiiR [ "man-pages" ] # gimme the man pages [ "man-pages-posix" ] # I said gimme the man pages!!! ]; diff --git a/nvim/mappings.nix b/nvim/mappings.nix index 4571332..a7d5c36 100644 --- a/nvim/mappings.nix +++ b/nvim/mappings.nix @@ -7,6 +7,7 @@ let inherit (helpers) mkRaw; cfg = config.jhome.nvim; + dev = cfg.dev.enable; in { config.keymaps = @@ -201,21 +202,21 @@ in ''; options.desc = "Find Quickfix"; } - ] - # Nvim Silicon - ++ lib.optional (!cfg.reduceSize) { - mode = "v"; - key = "sc"; - action = - mkRaw - # lua - '' - require('nvim-silicon').clip + # Nvim Silicon + { + mode = "v"; + key = "sc"; + action = + mkRaw + # lua + '' + require('nvim-silicon').clip - ''; - options.desc = "Snap Code (to clipboard)"; - } - ++ lib.optional cfg.dev.enable { + ''; + options.desc = "Snap Code (to clipboard)"; + } + ] + ++ lib.optional dev { mode = "n"; key = "w"; action = diff --git a/nvim/options.nix b/nvim/options.nix index 292a80e..1e54e30 100644 --- a/nvim/options.nix +++ b/nvim/options.nix @@ -12,7 +12,6 @@ in { options.jhome.nvim = { enable = mkDisableOption "jalil's Neovim configuration"; - reduceSize = mkEnableOption "reduce size by disabling big modules"; dev = mkOption { type = types.submodule { options = { diff --git a/nvim/standalone.nix b/nvim/standalone.nix index cec3117..8e25d9e 100644 --- a/nvim/standalone.nix +++ b/nvim/standalone.nix @@ -1,14 +1,4 @@ -{ - lib, - pkgs, - config, - ... -}: -let - cfg = config.jhome.nvim; - plugins = pkgs.vimPlugins; - extraPlugins = import ./extraPlugins { inherit pkgs; }; -in +{ pkgs, ... }: { imports = [ ./options.nix @@ -18,87 +8,91 @@ in ./augroups.nix ]; - config = lib.mkMerge [ - { - withRuby = false; - globals.mapleader = " "; - # Appearance - colorschemes.gruvbox = { - enable = true; - settings = { - bold = true; - transparent_mode = true; - terminal_colors = true; - }; + config = { + withRuby = false; + globals.mapleader = " "; + # Appearance + colorschemes.gruvbox = { + enable = true; + settings = { + bold = true; + transparent_mode = true; + terminal_colors = true; }; - opts = { - number = true; - relativenumber = true; - colorcolumn = "+1"; - cursorline = true; - wrap = false; - splitright = true; - # Tabs & indentation - smarttab = true; - autoindent = true; - smartindent = true; - # Search path - path = ".,/usr/include,**"; - wildmenu = true; - hlsearch = true; - incsearch = true; - ignorecase = true; # Search ignores cases - smartcase = true; # Unless it has a capital letter - # Enable local configuration :h 'exrc' - exrc = true; # safe since nvim 0.9 - }; - extraPlugins = [ + }; + clipboard.providers.wl-copy.enable = true; + opts = { + number = true; + relativenumber = true; + colorcolumn = "+1"; + cursorline = true; + wrap = false; + splitright = true; + # Tabs & indentation + smarttab = true; + autoindent = true; + smartindent = true; + # Search path + path = ".,/usr/include,**"; + wildmenu = true; + hlsearch = true; + incsearch = true; + ignorecase = true; # Search ignores cases + smartcase = true; # Unless it has a capital letter + # Enable local configuration :h 'exrc' + exrc = true; # safe since nvim 0.9 + }; + extraPlugins = + let + plugins = pkgs.vimPlugins; + extraPlugins = import ./extraPlugins { inherit pkgs; }; + in + [ plugins.nui-nvim plugins.nvim-web-devicons - plugins.vim-jjdescription # FIXME: included since neovim nightly + plugins.vim-jjdescription + extraPlugins.nvim-silicon ]; - extraPackages = [ pkgs.luajitPackages.jsregexp ]; - extraConfigLuaPre = - # lua - '' - -- Lua Pre Config - if vim.fn.has 'termguicolors' then - -- Enable RGB colors - vim.g.termguicolors = true - end + # Formatting & linters + extraPackages = [ + pkgs.luajitPackages.jsregexp + pkgs.silicon + ]; + extraConfigLuaPre = + # lua + '' + -- Lua Pre Config + if vim.fn.has 'termguicolors' then + -- Enable RGB colors + vim.g.termguicolors = true + end - -- Useful function - local has_words_before = function() - -- unpack = unpack or table.unpack - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 - and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil - end - -- END: Lua Pre Config - ''; - } - # Big packages that are kinda unnecessary - (lib.mkIf (!cfg.reduceSize) { - extraPlugins = [ extraPlugins.nvim-silicon ]; - extraPackages = [ pkgs.silicon ]; - extraConfigLua = - # lua - '' - -- Lua Config - require("nvim-silicon").setup { - theme = "gruvbox-dark", - pad_horiz = 16, - pad_vert = 16, - -- Current buffer name - window_title = function() - return vim.fn.fnamemodify( - vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), - ":t" - ) - end, - } - -- END: Lua Config - ''; - }) - ]; + -- Useful function + local has_words_before = function() + -- unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 + and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil + end + -- END: Lua Pre Config + ''; + extraConfigLua = + # lua + '' + -- Lua Config + require("nvim-silicon").setup { + theme = "gruvbox-dark", + pad_horiz = 16, + pad_vert = 16, + -- Current buffer name + window_title = function() + return vim.fn.fnamemodify( + vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), + ":t" + ) + end, + } + -- END: Lua Config + ''; + }; }