Replaced nixvim with nix-cats external flake.
This commit is contained in:
		
							parent
							
								
									221524709e
								
							
						
					
					
						commit
						3d335bc3ab
					
				
					 44 changed files with 57 additions and 1455 deletions
				
			
		| 
						 | 
					@ -27,7 +27,6 @@
 | 
				
			||||||
        "fuzzy"
 | 
					        "fuzzy"
 | 
				
			||||||
        "info"
 | 
					        "info"
 | 
				
			||||||
        "lastgenre"
 | 
					        "lastgenre"
 | 
				
			||||||
        "lyrics"
 | 
					 | 
				
			||||||
        "mbsync"
 | 
					        "mbsync"
 | 
				
			||||||
        "missing"
 | 
					        "missing"
 | 
				
			||||||
        "replaygain"
 | 
					        "replaygain"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,10 +13,10 @@
 | 
				
			||||||
    themeFile = "gruvbox-dark";
 | 
					    themeFile = "gruvbox-dark";
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
      background_opacity = "0.8";
 | 
					      background_opacity = "0.8";
 | 
				
			||||||
      enable_audio_bell="no";
 | 
					      enable_audio_bell = "no";
 | 
				
			||||||
      visual_bell_duration = "0.5";
 | 
					      visual_bell_duration = "0.5";
 | 
				
			||||||
      window_alert_on_bell="yes";
 | 
					      window_alert_on_bell = "yes";
 | 
				
			||||||
      bell_on_tab="🔔";
 | 
					      bell_on_tab = "🔔";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ in {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # packages that should be on every system.
 | 
					  # packages that should be on every system.
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    neovim
 | 
					    inputs.nvim-config.packages.${pkgs.system}.nvim-minimal
 | 
				
			||||||
    rsync
 | 
					    rsync
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@
 | 
				
			||||||
in {
 | 
					in {
 | 
				
			||||||
  services.homepage-dashboard = {
 | 
					  services.homepage-dashboard = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    allowedHosts=baseurl;
 | 
					    allowedHosts = baseurl;
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
      theme = "dark";
 | 
					      theme = "dark";
 | 
				
			||||||
      color = "slate";
 | 
					      color = "slate";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										162
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										162
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -84,27 +84,6 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "flake-parts": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "nixpkgs-lib": [
 | 
					 | 
				
			||||||
          "nixvim",
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1749398372,
 | 
					 | 
				
			||||||
        "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
 | 
					 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					 | 
				
			||||||
        "repo": "flake-parts",
 | 
					 | 
				
			||||||
        "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "hercules-ci",
 | 
					 | 
				
			||||||
        "repo": "flake-parts",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "flake-utils": {
 | 
					    "flake-utils": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "systems": "systems"
 | 
					        "systems": "systems"
 | 
				
			||||||
| 
						 | 
					@ -123,24 +102,6 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "flake-utils_2": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "systems": "systems_2"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1731533236,
 | 
					 | 
				
			||||||
        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
 | 
					 | 
				
			||||||
        "owner": "numtide",
 | 
					 | 
				
			||||||
        "repo": "flake-utils",
 | 
					 | 
				
			||||||
        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "numtide",
 | 
					 | 
				
			||||||
        "repo": "flake-utils",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "home-manager": {
 | 
					    "home-manager": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
| 
						 | 
					@ -161,34 +122,6 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "ixx": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "flake-utils": [
 | 
					 | 
				
			||||||
          "nixvim",
 | 
					 | 
				
			||||||
          "nuschtosSearch",
 | 
					 | 
				
			||||||
          "flake-utils"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "nixvim",
 | 
					 | 
				
			||||||
          "nuschtosSearch",
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1748294338,
 | 
					 | 
				
			||||||
        "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
 | 
					 | 
				
			||||||
        "owner": "NuschtOS",
 | 
					 | 
				
			||||||
        "repo": "ixx",
 | 
					 | 
				
			||||||
        "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "NuschtOS",
 | 
					 | 
				
			||||||
        "ref": "v0.0.8",
 | 
					 | 
				
			||||||
        "repo": "ixx",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "nix-secrets": {
 | 
					    "nix-secrets": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
| 
						 | 
					@ -206,6 +139,21 @@
 | 
				
			||||||
        "url": "ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git"
 | 
					        "url": "ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "nixCats": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1750385475,
 | 
				
			||||||
 | 
					        "narHash": "sha256-jxssG9BjbGlxXGhAhtwIIaazpQxROpO0919aGaKuIiY=",
 | 
				
			||||||
 | 
					        "owner": "BirdeeHub",
 | 
				
			||||||
 | 
					        "repo": "nixCats-nvim",
 | 
				
			||||||
 | 
					        "rev": "0dbb19a5688f045e6e8b4f9f35bc32cdb777b1a9",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "BirdeeHub",
 | 
				
			||||||
 | 
					        "repo": "nixCats-nvim",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "nixos-hardware": {
 | 
					    "nixos-hardware": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1750431636,
 | 
					        "lastModified": 1750431636,
 | 
				
			||||||
| 
						 | 
					@ -262,50 +210,26 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixvim": {
 | 
					    "nvim-config": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-parts": "flake-parts",
 | 
					        "nixCats": "nixCats",
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "nixpkgs"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "nuschtosSearch": "nuschtosSearch",
 | 
					 | 
				
			||||||
        "systems": "systems_3"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1750788551,
 | 
					 | 
				
			||||||
        "narHash": "sha256-7tQIndetzeVtTuYQ7vYTaABUS1muiigdXK3XyXuPzvg=",
 | 
					 | 
				
			||||||
        "owner": "nix-community",
 | 
					 | 
				
			||||||
        "repo": "nixvim",
 | 
					 | 
				
			||||||
        "rev": "6a15c2ffc50ca7998df2fd6b86c3c9f298e9137a",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "nix-community",
 | 
					 | 
				
			||||||
        "repo": "nixvim",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "nuschtosSearch": {
 | 
					 | 
				
			||||||
      "inputs": {
 | 
					 | 
				
			||||||
        "flake-utils": "flake-utils_2",
 | 
					 | 
				
			||||||
        "ixx": "ixx",
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "nixvim",
 | 
					 | 
				
			||||||
          "nixpkgs"
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1749730855,
 | 
					        "lastModified": 1751648320,
 | 
				
			||||||
        "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
 | 
					        "narHash": "sha256-ihm/gdU4EdW5fz2J4HOBpFXZ0Sgh6uxZfdbNCUpXz4s=",
 | 
				
			||||||
        "owner": "NuschtOS",
 | 
					        "ref": "refs/heads/main",
 | 
				
			||||||
        "repo": "search",
 | 
					        "rev": "132d57fc3fe957a9a9e83912811c9fcc012e85e6",
 | 
				
			||||||
        "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
 | 
					        "shallow": true,
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "git",
 | 
				
			||||||
 | 
					        "url": "ssh://forgejo@git.venberg.xyz/Gabe/nvim-config.git"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "NuschtOS",
 | 
					        "shallow": true,
 | 
				
			||||||
        "repo": "search",
 | 
					        "type": "git",
 | 
				
			||||||
        "type": "github"
 | 
					        "url": "ssh://forgejo@git.venberg.xyz/Gabe/nvim-config.git"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "root": {
 | 
					    "root": {
 | 
				
			||||||
| 
						 | 
					@ -320,7 +244,7 @@
 | 
				
			||||||
        "nixos-hardware": "nixos-hardware",
 | 
					        "nixos-hardware": "nixos-hardware",
 | 
				
			||||||
        "nixos-wsl": "nixos-wsl",
 | 
					        "nixos-wsl": "nixos-wsl",
 | 
				
			||||||
        "nixpkgs": "nixpkgs",
 | 
					        "nixpkgs": "nixpkgs",
 | 
				
			||||||
        "nixvim": "nixvim",
 | 
					        "nvim-config": "nvim-config",
 | 
				
			||||||
        "sops-nix": "sops-nix"
 | 
					        "sops-nix": "sops-nix"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					@ -358,36 +282,6 @@
 | 
				
			||||||
        "repo": "default",
 | 
					        "repo": "default",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "systems_2": {
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1681028828,
 | 
					 | 
				
			||||||
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
 | 
					 | 
				
			||||||
        "owner": "nix-systems",
 | 
					 | 
				
			||||||
        "repo": "default",
 | 
					 | 
				
			||||||
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "nix-systems",
 | 
					 | 
				
			||||||
        "repo": "default",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "systems_3": {
 | 
					 | 
				
			||||||
      "locked": {
 | 
					 | 
				
			||||||
        "lastModified": 1681028828,
 | 
					 | 
				
			||||||
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
 | 
					 | 
				
			||||||
        "owner": "nix-systems",
 | 
					 | 
				
			||||||
        "repo": "default",
 | 
					 | 
				
			||||||
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "original": {
 | 
					 | 
				
			||||||
        "owner": "nix-systems",
 | 
					 | 
				
			||||||
        "repo": "default",
 | 
					 | 
				
			||||||
        "type": "github"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "root": "root",
 | 
					  "root": "root",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
					@ -16,11 +16,6 @@
 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nixvim = {
 | 
					 | 
				
			||||||
      url = "github:nix-community/nixvim";
 | 
					 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    disko = {
 | 
					    disko = {
 | 
				
			||||||
      url = "github:nix-community/disko";
 | 
					      url = "github:nix-community/disko";
 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
| 
						 | 
					@ -45,6 +40,13 @@
 | 
				
			||||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #My nvim config.
 | 
				
			||||||
 | 
					    nvim-config = {
 | 
				
			||||||
 | 
					      url = "git+ssh://forgejo@git.venberg.xyz/Gabe/nvim-config.git?shallow=1";
 | 
				
			||||||
 | 
					      # url = "git+file:///home/gabe/nvim-config";
 | 
				
			||||||
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nix-secrets = {
 | 
					    nix-secrets = {
 | 
				
			||||||
      url = "git+ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git?shallow=1";
 | 
					      url = "git+ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git?shallow=1";
 | 
				
			||||||
      # url = "git+https://git.venberg.xyz/Gabe/nix-secrets.git?shallow=1";
 | 
					      # url = "git+https://git.venberg.xyz/Gabe/nix-secrets.git?shallow=1";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,94 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  inputs,
 | 
					 | 
				
			||||||
  myLib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
inputs.nixpkgs.lib.nixosSystem {
 | 
					 | 
				
			||||||
  system = "x86_64-linux";
 | 
					 | 
				
			||||||
  specialArgs = {inherit inputs myLib;};
 | 
					 | 
				
			||||||
  # > Our main nixos configuration file <
 | 
					 | 
				
			||||||
  modules = [
 | 
					 | 
				
			||||||
    inputs.home-manager.nixosModules.home-manager
 | 
					 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					 | 
				
			||||||
    ../../roles/nixos/graphical-vm.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/common.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/printing.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/sound.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/interactive-networking.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/i3
 | 
					 | 
				
			||||||
    ../../configs/nixos/sshd.nix
 | 
					 | 
				
			||||||
    ../../configs/nixos/secrets.nix
 | 
					 | 
				
			||||||
    ({
 | 
					 | 
				
			||||||
      config,
 | 
					 | 
				
			||||||
      pkgs,
 | 
					 | 
				
			||||||
      ...
 | 
					 | 
				
			||||||
    }: {
 | 
					 | 
				
			||||||
      host = {
 | 
					 | 
				
			||||||
        user = "gabe";
 | 
					 | 
				
			||||||
        fullName = "Gabe Venberg";
 | 
					 | 
				
			||||||
        gui.enable = true;
 | 
					 | 
				
			||||||
        isVm = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      networking.hostName = "archlaptop-vm"; # Define your hostname.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
					 | 
				
			||||||
      users.users.${config.host.details.user} = {
 | 
					 | 
				
			||||||
        packages = with pkgs; [firefox];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      home-manager.sharedModules = [
 | 
					 | 
				
			||||||
        inputs.sops-nix.homeManagerModules.sops
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      home-manager.users.${config.host.details.user} = {
 | 
					 | 
				
			||||||
        inputs,
 | 
					 | 
				
			||||||
        osConfig,
 | 
					 | 
				
			||||||
        lib,
 | 
					 | 
				
			||||||
        ...
 | 
					 | 
				
			||||||
      }: {
 | 
					 | 
				
			||||||
        host = osConfig.host;
 | 
					 | 
				
			||||||
        user = {
 | 
					 | 
				
			||||||
          git = {
 | 
					 | 
				
			||||||
            profile = {
 | 
					 | 
				
			||||||
              name = config.host.details.fullName;
 | 
					 | 
				
			||||||
              email = "gabevenberg@gmail.com";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
            workProfile.enable = false;
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        imports = [
 | 
					 | 
				
			||||||
          ../../roles/home-manager/terminal.nix
 | 
					 | 
				
			||||||
          ../../configs/home-manager/common.nix
 | 
					 | 
				
			||||||
          ../../configs/home-manager/email.nix
 | 
					 | 
				
			||||||
          ../../configs/home-manager/tiny-irc.nix
 | 
					 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
          ../../configs/home-manager/secrets.nix
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sops = lib.mkIf (inputs ? nix-secrets) {
 | 
					 | 
				
			||||||
          secrets = {
 | 
					 | 
				
			||||||
            gmail-password.sopsFile = "${inputs.nix-secrets}/workstations.yaml";
 | 
					 | 
				
			||||||
            irc-cert.sopsFile = "${inputs.nix-secrets}/workstations.yaml";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Bootloader.
 | 
					 | 
				
			||||||
      boot.loader.systemd-boot.enable = true;
 | 
					 | 
				
			||||||
      boot.loader.efi.canTouchEfiVariables = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Open ports in the firewall.
 | 
					 | 
				
			||||||
      # networking.firewall.allowedTCPPorts = [ ... ];
 | 
					 | 
				
			||||||
      # networking.firewall.allowedUDPPorts = [ ... ];
 | 
					 | 
				
			||||||
      # Or disable the firewall altogether.
 | 
					 | 
				
			||||||
      # networking.firewall.enable = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # This value determines the NixOS release from which the default
 | 
					 | 
				
			||||||
      # settings for stateful data, like file locations and database versions
 | 
					 | 
				
			||||||
      # on your system were taken. It‘s perfectly fine and recommended to leave
 | 
					 | 
				
			||||||
      # this value at the release version of the first install of this system.
 | 
					 | 
				
			||||||
      # Before changing this value read the documentation for this option
 | 
					 | 
				
			||||||
      # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
 | 
					 | 
				
			||||||
      system.stateVersion = "23.11"; # Did you read the comment?
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,47 +0,0 @@
 | 
				
			||||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
					 | 
				
			||||||
# and may be overwritten by future invocations.  Please make changes
 | 
					 | 
				
			||||||
# to /etc/nixos/configuration.nix instead.
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  modulesPath,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    (modulesPath + "/profiles/qemu-guest.nix")
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
 | 
					 | 
				
			||||||
  boot.initrd.kernelModules = [];
 | 
					 | 
				
			||||||
  boot.kernelModules = ["kvm-amd"];
 | 
					 | 
				
			||||||
  boot.extraModulePackages = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/" = {
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-uuid/1000b969-f089-4b1e-bbef-3d0c39da8a91";
 | 
					 | 
				
			||||||
    fsType = "ext4";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/boot" = {
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-uuid/AB75-97AD";
 | 
					 | 
				
			||||||
    fsType = "vfat";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/home/gabe/nix-config-host" = {
 | 
					 | 
				
			||||||
    device = "nix-config-host";
 | 
					 | 
				
			||||||
    fsType = "virtiofs";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  swapDevices = [
 | 
					 | 
				
			||||||
    {device = "/dev/disk/by-uuid/506f2ef4-c9ee-4fe6-8590-95e0821d5903";}
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
					 | 
				
			||||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
					 | 
				
			||||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
					 | 
				
			||||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
					 | 
				
			||||||
  networking.useDHCP = lib.mkDefault true;
 | 
					 | 
				
			||||||
  # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,6 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
      }: {
 | 
					      }: {
 | 
				
			||||||
        host.details = osConfig.host.details;
 | 
					        host.details = osConfig.host.details;
 | 
				
			||||||
        user = {
 | 
					        user = {
 | 
				
			||||||
          nvim.enable-lsp = false;
 | 
					 | 
				
			||||||
          git = {
 | 
					          git = {
 | 
				
			||||||
            profile = {
 | 
					            profile = {
 | 
				
			||||||
              name = config.host.details.fullName;
 | 
					              name = config.host.details.fullName;
 | 
				
			||||||
| 
						 | 
					@ -95,7 +94,6 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../../roles/home-manager/terminal.nix
 | 
					          ../../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../../configs/home-manager/common.nix
 | 
					          ../../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      boot = {
 | 
					      boot = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,12 +69,12 @@
 | 
				
			||||||
          mountpoint = "/storage";
 | 
					          mountpoint = "/storage";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        datasets = {
 | 
					        datasets = {
 | 
				
			||||||
          database={
 | 
					          database = {
 | 
				
			||||||
            type = "zfs_fs";
 | 
					            type = "zfs_fs";
 | 
				
			||||||
            options = {
 | 
					            options = {
 | 
				
			||||||
              mountpoint ="/postgres";
 | 
					              mountpoint = "/postgres";
 | 
				
			||||||
              recordsize = "8K";
 | 
					              recordsize = "8K";
 | 
				
			||||||
              primarycache="metadata";
 | 
					              primarycache = "metadata";
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          backup = {
 | 
					          backup = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,7 +79,6 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../../roles/home-manager/minimal-terminal.nix
 | 
					          ../../roles/home-manager/minimal-terminal.nix
 | 
				
			||||||
          ../../configs/home-manager/common.nix
 | 
					          ../../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,6 +46,5 @@ inputs.home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,6 +48,5 @@ inputs.home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,8 +9,8 @@
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    mutableSettings = true;
 | 
					    mutableSettings = true;
 | 
				
			||||||
    allowDHCP = true;
 | 
					    allowDHCP = true;
 | 
				
			||||||
    openFirewall=true;
 | 
					    openFirewall = true;
 | 
				
			||||||
    port=8080;
 | 
					    port = 8080;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  networking.firewall.allowedUDPPorts=[53 67 546 547];
 | 
					  networking.firewall.allowedUDPPorts = [53 67 546 547];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,6 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../../roles/home-manager/minimal-terminal.nix
 | 
					          ../../roles/home-manager/minimal-terminal.nix
 | 
				
			||||||
          ../../configs/home-manager/common.nix
 | 
					          ../../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
          # ../../configs/home-manager/secrets.nix
 | 
					          # ../../configs/home-manager/secrets.nix
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,6 +49,5 @@ inputs.home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								justfile
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								justfile
									
										
									
									
									
								
							| 
						 | 
					@ -28,3 +28,6 @@ nixos-gc:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
update-secrets:
 | 
					update-secrets:
 | 
				
			||||||
    nix flake update nix-secrets
 | 
					    nix flake update nix-secrets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					update-nvim:
 | 
				
			||||||
 | 
					    nix flake update nvim-config
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,6 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ./git.nix
 | 
					    ./git.nix
 | 
				
			||||||
    ./nvim
 | 
					 | 
				
			||||||
    ./voice.nix
 | 
					    ./voice.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,65 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.nvim.enable-completions = lib.mkEnableOption "basic completion in nvim";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-completions && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      programs.nixvim = {
 | 
					 | 
				
			||||||
        plugins.luasnip.enable = true;
 | 
					 | 
				
			||||||
        plugins.friendly-snippets.enable = true;
 | 
					 | 
				
			||||||
        plugins.cmp = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          autoEnableSources = true;
 | 
					 | 
				
			||||||
          settings = {
 | 
					 | 
				
			||||||
            sources = [
 | 
					 | 
				
			||||||
              {name = "luasnip";}
 | 
					 | 
				
			||||||
              {name = "treesitter";}
 | 
					 | 
				
			||||||
              {name = "path";}
 | 
					 | 
				
			||||||
              {name = "emoji";}
 | 
					 | 
				
			||||||
              {name = "buffer";}
 | 
					 | 
				
			||||||
              {name = "latex_symbols";}
 | 
					 | 
				
			||||||
              {name = "digraphs";}
 | 
					 | 
				
			||||||
              {name = "spell";}
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            snippet = {
 | 
					 | 
				
			||||||
              expand = "function(args) require('luasnip').lsp_expand(args.body) end";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
            mapping = {
 | 
					 | 
				
			||||||
              "<C-Space>" = "cmp.mapping.complete()";
 | 
					 | 
				
			||||||
              "<C-d>" = "cmp.mapping.scroll_docs(-4)";
 | 
					 | 
				
			||||||
              "<C-e>" = "cmp.mapping.close()";
 | 
					 | 
				
			||||||
              "<C-f>" = "cmp.mapping.scroll_docs(4)";
 | 
					 | 
				
			||||||
              "<CR>" = "cmp.mapping.confirm({ select = false })";
 | 
					 | 
				
			||||||
              "<Tab>" = ''
 | 
					 | 
				
			||||||
                function(fallback)
 | 
					 | 
				
			||||||
                  if cmp.visible() then
 | 
					 | 
				
			||||||
                    cmp.select_next_item()
 | 
					 | 
				
			||||||
                  elseif require("luasnip").expand_or_jumpable() then
 | 
					 | 
				
			||||||
                    vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-expand-or-jump", true, true, true), "")
 | 
					 | 
				
			||||||
                  else
 | 
					 | 
				
			||||||
                    fallback()
 | 
					 | 
				
			||||||
                  end
 | 
					 | 
				
			||||||
                end
 | 
					 | 
				
			||||||
              '';
 | 
					 | 
				
			||||||
              "<S-Tab>" = ''
 | 
					 | 
				
			||||||
                function(fallback)
 | 
					 | 
				
			||||||
                  if cmp.visible() then
 | 
					 | 
				
			||||||
                    cmp.select_prev_item()
 | 
					 | 
				
			||||||
                  elseif require("luasnip").jumpable(-1) then
 | 
					 | 
				
			||||||
                    vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-jump-prev", true, true, true), "")
 | 
					 | 
				
			||||||
                  else
 | 
					 | 
				
			||||||
                    fallback()
 | 
					 | 
				
			||||||
                  end
 | 
					 | 
				
			||||||
                end
 | 
					 | 
				
			||||||
              '';
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  configs,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  helpers,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.nvim.enable = lib.mkEnableOption "enable nvim";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      viAlias = true;
 | 
					 | 
				
			||||||
      vimAlias = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      colorschemes.base16 = {
 | 
					 | 
				
			||||||
        colorscheme = "gruvbox-dark-medium";
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      clipboard.providers.xsel.enable = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    home.sessionVariables = {
 | 
					 | 
				
			||||||
      EDITOR = "nvim";
 | 
					 | 
				
			||||||
      VISUAL = "nvim";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    programs.nushell.extraEnv = ''
 | 
					 | 
				
			||||||
      $env.EDITOR = 'nvim'
 | 
					 | 
				
			||||||
      $env.VISUAL = 'nvim'
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ./keybinds.nix
 | 
					 | 
				
			||||||
    ./options.nix
 | 
					 | 
				
			||||||
    ./simpleplugins.nix
 | 
					 | 
				
			||||||
    ./lualine.nix
 | 
					 | 
				
			||||||
    ./nvim-tree.nix
 | 
					 | 
				
			||||||
    ./toggleterm.nix
 | 
					 | 
				
			||||||
    ./gitsigns.nix
 | 
					 | 
				
			||||||
    ./which-key.nix
 | 
					 | 
				
			||||||
    ./telescope.nix
 | 
					 | 
				
			||||||
    ./zk.nix
 | 
					 | 
				
			||||||
    ./treesitter
 | 
					 | 
				
			||||||
    ./cmp
 | 
					 | 
				
			||||||
    ./lsp
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.gitsigns = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      plugins.which-key.settings.spec = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          __unkeyed-1 = "<leader>g";
 | 
					 | 
				
			||||||
          group = "+git";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Gitsigns toggle_current_line_blame<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>gb";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "toggle git blame";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,103 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      globals = {
 | 
					 | 
				
			||||||
        mapleader = ";";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      plugins.which-key.settings.spec = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          __unkeyed-1 = "<leader>c";
 | 
					 | 
				
			||||||
          group = "+check";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":setlocal spell!<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>cs";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "toggle spell check";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":bnext<CR>";
 | 
					 | 
				
			||||||
          key = "gf";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "next buffer";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":bprevious<CR>";
 | 
					 | 
				
			||||||
          key = "gF";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "prev buffer";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = "<C-w>h";
 | 
					 | 
				
			||||||
          key = "<C-h>";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "move to right split";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = "<C-w>j";
 | 
					 | 
				
			||||||
          key = "<C-j>";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "move to below split";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = "<C-w>k";
 | 
					 | 
				
			||||||
          key = "<C-k>";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "move to above split";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = "<C-w>l";
 | 
					 | 
				
			||||||
          key = "<C-l>";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "move to left split";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = "za";
 | 
					 | 
				
			||||||
          key = "<Space>";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "toggle fold";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":nohls<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>h";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "clear highlighting";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf (config.user.nvim.enable && config.user.nvim.enable-lsp) {
 | 
					 | 
				
			||||||
    home.file = {
 | 
					 | 
				
			||||||
      ".clangd".text = ''
 | 
					 | 
				
			||||||
        # keeps clangd from choking when it sees a compiler flag for a different
 | 
					 | 
				
			||||||
        # compiler. (sutch as when acting as an lsp for a project that uses GCC.)
 | 
					 | 
				
			||||||
        CompileFlags:
 | 
					 | 
				
			||||||
          Add: -Wno-unknown-warning-option
 | 
					 | 
				
			||||||
          Remove: [-m*, -f*]
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
      ".clang-format".text = ''
 | 
					 | 
				
			||||||
        ---
 | 
					 | 
				
			||||||
        #this syncronizes with settings used by neovims treesitters so that the lsp formatting and treesitter formatting do not fight eatch other.
 | 
					 | 
				
			||||||
        PointerAlignment: Left
 | 
					 | 
				
			||||||
        ColumnLimit: 80
 | 
					 | 
				
			||||||
        IndentWidth: 4
 | 
					 | 
				
			||||||
        TabWidth: 4
 | 
					 | 
				
			||||||
        UseCRLF: false
 | 
					 | 
				
			||||||
        UseTab: Never
 | 
					 | 
				
			||||||
        AlignAfterOpenBracket: BlockIndent
 | 
					 | 
				
			||||||
        AlwaysBreakBeforeMultilineStrings: true
 | 
					 | 
				
			||||||
        BreakBeforeBraces: Attach
 | 
					 | 
				
			||||||
        AlignOperands: Align
 | 
					 | 
				
			||||||
        BreakBeforeBinaryOperators: NonAssignment
 | 
					 | 
				
			||||||
        ...
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,192 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.nvim.enable-lsp = lib.mkEnableOption "nvim lsp";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-lsp && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      user.nvim.enable-completions = true;
 | 
					 | 
				
			||||||
      programs.nixvim = {helpers, ...}: {
 | 
					 | 
				
			||||||
        plugins.lsp = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          servers = {
 | 
					 | 
				
			||||||
            basedpyright.enable = true;
 | 
					 | 
				
			||||||
            bashls.enable = true;
 | 
					 | 
				
			||||||
            clangd.enable = true;
 | 
					 | 
				
			||||||
            hls.enable = true;
 | 
					 | 
				
			||||||
            hls.installGhc = true;
 | 
					 | 
				
			||||||
            jsonls.enable = true;
 | 
					 | 
				
			||||||
            lua_ls.enable = true;
 | 
					 | 
				
			||||||
            nil_ls.enable = true;
 | 
					 | 
				
			||||||
            nil_ls.settings.formatting.command = ["alejandra"];
 | 
					 | 
				
			||||||
            nushell.enable = true;
 | 
					 | 
				
			||||||
            ruff.enable = true;
 | 
					 | 
				
			||||||
            taplo.enable = true;
 | 
					 | 
				
			||||||
            texlab.enable = true;
 | 
					 | 
				
			||||||
            tinymist.enable = true;
 | 
					 | 
				
			||||||
            ts_ls.enable = true;
 | 
					 | 
				
			||||||
            uiua.enable = true;
 | 
					 | 
				
			||||||
            yamlls.enable = true;
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        plugins.cmp.settings.sources = [
 | 
					 | 
				
			||||||
          {name = "nvim_lsp";}
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        plugins.which-key.settings.spec = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            __unkeyed-1 = "<leader>l";
 | 
					 | 
				
			||||||
            group = "+lsp";
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        keymaps = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.declaration";
 | 
					 | 
				
			||||||
            key = "<leader>lc";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "declaration";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.definition";
 | 
					 | 
				
			||||||
            key = "<leader>ld";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "definition";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.hover";
 | 
					 | 
				
			||||||
            key = "<leader>lh";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "hover";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.implementation";
 | 
					 | 
				
			||||||
            key = "<leader>li";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "implementation";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.signature_help";
 | 
					 | 
				
			||||||
            key = "<leader>ls";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "signature_help";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.add_workspace_folder";
 | 
					 | 
				
			||||||
            key = "<leader>lwa";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "add folder";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.remove_workspace_folder";
 | 
					 | 
				
			||||||
            key = "<leader>lwr";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "remove folder";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.list_workspace_folders";
 | 
					 | 
				
			||||||
            key = "<leader>lw";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "workspace";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.rename";
 | 
					 | 
				
			||||||
            key = "<leader>lr";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "rename";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.code_action";
 | 
					 | 
				
			||||||
            key = "<leader>la";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "code action";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.lsp.buf.references";
 | 
					 | 
				
			||||||
            key = "<leader>le";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "list references";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "function() vim.lsp.buf.format{async=true} end";
 | 
					 | 
				
			||||||
            key = "<leader>lm";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "format buffer";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.diagnostic.open_float";
 | 
					 | 
				
			||||||
            key = "<leader>lo";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "open float";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.diagnostic.goto_next";
 | 
					 | 
				
			||||||
            key = "]d";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "next diagnostic";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = helpers.mkRaw "vim.diagnostic.goto_prev";
 | 
					 | 
				
			||||||
            key = "[d";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "prev diagnostic";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      home.packages = with pkgs; [
 | 
					 | 
				
			||||||
        alejandra
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ./rustaceanvim.nix
 | 
					 | 
				
			||||||
    ./clangd.nix
 | 
					 | 
				
			||||||
    ./zig.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-lsp && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      programs.nixvim = {
 | 
					 | 
				
			||||||
        plugins.rustaceanvim.enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf (config.user.nvim.enable-lsp && config.user.nvim.enable) {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.lsp.servers.zls = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        settings = {
 | 
					 | 
				
			||||||
          enable_build_on_save = true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,84 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.lualine = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        settings = {
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            alwaysDivideMiddle = true;
 | 
					 | 
				
			||||||
            icons_enabled = true;
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
          sections = {
 | 
					 | 
				
			||||||
            lualine_a = [
 | 
					 | 
				
			||||||
              "mode"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_b = [
 | 
					 | 
				
			||||||
              "branch"
 | 
					 | 
				
			||||||
              "diff"
 | 
					 | 
				
			||||||
              "diagnostics"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_c = [
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                __unkeyed = "filename";
 | 
					 | 
				
			||||||
                path = 1;
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_x = [
 | 
					 | 
				
			||||||
              "encoding"
 | 
					 | 
				
			||||||
              "fileformat"
 | 
					 | 
				
			||||||
              "filetype"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_y = [
 | 
					 | 
				
			||||||
              "progress"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_z = [
 | 
					 | 
				
			||||||
              "location"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          inactiveSections = {
 | 
					 | 
				
			||||||
            lualine_a = [];
 | 
					 | 
				
			||||||
            lualine_b = [];
 | 
					 | 
				
			||||||
            lualine_c = ["filename"];
 | 
					 | 
				
			||||||
            lualine_x = ["filetype"];
 | 
					 | 
				
			||||||
            lualine_y = [];
 | 
					 | 
				
			||||||
            lualine_z = [];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          tabline = {
 | 
					 | 
				
			||||||
            lualine_a = [
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                __unkeyed = "buffers";
 | 
					 | 
				
			||||||
                mode = 4;
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
            lualine_b = [];
 | 
					 | 
				
			||||||
            lualine_c = [];
 | 
					 | 
				
			||||||
            lualine_x = [];
 | 
					 | 
				
			||||||
            lualine_y = [];
 | 
					 | 
				
			||||||
            lualine_z = [
 | 
					 | 
				
			||||||
              {
 | 
					 | 
				
			||||||
                __unkeyed = "tabs";
 | 
					 | 
				
			||||||
                mode = 2;
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          winbar = {
 | 
					 | 
				
			||||||
            lualine_a = [];
 | 
					 | 
				
			||||||
            lualine_b = [];
 | 
					 | 
				
			||||||
            lualine_c = [];
 | 
					 | 
				
			||||||
            lualine_x = [];
 | 
					 | 
				
			||||||
            lualine_y = [];
 | 
					 | 
				
			||||||
            lualine_z = [];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,35 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.web-devicons.enable = true;
 | 
					 | 
				
			||||||
      plugins.nvim-tree = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        disableNetrw = true;
 | 
					 | 
				
			||||||
        hijackCursor = true;
 | 
					 | 
				
			||||||
        hijackNetrw = true;
 | 
					 | 
				
			||||||
        hijackUnnamedBufferWhenOpening = true;
 | 
					 | 
				
			||||||
        actions = {
 | 
					 | 
				
			||||||
          useSystemClipboard = true;
 | 
					 | 
				
			||||||
          changeDir.enable = true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        filesystemWatchers.enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":NvimTreeToggle<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>t";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "toggle file browser";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,72 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      opts = {
 | 
					 | 
				
			||||||
        mouse = "a";
 | 
					 | 
				
			||||||
        lazyredraw = true;
 | 
					 | 
				
			||||||
        termguicolors = true;
 | 
					 | 
				
			||||||
        autoread = true;
 | 
					 | 
				
			||||||
        swapfile = false;
 | 
					 | 
				
			||||||
        history = 500;
 | 
					 | 
				
			||||||
        formatoptions = "rojq";
 | 
					 | 
				
			||||||
        # dont hard wrap
 | 
					 | 
				
			||||||
        textwidth = 0;
 | 
					 | 
				
			||||||
        wrapmargin = 0;
 | 
					 | 
				
			||||||
        breakindent = true;
 | 
					 | 
				
			||||||
        # highlight after col
 | 
					 | 
				
			||||||
        colorcolumn = "80,100,120";
 | 
					 | 
				
			||||||
        # add ruler to side of screen
 | 
					 | 
				
			||||||
        number = true;
 | 
					 | 
				
			||||||
        numberwidth = 3;
 | 
					 | 
				
			||||||
        #display cursor cordinates
 | 
					 | 
				
			||||||
        ruler = true;
 | 
					 | 
				
			||||||
        #always leave 5 cells between cursor and side of window
 | 
					 | 
				
			||||||
        scrolloff = 5;
 | 
					 | 
				
			||||||
        # better command line completion
 | 
					 | 
				
			||||||
        wildmenu = true;
 | 
					 | 
				
			||||||
        # ignore case if all lowercase
 | 
					 | 
				
			||||||
        ignorecase = true;
 | 
					 | 
				
			||||||
        smartcase = true;
 | 
					 | 
				
			||||||
        # show unfinished keycombos in statusbar
 | 
					 | 
				
			||||||
        showcmd = true;
 | 
					 | 
				
			||||||
        # regex stuff
 | 
					 | 
				
			||||||
        magic = true;
 | 
					 | 
				
			||||||
        # always show statusline
 | 
					 | 
				
			||||||
        laststatus = 2;
 | 
					 | 
				
			||||||
        # tab stuff
 | 
					 | 
				
			||||||
        tabstop = 4;
 | 
					 | 
				
			||||||
        shiftwidth = 0;
 | 
					 | 
				
			||||||
        autoindent = true;
 | 
					 | 
				
			||||||
        smartindent = true;
 | 
					 | 
				
			||||||
        smarttab = true;
 | 
					 | 
				
			||||||
        # for true tabs, change to false
 | 
					 | 
				
			||||||
        expandtab = true;
 | 
					 | 
				
			||||||
        softtabstop = -1;
 | 
					 | 
				
			||||||
        # highlight search results as you type
 | 
					 | 
				
			||||||
        hlsearch = true;
 | 
					 | 
				
			||||||
        incsearch = true;
 | 
					 | 
				
			||||||
        # folding stuff
 | 
					 | 
				
			||||||
        foldlevelstart = 5;
 | 
					 | 
				
			||||||
        foldmethod = lib.mkDefault "indent";
 | 
					 | 
				
			||||||
        foldcolumn = "auto:4";
 | 
					 | 
				
			||||||
        foldenable = true;
 | 
					 | 
				
			||||||
        # display whitespace as other chars
 | 
					 | 
				
			||||||
        list = true;
 | 
					 | 
				
			||||||
        listchars = {
 | 
					 | 
				
			||||||
          tab = ">-";
 | 
					 | 
				
			||||||
          eol = "↲";
 | 
					 | 
				
			||||||
          nbsp = "␣";
 | 
					 | 
				
			||||||
          trail = "•";
 | 
					 | 
				
			||||||
          extends = "⟩";
 | 
					 | 
				
			||||||
          precedes = "⟨";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        showbreak = "↪";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,24 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.comment.enable = true;
 | 
					 | 
				
			||||||
      plugins.marks.enable = true;
 | 
					 | 
				
			||||||
      plugins.vim-surround.enable = true;
 | 
					 | 
				
			||||||
      plugins.todo-comments.enable = true;
 | 
					 | 
				
			||||||
      plugins.leap = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        addDefaultMappings = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      extraPlugins = with pkgs.vimPlugins; [
 | 
					 | 
				
			||||||
        vim-numbertoggle
 | 
					 | 
				
			||||||
        dressing-nvim
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      extraConfigLua = ''require("dressing").setup({})'';
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,126 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.web-devicons.enable = true;
 | 
					 | 
				
			||||||
      plugins.telescope = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      plugins.which-key.settings.spec = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          __unkeyed-1 = "<leader>f";
 | 
					 | 
				
			||||||
          group = "+telescope";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          __unkeyed-1 = "<leader>fg";
 | 
					 | 
				
			||||||
          group = "+telescope git";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope find_files<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>ff";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "files";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope live_grep<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fg";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "grep";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope buffers<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fb";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "buffers";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope marks<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fm";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "marks";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope registers<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fr";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "registers";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope keymaps<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fk";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "keymaps";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope current_buffer_fuzzy_find<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fz";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "fuzzy find";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope git_commits<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fgc";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "commits";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope git_branches<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fgb";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "branches";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope git_stash<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fgs";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "stash";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":Telescope git_commits<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>fgc";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "commits";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,38 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {helpers, ...}: {
 | 
					 | 
				
			||||||
      plugins.toggleterm = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        settings = {
 | 
					 | 
				
			||||||
          direction = "horizontal";
 | 
					 | 
				
			||||||
          insert_mappings = false;
 | 
					 | 
				
			||||||
          terminal_mappings = false;
 | 
					 | 
				
			||||||
          open_mapping = ''[[<c-\>]]'';
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = helpers.mkRaw "function() Floatingterm:toggle() end";
 | 
					 | 
				
			||||||
          key = "<leader>s";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "toggle scratch terminal";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      extraConfigLuaPre = ''
 | 
					 | 
				
			||||||
        local Terminal = require('toggleterm.terminal').Terminal
 | 
					 | 
				
			||||||
        Floatingterm = Terminal:new({
 | 
					 | 
				
			||||||
            hidden = true,
 | 
					 | 
				
			||||||
            direction = "float"
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,28 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      programs.nixvim = {
 | 
					 | 
				
			||||||
        keymaps = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = ":AerialToggle!<CR>";
 | 
					 | 
				
			||||||
            key = "<leader>o";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "toggle outline";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        extraPlugins = with pkgs.vimPlugins; [
 | 
					 | 
				
			||||||
          aerial-nvim
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        extraConfigLua = ''require("aerial").setup({})'';
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,58 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.nvim.enable-treesitter = lib.mkEnableOption "enable nvim treesitter";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      user.nvim.enable-completions = true;
 | 
					 | 
				
			||||||
      programs.nixvim = {
 | 
					 | 
				
			||||||
        opts.foldmethod = "expr";
 | 
					 | 
				
			||||||
        plugins.treesitter = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          folding = true;
 | 
					 | 
				
			||||||
          settings.indent.enable = true;
 | 
					 | 
				
			||||||
          nixvimInjections = true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        plugins.treesitter-context.enable = true;
 | 
					 | 
				
			||||||
        plugins.indent-blankline.enable = true;
 | 
					 | 
				
			||||||
        extraPlugins = with pkgs.vimPlugins; [
 | 
					 | 
				
			||||||
          treesj
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        extraConfigLua = ''
 | 
					 | 
				
			||||||
          require("treesj").setup({
 | 
					 | 
				
			||||||
              use_default_keymaps=false,
 | 
					 | 
				
			||||||
          })
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
        keymaps = [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = ":TSContextToggle<CR>";
 | 
					 | 
				
			||||||
            key = "<leader>x";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "tree context toggle";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            action = ":TSJToggle<CR>";
 | 
					 | 
				
			||||||
            key = "<leader>j";
 | 
					 | 
				
			||||||
            mode = "n";
 | 
					 | 
				
			||||||
            options = {
 | 
					 | 
				
			||||||
              silent = true;
 | 
					 | 
				
			||||||
              desc = "tree sitter join toggle";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ./rainbow-delimiters.nix
 | 
					 | 
				
			||||||
    ./arial.nix
 | 
					 | 
				
			||||||
    ./tree-sitter-nu.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,25 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      programs.nixvim = {
 | 
					 | 
				
			||||||
        plugins.rainbow-delimiters = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          highlight = [
 | 
					 | 
				
			||||||
            "RainbowDelimiterYellow"
 | 
					 | 
				
			||||||
            "RainbowDelimiterBlue"
 | 
					 | 
				
			||||||
            "RainbowDelimiterOrange"
 | 
					 | 
				
			||||||
            "RainbowDelimiterGreen"
 | 
					 | 
				
			||||||
            "RainbowDelimiterViolet"
 | 
					 | 
				
			||||||
            "RainbowDelimiterCyan"
 | 
					 | 
				
			||||||
            # "RainbowDelimiterRed"
 | 
					 | 
				
			||||||
          ];
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,53 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config =
 | 
					 | 
				
			||||||
    lib.mkIf (config.user.nvim.enable-treesitter && config.user.nvim.enable)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      programs.nixvim = let
 | 
					 | 
				
			||||||
        nu-grammar = pkgs.tree-sitter.buildGrammar {
 | 
					 | 
				
			||||||
          language = "nu";
 | 
					 | 
				
			||||||
          version = "0.0.0+rev=358c4f5";
 | 
					 | 
				
			||||||
          src = pkgs.fetchFromGitHub {
 | 
					 | 
				
			||||||
            owner = "nushell";
 | 
					 | 
				
			||||||
            repo = "tree-sitter-nu";
 | 
					 | 
				
			||||||
            rev = "c5b7816043992b1cdc1462a889bc74dc08576fa6";
 | 
					 | 
				
			||||||
            hash = "sha256-P+ixE359fAW7R5UJLwvMsmju7UFmJw5SN+kbMEw7Kz0=";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      in {
 | 
					 | 
				
			||||||
        # Set filetype to "nu" for files named "*.nu"
 | 
					 | 
				
			||||||
        filetype.extension.nu = "nu";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Add our nu parser to treesitter and associate it with nu filetype.
 | 
					 | 
				
			||||||
        extraConfigLua = ''
 | 
					 | 
				
			||||||
          local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
 | 
					 | 
				
			||||||
          parser_config.nu = {
 | 
					 | 
				
			||||||
            filetype = "nu",
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Add the nu injections
 | 
					 | 
				
			||||||
        extraFiles = {
 | 
					 | 
				
			||||||
          "/queries/nu/highlights.scm".source = "${nu-grammar}/queries/nu/highlights.scm";
 | 
					 | 
				
			||||||
          "/queries/nu/injections.scm".source = "${nu-grammar}/queries/nu/injections.scm";
 | 
					 | 
				
			||||||
          "/queries/nu/indents.scm".source = "${nu-grammar}/queries/nu/indents.scm";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        plugins = {
 | 
					 | 
				
			||||||
          treesitter = {
 | 
					 | 
				
			||||||
            # Register the nu parser for files with "nu" filetype
 | 
					 | 
				
			||||||
            languageRegister.nu = "nu";
 | 
					 | 
				
			||||||
            grammarPackages =
 | 
					 | 
				
			||||||
              [
 | 
					 | 
				
			||||||
                nu-grammar
 | 
					 | 
				
			||||||
              ]
 | 
					 | 
				
			||||||
              ++ pkgs.vimPlugins.nvim-treesitter.allGrammars;
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      opts = {
 | 
					 | 
				
			||||||
        timeout = true;
 | 
					 | 
				
			||||||
        timeoutlen = 300;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      plugins.which-key.enable = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,77 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nvim.enable {
 | 
					 | 
				
			||||||
    programs.nixvim = {
 | 
					 | 
				
			||||||
      plugins.zk = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        settings.picker = "telescope";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      plugins.which-key.settings.spec = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          __unkeyed-1 = "<leader>z";
 | 
					 | 
				
			||||||
          group = "+zk";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      keymaps = [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkNewFromTitleSelection<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zn";
 | 
					 | 
				
			||||||
          mode = "v";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "New zk note with title from selection";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkaMatch<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zs";
 | 
					 | 
				
			||||||
          mode = "v";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "Search zk notes from selection";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkNotes<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zn";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "Search zk notes";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkLinks<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zl";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "Search outgoing links";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkBacklinks<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zb";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "Search incoming links";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          action = ":ZkTags<CR>";
 | 
					 | 
				
			||||||
          key = "<leader>zt";
 | 
					 | 
				
			||||||
          mode = "n";
 | 
					 | 
				
			||||||
          options = {
 | 
					 | 
				
			||||||
            silent = true;
 | 
					 | 
				
			||||||
            desc = "Search tags";
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,6 @@
 | 
				
			||||||
      }: {
 | 
					      }: {
 | 
				
			||||||
        host.details = osConfig.host.details;
 | 
					        host.details = osConfig.host.details;
 | 
				
			||||||
        user = {
 | 
					        user = {
 | 
				
			||||||
          nvim.enable-lsp = false;
 | 
					 | 
				
			||||||
          git = {
 | 
					          git = {
 | 
				
			||||||
            profile = {
 | 
					            profile = {
 | 
				
			||||||
              name = "Gabe Venberg";
 | 
					              name = "Gabe Venberg";
 | 
				
			||||||
| 
						 | 
					@ -70,7 +69,6 @@
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../roles/home-manager/terminal.nix
 | 
					          ../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../configs/home-manager/common.nix
 | 
					          ../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,6 @@
 | 
				
			||||||
      }: {
 | 
					      }: {
 | 
				
			||||||
        host.details = osConfig.host.details;
 | 
					        host.details = osConfig.host.details;
 | 
				
			||||||
        user = {
 | 
					        user = {
 | 
				
			||||||
          nvim.enable-lsp = false;
 | 
					 | 
				
			||||||
          git = {
 | 
					          git = {
 | 
				
			||||||
            profile = {
 | 
					            profile = {
 | 
				
			||||||
              name = "Gabe Venberg";
 | 
					              name = "Gabe Venberg";
 | 
				
			||||||
| 
						 | 
					@ -68,7 +67,6 @@
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../roles/home-manager/terminal.nix
 | 
					          ../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../configs/home-manager/common.nix
 | 
					          ../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,6 @@
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../roles/home-manager/minimal-terminal.nix
 | 
					          ../roles/home-manager/minimal-terminal.nix
 | 
				
			||||||
          ../configs/home-manager/common.nix
 | 
					          ../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,6 @@
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../roles/home-manager/minimal-terminal.nix
 | 
					          ../roles/home-manager/minimal-terminal.nix
 | 
				
			||||||
          ../configs/home-manager/common.nix
 | 
					          ../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
          # ../configs/home-manager/secrets.nix
 | 
					          # ../configs/home-manager/secrets.nix
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
| 
						 | 
					@ -15,7 +16,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  user = {
 | 
					  user = {
 | 
				
			||||||
    git.enable = lib.mkDefault true;
 | 
					    git.enable = lib.mkDefault true;
 | 
				
			||||||
    nvim.enable = lib.mkDefault true;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
    curl
 | 
					    curl
 | 
				
			||||||
    rsync
 | 
					    rsync
 | 
				
			||||||
    p7zip
 | 
					    p7zip
 | 
				
			||||||
 | 
					    inputs.nvim-config.packages.${pkgs.system}.nvim-minimal
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.sessionVariables = {
 | 
					  home.sessionVariables = {
 | 
				
			||||||
| 
						 | 
					@ -38,6 +39,8 @@
 | 
				
			||||||
    POETRY_VIRTUALENVS_IN_PROJECT = 1;
 | 
					    POETRY_VIRTUALENVS_IN_PROJECT = 1;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.sessionVariables.EDITOR = lib.mkDefault "nvim-minimal";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home.sessionPath = [
 | 
					  home.sessionPath = [
 | 
				
			||||||
    "$HOME/.nix-profile/bin/"
 | 
					    "$HOME/.nix-profile/bin/"
 | 
				
			||||||
    "$HOME/.local/bin/"
 | 
					    "$HOME/.local/bin/"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
| 
						 | 
					@ -11,13 +12,6 @@
 | 
				
			||||||
    ../../configs/home-manager/zk.nix
 | 
					    ../../configs/home-manager/zk.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  user = {
 | 
					 | 
				
			||||||
    nvim = {
 | 
					 | 
				
			||||||
      enable-lsp = lib.mkDefault true;
 | 
					 | 
				
			||||||
      enable-treesitter = lib.mkDefault true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    tre-command
 | 
					    tre-command
 | 
				
			||||||
    ripgrep-all
 | 
					    ripgrep-all
 | 
				
			||||||
| 
						 | 
					@ -25,8 +19,11 @@
 | 
				
			||||||
    fclones
 | 
					    fclones
 | 
				
			||||||
    libqalculate
 | 
					    libqalculate
 | 
				
			||||||
    f2
 | 
					    f2
 | 
				
			||||||
 | 
					    inputs.nvim-config.packages.${pkgs.system}.nvim
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.sessionVariables.EDITOR = "nvim";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs = {
 | 
					  programs = {
 | 
				
			||||||
    zoxide.enable = true;
 | 
					    zoxide.enable = true;
 | 
				
			||||||
    tealdeer.enable = true;
 | 
					    tealdeer.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue