Compare commits
1 commit
main
...
flake-refa
| Author | SHA1 | Date | |
|---|---|---|---|
| d4e12d46b3 |
21 changed files with 578 additions and 412 deletions
171
flake.lock
generated
171
flake.lock
generated
|
|
@ -22,11 +22,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769996383,
|
"lastModified": 1762980239,
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -35,24 +35,36 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"systems": "systems"
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769996383,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "hercules-ci",
|
"owner": "numtide",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-utils",
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hercules-ci",
|
"owner": "numtide",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flakey-profile": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712898590,
|
||||||
|
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
|
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -63,11 +75,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770654520,
|
"lastModified": 1763416652,
|
||||||
"narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=",
|
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e",
|
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -76,6 +88,43 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763570812,
|
||||||
|
"narHash": "sha256-A42G8ulTZ1MFCR0VsLF21CoKi0XKGUYwtVBHGm5mFgQ=",
|
||||||
|
"rev": "f3b2f3496bd6d346cba475d0ba152a9d3a83dec7",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f3b2f3496bd6d346cba475d0ba152a9d3a83dec7.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lix-module": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"flakey-profile": "flakey-profile",
|
||||||
|
"lix": [
|
||||||
|
"lix"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763435414,
|
||||||
|
"narHash": "sha256-i2467FddWfd19q5Qoj+1/BAeg6LZmM5m4mYGRSQn/as=",
|
||||||
|
"rev": "192c92b603731fbc1bade6c1b18c8d8a0086f703",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/192c92b603731fbc1bade6c1b18c8d8a0086f703.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
"niri": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
|
|
@ -88,11 +137,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770620836,
|
"lastModified": 1763538184,
|
||||||
"narHash": "sha256-HPoMvo/EqIr6xDDRlk6DGZYdu1Hte7lGLZaGZ5017Uc=",
|
"narHash": "sha256-6umNY06L6ZUjinthjVZIwyWyAjxOXSPhXfY0U1CVTWw=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "ff1edce403a67cfac7bf1038d348f2ef457ac691",
|
"rev": "85a16f400641eed912431efcec16f12e2100d46a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -121,11 +170,11 @@
|
||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770394959,
|
"lastModified": 1763531615,
|
||||||
"narHash": "sha256-if7bIsomdceIufOhkFwN74rFY/pLCWPynRxGyol2viQ=",
|
"narHash": "sha256-cMi8tz+0+gWtlYqVnyMv7phOeQ0/4WmzZ/lxCyraUVw=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "ab47f5cec4c1c5758afeb91c0c98554ffd3433db",
|
"rev": "c722634c269ae97a5ea185691bcd0b8c73a600e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -136,11 +185,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770537093,
|
"lastModified": 1763464769,
|
||||||
"narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=",
|
"narHash": "sha256-mU85VDFRIgKGq1EhT71bLjhvjJ5yuMEe0Ip1kwCbR80=",
|
||||||
"rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
|
"rev": "6f374686605df381de8541c072038472a5ea2e2d",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz"
|
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre898015.6f374686605d/nixexprs.tar.xz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
@ -149,74 +198,32 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770464364,
|
"lastModified": 1763334038,
|
||||||
"narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=",
|
"narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457",
|
"rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixvim": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770630823,
|
|
||||||
"narHash": "sha256-5SEmOnJ61vmbap39vzWEsCX5UQ+3Ul8J4mXWKdqSn3w=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"rev": "6acc964664ac916c64fe4e394edd467af4d90790",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"easy-hosts": "easy-hosts",
|
"easy-hosts": "easy-hosts",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"lix": "lix",
|
||||||
|
"lix-module": "lix-module",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixvim": "nixvim",
|
|
||||||
"silentSDDM": "silentSDDM",
|
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"silentSDDM": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769900466,
|
|
||||||
"narHash": "sha256-WeoJBj/PhqFCCJEIycTipqPbKm5BpQT2uzFTYcYZ30I=",
|
|
||||||
"owner": "uiriansan",
|
|
||||||
"repo": "SilentSDDM",
|
|
||||||
"rev": "a44caf771b4cb72f5c2514f7d488455b0fa860d2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "uiriansan",
|
|
||||||
"repo": "SilentSDDM",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -224,11 +231,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770683991,
|
"lastModified": 1763509310,
|
||||||
"narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=",
|
"narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033",
|
"rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -272,11 +279,11 @@
|
||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770583271,
|
"lastModified": 1762747449,
|
||||||
"narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=",
|
"narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd",
|
"rev": "6338574bc5c036487486acde264f38f39ea15fad",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
41
flake.nix
41
flake.nix
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
shared = {
|
shared = {
|
||||||
modules = [
|
modules = [
|
||||||
# inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
./nixosModules
|
./nixosModules
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
@ -25,10 +25,7 @@
|
||||||
inputs.home-manager.lib.homeManagerConfiguration {
|
inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||||
modules = [
|
modules = [ ./hmModules ] ++ extraModules;
|
||||||
./hmModules
|
|
||||||
inputs.nixvim.homeModules.nixvim
|
|
||||||
] ++ extraModules;
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
"pan@juri" = userConfig "x86_64-linux" [ ./users/juri ];
|
"pan@juri" = userConfig "x86_64-linux" [ ./users/juri ];
|
||||||
|
|
@ -64,16 +61,16 @@
|
||||||
repo = "easy-hosts";
|
repo = "easy-hosts";
|
||||||
};
|
};
|
||||||
|
|
||||||
# lix = {
|
lix = {
|
||||||
# url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
|
url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
|
||||||
# flake = false;
|
flake = false;
|
||||||
# };
|
};
|
||||||
#
|
|
||||||
# lix-module = {
|
lix-module = {
|
||||||
# url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
|
url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
# inputs.lix.follows = "lix";
|
inputs.lix.follows = "lix";
|
||||||
# };
|
};
|
||||||
|
|
||||||
niri = {
|
niri = {
|
||||||
type = "github";
|
type = "github";
|
||||||
|
|
@ -82,25 +79,11 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixvim = {
|
|
||||||
type = "github";
|
|
||||||
owner = "nix-community";
|
|
||||||
repo = "nixvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
type = "github";
|
type = "github";
|
||||||
owner = "Mic92";
|
owner = "Mic92";
|
||||||
repo = "sops-nix";
|
repo = "sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
silentSDDM = {
|
|
||||||
type = "github";
|
|
||||||
owner = "uiriansan";
|
|
||||||
repo = "SilentSDDM";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.beets = {
|
|
||||||
enable = lib.mkEnableOption "Enables beets music";
|
|
||||||
plugins = {
|
|
||||||
the.enable = lib.mkOption { default = true; };
|
|
||||||
ftintitle.enable = lib.mkOption { default = true; };
|
|
||||||
lyrics.enable = lib.mkOption { default = true; };
|
|
||||||
fetchart = {
|
|
||||||
enable = lib.mkOption { default = true; };
|
|
||||||
embed = lib.mkOption { default = true; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.beets.enable {
|
|
||||||
programs.beets.enable = true;
|
|
||||||
|
|
||||||
programs.beets.settings = {
|
|
||||||
directory = "${config.xdg.userDirs.music}";
|
|
||||||
library = "${config.xdg.userDirs.music}.db";
|
|
||||||
|
|
||||||
paths.default = with config.beets.plugins; let
|
|
||||||
# raw_artist = if ftintitle.enable
|
|
||||||
# then "$album_artist_no_feat"
|
|
||||||
# else "$albumartist";
|
|
||||||
raw_artist = "$albumartist";
|
|
||||||
artist = if the.enable
|
|
||||||
then "%the{${raw_artist}}/"
|
|
||||||
else raw_artist;
|
|
||||||
|
|
||||||
the_rest = "$album%aunique{}/$track $title";
|
|
||||||
in artist + the_rest;
|
|
||||||
|
|
||||||
embedart = with config.beets.plugins.fetchart;
|
|
||||||
lib.mkIf (enable && embed) {
|
|
||||||
maxwidth = 500;
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins = with lib; with config.beets.plugins;
|
|
||||||
optional (the.enable) "the" ++
|
|
||||||
optional (ftintitle.enable) "ftintitle" ++
|
|
||||||
optional (lyrics.enable) "lyrics" ++
|
|
||||||
optional (fetchart.enable) "fetchart" ++
|
|
||||||
optional (fetchart.embed) "embedart" ++ [
|
|
||||||
"musicbrainz"
|
|
||||||
"info"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -14,182 +14,156 @@
|
||||||
catppuccin.enable = lib.mkEnableOption "Enables catppuccin theme";
|
catppuccin.enable = lib.mkEnableOption "Enables catppuccin theme";
|
||||||
};
|
};
|
||||||
plugins = {
|
plugins = {
|
||||||
comments.enable = lib.mkOption { default = true; };
|
comments.enable = lib.mkEnableOption "Enables nvim-comment";
|
||||||
fugitive.enable = lib.mkOption { default = true; };
|
fugitive.enable = lib.mkEnableOption "Enables git-fugitive";
|
||||||
lualine.enable = lib.mkOption { default = true; };
|
lualine.enable = lib.mkEnableOption "Enables lualine";
|
||||||
luasnip.enable = lib.mkOption { default = false; };
|
luasnip.enable = lib.mkEnableOption "Enables luasnip snippets";
|
||||||
nvimcmp.enable = lib.mkOption { default = true; };
|
nvimcmp.enable = lib.mkEnableOption "Enables nvim completion";
|
||||||
telescope = {
|
telescope = {
|
||||||
enable = lib.mkOption { default = true; };
|
enable = lib.mkEnableOption "Enables telescope";
|
||||||
fzf.enable = lib.mkOption { default = true; };
|
fzf.enable = lib.mkEnableOption "Enables telescope-fzf";
|
||||||
};
|
};
|
||||||
treesitter.enable = lib.mkOption { default = true; };
|
treesitter.enable = lib.mkEnableOption "Enables treesitter";
|
||||||
wiki.enable = lib.mkOption { default = false; };
|
wiki.enable = lib.mkEnableOption "Enables a wiki";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./plugin/lsp.nix
|
||||||
|
./plugin/nvimcmp.nix
|
||||||
|
./plugin/telescope.nix
|
||||||
|
./plugin/treesitter.nix
|
||||||
|
];
|
||||||
|
|
||||||
config = lib.mkIf config.neovim.enable {
|
config = lib.mkIf config.neovim.enable {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
VISUAL = "nvim";
|
VISUAL = "nvim";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.nixvim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
vimdiffAlias = true;
|
||||||
|
|
||||||
globals = {
|
extraLuaConfig = ''
|
||||||
mapleader = " ";
|
${builtins.readFile ./options.lua}
|
||||||
maplocalleader = " ";
|
'';
|
||||||
rust_recommended_style = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
opts = {
|
extraPackages = with pkgs; [
|
||||||
list = true;
|
(lib.mkIf config.neovim.languages.c.enable libclang)
|
||||||
updatetime = 750;
|
(lib.mkIf config.neovim.languages.go.enable gopls)
|
||||||
|
(lib.mkIf config.neovim.languages.nix.enable nil)
|
||||||
tabstop = 2;
|
(lib.mkIf config.neovim.languages.rust.enable rust-analyzer)
|
||||||
softtabstop = 0;
|
|
||||||
shiftwidth = 2;
|
|
||||||
smarttab = true;
|
|
||||||
expandtab = true;
|
|
||||||
|
|
||||||
colorcolumn = "81";
|
|
||||||
showmatch = true;
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
|
|
||||||
swapfile = false;
|
|
||||||
backup = false;
|
|
||||||
undofile = true;
|
|
||||||
undodir = "${config.xdg.configHome}/nvim/undodir";
|
|
||||||
|
|
||||||
smartcase = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = with config.lib.nixvim; [
|
|
||||||
{
|
|
||||||
key = "<leader>d";
|
|
||||||
mode = "n";
|
|
||||||
action = mkRaw "vim.diagnostic.open_float";
|
|
||||||
}
|
|
||||||
# -- Easy Split Navigation
|
|
||||||
# -- nnoremap <C-J> <C-W><C-J>
|
|
||||||
# -- nnoremap <C-K> <C-W><C-K>
|
|
||||||
# -- nnoremap <C-L> <C-W><C-L>
|
|
||||||
# -- nnoremap <C-H> <C-W><C-H>
|
|
||||||
#
|
|
||||||
# -- Easy copy and pasting to external programs
|
|
||||||
# -- map <C-y> "+yy
|
|
||||||
# -- map <C-p> "+P
|
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
programs.nixvim.colorschemes = with config.neovim.themes; {
|
# Additional packages are added through imports
|
||||||
catppuccin = lib.mkIf catppuccin.enable {
|
plugins = let
|
||||||
enable = true;
|
lopts = lib.lists.optionals;
|
||||||
flavour = "mocha";
|
cfgp = config.neovim.plugins;
|
||||||
integrations.vimwiki = lib.mkIf wiki.enable true;
|
cfgl = config.neovim.languages;
|
||||||
};
|
cfgt = config.neovim.themes;
|
||||||
};
|
|
||||||
|
|
||||||
programs.nixvim.plugins = with config.neovim.plugins; {
|
comments = lopts cfgp.comments.enable (with pkgs.vimPlugins; [
|
||||||
comment.enable = comments.enable;
|
|
||||||
|
|
||||||
fugitive.enable = fugitive.enable;
|
|
||||||
|
|
||||||
lualine = lib.mkIf lualine.enable {
|
|
||||||
enable = true;
|
|
||||||
icons_enabled = true;
|
|
||||||
};
|
|
||||||
web-devicons.enable = lualine.enable;
|
|
||||||
|
|
||||||
luasnip.enable = luasnip.enable;
|
|
||||||
friendly-snippets.enable = luasnip.enable;
|
|
||||||
|
|
||||||
cmp = {
|
|
||||||
enable = nvimcmp.enable;
|
|
||||||
autoEnableSources = true;
|
|
||||||
settings = {
|
|
||||||
sources = [
|
|
||||||
{ name = "nvim_lsp"; }
|
|
||||||
{ name = "path"; }
|
|
||||||
{ name = "buffer"; }
|
|
||||||
] ++ lib.optional luasnip.enable { name = "cmp-luasnip"; };
|
|
||||||
|
|
||||||
mapping = with config.lib.nixvim; {
|
|
||||||
"<C-Space>" = mkRaw "cmp.mapping.abort()";
|
|
||||||
"<Tab>" = mkRaw
|
|
||||||
"cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
|
||||||
"<S-Tab>" = mkRaw
|
|
||||||
"cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
telescope = {
|
|
||||||
enable = telescope.enable;
|
|
||||||
keymaps = {
|
|
||||||
"<leader>ff" = "find_files";
|
|
||||||
"<leader>fg" = "git_files";
|
|
||||||
};
|
|
||||||
extensions = {
|
|
||||||
fzf = lib.mkIf telescope.fzf.enable {
|
|
||||||
enable = true;
|
|
||||||
fuzzy = true;
|
|
||||||
override_generic_sorter = true;
|
|
||||||
override_file_sorter = true;
|
|
||||||
case_mode = "smart_case";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
treesitter = {
|
|
||||||
enable = treesitter.enable;
|
|
||||||
highlight.enable = true;
|
|
||||||
indent.enable = true;
|
|
||||||
folding.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
vimwiki = {
|
|
||||||
enable = wiki.enable;
|
|
||||||
list = [
|
|
||||||
{
|
{
|
||||||
path = "${config.xdg.userDirs.documents}/wiki";
|
plugin = comment-nvim;
|
||||||
links_space_char = "_";
|
type = "lua";
|
||||||
ext = ".md";
|
config = "require(\"Comment\").setup()";
|
||||||
syntax = "markdown";
|
|
||||||
}
|
}
|
||||||
];
|
]);
|
||||||
};
|
|
||||||
|
|
||||||
nvim-lspconfig.enable = true;
|
fugitive = lopts cfgp.fugitive.enable (with pkgs.vimPlugins; [
|
||||||
nix.enable = config.neovim.languages.nix.enable;
|
vim-fugitive
|
||||||
rustaceanvim.enable = config.neovim.languages.rust.enable;
|
]);
|
||||||
typsecript-tools.enable = config.neovim.languages.typescript.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nixvim.lsp = {
|
luasnip-pkg = lopts cfgp.luasnip.enable (with pkgs.vimPlugins; [
|
||||||
enable = true;
|
luasnip
|
||||||
servers = with config.neovim.languages; {
|
friendly-snippets
|
||||||
clangd.enable = c.enable;
|
(lib.mkIf cfgp.nvimcmp.enable cmp_luasnip)
|
||||||
gopls.enable = go.enable;
|
]);
|
||||||
nil_ls.enable = nix.enable;
|
|
||||||
rust_analyzer.enable = rust.enable;
|
lualine = lopts cfgp.lualine.enable (with pkgs.vimPlugins; [
|
||||||
tsserver.enable = typescript.enable;
|
{
|
||||||
};
|
plugin = lualine-nvim;
|
||||||
keymaps = [
|
type = "lua";
|
||||||
{ key = "gd"; lspBufAction = "definition"; }
|
config = ''
|
||||||
{ key = "gD"; lspBufAction = "declaration"; }
|
require("lualine").setup {
|
||||||
{ key = "gi"; lspBufAction = "implementation"; }
|
options = {
|
||||||
{ key = "gt"; lspBufAction = "type_definition"; }
|
icons_enabled = true,
|
||||||
{ key = "K"; lspBufAction = "hover"; }
|
'' + lib.strings.optionalString cfgt.catppuccin.enable ''
|
||||||
] ++ lib.optional config.neovim.plugins.telescope.enable {
|
theme = "catppuccin"
|
||||||
key = "gr";
|
'' + ''
|
||||||
action = config.lib.nixvim.mkRaw
|
}
|
||||||
"require('telescope.builtin').lsp_references";
|
}
|
||||||
};
|
'';
|
||||||
|
}
|
||||||
|
nvim-web-devicons
|
||||||
|
]);
|
||||||
|
|
||||||
|
nix-pkg = lopts cfgl.nix.enable (with pkgs.vimPlugins; [
|
||||||
|
vim-nix
|
||||||
|
]);
|
||||||
|
|
||||||
|
rust-pkg = lopts cfgl.rust.enable (with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = rustaceanvim;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
vim.g.rust_recommended_style = 0
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
go-pkg = lopts cfgl.go.enable (with pkgs.vimPlugins; [
|
||||||
|
go-nvim
|
||||||
|
]);
|
||||||
|
|
||||||
|
typescript-pkg = lopts cfgl.typescript.enable (with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = typescript-tools-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
require("typescript-tools").setup {}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
catppuccin-pkg = lopts cfgt.catppuccin.enable (with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = catppuccin-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
vim.cmd.colorscheme "catppuccin-mocha"
|
||||||
|
require('catppuccin').setup({
|
||||||
|
integrations = {
|
||||||
|
'' + lib.strings.optionalString cfgp.wiki.enable ''
|
||||||
|
vimwiki = true
|
||||||
|
'' + ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
wiki = lopts cfgp.wiki.enable (with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = vimwiki;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
vim.g.vimwiki_list = {
|
||||||
|
{
|
||||||
|
path = '${config.xdg.userDirs.documents}/wiki',
|
||||||
|
links_space_char = '_',
|
||||||
|
ext = '.md',
|
||||||
|
syntax = 'markdown',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
in comments ++ fugitive ++ luasnip-pkg ++ lualine ++ nix-pkg ++ rust-pkg
|
||||||
|
++ go-pkg ++ wiki ++ catppuccin-pkg ++ typescript-pkg;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
60
hmModules/apps/neovim/options.lua
Normal file
60
hmModules/apps/neovim/options.lua
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
-- Globals
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
vim.g.maplocalleader = ' '
|
||||||
|
vim.opt.list = true
|
||||||
|
vim.bo.filetype = "on"
|
||||||
|
vim.opt.updatetime = 300
|
||||||
|
|
||||||
|
-- Indentations
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.softtabstop = 0
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
|
vim.opt.smarttab = true
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
|
-- Style
|
||||||
|
vim.opt.colorcolumn = "80"
|
||||||
|
vim.opt.showmatch = true
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
-- Easy Split Navigation
|
||||||
|
-- nnoremap <C-J> <C-W><C-J>
|
||||||
|
-- nnoremap <C-K> <C-W><C-K>
|
||||||
|
-- nnoremap <C-L> <C-W><C-L>
|
||||||
|
-- nnoremap <C-H> <C-W><C-H>
|
||||||
|
|
||||||
|
-- Searching
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
|
||||||
|
-- Backups
|
||||||
|
vim.opt.swapfile = false
|
||||||
|
vim.opt.backup = false
|
||||||
|
vim.opt.undofile = true
|
||||||
|
vim.opt.undodir = '/home/pan/.config/nvim/undodir'
|
||||||
|
|
||||||
|
-- Error viewing
|
||||||
|
vim.keymap.set('n', '<Leader>d', function() vim.diagnostic.open_float() end)
|
||||||
|
|
||||||
|
-- Easy copy and pasting to external programs
|
||||||
|
-- map <C-y> "+yy
|
||||||
|
-- map <C-p> "+P
|
||||||
|
|
||||||
|
-- autocmd BufRead,BufNewFile *.md call WritingMode()
|
||||||
|
-- autocmd BufRead,BufNewFile *.tex call WritingMode()
|
||||||
|
-- autocmd BufRead,BufNewFile *.svx call WritingMode()
|
||||||
|
|
||||||
|
-- autocmd BufRead,BufNewFile *.py call PythonMode()
|
||||||
|
|
||||||
|
-- function! WritingMode()
|
||||||
|
-- setlocal textwidth=80
|
||||||
|
-- setlocal wrap linebreak nolist
|
||||||
|
-- setlocal whichwrap+=<,>,h,l
|
||||||
|
-- nnoremap j gj
|
||||||
|
-- nnoremap k gk
|
||||||
|
-- setlocal spell spelllang=en_us
|
||||||
|
-- endfunction
|
||||||
|
-- function! PythonMode()
|
||||||
|
-- setlocal foldmethod=indent
|
||||||
|
-- setlocal foldlevel=99
|
||||||
|
-- endfunction
|
||||||
53
hmModules/apps/neovim/plugin/lsp.nix
Normal file
53
hmModules/apps/neovim/plugin/lsp.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.neovim.enable {
|
||||||
|
programs.neovim.plugins = let
|
||||||
|
cfgp = config.neovim.plugins;
|
||||||
|
cfgl = config.neovim.languages;
|
||||||
|
|
||||||
|
configText = ''
|
||||||
|
local on_attach = function(_, bufnr)
|
||||||
|
|
||||||
|
local bufmap = function(keys, func)
|
||||||
|
vim.keymap.set('n', keys, func, { buffer = bufnr })
|
||||||
|
end
|
||||||
|
|
||||||
|
bufmap('<leader>r', vim.lsp.buf.rename)
|
||||||
|
bufmap('<leader>a', vim.lsp.buf.code_action)
|
||||||
|
|
||||||
|
bufmap('gd', vim.lsp.buf.definition)
|
||||||
|
bufmap('gD', vim.lsp.buf.declaration)
|
||||||
|
bufmap('gI', vim.lsp.buf.implementation)
|
||||||
|
bufmap('<leader>D', vim.lsp.buf.type_definition)
|
||||||
|
|
||||||
|
'' + lib.strings.optionalString cfgp.telescope.enable ''
|
||||||
|
bufmap('gr', require('telescope.builtin').lsp_references)
|
||||||
|
bufmap('<leader>s', require('telescope.builtin').lsp_document_symbols)
|
||||||
|
bufmap('<leader>S', require('telescope.builtin').lsp_dynamic_workspace_symbols)
|
||||||
|
'' + ''
|
||||||
|
|
||||||
|
bufmap('K', vim.lsp.buf.hover)
|
||||||
|
|
||||||
|
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
|
||||||
|
vim.lsp.buf.format()
|
||||||
|
end, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
'' + lib.strings.optionalString cfgl.c.enable ''
|
||||||
|
require('lspconfig').clangd.setup {}
|
||||||
|
'' + lib.strings.optionalString cfgl.go.enable ''
|
||||||
|
require('lspconfig').gopls.setup {}
|
||||||
|
'' + lib.strings.optionalString cfgl.nix.enable ''
|
||||||
|
require('lspconfig').nil_ls.setup {}
|
||||||
|
'';
|
||||||
|
in with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = nvim-lspconfig;
|
||||||
|
type = "lua";
|
||||||
|
config = configText;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
72
hmModules/apps/neovim/plugin/nvimcmp.nix
Normal file
72
hmModules/apps/neovim/plugin/nvimcmp.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfgp = config.neovim.plugins;
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (config.neovim.enable && cfgp.nvimcmp.enable) {
|
||||||
|
programs.neovim.plugins = let
|
||||||
|
|
||||||
|
configText = ''
|
||||||
|
local cmp = require('cmp')
|
||||||
|
'' + lib.strings.optionalString cfgp.luasnip.enable ''
|
||||||
|
local luasnip = require('luasnip')
|
||||||
|
|
||||||
|
require('luasnip.loaders.from_vscode').lazy_load()
|
||||||
|
luasnip.config.setup {}
|
||||||
|
'' + ''
|
||||||
|
|
||||||
|
cmp.setup {
|
||||||
|
mapping = cmp.mapping.preset.insert {
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete {},
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
['<Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
'' + lib.strings.optionalString cfgp.luasnip.enable ''
|
||||||
|
elseif luasnip.expand_or_locally_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
'' + ''
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
'' + lib.strings.optionalString cfgp.luasnip.enable ''
|
||||||
|
elseif luasnip.locally_jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
'' + ''
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
},
|
||||||
|
'' + lib.strings.optionalString cfgp.luasnip.enable ''
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
},
|
||||||
|
'' + ''
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = nvim-cmp;
|
||||||
|
type = "lua";
|
||||||
|
config = configText;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
43
hmModules/apps/neovim/plugin/telescope.nix
Normal file
43
hmModules/apps/neovim/plugin/telescope.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfgp = config.neovim.plugins;
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (config.neovim.enable && cfgp.telescope.enable) {
|
||||||
|
programs.neovim.plugins = let
|
||||||
|
configText = ''
|
||||||
|
require('telescope').setup({
|
||||||
|
extensions = {
|
||||||
|
'' + lib.strings.optionalString cfgp.telescope.fzf.enable ''
|
||||||
|
fzf = {
|
||||||
|
fuzzy = true, -- false will only do exact matching
|
||||||
|
override_generic_sorter = true, -- override the generic sorter
|
||||||
|
override_file_sorter = true, -- override the file sorter
|
||||||
|
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
|
||||||
|
-- the default case_mode is "smart_case"
|
||||||
|
}
|
||||||
|
'' + ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||||
|
vim.keymap.set('n', '<leader>fg', builtin.git_files, {})
|
||||||
|
|
||||||
|
'' + lib.strings.optionalString cfgp.telescope.fzf.enable ''
|
||||||
|
require('telescope').load_extension('fzf')
|
||||||
|
'';
|
||||||
|
in with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = telescope-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = configText;
|
||||||
|
}
|
||||||
|
(lib.mkIf cfgp.nvimcmp.enable telescope-fzf-native-nvim)
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(lib.mkIf cfgp.telescope.fzf.enable fzf)
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
38
hmModules/apps/neovim/plugin/treesitter.nix
Normal file
38
hmModules/apps/neovim/plugin/treesitter.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfgp = config.neovim.plugins;
|
||||||
|
cfgl = config.neovim.languages;
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (config.neovim.enable && cfgp.treesitter.enable) {
|
||||||
|
programs.neovim.plugins = let
|
||||||
|
configText = ''
|
||||||
|
require('nvim-treesitter.configs').setup {
|
||||||
|
ensure_installed = {},
|
||||||
|
|
||||||
|
auto_install = false,
|
||||||
|
|
||||||
|
highlight = { enable = true },
|
||||||
|
|
||||||
|
indent = { enable = true },
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
# I've tried many things, and can't get treesitter plugins changing
|
||||||
|
# dynamically. For not just have them always loaded regardless of config
|
||||||
|
treeplugs = p: [
|
||||||
|
p.tree-sitter-c
|
||||||
|
p.tree-sitter-go
|
||||||
|
p.tree-sitter-nix
|
||||||
|
p.tree-sitter-rust
|
||||||
|
p.tree-sitter-typescript
|
||||||
|
];
|
||||||
|
in with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = (nvim-treesitter.withPlugins treeplugs);
|
||||||
|
type = "lua";
|
||||||
|
config = configText;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -6,10 +6,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.ssh.enable {
|
config = lib.mkIf config.ssh.enable {
|
||||||
programs.ssh = {
|
programs.ssh.enable = true;
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
sshfs # SSH File system
|
sshfs # SSH File system
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@
|
||||||
|
|
||||||
tuigreet.enable = true;
|
tuigreet.enable = true;
|
||||||
niri.enable = true;
|
niri.enable = true;
|
||||||
tailscale.enable = true;
|
|
||||||
|
|
||||||
postgres.enable = true;
|
postgres.enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[Kabal]
|
["TheKabal2.4"]
|
||||||
|
|
||||||
["DropboxGuest3.0"]
|
["DropboxGuest3.0"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
wireless: ENC[AES256_GCM,data:VU8tpeCgEFSUC490q1hGgBrdFFscL2QybywlpiFG3suofj2Q2VVXKLK4EpF2ebpf/nBf/ggHv/uoSFxuQYYvIsMIo1bYOKvM5QNMi9HO2KmfFbmQYYzmt5CNNh9tno9wmiekeDOnKjQDGK5CoGLD4+y+VW1IVrN9XL+xRxAszgYM4qdSim7CJ1hgU89OgzVL9poVsmqxbiuWY88+ZErIspSHO0QwGOJ5Pc4OixEK2N3EtcYDhV5fBvlFv7t4b8P6BJZIn2NVXCVaW4UcEsefcxHqohd5AuYXJH7wt9aPwJRJehxd9GhVJeQ6QtPXuqZaEspd+dSvlYrvdO8pFTrIklrty30CJg3WberWmI111T8ZNFlNBghSu6nXzO9YkKfDuAYUEPVERL9jG9xF8tGb1JxhOmg33Kg6fg==,iv:07Reckni7LSfDL3qVUv4v80IOVQSbFpz49UsyiIDGWk=,tag:iMgCspLUWNCjjYT0pkMwDw==,type:str]
|
wireless: ENC[AES256_GCM,data:pQv+gdAW8W9nSEJkbXWex47iuuqgJMEELldFsmgk2Y08MDZ1ytXqlphTK/jbewD3tpz4v29fSuWamv1uZpxM2+c2zCuMVTdrhAf0i/Sjqd9CWP8NQvTDI3v8ps9REFzR7n7hywnkfOkDNwRkmavSfCxK5k9SQLNC7De6P811/Fundb9r6oeIH2OEDBkZEHw8gYndjy6cLDUE2SY/cmxRsKWhATsCLcWKOpQa86zlT9dr9nMtYVF1AN5T4JR/7QKqJ8UT4mvhAA0OEfKv0Cf3euH24vtBrv5YxwDT6tQpOABOyOy9mWLc+bXDID/HX4akeU1O6+eBSpNeRgpAcMfD6b/eqKAvDvnixHubu9GemVspmeoA/91i5B70u3kjm0EKup7KLXCp5RutLnLRczDPdfbCB7bEipeRyF8P+UCuhQ==,iv:WN7mGyHpaMDdLRpFGyDUQ2D9a0t/rucfyKroJYqaHPs=,tag:7KTzBEt30nqCJclDgiWuKg==,type:str]
|
||||||
sops:
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
age:
|
age:
|
||||||
- recipient: age1ey3wr2wnkgny3dfgvnyrf0cptwzr7s5x464p2y9ya58lpay8lfrsds3y68
|
- recipient: age1ey3wr2wnkgny3dfgvnyrf0cptwzr7s5x464p2y9ya58lpay8lfrsds3y68
|
||||||
enc: |
|
enc: |
|
||||||
|
|
@ -19,7 +23,8 @@ sops:
|
||||||
Ky83VFhiVE9wK01UMDlSbnIrd2d2SHcKp6mF8PaR0ItrvLHpEgMe6fwuboyrrs9y
|
Ky83VFhiVE9wK01UMDlSbnIrd2d2SHcKp6mF8PaR0ItrvLHpEgMe6fwuboyrrs9y
|
||||||
7Ct6qZ1SN/4f/xJpDP2qiaQ4KTZzY1BlC3isT3CWeajOQhL/y5JCOw==
|
7Ct6qZ1SN/4f/xJpDP2qiaQ4KTZzY1BlC3isT3CWeajOQhL/y5JCOw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-08-27T05:30:04Z"
|
lastmodified: "2024-11-07T21:12:36Z"
|
||||||
mac: ENC[AES256_GCM,data:hoSykxuHPAofdbXNJCyozeQYYhg3yXLOVx+K9PsSctUMrIc9ii76SDGY2h+6gFNy1rGkPxmYHueqHEJHvvoxLHcwkwoN8AddOVrnXNoIpOvwcn0GfpPIPf5rCvxSxvcsZwPW+affMMVRyRR8aJ3llj7ojuuuyTnm+HL9H9vY1PQ=,iv:pUXl49AqRerTlGoOzoWt0NrEo8rqPmBF7yiB4ZufC3M=,tag:1mP3jsP2O6yKlJVmaA7EMQ==,type:str]
|
mac: ENC[AES256_GCM,data:z0ePEvsEKvcMca2x2qjTsSBwk+qI3jd8h2uAnSsGtJL5UI1OdBL8oVIGKty0pGaCvtrF01UN1ncKBGe5y12Vij2yuyv7LK4ANArxQ4+O583NdYHYeD+T75yGu4SAYjcoM23RD1h+W0SLQpCen2J3WYmJaOjtqMBv/gaFYl/DV7I=,iv:VJjZTd1g4oJCDLEp8+jH15Y2svTNtQUE1vc3WQoJJZU=,tag:4U7uh6U5PwHJ2r6/WFUbnw==,type:str]
|
||||||
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.9.1
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
];
|
];
|
||||||
nvidia = {
|
nvidia.enable = true;
|
||||||
enable = true;
|
|
||||||
stable = true;
|
|
||||||
};
|
|
||||||
pipewire.enable = true;
|
pipewire.enable = true;
|
||||||
polkit.enable = true;
|
polkit.enable = true;
|
||||||
tablet.enable = true;
|
tablet.enable = true;
|
||||||
|
|
@ -18,7 +15,7 @@
|
||||||
sshd.enable = true;
|
sshd.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
|
||||||
sddm.enable = true;
|
tuigreet.enable = true;
|
||||||
niri.enable = true;
|
niri.enable = true;
|
||||||
|
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, lib, inputs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.system = {
|
options.system = {
|
||||||
|
|
@ -29,44 +29,33 @@
|
||||||
|
|
||||||
# Packages & Default Packages
|
# Packages & Default Packages
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
nix = {
|
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
gc = { automatic = true; options = "--delete-older-than 5d"; };
|
|
||||||
channel.enable = false;
|
|
||||||
settings = {
|
|
||||||
auto-optimise-store = true;
|
|
||||||
keep-going = true;
|
|
||||||
use-xdg-base-directories = true;
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
neovim
|
neovim
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
] ++ config.system.extraPkgs;
|
] ++ config.system.extraPkgs;
|
||||||
|
|
||||||
users = {
|
# XDG Compliance
|
||||||
users = builtins.listToAttrs (map (
|
nix.settings.use-xdg-base-directories = true;
|
||||||
user: {
|
|
||||||
name = user;
|
# users = {
|
||||||
value = {
|
# users = builtins.listToAttrs (map (
|
||||||
name = user;
|
# user: {
|
||||||
isNormalUser = true;
|
# name = user;
|
||||||
extraGroups = [ "network" ];
|
# value = {
|
||||||
};
|
# name = user;
|
||||||
}
|
# isNormalUser = true;
|
||||||
) [ "pan" ]);
|
# extraGroups = [ "network" ];
|
||||||
groups = {
|
# };
|
||||||
wheel = {
|
# }
|
||||||
members = config.system.users.bigWheels;
|
# ) usernameList);
|
||||||
};
|
# groups = {
|
||||||
network = { };
|
# wheel = {
|
||||||
};
|
# members = config.system.users.bigWheels;
|
||||||
};
|
# };
|
||||||
|
# network = { };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
fonts = {
|
fonts = {
|
||||||
enableDefaultPackages = true;
|
enableDefaultPackages = true;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
'';
|
'';
|
||||||
package = pkgs.caddy.withPlugins {
|
package = pkgs.caddy.withPlugins {
|
||||||
plugins = [ "github.com/caddy-dns/porkbun@v0.3.1" ];
|
plugins = [ "github.com/caddy-dns/porkbun@v0.3.1" ];
|
||||||
hash = "sha256-NlZY/EEY9TbqrMAkSHK2aGm5AjFTvpvBXV1GW1PnXCc=";
|
hash = "sha256-j/GODingW5BhfjQRajinivX/9zpiLGgyxvAjX0+amRU=";
|
||||||
};
|
};
|
||||||
virtualHosts = config.caddy.vhosts;
|
virtualHosts = config.caddy.vhosts;
|
||||||
email = config.caddy.adminEmail;
|
email = config.caddy.adminEmail;
|
||||||
|
|
|
||||||
|
|
@ -2,22 +2,22 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
options.nvidia = {
|
options.nvidia = {
|
||||||
enable = lib.mkEnableOption "Enables nvidia with proprietary drivers";
|
enable = lib.mkEnableOption
|
||||||
|
"Enables nvidia with proprietary drivers";
|
||||||
open = lib.mkEnableOption "Use open nvidia option for newer cards";
|
open = lib.mkEnableOption "Use open nvidia option for newer cards";
|
||||||
stable = lib.mkEnableOption "Use stable instead of beta";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.nvidia.enable {
|
config = lib.mkIf config.nvidia.enable {
|
||||||
hardware.graphics.enable = true;
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
open = if config.nvidia.open then true else false;
|
open = if config.nvidia.open then true else false;
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
package = if config.nvidia.stable
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
then config.boot.kernelPackages.nvidiaPackages.stable
|
|
||||||
else config.boot.kernelPackages.nvidiaPackages.beta;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelParams = [ "nvidia_drm.fbdev=1" ];
|
boot.kernelParams = [ "nvidia_drm.fbdev=1" ];
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
{ config, pkgs, lib, inputs', ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.sddm = {
|
|
||||||
enable = lib.mkEnableOption "enables sddm";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.sddm.enable (let
|
|
||||||
sddm-theme = inputs'.silentSDDM.packages.default.override {
|
|
||||||
theme = "catppuccin-macchiato";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
qt.enable = true;
|
|
||||||
environment.systemPackages = [ sddm-theme sddm-theme.test ];
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
wayland.enable = true;
|
|
||||||
package = pkgs.kdePackages.sddm;
|
|
||||||
enable = true;
|
|
||||||
theme = sddm-theme.pname;
|
|
||||||
extraPackages = sddm-theme.propagatedBuildInputs;
|
|
||||||
settings.General = {
|
|
||||||
GreeterEnvironment = "QML2_IMPORT_PATH=${sddm-theme}/share/sddm/themes/${sddm-theme.pname}/components/,QT_IM_MODULE=qtvirtualkeyboard";
|
|
||||||
InputMethod = "qtvirtualkeyboard";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
10
users/badtz@juri/user.nix
Normal file
10
users/badtz@juri/user.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fish.enable = true;
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
username = "Badtz";
|
||||||
|
email = "may@badtz.dev";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# "DP-2" = [
|
# "DP-2" = [
|
||||||
|
|
@ -28,8 +28,9 @@
|
||||||
mouse.accel = -0.53;
|
mouse.accel = -0.53;
|
||||||
outputs = {
|
outputs = {
|
||||||
"DP-1" = {
|
"DP-1" = {
|
||||||
position = { x = 2560; y = 0; };
|
position = { x = 2560; y = -100; };
|
||||||
mode = { width = 2560; height = 1440; refresh = 144.000; };
|
mode = { width = 2560; height = 1440; refresh = 144.000; };
|
||||||
|
transform.rotation = 270;
|
||||||
};
|
};
|
||||||
"DP-2" = {
|
"DP-2" = {
|
||||||
position = { x = 0; y = 0; };
|
position = { x = 0; y = 0; };
|
||||||
|
|
@ -66,18 +67,28 @@
|
||||||
mpv.enable = true;
|
mpv.enable = true;
|
||||||
zathura.enable = true;
|
zathura.enable = true;
|
||||||
feh.enable = true;
|
feh.enable = true;
|
||||||
beets.enable = true;
|
|
||||||
|
|
||||||
neovim = {
|
neovim.enable = true;
|
||||||
enable = true;
|
neovim.languages = {
|
||||||
languages = {
|
c.enable = true;
|
||||||
c.enable = true;
|
nix.enable = true;
|
||||||
nix.enable = true;
|
rust.enable = true;
|
||||||
rust.enable = true;
|
typescript.enable = true;
|
||||||
typescript.enable = true;
|
|
||||||
};
|
|
||||||
themes.catppuccin.enable = true;
|
|
||||||
};
|
};
|
||||||
|
neovim.plugins = {
|
||||||
|
comments.enable = true;
|
||||||
|
fugitive.enable = true;
|
||||||
|
lualine.enable = true;
|
||||||
|
luasnip.enable = true;
|
||||||
|
nvimcmp.enable = true;
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
fzf.enable = true;
|
||||||
|
};
|
||||||
|
treesitter.enable = true;
|
||||||
|
wiki.enable = true;
|
||||||
|
};
|
||||||
|
neovim.themes.catppuccin.enable = true;
|
||||||
|
|
||||||
lf.enable = true;
|
lf.enable = true;
|
||||||
lf.hiddenfiles = [
|
lf.hiddenfiles = [
|
||||||
|
|
@ -93,7 +104,14 @@
|
||||||
|
|
||||||
gimp.enable = true;
|
gimp.enable = true;
|
||||||
|
|
||||||
|
beeper.enable = true;
|
||||||
discord.enable = true;
|
discord.enable = true;
|
||||||
|
|
||||||
lutris.enable = true;
|
lutris.enable = true;
|
||||||
|
|
||||||
|
extraPkgs = with pkgs; [
|
||||||
|
# Applications
|
||||||
|
logseq
|
||||||
|
claude-code
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue