Compare commits
3 commits
b6ca45f7fc
...
87e59d7a79
Author | SHA1 | Date | |
---|---|---|---|
87e59d7a79 | |||
107ffba42c | |||
5563238f0a |
8 changed files with 122 additions and 114 deletions
|
@ -17,7 +17,10 @@
|
|||
};
|
||||
};
|
||||
moduleDev = nvimModule { };
|
||||
moduleHeadless = nvimModule { jhome.nvim.dev.enable = false; };
|
||||
moduleHeadless = nvimModule {
|
||||
jhome.nvim.dev.enable = false;
|
||||
jhome.nvim.reduceSize = true;
|
||||
};
|
||||
moduleNoLsp = nvimModule { jhome.nvim.dev.bundleLSPs = false; };
|
||||
moduleNoTSGrammars = nvimModule { jhome.nvim.dev.bundleGrammars = false; };
|
||||
moduleNoBundledBins = nvimModule {
|
||||
|
|
12
flake.lock
generated
12
flake.lock
generated
|
@ -281,11 +281,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1739484910,
|
||||
"narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=",
|
||||
"lastModified": 1739624908,
|
||||
"narHash": "sha256-f84lBmLl4tkDp1ZU5LBTSFzlxXP4926DVW3KnXrke10=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8",
|
||||
"rev": "a60651b217d2e529729cbc7d989c19f3941b9250",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -330,11 +330,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739632145,
|
||||
"narHash": "sha256-maNBjf9whO303r4+8ekfAZOrf3sHnw6DLiSph5xnXJw=",
|
||||
"lastModified": 1739708385,
|
||||
"narHash": "sha256-H6qPfgE8P6rYMpwj9GsmcZEry52O3U82IqJJy6hx/88=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "b8c55873998948bf14a2b6cf30f9ad5ecdf79818",
|
||||
"rev": "d636d254088a2fa49b585b79097a2766d4e3af80",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -37,6 +37,9 @@ 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"
|
||||
|
@ -69,12 +72,10 @@ in
|
|||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
};
|
||||
# Mail client
|
||||
himalaya.enable = true;
|
||||
# Another shell
|
||||
nushell.enable = true;
|
||||
himalaya.enable = lib.mkDefault true;
|
||||
# Password manager
|
||||
password-store = {
|
||||
enable = true;
|
||||
enable = lib.mkDefault true;
|
||||
package = pkgs.pass-nodmenu;
|
||||
settings.PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass";
|
||||
};
|
||||
|
@ -115,11 +116,6 @@ in
|
|||
home = {
|
||||
stateVersion = "22.11";
|
||||
# Extra packages
|
||||
packages = [
|
||||
pkgs.gopass
|
||||
pkgs.sshfs
|
||||
pkgs.unstable.gitoxide
|
||||
];
|
||||
# Extra variables
|
||||
sessionVariables = {
|
||||
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||
|
|
|
@ -71,6 +71,8 @@ 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;
|
||||
|
|
|
@ -199,6 +199,7 @@ 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!!!
|
||||
];
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
let
|
||||
inherit (helpers) mkRaw;
|
||||
cfg = config.jhome.nvim;
|
||||
dev = cfg.dev.enable;
|
||||
in
|
||||
{
|
||||
config.keymaps =
|
||||
|
@ -202,21 +201,21 @@ in
|
|||
'';
|
||||
options.desc = "Find Quickfix";
|
||||
}
|
||||
# Nvim Silicon
|
||||
{
|
||||
mode = "v";
|
||||
key = "<leader>sc";
|
||||
action =
|
||||
mkRaw
|
||||
# lua
|
||||
''
|
||||
require('nvim-silicon').clip
|
||||
|
||||
'';
|
||||
options.desc = "Snap Code (to clipboard)";
|
||||
}
|
||||
]
|
||||
++ lib.optional dev {
|
||||
# Nvim Silicon
|
||||
++ lib.optional (!cfg.reduceSize) {
|
||||
mode = "v";
|
||||
key = "<leader>sc";
|
||||
action =
|
||||
mkRaw
|
||||
# lua
|
||||
''
|
||||
require('nvim-silicon').clip
|
||||
|
||||
'';
|
||||
options.desc = "Snap Code (to clipboard)";
|
||||
}
|
||||
++ lib.optional cfg.dev.enable {
|
||||
mode = "n";
|
||||
key = "<leader>w";
|
||||
action =
|
||||
|
|
|
@ -12,6 +12,7 @@ in
|
|||
{
|
||||
options.jhome.nvim = {
|
||||
enable = mkDisableOption "jalil's Neovim configuration";
|
||||
reduceSize = mkEnableOption "reduce size by disabling big modules";
|
||||
dev = mkOption {
|
||||
type = types.submodule {
|
||||
options = {
|
||||
|
|
|
@ -1,4 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.jhome.nvim;
|
||||
plugins = pkgs.vimPlugins;
|
||||
extraPlugins = import ./extraPlugins { inherit pkgs; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./options.nix
|
||||
|
@ -8,91 +18,87 @@
|
|||
./augroups.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
withRuby = false;
|
||||
globals.mapleader = " ";
|
||||
# Appearance
|
||||
colorschemes.gruvbox = {
|
||||
enable = true;
|
||||
settings = {
|
||||
bold = true;
|
||||
transparent_mode = true;
|
||||
terminal_colors = true;
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
withRuby = false;
|
||||
globals.mapleader = " ";
|
||||
# Appearance
|
||||
colorschemes.gruvbox = {
|
||||
enable = true;
|
||||
settings = {
|
||||
bold = true;
|
||||
transparent_mode = true;
|
||||
terminal_colors = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
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
|
||||
[
|
||||
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 = [
|
||||
plugins.nui-nvim
|
||||
plugins.nvim-web-devicons
|
||||
plugins.vim-jjdescription
|
||||
extraPlugins.nvim-silicon
|
||||
plugins.vim-jjdescription # FIXME: included since neovim nightly
|
||||
];
|
||||
# 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
|
||||
extraPackages = [ pkgs.luajitPackages.jsregexp ];
|
||||
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
|
||||
'';
|
||||
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
|
||||
'';
|
||||
}
|
||||
# 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
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue