Compare commits

..

No commits in common. "87e59d7a79066e067f5bbed1cdebfb28d613b079" and "b6ca45f7fc1597f43e705cfa06b8cd4425ab67d8" have entirely different histories.

8 changed files with 114 additions and 122 deletions

View file

@ -17,10 +17,7 @@
}; };
}; };
moduleDev = nvimModule { }; moduleDev = nvimModule { };
moduleHeadless = nvimModule { moduleHeadless = nvimModule { jhome.nvim.dev.enable = false; };
jhome.nvim.dev.enable = false;
jhome.nvim.reduceSize = true;
};
moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; }; moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; };
moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; }; moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; };
moduleNoBundledBins = nvimModule { moduleNoBundledBins = nvimModule {

12
flake.lock generated
View file

@ -281,11 +281,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1739624908, "lastModified": 1739484910,
"narHash": "sha256-f84lBmLl4tkDp1ZU5LBTSFzlxXP4926DVW3KnXrke10=", "narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a60651b217d2e529729cbc7d989c19f3941b9250", "rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -330,11 +330,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1739708385, "lastModified": 1739632145,
"narHash": "sha256-H6qPfgE8P6rYMpwj9GsmcZEry52O3U82IqJJy6hx/88=", "narHash": "sha256-maNBjf9whO303r4+8ekfAZOrf3sHnw6DLiSph5xnXJw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "d636d254088a2fa49b585b79097a2766d4e3af80", "rev": "b8c55873998948bf14a2b6cf30f9ad5ecdf79818",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -37,9 +37,6 @@ in
}; };
}) })
(lib.mkIf cfg.enable { (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.use-xdg-base-directories = fromOs [
"nix" "nix"
"settings" "settings"
@ -72,10 +69,12 @@ in
homedir = "${config.xdg.dataHome}/gnupg"; homedir = "${config.xdg.dataHome}/gnupg";
}; };
# Mail client # Mail client
himalaya.enable = lib.mkDefault true; himalaya.enable = true;
# Another shell
nushell.enable = true;
# Password manager # Password manager
password-store = { password-store = {
enable = lib.mkDefault true; enable = true;
package = pkgs.pass-nodmenu; package = pkgs.pass-nodmenu;
settings.PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass"; settings.PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass";
}; };
@ -116,6 +115,11 @@ in
home = { home = {
stateVersion = "22.11"; stateVersion = "22.11";
# Extra packages # Extra packages
packages = [
pkgs.gopass
pkgs.sshfs
pkgs.unstable.gitoxide
];
# Extra variables # Extra variables
sessionVariables = { sessionVariables = {
CARGO_HOME = "${config.xdg.dataHome}/cargo"; CARGO_HOME = "${config.xdg.dataHome}/cargo";

View file

@ -71,8 +71,6 @@ in
enable = true; enable = true;
scripts = builtins.attrValues { inherit (pkgs.mpvScripts) uosc thumbfast; }; scripts = builtins.attrValues { inherit (pkgs.mpvScripts) uosc thumbfast; };
}; };
# Text editor
nixvim.clipboard.providers.wl-copy.enable = lib.mkDefault true;
# Status bar # Status bar
waybar = { waybar = {
enable = true; enable = true;

View file

@ -199,7 +199,6 @@ in
[ "typos" ] # low false positive rate typo checker [ "typos" ] # low false positive rate typo checker
[ "gcc" ] # GNU Compiler Collection [ "gcc" ] # GNU Compiler Collection
[ "git-absorb" ] # fixup! but automatic [ "git-absorb" ] # fixup! but automatic
[ "gitoxide" ] # git but RiiR
[ "man-pages" ] # gimme the man pages [ "man-pages" ] # gimme the man pages
[ "man-pages-posix" ] # I said gimme the man pages!!! [ "man-pages-posix" ] # I said gimme the man pages!!!
]; ];

View file

@ -7,6 +7,7 @@
let let
inherit (helpers) mkRaw; inherit (helpers) mkRaw;
cfg = config.jhome.nvim; cfg = config.jhome.nvim;
dev = cfg.dev.enable;
in in
{ {
config.keymaps = config.keymaps =
@ -201,21 +202,21 @@ in
''; '';
options.desc = "Find Quickfix"; options.desc = "Find Quickfix";
} }
] # Nvim Silicon
# Nvim Silicon {
++ lib.optional (!cfg.reduceSize) { mode = "v";
mode = "v"; key = "<leader>sc";
key = "<leader>sc"; action =
action = mkRaw
mkRaw # lua
# lua ''
'' require('nvim-silicon').clip
require('nvim-silicon').clip
''; '';
options.desc = "Snap Code (to clipboard)"; options.desc = "Snap Code (to clipboard)";
} }
++ lib.optional cfg.dev.enable { ]
++ lib.optional dev {
mode = "n"; mode = "n";
key = "<leader>w"; key = "<leader>w";
action = action =

View file

@ -12,7 +12,6 @@ in
{ {
options.jhome.nvim = { options.jhome.nvim = {
enable = mkDisableOption "jalil's Neovim configuration"; enable = mkDisableOption "jalil's Neovim configuration";
reduceSize = mkEnableOption "reduce size by disabling big modules";
dev = mkOption { dev = mkOption {
type = types.submodule { type = types.submodule {
options = { options = {

View file

@ -1,14 +1,4 @@
{ { pkgs, ... }:
lib,
pkgs,
config,
...
}:
let
cfg = config.jhome.nvim;
plugins = pkgs.vimPlugins;
extraPlugins = import ./extraPlugins { inherit pkgs; };
in
{ {
imports = [ imports = [
./options.nix ./options.nix
@ -18,87 +8,91 @@ in
./augroups.nix ./augroups.nix
]; ];
config = lib.mkMerge [ config = {
{ withRuby = false;
withRuby = false; globals.mapleader = " ";
globals.mapleader = " "; # Appearance
# Appearance colorschemes.gruvbox = {
colorschemes.gruvbox = { enable = true;
enable = true; settings = {
settings = { bold = true;
bold = true; transparent_mode = true;
transparent_mode = true; terminal_colors = true;
terminal_colors = true;
};
}; };
opts = { };
number = true; clipboard.providers.wl-copy.enable = true;
relativenumber = true; opts = {
colorcolumn = "+1"; number = true;
cursorline = true; relativenumber = true;
wrap = false; colorcolumn = "+1";
splitright = true; cursorline = true;
# Tabs & indentation wrap = false;
smarttab = true; splitright = true;
autoindent = true; # Tabs & indentation
smartindent = true; smarttab = true;
# Search path autoindent = true;
path = ".,/usr/include,**"; smartindent = true;
wildmenu = true; # Search path
hlsearch = true; path = ".,/usr/include,**";
incsearch = true; wildmenu = true;
ignorecase = true; # Search ignores cases hlsearch = true;
smartcase = true; # Unless it has a capital letter incsearch = true;
# Enable local configuration :h 'exrc' ignorecase = true; # Search ignores cases
exrc = true; # safe since nvim 0.9 smartcase = true; # Unless it has a capital letter
}; # Enable local configuration :h 'exrc'
extraPlugins = [ exrc = true; # safe since nvim 0.9
};
extraPlugins =
let
plugins = pkgs.vimPlugins;
extraPlugins = import ./extraPlugins { inherit pkgs; };
in
[
plugins.nui-nvim plugins.nui-nvim
plugins.nvim-web-devicons plugins.nvim-web-devicons
plugins.vim-jjdescription # FIXME: included since neovim nightly plugins.vim-jjdescription
extraPlugins.nvim-silicon
]; ];
extraPackages = [ pkgs.luajitPackages.jsregexp ]; # Formatting & linters
extraConfigLuaPre = extraPackages = [
# lua pkgs.luajitPackages.jsregexp
'' pkgs.silicon
-- Lua Pre Config ];
if vim.fn.has 'termguicolors' then extraConfigLuaPre =
-- Enable RGB colors # lua
vim.g.termguicolors = true ''
end -- Lua Pre Config
if vim.fn.has 'termguicolors' then
-- Enable RGB colors
vim.g.termguicolors = true
end
-- Useful function -- Useful function
local has_words_before = function() local has_words_before = function()
-- unpack = unpack or table.unpack -- unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0)) local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 return col ~= 0
and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil
end end
-- END: Lua Pre Config -- END: Lua Pre Config
''; '';
} extraConfigLua =
# Big packages that are kinda unnecessary # lua
(lib.mkIf (!cfg.reduceSize) { ''
extraPlugins = [ extraPlugins.nvim-silicon ]; -- Lua Config
extraPackages = [ pkgs.silicon ]; require("nvim-silicon").setup {
extraConfigLua = theme = "gruvbox-dark",
# lua pad_horiz = 16,
'' pad_vert = 16,
-- Lua Config -- Current buffer name
require("nvim-silicon").setup { window_title = function()
theme = "gruvbox-dark", return vim.fn.fnamemodify(
pad_horiz = 16, vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()),
pad_vert = 16, ":t"
-- Current buffer name )
window_title = function() end,
return vim.fn.fnamemodify( }
vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), -- END: Lua Config
":t" '';
) };
end,
}
-- END: Lua Config
'';
})
];
} }