Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, inputs, host, ... }:
|
{ pkgs, hyper, inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = ([
|
imports = ([
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
./system-modules/users.nix
|
./system-modules/users.nix
|
||||||
./system-modules/virtualisation.nix
|
./system-modules/virtualisation.nix
|
||||||
./system-modules/ydotool.nix
|
./system-modules/ydotool.nix
|
||||||
]) ++ (if (host == "NxACE") then [
|
]) ++ (if (hyper.host == "NxACE") then [
|
||||||
./system-modules/nx2site.nix
|
./system-modules/nx2site.nix
|
||||||
./system-modules/hugo.nix
|
./system-modules/hugo.nix
|
||||||
./system-modules/postgres.nix
|
./system-modules/postgres.nix
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
||||||
boot.tmp.useTmpfs = false;
|
boot.tmp.useTmpfs = false;
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "25.05";
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"base": {
|
"base": {
|
||||||
"foreground": "#dddddd",
|
"foreground": "#dbd2f8",
|
||||||
"background": "#000000"
|
"background": "#0f062c"
|
||||||
},
|
},
|
||||||
"to_alter": {
|
"to_alter": {
|
||||||
"accent": "#8888ff",
|
"accent": "#724ce5",
|
||||||
"secondary": "#4444ff",
|
"secondary": "#ff3271",
|
||||||
"tertiary": "#44ff88",
|
"tertiary": "#ffc932",
|
||||||
"special": "#ff6666",
|
"special": "#bfe54b",
|
||||||
"weird": "#ff66ff"
|
"weird": "#e54b8b"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@ pkgs: rec {
|
|||||||
font = {
|
font = {
|
||||||
code = {
|
code = {
|
||||||
name = "JetBrainsMono Nerd Font";
|
name = "JetBrainsMono Nerd Font";
|
||||||
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||||
# name = "CascadiaCove-NF";
|
# name = "CascadiaCove-NF";
|
||||||
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
||||||
};
|
};
|
||||||
|
|||||||
465
flake.lock
generated
465
flake.lock
generated
@@ -1,26 +1,5 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"Hyprspace": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprland": [
|
|
||||||
"hyprland"
|
|
||||||
],
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742767019,
|
|
||||||
"narHash": "sha256-FdyHDbf31jl5rIU7IQtBVTbZ1ojGrrp5aFaRrE2819s=",
|
|
||||||
"owner": "KZDKM",
|
|
||||||
"repo": "Hyprspace",
|
|
||||||
"rev": "5b62529c2011ede6069445de9b5b3f8a1f10ecfe",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "KZDKM",
|
|
||||||
"repo": "Hyprspace",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"aquamarine": {
|
"aquamarine": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
@@ -41,11 +20,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742213273,
|
"lastModified": 1747864449,
|
||||||
"narHash": "sha256-0l0vDb4anfsBu1rOs94bC73Hub+xEivgBAo6QXl2MmU=",
|
"narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "484b732195cc53f4536ce4bd59a5c6402b1e7ccf",
|
"rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -135,6 +114,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
@@ -176,7 +171,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -216,7 +211,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1681202837,
|
||||||
@@ -234,7 +229,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -281,11 +276,11 @@
|
|||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743191728,
|
"lastModified": 1748207486,
|
||||||
"narHash": "sha256-LrQd2IkfcmHdBh+pwPEPXzcosBerIEFzz/DbVNzBqig=",
|
"narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "1067cd3d8a061eb5b23bc1a4c46ca10af4481941",
|
"rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -367,16 +362,37 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742655702,
|
"lastModified": 1748226808,
|
||||||
"narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
|
"narHash": "sha256-GaBRgxjWO1bAQa8P2+FDxG4ANBVhjnSjBms096qQdxo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
|
"rev": "83665c39fa688bd6a1f7c43cf7997a70f6a109f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.05",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-on-droid",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709445365,
|
||||||
|
"narHash": "sha256-DVv6nd9FQBbMWbOmhq0KVqmlc3y3FMSYl49UXmMcO+0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "4de84265d7ec7634a69ba75028696d74de9a44a7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.11",
|
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -397,11 +413,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742215578,
|
"lastModified": 1745948457,
|
||||||
"narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=",
|
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "2fd36421c21aa87e2fe3bee11067540ae612f719",
|
"rev": "ac903e80b33ba6a88df83d02232483d99f327573",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -426,11 +442,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739049071,
|
"lastModified": 1745015490,
|
||||||
"narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=",
|
"narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73",
|
"rev": "60754910946b4e2dc1377b967b7156cb989c5873",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -451,15 +467,15 @@
|
|||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"systems": "systems_3",
|
"systems": "systems_2",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743297135,
|
"lastModified": 1748295224,
|
||||||
"narHash": "sha256-4JgyJLuHxeoeSsSbi4MkpVYsI4R74Trov33sIg1fa/0=",
|
"narHash": "sha256-yR8zw5bSEHd28fGfGM64nW8y72NOfxFvvrXcR2p4WUE=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "da2d7c3971d40f841f2afd7def8e4bad9a351e41",
|
"rev": "be6ee6e55f08387a9e2fbf712c061fb238a70319",
|
||||||
"revCount": 5948,
|
"revCount": 6141,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
@@ -487,11 +503,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743339740,
|
"lastModified": 1748271549,
|
||||||
"narHash": "sha256-G6a7R/gb1xH0yI2uevTmDpxZf6rvMh1lOu0gYrqVu5U=",
|
"narHash": "sha256-MiVqB5DoHqxNSaQVbYmkaIDz02AJ4XS3oXHI1x2lEX0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "6dca4ece21864e329394b81cfc767778089097e2",
|
"rev": "d81d96e9d68c182a202e0bbf14384d60929b4454",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -512,11 +528,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738422629,
|
"lastModified": 1743714874,
|
||||||
"narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=",
|
"narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed",
|
"rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -580,11 +596,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739048983,
|
"lastModified": 1745951494,
|
||||||
"narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=",
|
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-qtutils",
|
"repo": "hyprland-qtutils",
|
||||||
"rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8",
|
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -609,11 +625,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741191527,
|
"lastModified": 1747484975,
|
||||||
"narHash": "sha256-kM+11Nch47Xwfgtw2EpRitJuORy4miwoMuRi5tyMBDY=",
|
"narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "72df3861f1197e41b078faa3e38eedd60e00018d",
|
"rev": "163c83b3db48a17c113729c220a60b94596c9291",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -629,11 +645,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741036724,
|
"lastModified": 1745860672,
|
||||||
"narHash": "sha256-nCsqa5dXW1Qja+smRkVpNkGAHfYkBFJ6U3bVilY5pDo=",
|
"narHash": "sha256-tJKLjWaOcJW4Ttu1noSY+lddlJvyX2eonTrgR5IycZo=",
|
||||||
"owner": "h3rmt",
|
"owner": "h3rmt",
|
||||||
"repo": "hyprswitch",
|
"repo": "hyprswitch",
|
||||||
"rev": "3feeccf2f1d3d6c0fb7c79b965ccf382118651d2",
|
"rev": "313e7d5730af2e37ab73fe238b1bd3a2d3e5552f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -655,11 +671,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741534688,
|
"lastModified": 1746635225,
|
||||||
"narHash": "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=",
|
"narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "dd1f720cbc2dbb3c71167c9598045dd3261d27b3",
|
"rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -680,11 +696,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739870480,
|
"lastModified": 1747584298,
|
||||||
"narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
|
"narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
|
"rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -718,13 +734,82 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-formatter-pack": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-on-droid",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nmd": "nmd",
|
||||||
|
"nmt": "nmt"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705252799,
|
||||||
|
"narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=",
|
||||||
|
"owner": "Gerschtli",
|
||||||
|
"repo": "nix-formatter-pack",
|
||||||
|
"rev": "2de39dedd79aab14c01b9e2934842051a160ffa5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Gerschtli",
|
||||||
|
"repo": "nix-formatter-pack",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-on-droid": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-formatter-pack": "nix-formatter-pack",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-docs": "nixpkgs-docs",
|
||||||
|
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
|
||||||
|
"nmd": "nmd_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720396533,
|
||||||
|
"narHash": "sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-on-droid",
|
||||||
|
"rev": "f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-24.05",
|
||||||
|
"repo": "nix-on-droid",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-wsl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746453552,
|
||||||
|
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"rev": "be618645aa0adf461f778500172b6896d5ab2d01",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742669843,
|
"lastModified": 1748026106,
|
||||||
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
|
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
|
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -734,13 +819,45 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-docs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705957679,
|
||||||
|
"narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9a333eaa80901efe01df07eade2c16d183761fa3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-for-bootstrap": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720244366,
|
||||||
|
"narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-latest": {
|
"nixpkgs-latest": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743346368,
|
"lastModified": 1748330006,
|
||||||
"narHash": "sha256-DJv361yCiMiMyKA1elFtgJ9CbK/nEXLKj7vY0zUBmTk=",
|
"narHash": "sha256-g6dhnA/An7un00tBZ8MeC7V0lU9lLySP9+brMXrm3TU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e68c2965da5c7f149dd8543c63d7217753e00c32",
|
"rev": "68a7635955e17148449379318fefcb60b894e775",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -812,11 +929,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable_2": {
|
"nixpkgs-unstable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743095683,
|
"lastModified": 1748190013,
|
||||||
"narHash": "sha256-gWd4urRoLRe8GLVC/3rYRae1h+xfQzt09xOfb0PaHSk=",
|
"narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5e5402ecbcb27af32284d4a62553c019a3a49ea6",
|
"rev": "62b852f6c6742134ade1abdd2a21685fd617a291",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -858,26 +975,42 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743231893,
|
"lastModified": 1742937945,
|
||||||
"narHash": "sha256-tpJsHMUPEhEnzySoQxx7+kA+KUtgWqvlcUBqROYNNt0=",
|
"narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c570c1f5304493cafe133b8d843c7c1c4a10d3a6",
|
"rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-24.11",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737003892,
|
"lastModified": 1748162331,
|
||||||
"narHash": "sha256-RCzJE9wKByLCXmRBp+z8LK9EgdW+K+W/DXnJS4S/NVo=",
|
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ae06b9c2d83cb5c8b12d7d0e32692e93d1379713",
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747312588,
|
||||||
|
"narHash": "sha256-MmJvj6mlWzeRwKGLcwmZpKaOPZ5nJb/6al5CXqJsgjo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b1bebd0fe266bbd1820019612ead889e96a8fa2d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -887,7 +1020,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727348695,
|
"lastModified": 1727348695,
|
||||||
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||||
@@ -903,6 +1036,60 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nmd": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1666190571,
|
||||||
|
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nmd_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-on-droid",
|
||||||
|
"nixpkgs-docs"
|
||||||
|
],
|
||||||
|
"scss-reset": "scss-reset"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705050560,
|
||||||
|
"narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=",
|
||||||
|
"owner": "~rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3",
|
||||||
|
"type": "sourcehut"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "~rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"type": "sourcehut"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nmt": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1648075362,
|
||||||
|
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmt",
|
||||||
|
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmt",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
@@ -913,11 +1100,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742649964,
|
"lastModified": 1747372754,
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -959,14 +1146,15 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"Hyprspace": "Hyprspace",
|
|
||||||
"ghostty": "ghostty",
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
"hyprswitch": "hyprswitch",
|
"hyprswitch": "hyprswitch",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nix-on-droid": "nix-on-droid",
|
||||||
|
"nixos-wsl": "nixos-wsl",
|
||||||
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nixpkgs-latest": "nixpkgs-latest",
|
"nixpkgs-latest": "nixpkgs-latest",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable_2",
|
"nixpkgs-unstable": "nixpkgs-unstable_2",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
@@ -1029,11 +1217,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737080704,
|
"lastModified": 1747363019,
|
||||||
"narHash": "sha256-n+J2h9GM9ZpFOQUmtZoCr1+DFF/iO5UlmLJeHIxbZGY=",
|
"narHash": "sha256-N4dwkRBmpOosa4gfFkFf/LTD8oOcNkAyvZ07JvRDEf0=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "f9953fe89f8b65401fc4d4a288940bc2cb072949",
|
"rev": "0e624f2b1972a34be1a9b35290ed18ea4b419b6f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1042,6 +1230,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"scss-reset": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1631450058,
|
||||||
|
"narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=",
|
||||||
|
"owner": "andreymatin",
|
||||||
|
"repo": "scss-reset",
|
||||||
|
"rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "andreymatin",
|
||||||
|
"repo": "scss-reset",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -1049,11 +1253,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743305778,
|
"lastModified": 1747603214,
|
||||||
"narHash": "sha256-Ux/UohNtnM5mn9SFjaHp6IZe2aAnUCzklMluNtV6zFo=",
|
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8e873886bbfc32163fe027b8676c75637b7da114",
|
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1063,21 +1267,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
@@ -1092,7 +1281,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_3": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
@@ -1107,6 +1296,21 @@
|
|||||||
"type": "github"
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems_4": {
|
"systems_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@@ -1137,21 +1341,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_6": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xdph": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": [
|
"hyprland-protocols": [
|
||||||
@@ -1180,11 +1369,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1741934139,
|
"lastModified": 1745871725,
|
||||||
"narHash": "sha256-ZhTcTH9FoeAtbPfWGrhkH7RjLJZ7GeF18nygLAMR+WE=",
|
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "150b0b6f52bb422a1b232a53698606fe0320dde0",
|
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1196,15 +1385,15 @@
|
|||||||
"yazi": {
|
"yazi": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"rust-overlay": "rust-overlay_3"
|
"rust-overlay": "rust-overlay_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743344227,
|
"lastModified": 1748249183,
|
||||||
"narHash": "sha256-Lp1JUMrhvAmCzftOSQ2Sr0+svemxSxcLeZ4HkmdLXbE=",
|
"narHash": "sha256-I+JvW3752iZq4QrTOUDvhVA++0LHq974XxHjQrjA6lM=",
|
||||||
"owner": "sxyazi",
|
"owner": "sxyazi",
|
||||||
"repo": "yazi",
|
"repo": "yazi",
|
||||||
"rev": "1765aba68440f73c590cedac14ece6778fe88ff5",
|
"rev": "74a8ea9bc0289f093c34b15755c05fa25a1c5ace",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1221,14 +1410,14 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_6"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742573336,
|
"lastModified": 1747505540,
|
||||||
"narHash": "sha256-7cVQTyMA9V1YqqVXwaxmrsUKE8LjnBdIj6fvpKKuAxo=",
|
"narHash": "sha256-wJTXPH8VellWNupRxMvv9kkIo+271t4XVupgvT1RkTU=",
|
||||||
"owner": "lordkekz",
|
"owner": "lordkekz",
|
||||||
"repo": "nix-yazi-plugins",
|
"repo": "nix-yazi-plugins",
|
||||||
"rev": "76e0104f5bfc2517d86cae0332ede54c6d5ba4e8",
|
"rev": "f3daa56d0f9ea29bd1ecff557f3604ada00fbe31",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1239,7 +1428,7 @@
|
|||||||
},
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727721329,
|
"lastModified": 1727721329,
|
||||||
|
|||||||
100
flake.nix
100
flake.nix
@@ -2,71 +2,111 @@
|
|||||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs = { url = "nixpkgs/nixos-24.11"; };
|
nixpkgs = { url = "nixpkgs/nixos-25.05"; };
|
||||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||||
home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; };
|
|
||||||
|
home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
|
|
||||||
|
nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; };
|
||||||
|
nix-on-droid = { url = "github:nix-community/nix-on-droid/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
|
|
||||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
||||||
|
|
||||||
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
||||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||||
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
|
||||||
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
||||||
|
|
||||||
yazi.url = "github:sxyazi/yazi";
|
yazi = { url = "github:sxyazi/yazi"; };
|
||||||
yazi-plugins = { url = "github:lordkekz/nix-yazi-plugins"; inputs.nixpkgs.follows = "nixpkgs"; };
|
yazi-plugins = { url = "github:lordkekz/nix-yazi-plugins"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
zen-browser = { url = "github:MarceColl/zen-browser-flake"; };
|
||||||
ghostty.url = "github:ghostty-org/ghostty";
|
ghostty = { url = "github:ghostty-org/ghostty"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-latest, home-manager, ... }@inputs: let
|
outputs = { self, ... }@inputs: with inputs; let
|
||||||
system = "x86_64-linux";
|
|
||||||
user = "nx2";
|
|
||||||
domain = "nx2.site";
|
|
||||||
|
|
||||||
|
system = "x86_64-linux";
|
||||||
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||||
|
|
||||||
pkgs = import nixpkgs { inherit system config; };
|
hyper-base = rec {
|
||||||
pkgs-unstable = import nixpkgs-unstable { inherit system config; };
|
inherit system;
|
||||||
pkgs-latest = import nixpkgs-latest { inherit system config; };
|
user = "nx2";
|
||||||
|
domain = "nx2.site";
|
||||||
|
home = "/home/${user}/";
|
||||||
|
};
|
||||||
|
|
||||||
nvidia-set = import ./flake-modules/nvidia.nix;
|
pkgs = import nixpkgs { inherit system config; } // {
|
||||||
|
unstable = import nixpkgs-unstable { inherit system config; };
|
||||||
|
latest = import nixpkgs-latest { inherit system config; };
|
||||||
|
version = "25.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
nvidia-base = import ./flake-modules/nvidia.nix;
|
||||||
secrets = import ./git-crypt/secrets.nix;
|
secrets = import ./git-crypt/secrets.nix;
|
||||||
rice = import ./flake-modules/rice.nix pkgs;
|
rice = import ./flake-modules/rice.nix pkgs;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = let
|
nixosConfigurations = let
|
||||||
make-nixos-system = host: nixpkgs.lib.nixosSystem {
|
make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [ ./configuration.nix ];
|
modules = [ ./configuration.nix ];
|
||||||
specialArgs = let
|
specialArgs = let
|
||||||
nvidia = nvidia-set // {
|
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; };
|
||||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
in { inherit pkgs inputs hyper rice secrets; };
|
||||||
prime = if (host == "NxXPS") then true else false;
|
|
||||||
};
|
};
|
||||||
in { inherit inputs user host domain pkgs-unstable pkgs-latest secrets rice nvidia; };
|
make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [ ./nixos-wsl.nix ];
|
||||||
|
specialArgs = let
|
||||||
|
hyper = hyper-base // { inherit host; };
|
||||||
|
in { inherit pkgs inputs hyper rice; };
|
||||||
|
};
|
||||||
|
make-nixondroid-system = host: nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [ ./nix-on-droid.nix ];
|
||||||
|
specialArgs = let
|
||||||
|
pkgs.version = "24.05";
|
||||||
|
hyper = hyper-base // {
|
||||||
|
inherit host;
|
||||||
|
system = "aarch64-linux";
|
||||||
|
home = assert 1 == 2; "";
|
||||||
|
};
|
||||||
|
in { inherit pkgs inputs hyper rice; };
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
NxXPS = make-nixos-system "NxXPS";
|
NxXPS = make-nixos-system "NxXPS" { enable = true; prime = true; };
|
||||||
NxNORTH = make-nixos-system "NxNORTH";
|
NxNORTH = make-nixos-system "NxNORTH" { enable = true; prime = false; };
|
||||||
NxACE = make-nixos-system "NxACE";
|
NxACE = make-nixos-system "NxACE" { enable = false; };
|
||||||
|
|
||||||
|
NxWSL = make-nixos-wsl-system "NxWSL";
|
||||||
|
|
||||||
|
NxS23U = make-nixondroid-system "NxS23U";
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = let
|
homeConfigurations = let
|
||||||
make-home-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = let
|
extraSpecialArgs = let
|
||||||
nvidia = nvidia-set // {
|
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; };
|
||||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
in { inherit pkgs inputs hyper rice secrets; };
|
||||||
prime = if (host == "NxXPS") then true else false;
|
|
||||||
};
|
};
|
||||||
in { inherit inputs system user host domain pkgs-unstable pkgs-latest rice secrets nvidia; };
|
make-shell-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
modules = [ ./shell-only.nix ];
|
||||||
|
extraSpecialArgs = let
|
||||||
|
hyper = hyper-base // { inherit host; };
|
||||||
|
in { inherit pkgs inputs hyper rice secrets; };
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
"${user}@NxXPS" = make-home-configuration "NxXPS" user;
|
"${hyper-base.user}@NxXPS" = make-home-configuration "NxXPS" hyper-base.user { enable = true; prime = true; };
|
||||||
"${user}@NxNORTH" = make-home-configuration "NxNORTH" user;
|
"${hyper-base.user}@NxNORTH" = make-home-configuration "NxNORTH" hyper-base.user { enable = true; prime = false; };
|
||||||
"${user}@NxACE" = make-home-configuration "NxACE" user;
|
"${hyper-base.user}@NxACE" = make-home-configuration "NxACE" hyper-base.user { enable = false; };
|
||||||
|
|
||||||
|
"${hyper-base.user}@NxS23U" = make-shell-configuration "NxS23U" hyper-base.user;
|
||||||
|
|
||||||
|
"${hyper-base.user}@NxWSL" = make-shell-configuration "NxWSL" hyper-base.user;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +1,6 @@
|
|||||||
{ config, pkgs, lib, host, secrets, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bitwarden
|
bitwarden
|
||||||
bitwarden-cli
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# home.file.".config/Bitwarden CLI/data.json".text = ''
|
|
||||||
# {
|
|
||||||
# "stateVersion": 9,
|
|
||||||
# "global": {
|
|
||||||
# "theme": "system",
|
|
||||||
# "window": {},
|
|
||||||
# "environmentUrls": {
|
|
||||||
# "base": "https://pw.nx2.site",
|
|
||||||
# "api": null,
|
|
||||||
# "identity": null,
|
|
||||||
# "webVault": null,
|
|
||||||
# "icons": null,
|
|
||||||
# "notifications": null,
|
|
||||||
# "events": null,
|
|
||||||
# "keyConnector": null
|
|
||||||
# },
|
|
||||||
# "region": "Self-hosted",
|
|
||||||
# "installedVersion": "2023.12.0"
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# home.sessionVariables.BW_SESSION = secrets.bitwarden.env.bw-session;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, user, secrets, domain, ... }: let
|
{ pkgs, hyper, secrets, ... }: let
|
||||||
calendars = [
|
calendars = with hyper; [
|
||||||
{
|
{
|
||||||
name = "Preservation";
|
name = "Preservation";
|
||||||
primary = true;
|
primary = true;
|
||||||
@@ -82,10 +82,10 @@ in {
|
|||||||
inherit primary;
|
inherit primary;
|
||||||
remote = {
|
remote = {
|
||||||
inherit url name;
|
inherit url name;
|
||||||
userName = user; # my globally set username
|
userName = hyper.user; # my globally set username
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in lib.attrsets.mergeAttrsList (
|
in pkgs.lib.attrsets.mergeAttrsList (
|
||||||
map (calendar: {
|
map (calendar: {
|
||||||
"${calendar.name}" = transform_caledar_set ( default_set // calendar );
|
"${calendar.name}" = transform_caledar_set ( default_set // calendar );
|
||||||
}) calendars
|
}) calendars
|
||||||
@@ -93,7 +93,7 @@ in {
|
|||||||
|
|
||||||
programs.thunderbird.settings = let
|
programs.thunderbird.settings = let
|
||||||
to_safe_name = name: (builtins.replaceStrings ["."] ["-"]) name;
|
to_safe_name = name: (builtins.replaceStrings ["."] ["-"]) name;
|
||||||
in (lib.attrsets.mergeAttrsList (
|
in (pkgs.lib.attrsets.mergeAttrsList (
|
||||||
map (calendar: with ( default_set // calendar ); {
|
map (calendar: with ( default_set // calendar ); {
|
||||||
"calendar.registry.${to_safe_name calendar.name}.cache.enabled" = true;
|
"calendar.registry.${to_safe_name calendar.name}.cache.enabled" = true;
|
||||||
"calendar.registry.${to_safe_name calendar.name}.calendar-main-default" = primary;
|
"calendar.registry.${to_safe_name calendar.name}.calendar-main-default" = primary;
|
||||||
@@ -102,11 +102,11 @@ in {
|
|||||||
"calendar.registry.${to_safe_name calendar.name}.name" = name;
|
"calendar.registry.${to_safe_name calendar.name}.name" = name;
|
||||||
"calendar.registry.${to_safe_name calendar.name}.type" = type;
|
"calendar.registry.${to_safe_name calendar.name}.type" = type;
|
||||||
"calendar.registry.${to_safe_name calendar.name}.uri" = url;
|
"calendar.registry.${to_safe_name calendar.name}.uri" = url;
|
||||||
"calendar.registry.${to_safe_name calendar.name}.username" = user;
|
"calendar.registry.${to_safe_name calendar.name}.username" = hyper.user;
|
||||||
"calendar.registry.${to_safe_name calendar.name}.readOnly" = read-only;
|
"calendar.registry.${to_safe_name calendar.name}.readOnly" = read-only;
|
||||||
}) calendars
|
}) calendars
|
||||||
) // {
|
) // {
|
||||||
"calendar.list.sortOrder" = lib.fold (calendar: acc: calendar.name + " " + acc) "" calendars;
|
"calendar.list.sortOrder" = pkgs.lib.fold (calendar: acc: calendar.name + " " + acc) "" calendars;
|
||||||
"calendar.week.start" = 1;
|
"calendar.week.start" = 1;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ lib, user, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
direnv = {
|
direnv = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
{ pkgs, lib, host, user, rice, secrets, ... }:
|
{ pkgs, hyper, rice, secrets, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
thunderbird
|
thunderbird
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.thunderbird = let
|
programs.thunderbird = let
|
||||||
inherit (lib.generators) toJSON;
|
inherit (pkgs.lib.generators) toJSON;
|
||||||
extensions = toJSON {} {
|
extensions = toJSON {} {
|
||||||
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles = {
|
profiles = {
|
||||||
"${user}" = {
|
"${hyper.user}" = {
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
settings = with rice.color; {
|
settings = with rice.color; {
|
||||||
"calendar.alarms.showmissed" = false;
|
"calendar.alarms.showmissed" = false;
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
{ pkgs, hyper, rice, ... }:
|
||||||
{ rice, user, ... }:
|
|
||||||
# browser.tabs.allow_transparent_browser
|
# browser.tabs.allow_transparent_browser
|
||||||
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
||||||
{
|
{
|
||||||
home.file = with rice.color; let
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
firefox
|
||||||
|
];
|
||||||
|
file = with rice.color; let
|
||||||
blur = builtins.toString 20;
|
blur = builtins.toString 20;
|
||||||
in {
|
in {
|
||||||
".mozilla/firefox/${user}/chrome/userChrome.css".text = /* css */ ''
|
".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = /* css */ ''
|
||||||
:root{
|
:root{
|
||||||
/* Popup panels */
|
/* Popup panels */
|
||||||
--arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
--arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
||||||
@@ -92,7 +95,7 @@
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
".mozilla/firefox/${user}/chrome/userContent.css".text = /* css */ ''
|
".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = /* css */ ''
|
||||||
/* Removes the white loading page */
|
/* Removes the white loading page */
|
||||||
/* url(about:newtab), url(about:home) */
|
/* url(about:newtab), url(about:home) */
|
||||||
@-moz-document url(about:blank) {
|
@-moz-document url(about:blank) {
|
||||||
@@ -255,4 +258,5 @@
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM
|
⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM
|
||||||
⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT
|
⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT
|
||||||
|
|
||||||
" | lolcat --force)
|
" | lolcat --force 2> /dev/null)
|
||||||
|
|
||||||
msg="
|
msg="
|
||||||
$(echo -e "$logo" | sed -n 3p): $(cat /etc/*-release | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev)
|
$(echo -e "$logo" | sed -n 3p): $(cat /etc/*-release | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev)
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
{ pkgs-unstable, pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host == "NxNORTH" || host == "NxACE")
|
pkgs.lib.mkIf (hyper.host == "NxNORTH")
|
||||||
# lib.mkIf (host == "NxNORTH")
|
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = (with pkgs-unstable; [
|
packages = (with pkgs.unstable; [
|
||||||
protonup
|
protonup
|
||||||
mangohud
|
mangohud
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host == "NxXPS")
|
pkgs.lib.mkIf (hyper.host == "NxXPS")
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
libinput-gestures
|
libinput-gestures
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ config, rice, inputs, system, ... }:
|
{ config, rice, hyper, inputs, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = [ inputs.ghostty.packages.${system}.default ];
|
packages = [ inputs.ghostty.packages.${hyper.system}.default ];
|
||||||
file."${config.xdg.configHome}/ghostty/config".text = with rice.color; /* ini */ ''
|
file."${config.xdg.configHome}/ghostty/config".text = with rice.color; /* ini */ ''
|
||||||
font-family="${rice.font.code.name}"
|
font-family="${rice.font.code.name}"
|
||||||
clipboard-read=allow
|
clipboard-read=allow
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs-latest, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs-latest; [
|
home.packages = with pkgs; [
|
||||||
# (gimp-with-plugins.override {
|
# (gimp-with-plugins.override {
|
||||||
# plugins = with gimpPlugins; [ bimp ];
|
# plugins = with gimpPlugins; [ bimp ];
|
||||||
# })
|
# })
|
||||||
|
|||||||
@@ -1,42 +1,15 @@
|
|||||||
{ pkgs, rice, ... }:
|
{ pkgs, hyper, rice, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
git
|
|
||||||
delta
|
delta
|
||||||
|
|
||||||
(pkgs.writeShellScriptBin "git_monitor" ''
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# List of directories to check
|
|
||||||
directories=(
|
|
||||||
"$HOME/nix-dots"
|
|
||||||
"$HOME/obsidian-vault"
|
|
||||||
"$HOME/Pictures/wallpapers"
|
|
||||||
)
|
|
||||||
echo ""
|
|
||||||
for dir in "''${directories[@]}"; do
|
|
||||||
if [ -d "$dir" ]; then
|
|
||||||
cd "$dir" || { echo "Cannot change directory to $dir"; exit 1; }
|
|
||||||
echo "$(echo $dir | rev | cut -f 1 -d'/' | rev):"
|
|
||||||
if [[ $* == *--fetch* ]]; then
|
|
||||||
git fetch
|
|
||||||
fi
|
|
||||||
gst
|
|
||||||
echo ""
|
|
||||||
cd - > /dev/null || { echo "Cannot change back to the original directory"; exit 1; }
|
|
||||||
else
|
|
||||||
echo "Directory $dir does not exist."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'')
|
|
||||||
|
|
||||||
(writeShellScriptBin "gst" "awk -vOFS='' 'NR==FNR {all[i++] = $0; difffiles[$1] = $0; next;} ! ($2 in difffiles) {print; next;} {gsub($2, difffiles[$2]); print;} END {if (NR != FNR) {exit;} for (i in all) {print all[i];}}' <(git diff --color --stat=$(($(tput cols) - 3)) HEAD | sed '$d; s/^ //') <(git -c color.status=always status -sb)")
|
(writeShellScriptBin "gst" "awk -vOFS='' 'NR==FNR {all[i++] = $0; difffiles[$1] = $0; next;} ! ($2 in difffiles) {print; next;} {gsub($2, difffiles[$2]); print;} END {if (NR != FNR) {exit;} for (i in all) {print all[i];}}' <(git diff --color --stat=$(($(tput cols) - 3)) HEAD | sed '$d; s/^ //') <(git -c color.status=always status -sb)")
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.gitFull;
|
||||||
userName = ''Lennart J. Kurzweg (Nx2)'';
|
userName = ''Lennart J. Kurzweg (Nx2)'';
|
||||||
userEmail = "git@nx2.site";
|
userEmail = "git@${hyper.domain}";
|
||||||
delta = {
|
delta = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = {
|
options = {
|
||||||
@@ -46,6 +19,14 @@
|
|||||||
whitespace-error-style = "22 reverse";
|
whitespace-error-style = "22 reverse";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
extraConfig = {
|
||||||
|
credential = {
|
||||||
|
"https://git.da.dicos.de".username = pkgs.lib.mkIf (hyper.host =="NxWSL") "lkurzweg";
|
||||||
|
"https://git.da.dicos.de".password = pkgs.lib.mkIf (hyper.host =="NxWSL") "Test";
|
||||||
|
};
|
||||||
|
url."ssh://git@git.da.dicos.de/".insteadOf = pkgs.lib.mkIf (hyper.host =="NxWSL") "https://git.da.dicos.de/";
|
||||||
|
pull.rebase = false; # true
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.lazygit = {
|
programs.lazygit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
{ pkgs, pkgs-unstable, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# there also is a system module
|
# there also is a system module
|
||||||
home.packages = (with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gnupg
|
gnupg
|
||||||
gpg-tui
|
gpg-tui
|
||||||
]) ++ ( with pkgs-unstable; [
|
|
||||||
pinentry-all
|
pinentry-all
|
||||||
]);
|
];
|
||||||
|
|
||||||
# services.pcscd.enable = true;
|
# services.pcscd.enable = true;
|
||||||
services.gpg-agent = let
|
services.gpg-agent = let
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, pkgs-unstable, lib, rice, ... }:
|
{ pkgs, hyper, rice, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
python311Packages.python-lsp-server
|
python311Packages.python-lsp-server
|
||||||
jdt-language-server
|
jdt-language-server
|
||||||
ruff
|
ruff
|
||||||
ruff-lsp
|
# ruff-lsp
|
||||||
pyright
|
pyright
|
||||||
lldb # debugger for llvm stuff
|
lldb # debugger for llvm stuff
|
||||||
yaml-language-server # yaml
|
yaml-language-server # yaml
|
||||||
@@ -18,10 +18,8 @@
|
|||||||
vale-ls # style-checker lsp (needs vale)
|
vale-ls # style-checker lsp (needs vale)
|
||||||
ltex-ls # Ltex (language tool)
|
ltex-ls # Ltex (language tool)
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
] ++ (with pkgs-unstable; [
|
|
||||||
bash-language-server
|
bash-language-server
|
||||||
helix
|
];
|
||||||
]);
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "hx";
|
EDITOR = "hx";
|
||||||
VISUAL = "hx";
|
VISUAL = "hx";
|
||||||
@@ -30,7 +28,7 @@
|
|||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
package = pkgs-unstable.helix;
|
package = pkgs.unstable.helix;
|
||||||
settings = {
|
settings = {
|
||||||
# theme = "base16_terminal";
|
# theme = "base16_terminal";
|
||||||
theme = "base16";
|
theme = "base16";
|
||||||
@@ -53,7 +51,7 @@
|
|||||||
preview-completion-insert = true;
|
preview-completion-insert = true;
|
||||||
completion-trigger-len = 1;
|
completion-trigger-len = 1;
|
||||||
auto-info = true;
|
auto-info = true;
|
||||||
true-color = false; # is detected automatically if set to false
|
true-color = true; # is detected automatically if set to false
|
||||||
undercurl = false; # is detected automatically if set to false
|
undercurl = false; # is detected automatically if set to false
|
||||||
rulers = [];
|
rulers = [];
|
||||||
bufferline = "always";
|
bufferline = "always";
|
||||||
@@ -274,7 +272,7 @@
|
|||||||
command = "nixd";
|
command = "nixd";
|
||||||
};
|
};
|
||||||
"style-check" = {
|
"style-check" = {
|
||||||
command = lib.getExe pkgs.vale-ls;
|
command = pkgs.lib.getExe pkgs.vale-ls;
|
||||||
};
|
};
|
||||||
"language-tool" = {
|
"language-tool" = {
|
||||||
command = "${pkgs.ltex-ls}/bin/ltex-ls";
|
command = "${pkgs.ltex-ls}/bin/ltex-ls";
|
||||||
@@ -290,7 +288,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
"llm" = {
|
"llm" = {
|
||||||
command = lib.getExe pkgs.helix-gpt;
|
command = pkgs.lib.getExe pkgs.helix-gpt;
|
||||||
args = [
|
args = [
|
||||||
"--handler"
|
"--handler"
|
||||||
"ollama"
|
"ollama"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{config, pkgs, pkgs-unstable, inputs, host, user, nvidia, rice, lib, ... }:
|
{ config, pkgs, hyper, inputs, rice, ... }:
|
||||||
let
|
let
|
||||||
animation-speed = "5";
|
animation-speed = "5";
|
||||||
transparency = builtins.toString rice.transparency;
|
transparency = builtins.toString rice.transparency;
|
||||||
@@ -83,10 +83,10 @@ in {
|
|||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
monitor =
|
monitor =
|
||||||
if host == "NxXPS" then (with monitors.xps; [
|
if hyper.host == "NxXPS" then (with monitors.xps; [
|
||||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||||
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
|
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
|
||||||
]) else (if host == "NxNORTH" then (with monitors.north; [
|
]) else (if hyper.host == "NxNORTH" then (with monitors.north; [
|
||||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||||
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
|
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
|
||||||
# "${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
|
# "${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
|
||||||
@@ -95,10 +95,10 @@ in {
|
|||||||
]));
|
]));
|
||||||
|
|
||||||
workspace = let
|
workspace = let
|
||||||
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
d1 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||||
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
d2 = if hyper.host == "NxXPS" then monitors.xps.second.name else (if hyper.hyper.host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||||
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||||
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
# d3 = if hyper.host == "NxXPS" then monitors.xps.main.name else (if hyper.hyper.host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||||
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
||||||
in [
|
in [
|
||||||
"11, monitor:${d1}, default:true"
|
"11, monitor:${d1}, default:true"
|
||||||
@@ -122,7 +122,7 @@ in {
|
|||||||
"28, monitor:${d2}"
|
"28, monitor:${d2}"
|
||||||
"29, monitor:${d2}"
|
"29, monitor:${d2}"
|
||||||
"20, monitor:${d2}"
|
"20, monitor:${d2}"
|
||||||
"31, monitor:${d3}, default:${let x = if host == "NxNORTH" then "true" else "false"; in x}"
|
"31, monitor:${d3}, default:${let x = if hyper.host == "NxNORTH" then "true" else "false"; in x}"
|
||||||
"32, monitor:${d3}"
|
"32, monitor:${d3}"
|
||||||
"33, monitor:${d3}"
|
"33, monitor:${d3}"
|
||||||
"34, monitor:${d3}"
|
"34, monitor:${d3}"
|
||||||
@@ -143,7 +143,7 @@ in {
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
||||||
env = if nvidia.enable == true then [
|
env = if hyper.nvidia.enable == true then [
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
"XDG_SESSION_TYPE,wayland"
|
"XDG_SESSION_TYPE,wayland"
|
||||||
"GBM_BACKEND,nvidia-drm"
|
"GBM_BACKEND,nvidia-drm"
|
||||||
@@ -209,7 +209,7 @@ in {
|
|||||||
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
|
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
|
||||||
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
|
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
|
||||||
bezier = "myBezier, 0.33, 1, 0.68, 1";
|
bezier = "myBezier, 0.33, 1, 0.68, 1";
|
||||||
animation = let direction = if host == "NxXPS" then "slide" else "slidevert"; in [
|
animation = let direction = if hyper.host == "NxXPS" then "slide" else "slidevert"; in [
|
||||||
"windows, 1, ${animation-speed}, myBezier, slide"
|
"windows, 1, ${animation-speed}, myBezier, slide"
|
||||||
"border, 1, ${animation-speed}, myBezier"
|
"border, 1, ${animation-speed}, myBezier"
|
||||||
"fade, 1, ${animation-speed}, myBezier"
|
"fade, 1, ${animation-speed}, myBezier"
|
||||||
@@ -409,8 +409,7 @@ in {
|
|||||||
# "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace""
|
# "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace""
|
||||||
"SUPER, T, exec, SESSION_FROM_DE=TRUE ${terminal}"
|
"SUPER, T, exec, SESSION_FROM_DE=TRUE ${terminal}"
|
||||||
"SUPER SHIFT, T, exec, ${terminal-exec}'ssh nxace'"
|
"SUPER SHIFT, T, exec, ${terminal-exec}'ssh nxace'"
|
||||||
"SUPER, Z, exec, waybar_mode set ' '"
|
"SUPER, Z, exec, zathura"
|
||||||
"SUPER, Z, submap, tuda"
|
|
||||||
"SUPER, U, exec, [tile] thunderbird "
|
"SUPER, U, exec, [tile] thunderbird "
|
||||||
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
|
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
|
||||||
"SUPER SHIFT, I, exec, ${terminal-exec}'nh home switch || read'"
|
"SUPER SHIFT, I, exec, ${terminal-exec}'nh home switch || read'"
|
||||||
@@ -428,7 +427,7 @@ in {
|
|||||||
"SUPER, A, execr, waybar_mode set ' '"
|
"SUPER, A, execr, waybar_mode set ' '"
|
||||||
"SUPER, A, submap, scrL"
|
"SUPER, A, submap, scrL"
|
||||||
"SUPER, S, exec, spotify"
|
"SUPER, S, exec, spotify"
|
||||||
"SUPER, D, exec, vesktop"
|
"SUPER, D, exec, vesktop --disable-gpu-compositing"
|
||||||
"SUPER, F, fullscreen"
|
"SUPER, F, fullscreen"
|
||||||
# "SUPER, G,"
|
# "SUPER, G,"
|
||||||
"SUPER, H, movefocus, l"
|
"SUPER, H, movefocus, l"
|
||||||
@@ -564,8 +563,12 @@ in {
|
|||||||
${action_simple { key = "X"; cmd = "exec,firefox https://nx2.site";}}
|
${action_simple { key = "X"; cmd = "exec,firefox https://nx2.site";}}
|
||||||
${action_simple { key = "Y"; cmd = "exec,firefox https://youtube.com";}}
|
${action_simple { key = "Y"; cmd = "exec,firefox https://youtube.com";}}
|
||||||
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||||
bind = , Escape, exec, waybar_mode unset
|
${action_simple { key = "P"; cmd = "exec,firefox https://pw.nx2.site";}}
|
||||||
bind = , Escape, submap, reset
|
bind=,Z,exec,waybar_mode set ' '
|
||||||
|
bind=,Z,submap,tuda
|
||||||
|
bind=,Z,submap,reset
|
||||||
|
bind=,Escape,exec,waybar_mode unset
|
||||||
|
bind=,Escape,submap,reset
|
||||||
submap = reset
|
submap = reset
|
||||||
|
|
||||||
|
|
||||||
@@ -588,7 +591,7 @@ in {
|
|||||||
submap = color
|
submap = color
|
||||||
${action_simple { key = "W"; cmd = ''exec,swww query | sed -n 1p | sed -E 's-.*image: (.*)-"\1"-g' | xargs change_colors_json img && notify-send 'change_colors_json img successfull' ''; }}
|
${action_simple { key = "W"; cmd = ''exec,swww query | sed -n 1p | sed -E 's-.*image: (.*)-"\1"-g' | xargs change_colors_json img && notify-send 'change_colors_json img successfull' ''; }}
|
||||||
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && notify-send 'change_colors_json manual successfull' ''; }}
|
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && notify-send 'change_colors_json manual successfull' ''; }}
|
||||||
${action_simple { key = "D"; cmd = ''exec,firefox /home/${user}/.config/color-pallete.html''; }}
|
${action_simple { key = "D"; cmd = ''exec,firefox ${hyper.home}/.config/color-pallete.html''; }}
|
||||||
bind = , Escape, execr, waybar_mode unset
|
bind = , Escape, execr, waybar_mode unset
|
||||||
bind = , Escape, submap, reset
|
bind = , Escape, submap, reset
|
||||||
submap = reset
|
submap = reset
|
||||||
@@ -606,7 +609,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
home.file = let
|
home.file = let
|
||||||
m = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
m = if hyper.host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||||
in {
|
in {
|
||||||
".config/hypr/hyprlock.conf".text = ''
|
".config/hypr/hyprlock.conf".text = ''
|
||||||
background {
|
background {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ config, pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
texlab # LSP
|
texlab # LSP
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
home.packages = with pkgs; [ libnotify ];
|
home.packages = with pkgs; [ libnotify ];
|
||||||
services.mako = with rice; {
|
services.mako = with rice; {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings = {
|
||||||
defaultTimeout = 10000; # in ms
|
defaultTimeout = 10000; # in ms
|
||||||
backgroundColor = color.background;
|
backgroundColor = color.background;
|
||||||
textColor = color.foreground;
|
textColor = color.foreground;
|
||||||
@@ -13,4 +14,5 @@
|
|||||||
anchor = "top-right";
|
anchor = "top-right";
|
||||||
margin = builtins.toString (gap-size * 2) ;
|
margin = builtins.toString (gap-size * 2) ;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# cinny-desktop
|
# cinny-desktop
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
nx2site.ssl_verify = on
|
nx2site.ssl_verify = on
|
||||||
nx2site.username = "nx2"
|
nx2site.username = "nx2"
|
||||||
nx2site.password = "''${sec.data.matrix_nx2site_password}"
|
nx2site.password = "''${sec.data.matrix_nx2site_password}"
|
||||||
nx2site.device_name = "Weechat@${host}"
|
nx2site.device_name = "Weechat@${hyper.host}"
|
||||||
nx2site.autoreconnect_delay = 10
|
nx2site.autoreconnect_delay = 10
|
||||||
nx2site.sso_helper_listening_port = 0
|
nx2site.sso_helper_listening_port = 0
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{ config, pkgs-unstable, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs-unstable; [
|
packages = with pkgs; [
|
||||||
nh
|
nh
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
nvd
|
nvd
|
||||||
];
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
FLAKE = "${config.home.homeDirectory}/nix-dots";
|
NH_FLAKE = "${hyper.home}/nix-dots";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, nvidia, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (nvidia.enable == true)
|
pkgs.lib.mkIf (hyper.nvidia.enable == true)
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
# home.packages = with pkgs; [
|
# home.packages = with pkgs; [
|
||||||
# obs-studio
|
# obs-studio
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, user, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
libreoffice
|
libreoffice
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
ollama
|
||||||
(writers.writePython3Bin "ooo" {
|
(writers.writePython3Bin "ooo" {
|
||||||
libraries = [ pkgs.python3Packages.ollama ];
|
libraries = [ pkgs.python3Packages.ollama ];
|
||||||
flakeIgnore = [ "E501" "E305" "E701" "E704" "E302" "E114" "F841" "E121" ];
|
flakeIgnore = [ "E501" "E305" "E701" "E704" "E302" "E114" "F841" "E121" ];
|
||||||
|
|||||||
38
home-modules/pkgs-list/shell.nix
Normal file
38
home-modules/pkgs-list/shell.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
bat
|
||||||
|
browsh
|
||||||
|
cmake
|
||||||
|
dig
|
||||||
|
du-dust
|
||||||
|
exiftool
|
||||||
|
eza
|
||||||
|
ffmpeg
|
||||||
|
figlet
|
||||||
|
fzf
|
||||||
|
glib
|
||||||
|
glow
|
||||||
|
gnumake
|
||||||
|
htop
|
||||||
|
imagemagick
|
||||||
|
jq
|
||||||
|
lolcat
|
||||||
|
lynx
|
||||||
|
mediainfo
|
||||||
|
mpv
|
||||||
|
neofetch
|
||||||
|
pdfgrep
|
||||||
|
pipes
|
||||||
|
pv
|
||||||
|
reflex
|
||||||
|
ripgrep
|
||||||
|
screen
|
||||||
|
speedtest-go
|
||||||
|
sssnake
|
||||||
|
systemctl-tui
|
||||||
|
tldr
|
||||||
|
w3m
|
||||||
|
yt-dlp
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, secrets, ... }:
|
{ pkgs, hyper, secrets, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.remmina
|
pkgs.remmina
|
||||||
@@ -7,7 +7,7 @@ lib.mkIf (host != "NxACE")
|
|||||||
|
|
||||||
(pkgs.writeShellScriptBin "connect_to_pnx" ''
|
(pkgs.writeShellScriptBin "connect_to_pnx" ''
|
||||||
pushd ~/.vpn/
|
pushd ~/.vpn/
|
||||||
sudo openvpn --config /home/nx2/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
sudo openvpn --config ${hyper.home}/.vpn/ljk-pnx.ovpn --auth-user-pass ~/.vpn/ljk-pnx-pass.txt #gets put there by home-manager
|
||||||
popd
|
popd
|
||||||
'')
|
'')
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
{ pkgs, pkgs-unstable, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
erlang
|
erlang
|
||||||
rebar3
|
rebar3
|
||||||
] ++ (with pkgs-unstable; [
|
|
||||||
gleam
|
gleam
|
||||||
]);
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
nodejs
|
nodejs
|
||||||
|
typescript-language-server
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ let
|
|||||||
my-sent = pkgs.sent.override {
|
my-sent = pkgs.sent.override {
|
||||||
patches = [
|
patches = [
|
||||||
./sent.patch
|
./sent.patch
|
||||||
# /home/${user}/.local/share/sent.patch
|
|
||||||
# (builtins.toFile "/home/${user}/
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ user, inputs, ... }:
|
{ hyper, inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
|
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
|
||||||
gnupg.home = "/home/${user}/.gnupg";
|
gnupg.home = "${hyper.home}/.gnupg";
|
||||||
defaultSopsFile = ../sops-secrets.yaml;
|
defaultSopsFile = ../sops-secrets.yaml;
|
||||||
|
|
||||||
# %r is $XDG_RUNTIME_DIR
|
# %r is $XDG_RUNTIME_DIR
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
{ pkgs, domain, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [ sshfs ];
|
packages = with pkgs; [ sshfs ];
|
||||||
file.".ssh/config".text = ''
|
file.".ssh/config".text = ''
|
||||||
HOST nxace
|
HOST nxace
|
||||||
HostName ssh.${domain}
|
HostName ssh.${hyper.domain}
|
||||||
User nx2
|
User ${hyper.user}
|
||||||
Port 50022
|
Port 50022
|
||||||
|
|
||||||
HOST nxacel
|
HOST nxacel
|
||||||
HostName 10.0.1.1
|
HostName 10.0.1.1
|
||||||
User nx2
|
User ${hyper.user}
|
||||||
Port 50022
|
Port 50022
|
||||||
|
|
||||||
HOST nxrpil
|
HOST nxrpil
|
||||||
HostName 10.0.1.31
|
HostName 10.0.1.31
|
||||||
User nx2
|
User ${hyper.user}
|
||||||
Port 22
|
Port 22
|
||||||
|
|
||||||
HOST nxgit
|
HOST nxgit
|
||||||
HostName ssh.${domain}
|
HostName ssh.${hyper.domain}
|
||||||
User git
|
User git
|
||||||
Port 50022
|
Port 50022
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
{ lib, rice, ... }:
|
{ pkgs, rice, ... }:
|
||||||
{
|
{
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.starship;
|
||||||
# enableBashIntegration = true;
|
# enableBashIntegration = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
settings = with rice.color; {
|
settings = with rice.color; {
|
||||||
add_newline = false;
|
add_newline = false;
|
||||||
format = lib.strings.concatMapStrings (x: "$" + x) [
|
format = pkgs.lib.strings.concatMapStrings (x: "$" + x) [
|
||||||
"jobs"
|
"jobs"
|
||||||
"battery"
|
"battery"
|
||||||
"username"
|
"username"
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{ pkgs, lib, user, ... }:
|
{ pkgs, ... }:
|
||||||
lib.mkIf (user != "tv")
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(writeShellApplication {
|
(writeShellApplication {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ config, pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host == "NxNORTH")
|
pkgs.lib.mkIf (hyper.host == "NxNORTH")
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
virt-manager
|
virt-manager
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ config, pkgs, lib, user, host, rice, allowed, ... }:
|
{ config, pkgs, hyper, rice, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf (host != "NxACE") {
|
config = pkgs.lib.mkIf (hyper.host != "NxACE") {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.vscodium
|
pkgs.vscodium
|
||||||
pkgs.nixpkgs-fmt
|
pkgs.nixpkgs-fmt
|
||||||
@@ -8,6 +8,36 @@
|
|||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscodium;
|
||||||
|
profiles.default ={
|
||||||
|
userSettings = {
|
||||||
|
workbench.colorTheme = "Just Black";
|
||||||
|
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
||||||
|
remote.SSH.useLocalServer = false;
|
||||||
|
};
|
||||||
|
keybindings = [
|
||||||
|
{
|
||||||
|
key = "ctrl+d";
|
||||||
|
command = "editor.action.deleteLines";
|
||||||
|
when = "textInputFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "ctrl+shift+d";
|
||||||
|
command = "editor.action.duplicateSelection";
|
||||||
|
when = "textInputFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# unset so that ctrl d is not set twice
|
||||||
|
key = "";
|
||||||
|
command = "editor.action.addSelectionToNextFindMatch";
|
||||||
|
when = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# unset so that ctrl shift d is not set twice
|
||||||
|
key = "";
|
||||||
|
command = "workbench.view.debug";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
jnoortheen.nix-ide
|
jnoortheen.nix-ide
|
||||||
ms-python.python
|
ms-python.python
|
||||||
@@ -23,8 +53,6 @@
|
|||||||
mads-hartmann.bash-ide-vscode
|
mads-hartmann.bash-ide-vscode
|
||||||
bungcip.better-toml
|
bungcip.better-toml
|
||||||
arrterian.nix-env-selector
|
arrterian.nix-env-selector
|
||||||
# ms-vscode-remote.remote-ssh
|
|
||||||
|
|
||||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
{
|
{
|
||||||
name = "just-black";
|
name = "just-black";
|
||||||
@@ -50,66 +78,27 @@
|
|||||||
version = "0.5.16";
|
version = "0.5.16";
|
||||||
sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
|
sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
|
||||||
}
|
}
|
||||||
# {
|
|
||||||
# name = "remote-ssh-edit";
|
|
||||||
# publisher = "ms-vscode-remote";
|
|
||||||
# version = "0.86.0";
|
|
||||||
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# name = "remote-ssh";
|
|
||||||
# publisher = "ms-vscode-remote";
|
|
||||||
# version = "0.110.2024030715";
|
|
||||||
# sha256 = "sha256-gkxrBwPRDdLFaxc1/vYFBsv4Z0JOhDzb8LrLhkToC/g=";
|
|
||||||
# }
|
|
||||||
];
|
];
|
||||||
userSettings = {
|
|
||||||
workbench.colorTheme = "Just Black";
|
|
||||||
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
|
||||||
remote.SSH.useLocalServer = false;
|
|
||||||
};
|
|
||||||
enableUpdateCheck = false;
|
enableUpdateCheck = false;
|
||||||
enableExtensionUpdateCheck = false;
|
enableExtensionUpdateCheck = false;
|
||||||
keybindings = [
|
};
|
||||||
{
|
|
||||||
key = "ctrl+d";
|
|
||||||
command = "editor.action.deleteLines";
|
|
||||||
when = "textInputFocus";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "ctrl+shift+d";
|
|
||||||
command = "editor.action.duplicateSelection";
|
|
||||||
when = "textInputFocus";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# unset so that ctrl d is not set twice
|
|
||||||
key = "";
|
|
||||||
command = "editor.action.addSelectionToNextFindMatch";
|
|
||||||
when = "editorFocus";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# unset so that ctrl shift d is not set twice
|
|
||||||
key = "";
|
|
||||||
command = "workbench.view.debug";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = if host != "NxACE" then [
|
# imports = if hyper.host != "NxACE" then [
|
||||||
# Make vscode settings writable
|
# # Make vscode settings writable
|
||||||
(import
|
# (import
|
||||||
(builtins.fetchurl {
|
# (builtins.fetchurl {
|
||||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
|
||||||
sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
# sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
|
||||||
})
|
# })
|
||||||
{ inherit config lib; })
|
# { inherit config pkgs; lib = pkgs.lib; })
|
||||||
|
|
||||||
(import
|
# (import
|
||||||
(builtins.fetchurl {
|
# (builtins.fetchurl {
|
||||||
url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
# url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
|
||||||
sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
# sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
|
||||||
})
|
# })
|
||||||
{ inherit config lib pkgs; })
|
# { inherit config pkgs; lib = pkgs.lib; })
|
||||||
] else [];
|
# ] else [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs-unstable, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs-unstable; [
|
home.packages = with pkgs; [
|
||||||
(writers.writePython3Bin "change_colors_json" {
|
(writers.writePython3Bin "change_colors_json" {
|
||||||
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
||||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, rice, domain, user, ... }:
|
{ pkgs, hyper, rice, ... }:
|
||||||
let
|
let
|
||||||
sep = " ";
|
sep = " ";
|
||||||
in {
|
in {
|
||||||
@@ -121,8 +121,8 @@ def get_ongoing_or_next_event(url, username, password):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
password_file = "/home/nx2/.config/sops-nix/secrets/nx2site/radicale/password" # Path to password file
|
password_file = "/home/nx2/.config/sops-nix/secrets/nx2site/radicale/password" # Path to password file
|
||||||
cache_file = "/tmp/caldav_event_cache.json" # Path to cache file
|
cache_file = "/tmp/caldav_event_cache.json" # Path to cache file
|
||||||
url = "https://dav.${domain}/"
|
url = "https://dav.${hyper.domain}/"
|
||||||
username = "${user}"
|
username = "${hyper.user}"
|
||||||
password = get_password(password_file)
|
password = get_password(password_file)
|
||||||
|
|
||||||
event_dict = load_cache(cache_file)
|
event_dict = load_cache(cache_file)
|
||||||
@@ -175,6 +175,7 @@ if __name__ == "__main__":
|
|||||||
margin-bottom = 0;
|
margin-bottom = 0;
|
||||||
margin-right = 0;
|
margin-right = 0;
|
||||||
spacing = 10;
|
spacing = 10;
|
||||||
|
fixed-center = true;
|
||||||
modules-left = [
|
modules-left = [
|
||||||
# "cpu"
|
# "cpu"
|
||||||
# "memory"
|
# "memory"
|
||||||
@@ -189,7 +190,7 @@ if __name__ == "__main__":
|
|||||||
];
|
];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"custom/mode"
|
"custom/mode"
|
||||||
"custom/caldav_event"
|
# "custom/caldav_event"
|
||||||
"custom/cclock"
|
"custom/cclock"
|
||||||
"tray"
|
"tray"
|
||||||
];
|
];
|
||||||
@@ -212,6 +213,7 @@ if __name__ == "__main__":
|
|||||||
format = "${sep}{}";
|
format = "${sep}{}";
|
||||||
exec = "caldav_event";
|
exec = "caldav_event";
|
||||||
restart-interval = 60;
|
restart-interval = 60;
|
||||||
|
max-width = 60;
|
||||||
};
|
};
|
||||||
"custom/mode" = {
|
"custom/mode" = {
|
||||||
exec = "cat /tmp/waybar-mode";
|
exec = "cat /tmp/waybar-mode";
|
||||||
@@ -311,6 +313,10 @@ if __name__ == "__main__":
|
|||||||
color: rgb(${f accent.bright});
|
color: rgb(${f accent.bright});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
font-family: ${rice.font.code.name};
|
||||||
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
color: rgb(${f accent.base});
|
color: rgb(${f accent.base});
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
@@ -335,7 +341,7 @@ if __name__ == "__main__":
|
|||||||
color: rgb(${f red.base});
|
color: rgb(${f red.base});
|
||||||
}
|
}
|
||||||
|
|
||||||
#window, #custom-ctimeremaining {
|
#window, #custom-caldav_event {
|
||||||
font-family: ${rice.font.base.name}, ${rice.font.code.name};
|
font-family: ${rice.font.base.name}, ${rice.font.code.name};
|
||||||
color: rgb(${f tertiary.bright});
|
color: rgb(${f tertiary.bright});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
{ pkgs, system, rice, inputs, ... }:
|
{ pkgs, hyper, rice, inputs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# yazi
|
|
||||||
# dragon
|
|
||||||
unar
|
unar
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs.yazi;
|
# package = pkgs.yazi;
|
||||||
package = inputs.yazi.packages.${system}.default;
|
package = inputs.yazi.packages.${hyper.system}.default;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
shellWrapperName = "ya";
|
shellWrapperName = "ya";
|
||||||
plugins = with inputs.yazi-plugins.packages.${system}; {
|
plugins = with inputs.yazi-plugins.packages.${hyper.system}; {
|
||||||
inherit
|
inherit
|
||||||
# chmod
|
# chmod
|
||||||
starship;
|
starship;
|
||||||
@@ -271,6 +269,7 @@
|
|||||||
{ mime = "audio/*"; use = "play"; }
|
{ mime = "audio/*"; use = "play"; }
|
||||||
|
|
||||||
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
||||||
|
{ mime = "application/javascript"; use = "edit"; }
|
||||||
{ mime = "application/json"; use = "edit"; }
|
{ mime = "application/json"; use = "edit"; }
|
||||||
{ mime = "application/ld+json"; use = "edit"; }
|
{ mime = "application/ld+json"; use = "edit"; }
|
||||||
{ mime = "application/pdf"; use = "document"; }
|
{ mime = "application/pdf"; use = "document"; }
|
||||||
|
|||||||
40
home.nix
40
home.nix
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, pkgs-unstable, lib, host, user, inputs, ... }:
|
{ pkgs, hyper, inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./home-modules/auto-mount.nix
|
./home-modules/auto-mount.nix
|
||||||
@@ -12,7 +12,6 @@
|
|||||||
./home-modules/email.nix
|
./home-modules/email.nix
|
||||||
./home-modules/firefox.nix
|
./home-modules/firefox.nix
|
||||||
./home-modules/fish.nix
|
./home-modules/fish.nix
|
||||||
# ./home-modules/foot.nix
|
|
||||||
./home-modules/games.nix
|
./home-modules/games.nix
|
||||||
./home-modules/gestures.nix
|
./home-modules/gestures.nix
|
||||||
./home-modules/ghostty.nix
|
./home-modules/ghostty.nix
|
||||||
@@ -32,7 +31,6 @@
|
|||||||
./home-modules/nixd.nix
|
./home-modules/nixd.nix
|
||||||
./home-modules/nvidia.nix
|
./home-modules/nvidia.nix
|
||||||
./home-modules/nxgs.nix
|
./home-modules/nxgs.nix
|
||||||
# ./home-modules/nx-gcal-event.nix
|
|
||||||
./home-modules/obs.nix
|
./home-modules/obs.nix
|
||||||
./home-modules/office.nix
|
./home-modules/office.nix
|
||||||
./home-modules/ollama.nix
|
./home-modules/ollama.nix
|
||||||
@@ -61,13 +59,14 @@
|
|||||||
./home-modules/yazi.nix
|
./home-modules/yazi.nix
|
||||||
./home-modules/zathura.nix
|
./home-modules/zathura.nix
|
||||||
./home-modules/zoxide.nix
|
./home-modules/zoxide.nix
|
||||||
] ++ (if (host == "NxACE") then [
|
] ++ (if (hyper.host == "NxACE") then [
|
||||||
./home-modules/nx2site.nix
|
./home-modules/nx2site.nix
|
||||||
./home-modules/nx2site-backup.nix
|
./home-modules/nx2site-backup.nix
|
||||||
] else []);
|
] else []);
|
||||||
home.username = user;
|
home.username = hyper.user;
|
||||||
home.homeDirectory = "/home/${user}";
|
# home.homeDirectory = hyper.home; # for some reason you cant use hyper.home here
|
||||||
home.stateVersion = "24.05";
|
home.homeDirectory = "/home/${hyper.user}";
|
||||||
|
home.stateVersion = pkgs.version;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bat
|
bat
|
||||||
brightnessctl
|
brightnessctl
|
||||||
@@ -110,41 +109,38 @@
|
|||||||
swww
|
swww
|
||||||
systemctl-tui
|
systemctl-tui
|
||||||
tldr
|
tldr
|
||||||
|
unstable.firefox
|
||||||
|
unstable.spotify
|
||||||
w3m
|
w3m
|
||||||
wev
|
wev
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
xclip
|
xclip
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
xournal
|
# xournal
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
|
||||||
inputs.zen-browser.packages."${system}".default
|
inputs.zen-browser.packages."${system}".default
|
||||||
|
|
||||||
] ++ (with pkgs-unstable; [
|
] ++ (if hyper.host != "NxACE" then [
|
||||||
firefox
|
|
||||||
spotify
|
|
||||||
]) ++ (if host != "NxACE" then (with pkgs; [
|
|
||||||
signal-desktop
|
signal-desktop
|
||||||
obsidian
|
obsidian
|
||||||
zoom-us
|
zoom-us
|
||||||
inkscape
|
inkscape
|
||||||
]) else (with pkgs-unstable; [
|
] else {
|
||||||
|
|
||||||
]));
|
});
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configHome = /home/${user}/.config;
|
configHome = "${hyper.home}.config";
|
||||||
cacheHome = /home/${user}/.cache;
|
cacheHome = "${hyper.home}.cache";
|
||||||
dataHome = /home/${user}/.local/share;
|
dataHome = "${hyper.home}.local/share";
|
||||||
stateHome = /home/${user}/.local/state;
|
stateHome = "${hyper.home}.local/state";
|
||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications =
|
defaultApplications = let
|
||||||
let
|
|
||||||
browser = "firefox.desktop";
|
browser = "firefox.desktop";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
"default-web-browser" = [ browser ];
|
"default-web-browser" = [ browser ];
|
||||||
"text/html" = [ browser ];
|
"text/html" = [ browser ];
|
||||||
"text/htm" = [ browser ];
|
"text/htm" = [ browser ];
|
||||||
|
|||||||
22
nixos-wsl.nix
Normal file
22
nixos-wsl.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ pkgs, hyper, inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixos-wsl.nixosModules.default
|
||||||
|
./system-modules/users.nix
|
||||||
|
./system-modules/gc.nix
|
||||||
|
./system-modules/docker.nix
|
||||||
|
./system-modules/gpg.nix
|
||||||
|
./system-modules/networking.nix
|
||||||
|
./system-modules/nixd.nix
|
||||||
|
# ./system-modules/sops.nix
|
||||||
|
# ./system-modules/sshd.nix
|
||||||
|
# ./system-modules/syncthing.nix
|
||||||
|
];
|
||||||
|
system.stateVersion = pkgs.version;
|
||||||
|
# system.stateVersion = "24.11";
|
||||||
|
wsl = {
|
||||||
|
defaultUser = hyper.user;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
}
|
||||||
44
shell-only.nix
Normal file
44
shell-only.nix
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{ pkgs, hyper, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./home-modules/bash.nix
|
||||||
|
./home-modules/color-pallete.nix
|
||||||
|
./home-modules/direnv.nix
|
||||||
|
./home-modules/fish.nix
|
||||||
|
./home-modules/git.nix
|
||||||
|
./home-modules/gpg.nix
|
||||||
|
./home-modules/helix.nix
|
||||||
|
./home-modules/latex.nix
|
||||||
|
./home-modules/nh.nix
|
||||||
|
./home-modules/nixd.nix
|
||||||
|
./home-modules/nxgs.nix
|
||||||
|
./home-modules/pandoc.nix
|
||||||
|
./home-modules/programming/c.nix
|
||||||
|
./home-modules/programming/gleam.nix
|
||||||
|
./home-modules/programming/go.nix
|
||||||
|
./home-modules/programming/java.nix
|
||||||
|
./home-modules/programming/js.nix
|
||||||
|
./home-modules/programming/python.nix
|
||||||
|
# ./home-modules/sops.nix
|
||||||
|
./home-modules/ssh.nix
|
||||||
|
./home-modules/starship.nix
|
||||||
|
./home-modules/vale.nix
|
||||||
|
./home-modules/yazi.nix
|
||||||
|
./home-modules/zoxide.nix
|
||||||
|
|
||||||
|
./home-modules/pkgs-list/shell.nix
|
||||||
|
];
|
||||||
|
home.username = hyper.user;
|
||||||
|
# home.homeDirectory = hyper.home; # for some reason you cant use hyper.home here
|
||||||
|
home.homeDirectory = "/home/${hyper.user}";
|
||||||
|
home.stateVersion = pkgs.version;
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
configHome = "${hyper.home}/.config";
|
||||||
|
cacheHome = "${hyper.home}/.cache";
|
||||||
|
dataHome = "${hyper.home}/.local/share";
|
||||||
|
stateHome = "${hyper.home}/.local/state";
|
||||||
|
};
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -47,10 +47,6 @@ eduroam:
|
|||||||
hsmw-vpn-secret: ENC[AES256_GCM,data:3bKxRGTQcbhRjzARSpYBW5ekQW/U/ixzNiFmO36gw0NKyDMLlbVbJBqXvi71M0GXgmo/FA==,iv:7bVDA8u9apDNXFY/vEMbz/0HywG5Pyrl5JfZrcNCr8w=,tag:xz4j7cEc5hvLwrItWjkx0Q==,type:str]
|
hsmw-vpn-secret: ENC[AES256_GCM,data:3bKxRGTQcbhRjzARSpYBW5ekQW/U/ixzNiFmO36gw0NKyDMLlbVbJBqXvi71M0GXgmo/FA==,iv:7bVDA8u9apDNXFY/vEMbz/0HywG5Pyrl5JfZrcNCr8w=,tag:xz4j7cEc5hvLwrItWjkx0Q==,type:str]
|
||||||
postgres-pw: ENC[AES256_GCM,data:D9b7IbvLshmRuSyF9+V3WqVf/95+OhCJm0g=,iv:D4tpzEBzcCatbnQwtOGn8X0QSrXOye20rXaw8TSB7Gk=,tag:Q0B/86eDKkhu0Jnln1sUyg==,type:str]
|
postgres-pw: ENC[AES256_GCM,data:D9b7IbvLshmRuSyF9+V3WqVf/95+OhCJm0g=,iv:D4tpzEBzcCatbnQwtOGn8X0QSrXOye20rXaw8TSB7Gk=,tag:Q0B/86eDKkhu0Jnln1sUyg==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
age:
|
||||||
- recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
|
- recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
|
||||||
enc: |
|
enc: |
|
||||||
@@ -88,8 +84,8 @@ sops:
|
|||||||
SHJLR3lvdlFiRmJuU25RUHFFTmpjamMKbzycdDvQBAuOiRROTZEQSnaXoPapz73L
|
SHJLR3lvdlFiRmJuU25RUHFFTmpjamMKbzycdDvQBAuOiRROTZEQSnaXoPapz73L
|
||||||
yVS9EUP25FSx/sGqRqaCefbeaybuM1aso6LDnlomv4Bib7zjugWKSw==
|
yVS9EUP25FSx/sGqRqaCefbeaybuM1aso6LDnlomv4Bib7zjugWKSw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-03-07T17:02:01Z"
|
lastmodified: "2025-05-27T09:47:30Z"
|
||||||
mac: ENC[AES256_GCM,data:js375bjy8Z4ApUXbw4eIqNl5BBgeX2bwMFBCx63LNCsb56OlHyYobQGtL1CwcDGW/+hwVLJSxbEDwqzJiu5vQ/2Cp00nVwvumHrvqZi/Ka4r87uNd6psE4nMq6ROHP0kJm6STKqd6MDyuLRjfX5zrki7ZhYTWsYS90/d9SUHUj8=,iv:W3w1f7lkL3fuOWmNhLUsOTKG18+wLhWA04GjygDIUEc=,tag:AYy9O7OcsY2W4VbOzyM5oA==,type:str]
|
mac: ENC[AES256_GCM,data:B+XFym/hSq5ntjm7N2b2026tyX8jVfUcHBIbe+UIPtVNoT9Mx95vlcBnF/6+KrsI1VIe2x1rraIt0KyVVg6g3S0LVfDZumMvgjTtGQIJsLwz0UOOnkX1CBJYpca+Ec1ojtp/7xKFxBuBTuQIPsrDWF+myqvdkYF9Gb0mjMvGbdo=,iv:WAGuWuFBVwY39SBoW5JXtZMAKmzqaQSV7rBcWYQzQ1s=,tag:rQuoAh22DgFTx7iilgT74A==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-06-09T19:44:41Z"
|
- created_at: "2024-06-09T19:44:41Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
@@ -104,4 +100,4 @@ sops:
|
|||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634
|
fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.4
|
version: 3.10.2
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, host, lib, ... }:
|
{ pkgs, hyper, lib, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
adbfs-rootless
|
adbfs-rootless
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ config, pkgs, pkgs-unstable, lib, host, domain, inputs, ... }:
|
{ config, pkgs, hyper, inputs, ... }:
|
||||||
let
|
let
|
||||||
grub-theme-ascii-diana = (pkgs.fetchFromGitea {
|
grub-theme-ascii-diana = (pkgs.fetchFromGitea {
|
||||||
domain = "git.${domain}";
|
domain = "git.${hyper.domain}";
|
||||||
owner = "nx2";
|
owner = "nx2";
|
||||||
repo = "grub-theme-ascii-diana";
|
repo = "grub-theme-ascii-diana";
|
||||||
rev = "0.5.0";
|
rev = "0.5.0";
|
||||||
@@ -9,10 +9,10 @@ let
|
|||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = if host == "NxNORTH" then [
|
imports = if hyper.host == "NxNORTH" then [
|
||||||
inputs.lanzaboote.nixosModules.lanzaboote
|
inputs.lanzaboote.nixosModules.lanzaboote
|
||||||
] else [];
|
] else [];
|
||||||
config = if host == "NxNORTH" then {
|
config = if hyper.host == "NxNORTH" then {
|
||||||
# I have to boot with secureboot becasue of the chinese spyware called Vanguard
|
# I have to boot with secureboot becasue of the chinese spyware called Vanguard
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ sbctl ];
|
environment.systemPackages = with pkgs; [ sbctl ];
|
||||||
@@ -22,7 +22,7 @@ in
|
|||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
pkiBundle = "/etc/secureboot";
|
pkiBundle = "/etc/secureboot";
|
||||||
package = lib.mkForce (pkgs.writeShellApplication {
|
package = pkgs.lib.mkForce (pkgs.writeShellApplication {
|
||||||
name = "lzbt";
|
name = "lzbt";
|
||||||
runtimeInputs = [
|
runtimeInputs = [
|
||||||
inputs.lanzaboote.packages.x86_64-linux.tool
|
inputs.lanzaboote.packages.x86_64-linux.tool
|
||||||
@@ -74,13 +74,13 @@ in
|
|||||||
# '';
|
# '';
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
kernelPackages = pkgs-unstable.linuxPackages_zen;
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = [ "v4l2loopback" ];
|
||||||
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1'';
|
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1'';
|
||||||
};
|
};
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
} else if host == "NxXPS" then {
|
} else if hyper.host == "NxXPS" then {
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
@@ -103,7 +103,7 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
kernelPackages = pkgs-unstable.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = [ "v4l2loopback" ];
|
||||||
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS VCam" exclusive_caps=1'';
|
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS VCam" exclusive_caps=1'';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, user, domain, ... }:
|
{ config, pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
systemd.timers."nx_cal_lec" = {
|
systemd.timers."nx_cal_lec" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -74,7 +74,7 @@ def fetch_and_save_ical_events(ical_url, save_path):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Replace with your iCal URL and target file path
|
# Replace with your iCal URL and target file path
|
||||||
ICAL_URL = "https://zlypher.github.io/lol-events/cal/league-of-legends-lec.ical"
|
ICAL_URL = "https://zlypher.github.io/lol-events/cal/league-of-legends-lec.ical"
|
||||||
SAVE_PATH = "${config.services.nginx.virtualHosts."${domain}".root}/lec.ics"
|
SAVE_PATH = "${config.services.nginx.virtualHosts."${hyper.domain}".root}/lec.ics"
|
||||||
|
|
||||||
fetch_and_save_ical_events(ICAL_URL, SAVE_PATH)
|
fetch_and_save_ical_events(ICAL_URL, SAVE_PATH)
|
||||||
'');
|
'');
|
||||||
@@ -83,7 +83,7 @@ if __name__ == "__main__":
|
|||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "nx2";
|
User = hyper.user;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, domain, ... }:
|
{ config, pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
systemd.timers."nx_cal_lr" = {
|
systemd.timers."nx_cal_lr" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -59,7 +59,7 @@ def fetch_and_save_ical_events(ical_url, save_path):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Replace with your iCal URL and target file path
|
# Replace with your iCal URL and target file path
|
||||||
ICAL_URL = "https://zlypher.github.io/lol-events/cal/league-of-legends-nlc.ical"
|
ICAL_URL = "https://zlypher.github.io/lol-events/cal/league-of-legends-nlc.ical"
|
||||||
SAVE_PATH = "${config.services.nginx.virtualHosts."${domain}".root}/lr.ics"
|
SAVE_PATH = "${config.services.nginx.virtualHosts."${hyper.domain}".root}/lr.ics"
|
||||||
|
|
||||||
fetch_and_save_ical_events(ICAL_URL, SAVE_PATH)
|
fetch_and_save_ical_events(ICAL_URL, SAVE_PATH)
|
||||||
'');
|
'');
|
||||||
@@ -68,7 +68,7 @@ if __name__ == "__main__":
|
|||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "nx2";
|
User = hyper.user;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, user, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
let
|
let
|
||||||
radicale-root = "/var/lib/radicale";
|
radicale-root = "/var/lib/radicale";
|
||||||
web-root = "/var/nginx/webroot";
|
web-root = "/var/nginx/webroot";
|
||||||
@@ -115,11 +115,11 @@ def combine_ics_from_directories(directories, output_file):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# List of directories containing .ics files
|
# List of directories containing .ics files
|
||||||
DIRECTORIES = [
|
DIRECTORIES = [
|
||||||
"${radicale-root}/collections/collection-root/${user}/preservation",
|
"${radicale-root}/collections/collection-root/${hyper.user}/preservation",
|
||||||
"${radicale-root}/collections/collection-root/${user}/effort",
|
"${radicale-root}/collections/collection-root/${hyper.user}/effort",
|
||||||
"${radicale-root}/collections/collection-root/${user}/experience",
|
"${radicale-root}/collections/collection-root/${hyper.user}/experience",
|
||||||
"${radicale-root}/collections/collection-root/${user}/exposure",
|
"${radicale-root}/collections/collection-root/${hyper.user}/exposure",
|
||||||
"${radicale-root}/collections/collection-root/${user}/engagement",
|
"${radicale-root}/collections/collection-root/${hyper.user}/engagement",
|
||||||
]
|
]
|
||||||
|
|
||||||
# Path to the output .ics file
|
# Path to the output .ics file
|
||||||
@@ -132,7 +132,7 @@ if __name__ == "__main__":
|
|||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "nx2";
|
User = hyper.user;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{ pkgs, user, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = rec {
|
settings = rec {
|
||||||
hyprland = {
|
hyprland = {
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland --remember-user-session --window-padding 5";
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland --remember-user-session --window-padding 5";
|
||||||
user = user;
|
user = hyper.user;
|
||||||
};
|
};
|
||||||
default_session = hyprland;
|
default_session = hyprland;
|
||||||
vt = 2;
|
vt = 2;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, user, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
# vpnKitMaxPortIdleTime = 0;
|
# vpnKitMaxPortIdleTime = 0;
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
users.users."${user}".extraGroups = [ "docker" ];
|
users.users."${hyper.user}".extraGroups = [ "docker" ];
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
80
|
80
|
||||||
443
|
443
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
{
|
{ pkgs, rice, ... }:
|
||||||
pkgs,
|
|
||||||
# pkgs-unstable,
|
|
||||||
rice,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
@@ -12,10 +7,14 @@
|
|||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
newcomputermodern
|
newcomputermodern
|
||||||
atkinson-hyperlegible
|
atkinson-hyperlegible
|
||||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
nerd-fonts.jetbrains-mono
|
||||||
|
nerd-fonts.zed-mono
|
||||||
|
nerd-fonts.profont
|
||||||
|
nerd-fonts.proggy-clean-tt
|
||||||
|
nerd-fonts.heavy-data
|
||||||
|
nerd-fonts._3270
|
||||||
] ++ (with rice.font; [
|
] ++ (with rice.font; [
|
||||||
base.package
|
base.package
|
||||||
code.package
|
code.package
|
||||||
# ]) ++ (with pkgs-unstable; [
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{ lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host == "NxNORTH" || host == "NxACE")
|
pkgs.lib.mkIf (hyper.host == "NxNORTH" || hyper.host == "NxACE")
|
||||||
# lib.mkIf (host == "NxNORTH")
|
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
steam = {
|
steam = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, lib, user, host, pkgs, modulesPath, ... }:
|
{ config, pkgs, hyper, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
@@ -13,10 +13,10 @@
|
|||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems = if host != "NxACE" then {
|
fileSystems = if hyper.host != "NxACE" then {
|
||||||
"/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
"/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
||||||
"/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; };
|
"/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; };
|
||||||
"/home/${user}/shared" = { device = "/dev/disk/by-label/shared"; fsType = "ntfs"; options = [ "uid=1000" "gid=100" ]; };
|
"/home/${hyper.user}/shared" = { device = "/dev/disk/by-label/shared"; fsType = "ntfs"; options = [ "uid=1000" "gid=100" ]; };
|
||||||
} else {
|
} else {
|
||||||
"/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
"/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
||||||
"/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; };
|
"/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; };
|
||||||
@@ -29,24 +29,24 @@
|
|||||||
{ device = "/dev/disk/by-label/swap"; }
|
{ device = "/dev/disk/by-label/swap"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = pkgs.lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = pkgs.lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = pkgs.lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
# from nixos-hardware
|
# from nixos-hardware
|
||||||
services.thermald.enable = lib.mkDefault true;
|
services.thermald.enable = pkgs.lib.mkDefault true;
|
||||||
boot.extraModprobeConfig = if host == "NxXPS" then ''
|
boot.extraModprobeConfig = if hyper.host == "NxXPS" then ''
|
||||||
options iwlwifi 11n_disable=8
|
options iwlwifi 11n_disable=8
|
||||||
'' else "";
|
'' else "";
|
||||||
boot.initrd.kernelModules = if host == "NxXPS" then [ "i915" ] else [];
|
boot.initrd.kernelModules = if hyper.host == "NxXPS" then [ "i915" ] else [];
|
||||||
|
|
||||||
environment.variables = if host == "NxXPS" then {
|
environment.variables = if hyper.host == "NxXPS" then {
|
||||||
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
|
VDPAU_DRIVER = pkgs.lib.mkIf config.hardware.graphics.enable (pkgs.lib.mkDefault "va_gl");
|
||||||
} else {};
|
} else {};
|
||||||
|
|
||||||
hardware.graphics.extraPackages = if host == "NxXPS" then with pkgs; [
|
hardware.graphics.extraPackages = if hyper.host == "NxXPS" then with pkgs; [
|
||||||
(if (lib.versionOlder (lib.versions.majorMinor lib.version) "24.11") then vaapiIntel else intel-vaapi-driver)
|
(if (lib.versionOlder (lib.versions.majorMinor lib.version) "25.05") then vaapiIntel else intel-vaapi-driver)
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
] else [];
|
] else [];
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
pkgs.lib.mkIf (hyper.host != "NxACE")
|
||||||
{
|
{
|
||||||
systemd.timers."health_reminder" = {
|
systemd.timers."health_reminder" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -56,7 +56,7 @@ lib.mkIf (host != "NxACE")
|
|||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "nx2";
|
User = hyper.user;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs-unstable, user, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
let p = pkgs-unstable; in
|
let p = pkgs; in
|
||||||
{
|
{
|
||||||
environment.systemPackages = with p; [
|
environment.systemPackages = with p; [
|
||||||
hugo
|
hugo
|
||||||
@@ -11,7 +11,7 @@ let p = pkgs-unstable; in
|
|||||||
"hugo".name = "hugo";
|
"hugo".name = "hugo";
|
||||||
};
|
};
|
||||||
users = {
|
users = {
|
||||||
"${user}".extraGroups = [ "hugo" ];
|
"${hyper.user}".extraGroups = [ "hugo" ];
|
||||||
"nginx".extraGroups = [ "hugo" ];
|
"nginx".extraGroups = [ "hugo" ];
|
||||||
"hugo" = {
|
"hugo" = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, host, secrets, ... }:
|
{ pkgs, hyper, secrets, ... }:
|
||||||
{
|
{
|
||||||
# sops.secrets = {
|
# sops.secrets = {
|
||||||
# "wireless-networking.env" = {};
|
# "wireless-networking.env" = {};
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
"8.8.8.8"
|
"8.8.8.8"
|
||||||
];
|
];
|
||||||
hostName = host;
|
hostName = hyper.host;
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
@@ -21,14 +21,4 @@
|
|||||||
8080
|
8080
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
environment.etc = {
|
|
||||||
"ssl/certs/tuda-eduroam-root.crt".source = "${pkgs.cacert.unbundled}/etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2:1.crt";
|
|
||||||
};
|
|
||||||
sops.secrets = {
|
|
||||||
"eduroam/tuda_nmconnection" = {
|
|
||||||
mode = "0600";
|
|
||||||
owner = "root";
|
|
||||||
path = "/etc/NetworkManager/system-connections/eduroam.nmconnection";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ config, pkgs, lib, nvidia, ... }:
|
{ config, pkgs, hyper, ... }:
|
||||||
lib.mkIf nvidia.enable
|
pkgs.lib.mkIf hyper.nvidia.enable
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
lshw
|
lshw
|
||||||
@@ -21,7 +21,7 @@ lib.mkIf nvidia.enable
|
|||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
nvidia = {
|
nvidia = {
|
||||||
prime = lib.mkIf nvidia.prime {
|
prime = pkgs.lib.mkIf hyper.nvidia.prime {
|
||||||
intelBusId = "PCI:0:2:0";
|
intelBusId = "PCI:0:2:0";
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
offload = {
|
offload = {
|
||||||
@@ -41,7 +41,7 @@ lib.mkIf nvidia.enable
|
|||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
powerManagement.finegrained = nvidia.prime;
|
powerManagement.finegrained = hyper.nvidia.prime;
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
# independent third-party "nouveau" open source driver).
|
# independent third-party "nouveau" open source driver).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, user, domain, secrets, ... }:
|
{ config, pkgs, hyper, secrets, ... }:
|
||||||
let dns-user = "cloudflare"; in
|
let dns-user = "cloudflare"; in
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
@@ -15,7 +15,7 @@ let dns-user = "cloudflare"; in
|
|||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = dns-user;
|
group = dns-user;
|
||||||
};
|
};
|
||||||
"${user}".extraGroups = [ dns-user ];
|
"${hyper.user}".extraGroups = [ dns-user ];
|
||||||
};
|
};
|
||||||
groups."${dns-user}" = {};
|
groups."${dns-user}" = {};
|
||||||
};
|
};
|
||||||
@@ -85,14 +85,14 @@ def main():
|
|||||||
|
|
||||||
# Perform DNS updates
|
# Perform DNS updates
|
||||||
# https://developers.cloudflare.com/api/operations/dns-records-for-a-zone-update-dns-record
|
# https://developers.cloudflare.com/api/operations/dns-records-for-a-zone-update-dns-record
|
||||||
print(f"${domain}: {update_record(record_id="${record_id.base}", record_name="${domain}", ip=my_ip, type="A", proxied=True, pw=pw).status_code}", end=", ")
|
print(f"${hyper.domain}: {update_record(record_id="${record_id.base}", record_name="${hyper.domain}", ip=my_ip, type="A", proxied=True, pw=pw).status_code}", end=", ")
|
||||||
print(f"*.${domain}: {update_record(record_id="${record_id.sub}", record_name="*.${domain}", ip=my_ip, type="A", proxied=True, pw=pw).status_code}", end=", ")
|
print(f"*.${hyper.domain}: {update_record(record_id="${record_id.sub}", record_name="*.${hyper.domain}", ip=my_ip, type="A", proxied=True, pw=pw).status_code}", end=", ")
|
||||||
print(f"ssh.${domain}: {update_record(record_id="${record_id.ssh}", record_name="ssh.${domain}", ip=my_ip, type="A", proxied=False, pw=pw).status_code}", end=", ")
|
print(f"ssh.${hyper.domain}: {update_record(record_id="${record_id.ssh}", record_name="ssh.${hyper.domain}", ip=my_ip, type="A", proxied=False, pw=pw).status_code}", end=", ")
|
||||||
print(f"dev.${domain}: {update_record(record_id="${record_id.dev}", record_name="dev.${domain}", ip=my_ip, type="A", proxied=False, pw=pw).status_code}", end=", ")
|
print(f"dev.${hyper.domain}: {update_record(record_id="${record_id.dev}", record_name="dev.${hyper.domain}", ip=my_ip, type="A", proxied=False, pw=pw).status_code}", end=", ")
|
||||||
|
|
||||||
print(f"${domain}: {update_record(record_id="${record_id.base6}", record_name="${domain}", ip=my_ip6, type="AAAA", proxied=True, pw=pw).status_code}", end=", ")
|
print(f"${hyper.domain}: {update_record(record_id="${record_id.base6}", record_name="${hyper.domain}", ip=my_ip6, type="AAAA", proxied=True, pw=pw).status_code}", end=", ")
|
||||||
print(f"*.${domain}: {update_record(record_id="${record_id.sub6}", record_name="*.${domain}", ip=my_ip6, type="AAAA", proxied=True, pw=pw).status_code}", end=", ")
|
print(f"*.${hyper.domain}: {update_record(record_id="${record_id.sub6}", record_name="*.${hyper.domain}", ip=my_ip6, type="AAAA", proxied=True, pw=pw).status_code}", end=", ")
|
||||||
print(f"ssh.${domain}: {update_record(record_id="${record_id.ssh6}", record_name="ssh.${domain}", ip=my_ip6, type="AAAA", proxied=False, pw=pw).status_code}", end="")
|
print(f"ssh.${hyper.domain}: {update_record(record_id="${record_id.ssh6}", record_name="ssh.${hyper.domain}", ip=my_ip6, type="AAAA", proxied=False, pw=pw).status_code}", end="")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, domain, ... }:
|
{ config, pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
# "nx2site/namecheap.pw" = { };
|
# "nx2site/namecheap.pw" = { };
|
||||||
@@ -8,13 +8,14 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.cloudflare-dyndns = {
|
services.cloudflare-dyndns = {
|
||||||
|
pkgs = pkgs.cloudflare-dyndns;
|
||||||
enable = true;
|
enable = true;
|
||||||
ipv4 = true;
|
ipv4 = true;
|
||||||
ipv6 = config.networking.enableIPv6;
|
ipv6 = config.networking.enableIPv6;
|
||||||
domains = [
|
domains = [
|
||||||
"${domain}"
|
"${hyper.domain}"
|
||||||
"*.${domain}"
|
"*.${hyper.domain}"
|
||||||
"ssh.${domain}"
|
"ssh.${hyper.domain}"
|
||||||
];
|
];
|
||||||
proxied = true;
|
proxied = true;
|
||||||
apiTokenFile = config.sops.secrets."nx2site/cloudflare/global-api-key-env".path;
|
apiTokenFile = config.sops.secrets."nx2site/cloudflare/global-api-key-env".path;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, secrets, user, domain, ... }:
|
{ config, pkgs, hyper, secrets, ... }:
|
||||||
let git-user = "git"; in
|
let git-user = "git"; in
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
@@ -7,13 +7,13 @@ let git-user = "git"; in
|
|||||||
|
|
||||||
users = {
|
users = {
|
||||||
users = {
|
users = {
|
||||||
"${user}".extraGroups = [ git-user ];
|
"${hyper.user}".extraGroups = [ git-user ];
|
||||||
"${git-user}" = {
|
"${git-user}" = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = git-user;
|
group = git-user;
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
home = config.services.gitea.stateDir;
|
home = config.services.gitea.stateDir;
|
||||||
openssh.authorizedKeys.keys = config.users.users."${user}".openssh.authorizedKeys.keys;
|
openssh.authorizedKeys.keys = config.users.users."${hyper.user}".openssh.authorizedKeys.keys;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
groups."${git-user}" = {};
|
groups."${git-user}" = {};
|
||||||
@@ -63,12 +63,12 @@ let git-user = "git"; in
|
|||||||
START_SSH_SERVER = false; # default
|
START_SSH_SERVER = false; # default
|
||||||
SSH_LISTEN_HOST = "0.0.0.0";
|
SSH_LISTEN_HOST = "0.0.0.0";
|
||||||
SSH_PORT = secrets.ssh.port;
|
SSH_PORT = secrets.ssh.port;
|
||||||
DOMAIN = "git.${domain}";
|
DOMAIN = "git.${hyper.domain}";
|
||||||
SSH_DOMAIN = "ssh.${domain}";
|
SSH_DOMAIN = "ssh.${hyper.domain}";
|
||||||
# HTTP_ADDR = "${config.services.gitea.settings.server.DOMAIN}";
|
# HTTP_ADDR = "${config.services.gitea.settings.server.DOMAIN}";
|
||||||
# HTTP_PORT = 3000; # default
|
# HTTP_PORT = 3000; # default
|
||||||
# PROTOCOL = "http"; # default
|
# PROTOCOL = "http"; # default
|
||||||
ROOT_URL = "https://git.${domain}/"; # default
|
ROOT_URL = "https://git.${hyper.domain}/"; # default
|
||||||
};
|
};
|
||||||
session = {
|
session = {
|
||||||
COOKIE_SECURE = true;
|
COOKIE_SECURE = true;
|
||||||
@@ -90,7 +90,7 @@ let git-user = "git"; in
|
|||||||
# hash = "sha256-Eibgoc3BJUXWdq8irgXea09fAvfKx2eQrJotp3P5DTg=";
|
# hash = "sha256-Eibgoc3BJUXWdq8irgXea09fAvfKx2eQrJotp3P5DTg=";
|
||||||
# };
|
# };
|
||||||
theme = pkgs.fetchFromGitea {
|
theme = pkgs.fetchFromGitea {
|
||||||
domain = "git.${domain}";
|
domain = "git.${hyper.domain}";
|
||||||
owner = "nx2";
|
owner = "nx2";
|
||||||
repo = "Gitea-Pitch-Black";
|
repo = "Gitea-Pitch-Black";
|
||||||
rev = "0.1.1";
|
rev = "0.1.1";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, domain, ... }:
|
{ config, hyper, ... }:
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"nx2site/nextcloud/admin-pass" = { owner = "nextcloud"; };
|
"nx2site/nextcloud/admin-pass" = { owner = "nextcloud"; };
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
services = {
|
services = {
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hostName = "nc.${domain}";
|
hostName = "nc.${hyper.domain}";
|
||||||
https = true;
|
https = true;
|
||||||
configureRedis = true;
|
configureRedis = true;
|
||||||
config = {
|
config = {
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
{ pkgs, domain, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
open-web-calendar = {
|
open-web-calendar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
domain = "cal.${domain}";
|
domain = "cal.${hyper.domain}";
|
||||||
package = pkgs.open-web-calendar;
|
package = pkgs.open-web-calendar;
|
||||||
settings = {
|
settings = {
|
||||||
# PORT = 21342;
|
# PORT = 21342;
|
||||||
};
|
};
|
||||||
calendarSettings = {
|
calendarSettings = { };
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, secrets, domain, user, ... }:
|
{ config, pkgs, hyper, secrets, ... }:
|
||||||
let paperless-user = "paperless"; in
|
let paperless-user = "paperless"; in
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
@@ -8,7 +8,7 @@ let paperless-user = "paperless"; in
|
|||||||
};
|
};
|
||||||
|
|
||||||
users.users = {
|
users.users = {
|
||||||
"${user}".extraGroups = [ paperless-user ];
|
"${hyper.user}".extraGroups = [ paperless-user ];
|
||||||
"${paperless-user}".extraGroups = [ "redis-paperless" ];
|
"${paperless-user}".extraGroups = [ "redis-paperless" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ let paperless-user = "paperless"; in
|
|||||||
# PAPERLESS_LOGROTATE_MAX_SIZE= 1 MiB.
|
# PAPERLESS_LOGROTATE_MAX_SIZE= 1 MiB.
|
||||||
# PAPERLESS_LOGROTATE_MAX_BACKUPS= 20.
|
# PAPERLESS_LOGROTATE_MAX_BACKUPS= 20.
|
||||||
# PAPERLESS_SECRET_KEY=
|
# PAPERLESS_SECRET_KEY=
|
||||||
PAPERLESS_URL = "https://doc.${domain}";
|
PAPERLESS_URL = "https://doc.${hyper.domain}";
|
||||||
# PAPERLESS_CSRF_TRUSTED_ORIGINS=
|
# PAPERLESS_CSRF_TRUSTED_ORIGINS=
|
||||||
# PAPERLESS_ALLOWED_HOSTS=
|
# PAPERLESS_ALLOWED_HOSTS=
|
||||||
# PAPERLESS_CORS_ALLOWED_HOSTS=
|
# PAPERLESS_CORS_ALLOWED_HOSTS=
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, lib, domain, ... }:
|
{ config, hyper, pkgs, ... }:
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"nx2site/sslCertificate.pem" = { owner = config.services.nginx.user; };
|
"nx2site/sslCertificate.pem" = { owner = config.services.nginx.user; };
|
||||||
@@ -8,13 +8,13 @@
|
|||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults = {
|
defaults = {
|
||||||
email = "acme@${domain}";
|
email = "acme@${hyper.domain}";
|
||||||
webroot = "/var/nginx/webroot";
|
webroot = "/var/nginx/webroot";
|
||||||
group = "nginx";
|
group = "nginx";
|
||||||
};
|
};
|
||||||
certs = {
|
certs = {
|
||||||
"${domain}" = {
|
"${hyper.domain}" = {
|
||||||
extraDomainNames = builtins.map (subd: "${subd}.${domain}") [ "sync" ];
|
extraDomainNames = builtins.map (subd: "${subd}.${hyper.domain}") [ "sync" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
enableACME = true;
|
enableACME = true;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
"${domain}" = vh // {
|
"${hyper.domain}" = vh // {
|
||||||
root = "/var/nginx/webroot";
|
root = "/var/nginx/webroot";
|
||||||
default = true;
|
default = true;
|
||||||
listen = dl;
|
listen = dl;
|
||||||
@@ -95,11 +95,11 @@
|
|||||||
"/.well-known/matrix/server" = { return = "502"; };
|
"/.well-known/matrix/server" = { return = "502"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"matrix.${domain}" = {
|
"matrix.${hyper.domain}" = {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = { "~.*" = { return = "502"; }; };
|
locations = { "~.*" = { return = "502"; }; };
|
||||||
};
|
};
|
||||||
# "pw.${domain}" = vh // {
|
# "pw.${hyper.domain}" = vh // {
|
||||||
# listen = dl;
|
# listen = dl;
|
||||||
# locations = let d = "pw.docker:80"; in {
|
# locations = let d = "pw.docker:80"; in {
|
||||||
# "/" = { proxyPass = "http://${d}"; };
|
# "/" = { proxyPass = "http://${d}"; };
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
# "/notifications/hub/negotiate" = { proxyPass = "http://${d}"; };
|
# "/notifications/hub/negotiate" = { proxyPass = "http://${d}"; };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
"pw.${domain}" = vh // {
|
"pw.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = let
|
locations = let
|
||||||
d = with config.services.vaultwarden.config; "${ROCKET_ADDRESS}:${builtins.toString ROCKET_PORT}";
|
d = with config.services.vaultwarden.config; "${ROCKET_ADDRESS}:${builtins.toString ROCKET_PORT}";
|
||||||
@@ -119,49 +119,48 @@
|
|||||||
"/notifications/hub/negotiate" = { proxyPass = "http://${d}"; };
|
"/notifications/hub/negotiate" = { proxyPass = "http://${d}"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"sync.${domain}" = vh // {
|
"sync.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = { "/" = { proxyPass = "http://127.0.0.1:11434"; }; };
|
locations = { "/" = { proxyPass = "http://127.0.0.1:11434"; }; };
|
||||||
};
|
};
|
||||||
# "git.${domain}" = vh // {
|
# "git.${hyper.domain}" = vh // {
|
||||||
# listen = dl;
|
# listen = dl;
|
||||||
# locations = { "/" = { proxyPass = "http://git.docker:3000"; }; };
|
# locations = { "/" = { proxyPass = "http://git.docker:3000"; }; };
|
||||||
# };
|
# };
|
||||||
"git.${domain}" = vh // {
|
"git.${hyper.domain}" = vh // {
|
||||||
http2 = false;
|
http2 = false;
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = { "/" = { proxyPass = "http://127.0.0.1:3000"; }; };
|
locations = { "/" = { proxyPass = "http://127.0.0.1:3000"; }; };
|
||||||
};
|
};
|
||||||
"doc.${domain}" = vh // {
|
"doc.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = { "/" = { proxyPass = "http://127.0.0.1:8441"; }; };
|
locations = { "/" = { proxyPass = "http://127.0.0.1:8441"; }; };
|
||||||
};
|
};
|
||||||
"dav.${domain}" = lib.mkIf config.services.radicale.enable (vh // {
|
"dav.${hyper.domain}" = pkgs.lib.mkIf config.services.radicale.enable (vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations = { "/" = { proxyPass = "http://127.0.0.1:5232"; }; };
|
locations = { "/" = { proxyPass = "http://127.0.0.1:5232"; }; };
|
||||||
});
|
});
|
||||||
# "nc.${domain}" = vh // {
|
# "nc.${hyper.domain}" = vh // {
|
||||||
# # directly to nc
|
# # directly to nc
|
||||||
# };
|
# };
|
||||||
"abs.${domain}" = vh // {
|
"abs.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:${builtins.toString config.services.audiobookshelf.port}";
|
proxyPass = "http://127.0.0.1:${builtins.toString config.services.audiobookshelf.port}";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"pnx.${domain}" = vh // {
|
"pnx.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:8040";
|
proxyPass = "http://127.0.0.1:8040";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"wip.${domain}" = vh // {
|
"wip.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
root = "/var/lib/hugo/nx2site/public";
|
|
||||||
};
|
};
|
||||||
"dev.${domain}" = vh // {
|
"dev.${hyper.domain}" = vh // {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:8080";
|
proxyPass = "http://127.0.0.1:8080";
|
||||||
@@ -169,17 +168,17 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
# is done atomatically
|
# is done atomatically
|
||||||
# "cal.${domain}" = vh // {
|
# "cal.${hyper.domain}" = vh // {
|
||||||
# listen = dl;
|
# listen = dl;
|
||||||
# locations = { "/" = {
|
# locations = { "/" = {
|
||||||
# proxyPass = "http://unix:///run/open-web-calendar/socket";
|
# proxyPass = "http://unix:///run/open-web-calendar/socket";
|
||||||
# proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
# }; };
|
# }; };
|
||||||
# };
|
# };
|
||||||
"~^(.*).${domain}$" = {
|
"~^(.*).${hyper.domain}$" = {
|
||||||
listen = dl;
|
listen = dl;
|
||||||
root = "/var/nginx/webroot";
|
root = "/var/nginx/webroot";
|
||||||
locations = { "~.*" = { return = "301 https://${domain}/502.html"; }; };
|
locations = { "~.*" = { return = "301 https://${hyper.domain}/502.html"; }; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, domain, ... }:
|
{ config, hyper, ... }:
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"nx2site/radicale/htpasswd" = {
|
"nx2site/radicale/htpasswd" = {
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
port = builtins.toString 5232;
|
port = builtins.toString 5232;
|
||||||
in [
|
in [
|
||||||
"0.0.0.0:${port}"
|
"0.0.0.0:${port}"
|
||||||
"${domain}:${port}"
|
"${hyper.domain}:${port}"
|
||||||
# "192.168.178.32:${port}"
|
# "192.168.178.32:${port}"
|
||||||
];
|
];
|
||||||
auth = {
|
auth = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, secrets, domain, ... }:
|
{ config, pkgs, hyper, secrets, ... }:
|
||||||
{
|
{
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"nx2site/vaultwarden.env" = {
|
"nx2site/vaultwarden.env" = {
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
SMTP_PASSWORD = "@SMTP_PASSWORD@";
|
SMTP_PASSWORD = "@SMTP_PASSWORD@";
|
||||||
LOGIN_RATELIMIT_MAX_BURST = 10;
|
LOGIN_RATELIMIT_MAX_BURST = 10;
|
||||||
LOGIN_RATELIMIT_SECONDS = 60;
|
LOGIN_RATELIMIT_SECONDS = 60;
|
||||||
DOMAIN = "https://pw.${domain}";
|
DOMAIN = "https://pw.${hyper.domain}";
|
||||||
INVITATION_ORG_NAME = "NxPW";
|
INVITATION_ORG_NAME = "NxPW";
|
||||||
INVITATIONS_ALLOWED = true;
|
INVITATIONS_ALLOWED = true;
|
||||||
ADMIN_TOKEN = "@ADMIN_TOKEN@";
|
ADMIN_TOKEN = "@ADMIN_TOKEN@";
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
{ pkgs, lib, host, nvidia, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
let
|
{
|
||||||
p = if nvidia.enable then pkgs.ollama-cuda else pkgs.ollama;
|
|
||||||
in {
|
|
||||||
environment.systemPackages = [ p ];
|
|
||||||
|
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
package = p;
|
package = if hyper.nvidia.enable then pkgs.ollama-cuda else pkgs.ollama;
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration = lib.mkIf nvidia.enable "cuda";
|
acceleration = pkgs.lib.mkIf hyper.nvidia.enable "cuda";
|
||||||
host = if host == "NxACE" then "0.0.0.0" else "127.0.0.1";
|
host = if hyper.host == "NxACE" then "0.0.0.0" else "127.0.0.1";
|
||||||
port = 11434;
|
port = 11434;
|
||||||
environmentVariables = {
|
environmentVariables = {
|
||||||
OLLAMA_ORIGINS = "*";
|
OLLAMA_ORIGINS = "*";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, user, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
age
|
age
|
||||||
@@ -8,15 +8,10 @@
|
|||||||
sops = {
|
sops = {
|
||||||
defaultSopsFile = ../sops-secrets.yaml;
|
defaultSopsFile = ../sops-secrets.yaml;
|
||||||
defaultSopsFormat = "yaml";
|
defaultSopsFormat = "yaml";
|
||||||
# age = {
|
|
||||||
# sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
||||||
# generateKey = true;
|
|
||||||
# };
|
|
||||||
# gnupg = {
|
# gnupg = {
|
||||||
# sshKeyPaths = [];
|
# sshKeyPaths = [];
|
||||||
# home = "/home/${user}/.gnupg";
|
# home = "${hyper.user}/.gnupg";
|
||||||
# };
|
# };
|
||||||
secrets.example = {};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{ host, secrets, ... }:
|
{ hyper, secrets, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.etc."ssh/ssh_host_ed25519_key.pub".text = if (host == "NxNORTH") then
|
environment.etc."ssh/ssh_host_ed25519_key.pub".text = if (hyper.host == "NxNORTH") then
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF1r5gUQPPS/dGB0SsvWtP6WdNWoxMwhhHRrqlO19cJt root@NxNORTH"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF1r5gUQPPS/dGB0SsvWtP6WdNWoxMwhhHRrqlO19cJt root@NxNORTH"
|
||||||
else if ( host == "NxXPS" ) then
|
else if ( hyper.host == "NxXPS" ) then
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPf+08+t8a0lY2+nR1mhIU3vuksStiJOlojJjzCwFk7r root@NxXPS"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPf+08+t8a0lY2+nR1mhIU3vuksStiJOlojJjzCwFk7r root@NxXPS"
|
||||||
else
|
else
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBFfZpWVPlujsz3FklSVAM+tuYn4pzDSijhp5CeYNOZk root@NxACE";
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBFfZpWVPlujsz3FklSVAM+tuYn4pzDSijhp5CeYNOZk root@NxACE";
|
||||||
sops.secrets."ssh/${host}-ssh_host_ed25519_key" = {
|
sops.secrets."ssh/${hyper.host}-ssh_host_ed25519_key" = {
|
||||||
mode = "0600";
|
mode = "0600";
|
||||||
path = "/etc/ssh/ssh_host_ed25519_key.shadow";
|
path = "/etc/ssh/ssh_host_ed25519_key.shadow";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
{
|
{ config, pkgs, hyper, secrets, ... }:
|
||||||
config,
|
let
|
||||||
lib,
|
|
||||||
user,
|
|
||||||
host,
|
|
||||||
secrets,
|
|
||||||
... }: let
|
|
||||||
# helper funcitons
|
# helper funcitons
|
||||||
conv = _: device: with device; { "${name}" = {id = id;};};
|
conv = _: device: with device; { "${name}" = {id = id;};};
|
||||||
justname = devices: (builtins.map (device: device.name)) devices;
|
justname = devices: (builtins.map (device: device.name)) devices;
|
||||||
@@ -22,7 +17,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
dirs = {
|
dirs = {
|
||||||
default = { name = "sync"; path = "/home/${user}/sync"; };
|
default = { name = "sync"; path = "/home/${hyper.user}/sync"; };
|
||||||
s21u-dcim = { name = "s21u-dcim"; path = "/vault/Pictures/Lennart"; };
|
s21u-dcim = { name = "s21u-dcim"; path = "/vault/Pictures/Lennart"; };
|
||||||
diane-dcim = { name = "diane-dcim"; path = "/vault/Pictures/Diane"; };
|
diane-dcim = { name = "diane-dcim"; path = "/vault/Pictures/Diane"; };
|
||||||
dianesd-dcim = { name = "dianesd-dcim"; path = "/vault/Pictures/Diane-SD"; };
|
dianesd-dcim = { name = "dianesd-dcim"; path = "/vault/Pictures/Diane-SD"; };
|
||||||
@@ -31,34 +26,35 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"syncthing/${host}/cert.pem" = { owner = user; };
|
"syncthing/${hyper.host}/cert.pem" = { owner = hyper.user; };
|
||||||
"syncthing/${host}/key.pem" = { owner = user; };
|
"syncthing/${hyper.host}/key.pem" = { owner = hyper.user; };
|
||||||
};
|
};
|
||||||
services.syncthing = with (builtins.mapAttrs conv devices); {
|
services.syncthing = with (builtins.mapAttrs conv devices); {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "${user}";
|
user = "${hyper.user}";
|
||||||
dataDir = "/home/${user}/.local/share/syncthing"; # useless ?
|
package = pkgs.syncthing;
|
||||||
configDir = "/home/${user}/.config/syncthing";
|
dataDir = "/home/${hyper.user}/.local/share/syncthing"; # useless ?
|
||||||
key = config.sops.secrets."syncthing/${host}/key.pem".path;
|
configDir = "/home/${hyper.user}/.config/syncthing";
|
||||||
cert = config.sops.secrets."syncthing/${host}/cert.pem".path;
|
key = config.sops.secrets."syncthing/${hyper.host}/key.pem".path;
|
||||||
|
cert = config.sops.secrets."syncthing/${hyper.host}/cert.pem".path;
|
||||||
overrideDevices = true;
|
overrideDevices = true;
|
||||||
overrideFolders = true;
|
overrideFolders = true;
|
||||||
# guiAddress = "127.0.0.1:8384";
|
# guiAddress = "127.0.0.1:8384";
|
||||||
guiAddress = if ( host == "NxACE" ) then "0.0.0.0:8384" else "127.0.0.1:8384";
|
guiAddress = if ( hyper.host == "NxACE" ) then "0.0.0.0:8384" else "127.0.0.1:8384";
|
||||||
settings = {
|
settings = {
|
||||||
devices = with (builtins.mapAttrs conv devices); if (host == "NxXPS") then (
|
devices = with (builtins.mapAttrs conv devices); if (hyper.host == "NxXPS") then (
|
||||||
north // ace // s21u
|
north // ace // s21u
|
||||||
) else if (host == "NxNORTH") then (
|
) else if (hyper.host == "NxNORTH") then (
|
||||||
xps // ace // s21u
|
xps // ace // s21u
|
||||||
) else (
|
) else (
|
||||||
north // xps // s21u // diane // daniel // tessa // georg
|
north // xps // s21u // diane // daniel // tessa // georg
|
||||||
);
|
);
|
||||||
folders = with dirs; if (host == "NxXPS") then {
|
folders = with dirs; if (hyper.host == "NxXPS") then {
|
||||||
"${default.name}" = {
|
"${default.name}" = {
|
||||||
path = default.path;
|
path = default.path;
|
||||||
devices = with devices; (justname [ north ace s21u ]);
|
devices = with devices; (justname [ north ace s21u ]);
|
||||||
};
|
};
|
||||||
} else if (host == "NxNORTH") then {
|
} else if (hyper.host == "NxNORTH") then {
|
||||||
"${default.name}" = {
|
"${default.name}" = {
|
||||||
path = default.path;
|
path = default.path;
|
||||||
devices = with devices; (justname [ xps ace s21u ]);
|
devices = with devices; (justname [ xps ace s21u ]);
|
||||||
@@ -91,7 +87,7 @@ in {
|
|||||||
};
|
};
|
||||||
gui = {
|
gui = {
|
||||||
theme = "black";
|
theme = "black";
|
||||||
user = user;
|
user = hyper.user;
|
||||||
password = secrets.syncthing.gui-password; # option to use a file is till in the works... https://github.com/NixOS/nixpkgs/issues/85336
|
password = secrets.syncthing.gui-password; # option to use a file is till in the works... https://github.com/NixOS/nixpkgs/issues/85336
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
13
system-modules/tuda.nix
Normal file
13
system-modules/tuda.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.etc = {
|
||||||
|
"ssl/certs/tuda-eduroam-root.crt".source = "${pkgs.cacert.unbundled}/etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2:1.crt";
|
||||||
|
};
|
||||||
|
sops.secrets = {
|
||||||
|
"eduroam/tuda_nmconnection" = {
|
||||||
|
mode = "0600";
|
||||||
|
owner = "root";
|
||||||
|
path = "/etc/NetworkManager/system-connections/eduroam.nmconnection";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
{ pkgs, user, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
users.defaultUserShell = pkgs.bash; # if interactive, itll switch to fish
|
users.defaultUserShell = pkgs.bash; # if interactive, itll switch to fish
|
||||||
|
|
||||||
users.users."${user}" = {
|
users.users."${hyper.user}" = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
# TODO: actually put the groups into the relevant files
|
# TODO: actually put the groups into the relevant files
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{ config, pkgs, lib, user, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkIf (host == "NxNORTH") {
|
config = pkgs.lib.mkIf (hyper.host == "NxNORTH") {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
virtiofsd
|
virtiofsd
|
||||||
];
|
];
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
users.users."${user}".extraGroups = [ "libvirtd" ];
|
users.users."${hyper.user}".extraGroups = [ "libvirtd" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, hyper, ... }:
|
||||||
lib.mkIf (host == "NxXPS")
|
pkgs.lib.mkIf (hyper.host == "NxXPS")
|
||||||
{
|
{
|
||||||
programs.ydotool.enable = true;
|
programs.ydotool.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user