add: nixvim bones; refactoring
This commit is contained in:
		
							parent
							
								
									546ece2d97
								
							
						
					
					
						commit
						885d9f952b
					
				
					 8 changed files with 232 additions and 33 deletions
				
			
		
							
								
								
									
										30
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										30
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -213,11 +213,11 @@ | |||
|         "rust-overlay": "rust-overlay" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1706459685, | ||||
|         "narHash": "sha256-/OaxGhNJrBZcOBGKvEC7KFDShtMJOIpny5+N9G/qRkE=", | ||||
|         "lastModified": 1706565513, | ||||
|         "narHash": "sha256-eiiHgBdpluVFjjWaunP1GFEDYnCLq54CeCD7h1JP7jY=", | ||||
|         "owner": "helix-editor", | ||||
|         "repo": "helix", | ||||
|         "rev": "87a720c3a13ccc7245f5b0befc008db5bd039032", | ||||
|         "rev": "cf4492174d0ee27bd3c73a5fa57fe3a26aa064be", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -233,11 +233,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1706435589, | ||||
|         "narHash": "sha256-yhEYJxMv5BkfmUuNe4QELKo+V5eq1pwhtVs6kEziHfE=", | ||||
|         "lastModified": 1706473109, | ||||
|         "narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "4d54c29bce71f8c261513e0662cc573d30f3e33e", | ||||
|         "rev": "d634c3abafa454551f2083b054cd95c3f287be61", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -278,11 +278,11 @@ | |||
|         "xdph": "xdph" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1706485369, | ||||
|         "narHash": "sha256-FHojTmzX3SrAC+VXu+xdmTPwZtlSQ8KzRfq89c7DrN0=", | ||||
|         "lastModified": 1706571425, | ||||
|         "narHash": "sha256-VwVUPb5vuy4GGUx1XMhDMaKk9n8Gs5xUTG9CItoHL04=", | ||||
|         "owner": "hyprwm", | ||||
|         "repo": "hyprland", | ||||
|         "rev": "4b4bd90b1450cbfc01d9ac429363cc7cecd6be8b", | ||||
|         "rev": "3ff59e7e1d859daa503b88ef125d087bc100abfe", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -577,11 +577,11 @@ | |||
|     }, | ||||
|     "nixpkgs_4": { | ||||
|       "locked": { | ||||
|         "lastModified": 1706191920, | ||||
|         "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", | ||||
|         "lastModified": 1706371002, | ||||
|         "narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", | ||||
|         "rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  | @ -616,11 +616,11 @@ | |||
|         "pre-commit-hooks": "pre-commit-hooks" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1706514457, | ||||
|         "narHash": "sha256-rfdCFizftdKpkKzXB7HjopQAftHgNIyyTQPkuDgo5Os=", | ||||
|         "lastModified": 1706539542, | ||||
|         "narHash": "sha256-Zbd9/0iTDNwf6ePvKkISvSMK6S7kmfsPzyG5f57sVA8=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "nixvim", | ||||
|         "rev": "395836480995d418b96df527ebded1bc4b3134f0", | ||||
|         "rev": "37d124e94603f821b56072794c4800ad10252fd7", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|  |  | |||
|  | @ -10,7 +10,10 @@ | |||
| 
 | ||||
|     nix-colors.url = "github:misterio77/nix-colors"; | ||||
| 
 | ||||
|     nixvim.url = "github:nix-community/nixvim"; | ||||
|     nixvim = { | ||||
|       url = "github:nix-community/nixvim"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
| 
 | ||||
|     firefox-addons = { | ||||
|       url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; | ||||
|  |  | |||
|  | @ -8,6 +8,9 @@ in | |||
| { | ||||
|   imports = [ | ||||
|     inputs.nixvim.homeManagerModules.nixvim | ||||
|     ./settings.nix | ||||
|     ./keymapping.nix | ||||
|     ./plugins | ||||
|   ]; | ||||
|    | ||||
|   config = lib.mkIf cfg.enable { | ||||
|  | @ -18,26 +21,12 @@ in | |||
| 
 | ||||
|     programs.nixvim = { | ||||
|       enable = true; | ||||
| 
 | ||||
|       options = { | ||||
|         number = true; | ||||
|       }; | ||||
| 
 | ||||
|       globals = { | ||||
|         mapleader = " "; | ||||
|         updatetime = 200; | ||||
|         timeoutlen = 400; | ||||
|       }; | ||||
|        | ||||
|       plugins = { | ||||
|         lualine = { | ||||
|           enable = true; | ||||
|         }; | ||||
|         which-key = { | ||||
|           enable = true; | ||||
|           keyLabels = { | ||||
|             " " = "<space>"; | ||||
|           }; | ||||
|         indent-blankline = { | ||||
|           enable = true; | ||||
|         }; | ||||
|       };   | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										50
									
								
								home/modules/console/editor/nvim/keymappings.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								home/modules/console/editor/nvim/keymappings.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.desktop.console.editor.nvim; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     programs.nixvim = { | ||||
|       globals = { | ||||
|         mapleader = " "; | ||||
|         maplocalleader = " "; | ||||
|       }; | ||||
| 
 | ||||
|       keymaps = let | ||||
|         normal =  | ||||
|           lib.mapAttrsToList | ||||
|           (key: action: { | ||||
|             mode = "n"; | ||||
|             inherit action key; | ||||
|           }) | ||||
|           { | ||||
|             "<Space>" = "<NOP>"; | ||||
|             "esc" = ":noh<CR>"; | ||||
|             "Y" = "$y"; | ||||
|           }; | ||||
|           visual = | ||||
|             lib.mapAttrsToList | ||||
|             (key: action: { | ||||
|               mode = "v"; | ||||
|               inherit action key; | ||||
|             }) | ||||
|             { | ||||
|               # better indenting | ||||
|               ">" = ">gv"; | ||||
|               "<" = "<gv"; | ||||
|               "<TAB>" = ">gv"; | ||||
|               "<S-TAB>" = "<gv"; | ||||
| 
 | ||||
|               # move selected line / block of text in visual mode | ||||
|               "K" = ":m '<-2<CR>gv=gv"; | ||||
|               "J" = ":m '>+1<CR>gv=gv"; | ||||
|             }; | ||||
|       in | ||||
|       config.nixvim.helpers.keymaps.mkKeymaps | ||||
|       {options.silent = true;} | ||||
|       (normal ++ visual); | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										0
									
								
								home/modules/console/editor/nvim/plugins/indent.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								home/modules/console/editor/nvim/plugins/indent.nix
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										23
									
								
								home/modules/console/editor/nvim/plugins/lualine.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								home/modules/console/editor/nvim/plugins/lualine.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.homeModules.console.editor.nvim.plugins; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = lib.mkif cfg.lualine { | ||||
|     programs.nixvim.plugins.lualine = { | ||||
|       enable = true; | ||||
|       theme = "base16"; | ||||
|       globalstatus = true; | ||||
|       sections = { | ||||
|         lualine_a = ["mode"]; | ||||
|         lualine_b = ["branch"]; | ||||
|         lualine_c = ["filename" "diff"]; | ||||
|         lualine_x = ["diagnostics"]; | ||||
|         lualine_y = ["fileformat"]; | ||||
|         lualine_z = ["filetype"]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										60
									
								
								home/modules/console/editor/nvim/settings.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								home/modules/console/editor/nvim/settings.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| { config, lib, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (config.colorscheme) colors; | ||||
|   cfg = config.homeModules.console.editor.nvim; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     programs.nixvim = { | ||||
|       options = { | ||||
|         relativenumber = true; | ||||
|         number = true; | ||||
|         hidden = true; | ||||
|         mouse = "a"; | ||||
|         mousemodel = "extend"; | ||||
|         undofile = true; | ||||
|         swapfile = false; | ||||
|         incsearch = true; | ||||
|         ignorecase = true; | ||||
|         smartcase = true; | ||||
|         fileencoding = "utf-8"; | ||||
|         termguicolors = true; | ||||
|         autoindent = true; | ||||
|         shiftwidth = 2; | ||||
|         smartindent = true; | ||||
|         expandtab = true; | ||||
|         updatetime = 100; | ||||
|       }; | ||||
| 
 | ||||
|       clipboard = { | ||||
|         register = "unnamedplus"; | ||||
|         providers.wl-copy.enable = true; | ||||
|       }; | ||||
| 
 | ||||
|       colorschemes.base16 = { | ||||
|         enable = true; | ||||
|         colorscheme = config.colorscheme.slug; | ||||
|         customColorScheme = { | ||||
|           base00 = "#${colors.base00}"; | ||||
|           base01 = "#${colors.base01}"; | ||||
|           base02 = "#${colors.base02}"; | ||||
|           base03 = "#${colors.base03}"; | ||||
|           base04 = "#${colors.base04}"; | ||||
|           base05 = "#${colors.base05}"; | ||||
|           base06 = "#${colors.base06}"; | ||||
|           base07 = "#${colors.base07}"; | ||||
|           base08 = "#${colors.base08}"; | ||||
|           base09 = "#${colors.base09}"; | ||||
|           base0A = "#${colors.base0A}"; | ||||
|           base0B = "#${colors.base0B}"; | ||||
|           base0C = "#${colors.base0C}"; | ||||
|           base0D = "#${colors.base0D}"; | ||||
|           base0E = "#${colors.base0E}"; | ||||
|           base0F = "#${colors.base0F}"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										74
									
								
								theme.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								theme.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,74 @@ | |||
| 
 | ||||
| { colorscheme }: { | ||||
|   "${colorscheme.slug}" = { | ||||
|     palette = builtins.mapAttrs (name: value: "#${value}") colorscheme.colors; # Add leading '#' | ||||
|     "attributes" = "base09"; | ||||
|     "comment" = { fg = "base03"; modifiers = [ "italic" ]; }; | ||||
|     "constant" = "base09"; | ||||
|     "constant.character.escape" = "base0C"; | ||||
|     "constant.numeric" = "base09"; | ||||
|     "constructor" = "base0D"; | ||||
|     "debug" = "base03"; | ||||
|     "diagnostic" = { modifiers = [ "underlined" ]; }; | ||||
|     "diagnostic.error" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.hint" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.info" = { underline = { style = "curl"; }; }; | ||||
|     "diagnostic.warning" = { underline = { style = "curl"; }; }; | ||||
|     "diff.delta" = "base09"; | ||||
|     "diff.minus" = "base08"; | ||||
|     "diff.plus" = "base0B"; | ||||
|     "error" = "base08"; | ||||
|     "function" = "base0D"; | ||||
|     "hint" = "base03"; | ||||
|     "info" = "base0D"; | ||||
|     "keyword" = "base0E"; | ||||
|     "label" = "base0E"; | ||||
|     "markup.bold" = { fg = "base0A"; modifiers = [ "bold" ]; }; | ||||
|     "markup.heading" = "base0D"; | ||||
|     "markup.italic" = { fg = "base0E"; modifiers = [ "italic" ]; }; | ||||
|     "markup.link.text" = "base08"; | ||||
|     "markup.link.url" = { fg = "base09"; modifiers = [ "underlined" ]; }; | ||||
|     "markup.list" = "base08"; | ||||
|     "markup.quote" = "base0C"; | ||||
|     "markup.raw" = "base0B"; | ||||
|     "markup.strikethrough" = { modifiers = [ "crossed_out" ]; }; | ||||
|     "namespace" = "base0E"; | ||||
|     "operator" = "base05"; | ||||
|     "special" = "base0D"; | ||||
|     "string" = "base0B"; | ||||
|     "type" = "base0A"; | ||||
|     "ui.background" = { bg = "base00"; }; | ||||
|     "ui.bufferline" = { fg = "base04"; bg = "base00"; }; | ||||
|     "ui.bufferline.active" = { fg = "base00"; bg = "base03"; modifiers = [ "bold" ]; }; | ||||
|     "ui.cursor" = { fg = "base04"; modifiers = [ "reversed" ]; }; | ||||
|     "ui.cursor.insert" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursor.match" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursor.select" = { fg = "base0A"; modifiers = [ "underlined" ]; }; | ||||
|     "ui.cursorline.primary" = { fg = "base05"; bg = "base01"; }; | ||||
|     "ui.gutter" = { bg = "base00"; }; | ||||
|     "ui.help" = { fg = "base06"; bg = "base01"; }; | ||||
|     "ui.linenr" = { fg = "base03"; bg = "base00"; }; | ||||
|     "ui.linenr.selected" = { fg = "base04"; bg = "base01"; modifiers = [ "bold" ]; }; | ||||
|     "ui.menu" = { fg = "base05"; bg = "base01"; }; | ||||
|     "ui.menu.scroll" = { fg = "base03"; bg = "base01"; }; | ||||
|     "ui.menu.selected" = { fg = "base01"; bg = "base04"; }; | ||||
|     "ui.popup" = { bg = "base01"; }; | ||||
|     "ui.selection" = { bg = "base02"; }; | ||||
|     "ui.selection.primary" = { bg = "base02"; }; | ||||
|     "ui.statusline" = { fg = "base0B"; bg = "base02"; }; | ||||
|     "ui.statusline.inactive" = { bg = "base01"; fg = "base02"; }; | ||||
|     "ui.statusline.insert" = { fg = "base00"; bg = "base0B"; }; | ||||
|     "ui.statusline.normal" = { fg = "base00"; bg = "base04"; }; | ||||
|     "ui.statusline.select" = { fg = "base00"; bg = "base0E"; }; | ||||
|     "ui.text" = "base05"; | ||||
|     "ui.text.focus" = "base05"; | ||||
|     "ui.virtual.indent-guide" = { fg = "base03"; }; | ||||
|     "ui.virtual.ruler" = { bg = "base01"; }; | ||||
|     "ui.virtual.whitespace" = { fg = "base01"; }; | ||||
|     "ui.window" = { bg = "base01"; }; | ||||
|     "variable" = "base08"; | ||||
|     "variable.other.member" = "base08"; | ||||
|     "warning" = "base09"; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue