Alright this ain't finished cause of the home stuff but I don't wanna lose what I've done. Impermanence, disko, lots of changes. TODO: add modularity to home.
|
@ -32,7 +32,7 @@ For my use, unlocking secrets can be done with this command:
|
||||||
Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
|
Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
|
||||||
[CloudyChris' nix-starter-configs fork](https://github.com/CloudyChris/NixOsConfig), the very initial base of my conversion to flakes.
|
[CloudyChris' nix-starter-configs fork](https://github.com/CloudyChris/NixOsConfig), the very initial base of my conversion to flakes.
|
||||||
[WillPower3309's personal flake](https://github.com/WillPower3309/nixos-config) for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
|
[WillPower3309's personal flake](https://github.com/WillPower3309/nixos-config) for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
|
||||||
[Jules Sommer's minimal flake](https://github.com/WillPower3309/nixos-config) for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.
|
[Jules Sommer's minimal flake](https://github.com/jules-sommer/nix_config_minimal) for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.
|
||||||
|
|
||||||
Made with love ❤️
|
Made with love ❤️
|
||||||
|
|
||||||
|
|
121
flake.lock
|
@ -38,16 +38,14 @@
|
||||||
"flake-schemas": "flake-schemas",
|
"flake-schemas": "flake-schemas",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_2"
|
||||||
"unstable"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729599319,
|
"lastModified": 1730390431,
|
||||||
"narHash": "sha256-e/4JPcIRte5zkwqmGFrFo3763e0iHURX6N0apz4jbI0=",
|
"narHash": "sha256-M+rMhDB69Y35IlhmAMN4ErDige+wKPwhb6HDqpF14Rw=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "chaotic-cx",
|
||||||
"repo": "nyx",
|
"repo": "nyx",
|
||||||
"rev": "1b86b304c8eb1437d9337a760e7f930826fc4d6d",
|
"rev": "40388a7427ee32af175c5169ae7587ffd2dec125",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -78,6 +76,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730190761,
|
||||||
|
"narHash": "sha256-o5m5WzvY6cGIDupuOvjgNSS8AN6yP2iI9MtUC6q/uos=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "3979285062d6781525cded0f6c4ff92e71376b55",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -221,11 +239,11 @@
|
||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729742320,
|
"lastModified": 1730368399,
|
||||||
"narHash": "sha256-u3Of8xRkN//me8PU+RucKA59/6RNy4B2jcGAF36P4jI=",
|
"narHash": "sha256-F8vJtG389i9fp3k2/UDYHMed3PLCJYfxCqwiVP7b9ig=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "e8a2f6d5513fe7b7d15701b2d05404ffdc3b6dda",
|
"rev": "da14839ac5f38ee6adbdb4e6db09b5eef6d6ccdc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -243,11 +261,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729414726,
|
"lastModified": 1730016908,
|
||||||
"narHash": "sha256-Dtmm1OU8Ymiy9hVWn/a2B8DhRYo9Eoyx9veERdOBR4o=",
|
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "fe56302339bb28e3471632379d733547caec8103",
|
"rev": "e83414058edd339148dc142a8437edb9450574c8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -277,6 +295,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"impermanence": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730403150,
|
||||||
|
"narHash": "sha256-W1FH5aJ/GpRCOA7DXT/sJHFpa5r8sq2qAUncWwRZ3Gg=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "0d09341beeaa2367bac5d718df1404bf2ce45e6f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"jovian": {
|
"jovian": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix-github-actions": "nix-github-actions",
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
@ -286,11 +319,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729177642,
|
"lastModified": 1730248099,
|
||||||
"narHash": "sha256-DdKal+ZhB9QD/tnEwFg4cZ4j4YnrkvSljBxnyG+3eE0=",
|
"narHash": "sha256-Fl7BSdpLk0uTXF6ol/MR0q1EB4XQ8tn0ftig0pyYh5Y=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "bb69165ff372ddbd3228a03513922acd783040e8",
|
"rev": "c11bab124fc55a37cbd854ed28ea121ed609231f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -330,7 +363,7 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blobs": "blobs",
|
"blobs": "blobs",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgs-24_05": "nixpkgs-24_05",
|
"nixpkgs-24_05": "nixpkgs-24_05",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
|
@ -353,14 +386,14 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729993975,
|
"lastModified": 1730426071,
|
||||||
"narHash": "sha256-Z5DQ48PdCo3IyfKbngL62Q/HuA/fsn22bMyPbTQGSKQ=",
|
"narHash": "sha256-2BkSiHqyWikpz9HSgTBk5kikaQ5m0Rs60C9KA2kf53o=",
|
||||||
"owner": "Infinidoge",
|
"owner": "Infinidoge",
|
||||||
"repo": "nix-minecraft",
|
"repo": "nix-minecraft",
|
||||||
"rev": "4753ea1f1285e944839cb2ab0b4373eb4e00c12a",
|
"rev": "4b371c3d119493051d081ff5b6cff689a97ad1a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -378,11 +411,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1690328911,
|
"lastModified": 1729697500,
|
||||||
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
|
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
|
||||||
"owner": "zhaofengli",
|
"owner": "zhaofengli",
|
||||||
"repo": "nix-github-actions",
|
"repo": "nix-github-actions",
|
||||||
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
|
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -438,6 +471,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730200266,
|
||||||
|
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717602782,
|
"lastModified": 1717602782,
|
||||||
"narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
|
"narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
|
||||||
|
@ -452,7 +501,7 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715266358,
|
"lastModified": 1715266358,
|
||||||
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||||
|
@ -468,13 +517,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729973466,
|
"lastModified": 1730137625,
|
||||||
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
"narHash": "sha256-9z8oOgFZiaguj+bbi3k4QhAD6JabWrnv7fscC/mt0KE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
"rev": "64b80bfb316b57cdb8919a9110ef63393d74382a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -485,11 +534,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730060949,
|
"lastModified": 1730434297,
|
||||||
"narHash": "sha256-SNygd+Ud73nYjGylHbMVEZF5jhE9hyVkBHVrqna/05o=",
|
"narHash": "sha256-7wEy/XwjqAdzsIZJ2AFJaVeshX6yT9vhRsFjvQe0U1E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "957b94ad2381e6bafdb21c092162549af42f185c",
|
"rev": "5ef5f243936bc6387b55fc8cb08c88e7cf68092a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -529,12 +578,14 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blender-bin": "blender-bin",
|
"blender-bin": "blender-bin",
|
||||||
"chaotic": "chaotic",
|
"chaotic": "chaotic",
|
||||||
|
"disko": "disko",
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"impermanence": "impermanence",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"mailserver": "mailserver",
|
"mailserver": "mailserver",
|
||||||
"minecraft": "minecraft",
|
"minecraft": "minecraft",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"unstable": "unstable"
|
"unstable": "unstable"
|
||||||
}
|
}
|
||||||
|
@ -611,11 +662,11 @@
|
||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729880355,
|
"lastModified": 1730200266,
|
||||||
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
|
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
|
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
64
flake.nix
|
@ -1,20 +1,8 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
|
# System inputs
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||||
unstable.url = "nixpkgs/nixos-unstable";
|
unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nur.url = "github:nix-community/NUR";
|
|
||||||
chaotic = {
|
|
||||||
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
|
||||||
inputs.nixpkgs.follows = "unstable";
|
|
||||||
};
|
|
||||||
|
|
||||||
blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.9.tar.gz";
|
|
||||||
hardware.url = "github:nixos/nixos-hardware/master";
|
hardware.url = "github:nixos/nixos-hardware/master";
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
|
@ -22,21 +10,39 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
disko = {
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
|
|
||||||
|
# Home inputs
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-24.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nur.url = "github:nix-community/NUR";
|
||||||
|
blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.9.tar.gz";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
unstable,
|
unstable,
|
||||||
home-manager,
|
|
||||||
nur,
|
|
||||||
chaotic,
|
|
||||||
blender-bin,
|
|
||||||
hardware,
|
hardware,
|
||||||
lanzaboote,
|
lanzaboote,
|
||||||
|
disko,
|
||||||
|
impermanence,
|
||||||
|
chaotic,
|
||||||
mailserver,
|
mailserver,
|
||||||
minecraft,
|
minecraft,
|
||||||
|
home-manager,
|
||||||
|
nur,
|
||||||
|
blender-bin,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -45,11 +51,16 @@
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit
|
inherit
|
||||||
unstable
|
unstable
|
||||||
chaotic
|
|
||||||
hardware
|
hardware
|
||||||
lanzaboote
|
lanzaboote
|
||||||
|
disko
|
||||||
|
impermanence
|
||||||
|
chaotic
|
||||||
mailserver
|
mailserver
|
||||||
minecraft
|
minecraft
|
||||||
|
home-manager
|
||||||
|
nur
|
||||||
|
blender-bin
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -66,7 +77,7 @@
|
||||||
in {
|
in {
|
||||||
# nixos-rebuild switch --flake .#hostname
|
# nixos-rebuild switch --flake .#hostname
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
firefly = mkNix [ ./hosts/firefly/system ]; # Main Desktop
|
firefly = mkNix [ ./hosts/firefly ]; # Main Desktop
|
||||||
detritus = mkNix [ ./hosts/detritus/system ]; # Acer Desktop
|
detritus = mkNix [ ./hosts/detritus/system ]; # Acer Desktop
|
||||||
|
|
||||||
shuttle = mkNix [ ./hosts/shuttleworth/system ]; # Pinebook Pro
|
shuttle = mkNix [ ./hosts/shuttleworth/system ]; # Pinebook Pro
|
||||||
|
@ -78,18 +89,7 @@
|
||||||
bomberman = mkNix [ ./hosts/bomberman/system ]; # Oracle ARM
|
bomberman = mkNix [ ./hosts/bomberman/system ]; # Oracle ARM
|
||||||
};
|
};
|
||||||
|
|
||||||
# home-manager switch --flake .#username@hostname
|
# home-manager switch --flake .#username
|
||||||
homeConfigurations = {
|
homeConfigurations."jimbo" = mkHome [ ./modules/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
"jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
"jimbo@detritus" = mkHome [ ./hosts/detritus/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
|
|
||||||
"jimbo@shuttle" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux;
|
|
||||||
"jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
"jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
"jimbo@treefruit" = mkHome [ ./hosts/treefruit/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
|
|
||||||
"jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
"jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Programs and apps
|
|
||||||
../../../modules/home
|
|
||||||
../../../modules/home/users
|
../../../modules/home/users
|
||||||
../../../modules/home/programs/misc/headless
|
../../../modules/home/programs/misc/headless
|
||||||
../../../modules/home/programs/terminal/fastfetch
|
../../../modules/home/programs/terminal/fastfetch
|
||||||
|
@ -10,10 +8,7 @@
|
||||||
../../../modules/home/programs/terminal/neovim
|
../../../modules/home/programs/terminal/neovim
|
||||||
../../../modules/home/programs/terminal/ranger
|
../../../modules/home/programs/terminal/ranger
|
||||||
../../../modules/home/programs/terminal/tmux
|
../../../modules/home/programs/terminal/tmux
|
||||||
../../../modules/home/utils/zsh
|
../../../modules/home/programs/terminal/zsh
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../variables/domains
|
../../../variables/domains
|
||||||
../../../variables/look/colors/purple
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@var" ];
|
options = [ "subvol=@var" ];
|
||||||
};
|
};
|
||||||
"/.snapshots" = {
|
"/snapshots" = {
|
||||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@snapshots" ];
|
options = [ "subvol=@snapshots" ];
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Programs and apps
|
|
||||||
../../../modules/home
|
|
||||||
../../../modules/home/users
|
../../../modules/home/users
|
||||||
|
../../../modules/home/settings/nix
|
||||||
../../../modules/home/programs/misc/headless
|
../../../modules/home/programs/misc/headless
|
||||||
../../../modules/home/programs/terminal/fastfetch
|
../../../modules/home/programs/terminal/fastfetch
|
||||||
../../../modules/home/programs/terminal/git
|
../../../modules/home/programs/terminal/git
|
||||||
../../../modules/home/programs/terminal/neovim
|
../../../modules/home/programs/terminal/neovim
|
||||||
../../../modules/home/programs/terminal/ranger
|
../../../modules/home/programs/terminal/ranger
|
||||||
../../../modules/home/programs/terminal/tmux
|
../../../modules/home/programs/terminal/tmux
|
||||||
../../../modules/home/utils/zsh
|
../../../modules/home/programs/terminal/zsh
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../variables/domains
|
../../../variables/domains
|
||||||
../../../variables/look/colors/purple
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,97 +27,71 @@
|
||||||
# Main root
|
# Main root
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@" ];
|
options = [ "subvol=@" ];
|
||||||
};
|
};
|
||||||
"/home" = {
|
"/home" = {
|
||||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@home" ];
|
options = [ "subvol=@home" ];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
"/nix" = {
|
||||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@nix" ];
|
options = [ "subvol=@nix" ];
|
||||||
};
|
};
|
||||||
"/var" = {
|
"/var" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@var" ];
|
options = [ "subvol=@var" ];
|
||||||
};
|
};
|
||||||
"/srv/minecraft" = {
|
"/srv/minecraft" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@minecraft" "compress=zstd" ];
|
options = [ "subvol=@minecraft" "compress=zstd" ];
|
||||||
};
|
};
|
||||||
"/.snapshots" = {
|
|
||||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@snapshots" ];
|
|
||||||
};
|
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/CD94-1D3F";
|
device = "/dev/disk/by-uuid/CD94-1D3F";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Atrocity of subvols
|
# Files
|
||||||
"/export/JimboNFS/Downloads" = {
|
"/export/JimboNFS/Downloads" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@downloads" "compress=zstd" ];
|
options = [ "subvol=@downloads" "compress=zstd" ];
|
||||||
};
|
};
|
||||||
"/export/JimboNFS/Documents" = {
|
"/export/JimboNFS/Documents" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@docs" "compress=zstd" ];
|
options = [ "subvol=@docs" "compress=zstd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Media
|
||||||
"/export/JimboNFS/Photos" = {
|
"/export/JimboNFS/Photos" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@photos" "compress=zstd" ];
|
options = [ "subvol=@photos" "compress=zstd" ];
|
||||||
};
|
};
|
||||||
"/export/JimboNFS/Videos/Random" = {
|
"/export/JimboNFS/Videos" = {
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@videos-random" "compress=zstd" ];
|
options = [ "subvol=@videos" "compress=zstd" ];
|
||||||
};
|
};
|
||||||
"/export/JimboNFS/Videos/Media" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
# Music
|
||||||
|
"/export/JimboNFS/Music" = {
|
||||||
|
device = "/dev/server/root";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@videos-media" "compress=zstd" ];
|
options = [ "subvol=@music" "compress=zstd" ];
|
||||||
};
|
|
||||||
"/export/JimboNFS/Music/Synced" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@music-synced" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
"/export/JimboNFS/Music/Unsynced" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@music-unsynced" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
"/export/JimboNFS/Projects" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@projects" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
"/export/JimboNFS/School" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@school" "compress=zstd" ];
|
|
||||||
};
|
|
||||||
"/export/JimboNFS/.snapshots" = {
|
|
||||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@snapshots" "compress=zstd" ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/57178cfc-3e71-4d35-8c7f-e355f9dc84df"; }
|
{ device = "/dev/server/root/swap"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
|
|
@ -1,23 +1,7 @@
|
||||||
{ config, nur, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
../../../modules/home
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/gaming/launchers
|
../../../modules/home/programs/misc/gaming/launchers
|
||||||
../../../modules/home/programs/misc/remote-desktop
|
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/green
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,17 +19,12 @@
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@home" ];
|
options = [ "subvol=@home" ];
|
||||||
};
|
};
|
||||||
"/var" = {
|
|
||||||
device = "/dev/disk/by-uuid/dc6e2cd9-040b-4104-8138-5dfa9cb5558c";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@var" ];
|
|
||||||
};
|
|
||||||
"/nix" = {
|
"/nix" = {
|
||||||
device = "/dev/disk/by-uuid/dc6e2cd9-040b-4104-8138-5dfa9cb5558c";
|
device = "/dev/disk/by-uuid/dc6e2cd9-040b-4104-8138-5dfa9cb5558c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@nix" ];
|
options = [ "subvol=@nix" ];
|
||||||
};
|
};
|
||||||
"/.snapshots" = {
|
"/snapshots" = {
|
||||||
device = "/dev/disk/by-uuid/dc6e2cd9-040b-4104-8138-5dfa9cb5558c";
|
device = "/dev/disk/by-uuid/dc6e2cd9-040b-4104-8138-5dfa9cb5558c";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@snapshots" ];
|
options = [ "subvol=@snapshots" ];
|
||||||
|
|
68
hosts/firefly/boot/default.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
commonKernelParams = [
|
||||||
|
# Nvidia settings
|
||||||
|
"nvidia_drm.fbdev=1"
|
||||||
|
"nouveau.config=NvGspRm=1"
|
||||||
|
|
||||||
|
# VM/GPU passthrough
|
||||||
|
"amd_iommu=on"
|
||||||
|
"iommu=pt"
|
||||||
|
"nested=1"
|
||||||
|
|
||||||
|
# Virtualization nonsense
|
||||||
|
"transparent_hugepage=never"
|
||||||
|
|
||||||
|
# Isolate devices into IOMMU groups
|
||||||
|
"pcie_acs_override=downstream,multifunction"
|
||||||
|
"pci=routeirq"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
boot = {
|
||||||
|
# HAS to be unstable to get the newest NVIDIA drivers
|
||||||
|
kernelPackages = pkgs.unstable.linuxPackages_latest;
|
||||||
|
blacklistedKernelModules = [ "pcspkr" ];
|
||||||
|
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||||
|
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
|
||||||
|
|
||||||
|
initrd = {
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
services.root-reset = {
|
||||||
|
description = "Reset BTRFS root and snapshot last boot";
|
||||||
|
wantedBy = [ "initrd.target" ];
|
||||||
|
after = [ "dev-nixos-root.device" ];
|
||||||
|
before = [ "sysroot.mount" ];
|
||||||
|
unitConfig.DefaultDependencies = "no";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
script = ''
|
||||||
|
mkdir -p /mnt
|
||||||
|
mount /dev/nixos/root /mnt
|
||||||
|
|
||||||
|
if [[ -e /mnt/@prev ]]; then
|
||||||
|
btrfs subvolume delete /mnt/@prev
|
||||||
|
fi
|
||||||
|
|
||||||
|
btrfs subvolume snapshot /mnt/@ /mnt/@prev
|
||||||
|
|
||||||
|
btrfs subvolume list -o /mnt/@ | cut -f9 -d' ' | while read subvolume; do
|
||||||
|
btrfs subvolume delete "/mnt/$subvolume"
|
||||||
|
done
|
||||||
|
|
||||||
|
btrfs subvolume delete /mnt/@
|
||||||
|
btrfs subvolume create /mnt/@
|
||||||
|
|
||||||
|
umount /mnt
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Additional entry to boot from the second GPU
|
||||||
|
specialisation = {
|
||||||
|
gputwo.configuration = {
|
||||||
|
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
37
hosts/firefly/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ chaotic, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./boot
|
||||||
|
./disko
|
||||||
|
./hardware
|
||||||
|
|
||||||
|
# Apps and programs
|
||||||
|
../../modules/system
|
||||||
|
../../modules/system/accounts
|
||||||
|
../../modules/system/desktop
|
||||||
|
../../modules/system/programs
|
||||||
|
../../modules/system/services
|
||||||
|
../../modules/system/services/pc/sunshine
|
||||||
|
../../modules/system/services/pc/virtualization/qemu
|
||||||
|
|
||||||
|
# Devices and hardware
|
||||||
|
../../modules/system/devices
|
||||||
|
../../modules/system/devices/boot/lanzaboote
|
||||||
|
../../modules/system/devices/video/nvidia
|
||||||
|
../../modules/system/devices/networking/firewall/pc
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
../../overlays
|
||||||
|
../../variables
|
||||||
|
|
||||||
|
# Imports
|
||||||
|
chaotic.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.sway.package = pkgs.sway_git;
|
||||||
|
|
||||||
|
networking.hostName = "firefly";
|
||||||
|
|
||||||
|
# Force Electron to use Wayland
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
}
|
95
hosts/firefly/disko/default.nix
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
{ disko, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
disko.nixosModules.disko
|
||||||
|
];
|
||||||
|
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "2G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "crypt-nvme";
|
||||||
|
settings.allowDiscards = true;
|
||||||
|
#passwordFile = "/tmp/secret.key";
|
||||||
|
content = {
|
||||||
|
type = "lvm_pv";
|
||||||
|
vg = "nixos";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lvm_vg = {
|
||||||
|
nixos = {
|
||||||
|
type = "lvm_vg";
|
||||||
|
lvs = {
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"/@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
"/@prev" = {
|
||||||
|
mountpoint = "/prev";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
"/@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Impermanence
|
||||||
|
"/@root" = {
|
||||||
|
mountpoint = "/persist";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
"/@jimbo" = {
|
||||||
|
mountpoint = "/persist/home/jimbo";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
swap = {
|
||||||
|
size = "8G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Needed for impermanence
|
||||||
|
fileSystems = {
|
||||||
|
"/persist".neededForBoot = true;
|
||||||
|
"/persist/home/jimbo".neededForBoot = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -21,45 +21,20 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
# Useful system mounts
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
"/etc/libvirt" = {
|
||||||
fsType = "btrfs";
|
device = "/dev/disk/by-uuid/f18a0302-9914-471d-828c-85ab1a67a8be";
|
||||||
options = [ "subvol=@" "noatime" "nodiratime" "discard" ];
|
options = [ "nosuid" "nodev" "nofail" ];
|
||||||
};
|
};
|
||||||
"/home" = {
|
"/etc/libvirt/VMs/Bulk" = {
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
depends = [ "/etc/libvirt" ];
|
||||||
fsType = "btrfs";
|
device = "/dev/disk/by-uuid/3eb36c3e-81ac-4281-89f0-c89242d88dd6";
|
||||||
options = [ "subvol=@home" "noatime" "nodiratime" "discard" ];
|
options = [ "nosuid" "nodev" "nofail" ];
|
||||||
};
|
};
|
||||||
"/nix" = {
|
"/var/lib/libvirt" = {
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
depends = [ "/etc/libvirt" ];
|
||||||
fsType = "btrfs";
|
device = "/etc/libvirt/varlibvirt";
|
||||||
options = [ "subvol=@nix" "noatime" "nodiratime" "discard" ];
|
options = [ "bind" "rw" ];
|
||||||
};
|
|
||||||
"/etc/nixos" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@nixconf" "noatime" "nodiratime" "discard" ];
|
|
||||||
};
|
|
||||||
"/etc/secureboot" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@secureboot" "noatime" "nodiratime" "discard" ];
|
|
||||||
};
|
|
||||||
"/var" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
|
||||||
};
|
|
||||||
"/.snapshots" = {
|
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "subvol=@snapshots" "noatime" "nodiratime" "discard" ];
|
|
||||||
};
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/3B4A-76C9";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Games and such
|
# Games and such
|
||||||
|
@ -80,22 +55,6 @@
|
||||||
options = [ "nosuid" "nodev" "noauto" ];
|
options = [ "nosuid" "nodev" "noauto" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Miscellaneous mounts
|
|
||||||
"/etc/libvirt" = {
|
|
||||||
device = "/dev/disk/by-uuid/f18a0302-9914-471d-828c-85ab1a67a8be";
|
|
||||||
options = [ "nosuid" "nodev" "nofail" ];
|
|
||||||
};
|
|
||||||
"/etc/libvirt/VMs/Bulk" = {
|
|
||||||
depends = [ "/etc/libvirt" ];
|
|
||||||
device = "/dev/disk/by-uuid/3eb36c3e-81ac-4281-89f0-c89242d88dd6";
|
|
||||||
options = [ "nosuid" "nodev" "nofail" ];
|
|
||||||
};
|
|
||||||
"/var/lib/libvirt" = {
|
|
||||||
depends = [ "/etc/libvirt" ];
|
|
||||||
device = "/etc/libvirt/varlibvirt";
|
|
||||||
options = [ "bind" "rw" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Network mounts
|
# Network mounts
|
||||||
"/home/jimbo/JimboNFS" = {
|
"/home/jimbo/JimboNFS" = {
|
||||||
device = "${config.ips.server}:/export/JimboNFS";
|
device = "${config.ips.server}:/export/JimboNFS";
|
||||||
|
@ -105,7 +64,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/1a6a68d0-8ae7-4836-a585-b708597937a1"; }
|
{ device = "/dev/nixos/swap"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
|
@ -1,27 +0,0 @@
|
||||||
{ nur, config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/production
|
|
||||||
../../../modules/home/programs/misc/gaming/launchers
|
|
||||||
../../../modules/home/programs/misc/gaming/xash3d
|
|
||||||
../../../modules/home/programs/misc/school
|
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/red
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.sway.config.output.${config.displays.d1}.allow_tearing = "yes";
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
commonKernelParams = [
|
|
||||||
# Nvidia settings
|
|
||||||
"nvidia_drm.fbdev=1"
|
|
||||||
"nouveau.config=NvGspRm=1"
|
|
||||||
|
|
||||||
# VM/GPU passthrough
|
|
||||||
"amd_iommu=on"
|
|
||||||
"iommu=pt"
|
|
||||||
"nested=1"
|
|
||||||
|
|
||||||
# Virtualization nonsense
|
|
||||||
"transparent_hugepage=never"
|
|
||||||
|
|
||||||
# Isolate devices into IOMMU groups
|
|
||||||
"pcie_acs_override=downstream,multifunction"
|
|
||||||
"pci=routeirq"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.unstable.linuxPackages_zen;
|
|
||||||
blacklistedKernelModules = [ "pcspkr" ];
|
|
||||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
|
||||||
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
|
|
||||||
|
|
||||||
# Encryption and TPM
|
|
||||||
initrd = {
|
|
||||||
systemd.enable = true;
|
|
||||||
luks.devices = {
|
|
||||||
"crypt-nvme" = {
|
|
||||||
device = "/dev/disk/by-uuid/52110c74-19b6-40ef-9710-e6c9b157005f";
|
|
||||||
preLVM = true;
|
|
||||||
allowDiscards = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Additional entry to boot from the second GPU
|
|
||||||
specialisation = {
|
|
||||||
gputwo.configuration = {
|
|
||||||
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{ chaotic, pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware
|
|
||||||
./boot
|
|
||||||
|
|
||||||
# Apps and programs
|
|
||||||
../../../modules/system
|
|
||||||
../../../modules/system/accounts
|
|
||||||
../../../modules/system/desktop
|
|
||||||
../../../modules/system/programs
|
|
||||||
../../../modules/system/services
|
|
||||||
../../../modules/system/services/pc/sunshine
|
|
||||||
../../../modules/system/services/pc/school
|
|
||||||
../../../modules/system/services/pc/virtualization/qemu
|
|
||||||
|
|
||||||
# Devices and hardware
|
|
||||||
../../../modules/system/devices
|
|
||||||
../../../modules/system/devices/boot/lanzaboote
|
|
||||||
../../../modules/system/devices/video/nvidia
|
|
||||||
../../../modules/system/devices/networking/firewall/pc
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
chaotic.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.sway.package = pkgs.sway_git;
|
|
||||||
|
|
||||||
networking.hostName = "firefly";
|
|
||||||
|
|
||||||
# Force Electron to use Wayland
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
}
|
|
|
@ -1,22 +1,7 @@
|
||||||
{ config, nur, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
../../../modules/home
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/remote-desktop
|
../../../modules/home/programs/misc/remote-desktop
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/orange
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
||||||
};
|
};
|
||||||
"/.snapshots" = {
|
"/snapshots" = {
|
||||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@snapshots" "noatime" "nodiratime" "discard" ];
|
options = [ "subvol=@snapshots" "noatime" "nodiratime" "discard" ];
|
||||||
|
|
|
@ -1,24 +1,8 @@
|
||||||
{ config, nur, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
../../../modules/home
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/production
|
|
||||||
../../../modules/home/programs/misc/gaming/launchers
|
../../../modules/home/programs/misc/gaming/launchers
|
||||||
../../../modules/home/programs/misc/remote-desktop
|
../../../modules/home/programs/misc/remote-desktop
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/green
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,8 @@
|
||||||
{ config, pkgs, nur, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
../../../modules/home
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/remote-desktop
|
../../../modules/home/programs/misc/remote-desktop
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/purple
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
alsa-utils
|
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.sway.config.output.${config.displays.dI}.scale = "1.3";
|
wayland.windowManager.sway.config.output.${config.displays.dI}.scale = "1.3";
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"/home/jimbo/JimboNFS" = {
|
"/home/jimbo/JimboNFS" = {
|
||||||
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
||||||
fsType = "nfs4";
|
fsType = "nfs4";
|
||||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,9 @@
|
||||||
{ config, nur, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Apps and programs
|
|
||||||
../../../modules/home
|
../../../modules/home
|
||||||
../../../modules/home/users
|
|
||||||
../../../modules/home/files
|
|
||||||
../../../modules/home/settings
|
|
||||||
../../../modules/home/programs
|
|
||||||
../../../modules/home/programs/misc/production
|
../../../modules/home/programs/misc/production
|
||||||
../../../modules/home/programs/misc/gaming/launchers
|
../../../modules/home/programs/misc/gaming/launchers
|
||||||
../../../modules/home/programs/misc/gaming/xash3d
|
|
||||||
../../../modules/home/programs/misc/remote-desktop
|
../../../modules/home/programs/misc/remote-desktop
|
||||||
../../../modules/home/sway
|
|
||||||
../../../modules/home/utils
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
../../../overlays
|
|
||||||
../../../variables
|
|
||||||
../../../variables/look/colors/green
|
|
||||||
|
|
||||||
# Imports
|
|
||||||
nur.nixosModules.nur
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,13 @@
|
||||||
boot = {
|
boot = {
|
||||||
kernelModules = [ "kvm-intel" ];
|
kernelModules = [ "kvm-intel" ];
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
kernelModules = [ "dm-snapshot" ];
|
kernelModules = [ "dm-snapshot" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -30,7 +36,7 @@
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@var" ];
|
options = [ "subvol=@var" ];
|
||||||
};
|
};
|
||||||
"/.snapshots" = {
|
"/snapshots" = {
|
||||||
device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e";
|
device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@snapshots" ];
|
options = [ "subvol=@snapshots" ];
|
||||||
|
|
|
@ -1,6 +1,16 @@
|
||||||
{ ... }:
|
{ nur, ... }:
|
||||||
{
|
{
|
||||||
programs.home-manager.enable = true;
|
imports = [
|
||||||
nixpkgs.config.allowUnfree = true;
|
./files
|
||||||
home.stateVersion = "24.05";
|
./programs
|
||||||
|
./services
|
||||||
|
./settings
|
||||||
|
./sway
|
||||||
|
./users
|
||||||
|
../../overlays
|
||||||
|
../../variables
|
||||||
|
|
||||||
|
# Imports
|
||||||
|
nur.nixosModules.nur
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 820 KiB |
Before Width: | Height: | Size: 570 KiB |
Before Width: | Height: | Size: 1 MiB |
Before Width: | Height: | Size: 406 KiB |
Before Width: | Height: | Size: 470 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 1.8 MiB |
|
@ -7,10 +7,10 @@
|
||||||
source = ./assets/pfp.png;
|
source = ./assets/pfp.png;
|
||||||
};
|
};
|
||||||
".assets/wallpapers" = {
|
".assets/wallpapers" = {
|
||||||
source = ./assets/wallpapers/${config.look.colors.wallpapers};
|
source = ./assets/wallpapers;
|
||||||
};
|
};
|
||||||
".assets/lockscreen" = {
|
".assets/lockscreen" = {
|
||||||
source = ./assets/lockscreens/holymoly;
|
source = ./assets/lockscreen;
|
||||||
};
|
};
|
||||||
".icons/default" = {
|
".icons/default" = {
|
||||||
source = "${pkgs.simp1e-cursors}/share/icons/Simp1e-Dark";
|
source = "${pkgs.simp1e-cursors}/share/icons/Simp1e-Dark";
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
services.easyeffects = {
|
||||||
packages = with pkgs; [
|
enable = true;
|
||||||
easyeffects
|
preset = "headphones";
|
||||||
];
|
|
||||||
file = {
|
|
||||||
".config/easyeffects/output/JimHeadphones.json".source = ./JimHeadphones.json;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".config/easyeffects/output/headphones.json".source = ./headphones.json;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -312,7 +312,7 @@ in {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
definedAliases = ["@g"];
|
definedAliases = [ "@g" ];
|
||||||
};
|
};
|
||||||
"NixPKGs" = {
|
"NixPKGs" = {
|
||||||
urls = [
|
urls = [
|
||||||
|
@ -331,7 +331,7 @@ in {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = ["@pkgs"];
|
definedAliases = [ "@pkgs" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -348,6 +348,7 @@ in {
|
||||||
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
|
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
|
||||||
"privacy.clearOnShutdown.history" = false;
|
"privacy.clearOnShutdown.history" = false;
|
||||||
"privacy.clearOnShutdown.cookies" = false;
|
"privacy.clearOnShutdown.cookies" = false;
|
||||||
|
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||||
"browser.toolbars.bookmarks.visibility" = "never";
|
"browser.toolbars.bookmarks.visibility" = "never";
|
||||||
"media.hardware-video-decoding.force-enabled" = true;
|
"media.hardware-video-decoding.force-enabled" = true;
|
||||||
"svg.context-properties.content.enabled" = true;
|
"svg.context-properties.content.enabled" = true;
|
||||||
|
@ -400,7 +401,7 @@ in {
|
||||||
icon = "fingerprint";
|
icon = "fingerprint";
|
||||||
id = 200;
|
id = 200;
|
||||||
};
|
};
|
||||||
Seneca = {
|
Work = {
|
||||||
color = "red";
|
color = "red";
|
||||||
icon = "briefcase";
|
icon = "briefcase";
|
||||||
id = 201;
|
id = 201;
|
||||||
|
|
|
@ -14,7 +14,12 @@
|
||||||
defaultTimeout = 6000;
|
defaultTimeout = 6000;
|
||||||
font = "${config.look.fonts.main} 12";
|
font = "${config.look.fonts.main} 12";
|
||||||
anchor = "bottom-right";
|
anchor = "bottom-right";
|
||||||
extraConfig = "on-button-right=dismiss-all\nouter-margin=10\n[mode=do-not-disturb]\ninvisible=1";
|
extraConfig = ''
|
||||||
|
on-button-right=dismiss-all
|
||||||
|
outer-margin=10
|
||||||
|
[mode=do-not-disturb]
|
||||||
|
invisible=1
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = let
|
home.packages = let
|
||||||
|
@ -36,7 +41,5 @@
|
||||||
makoctl mode -a do-not-disturb
|
makoctl mode -a do-not-disturb
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in with pkgs; [
|
in with pkgs; [ makoToggle ];
|
||||||
makoToggle
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [ mangohud ];
|
||||||
mangohud
|
|
||||||
];
|
|
||||||
file = {
|
file = {
|
||||||
|
# I know options exist for this, but the order is not respected.
|
||||||
".config/MangoHud/MangoHud.conf".text = ''
|
".config/MangoHud/MangoHud.conf".text = ''
|
||||||
table_columns=2
|
table_columns=2
|
||||||
frametime=0
|
frametime=0
|
||||||
|
@ -12,7 +11,6 @@
|
||||||
font_scale=0.80
|
font_scale=0.80
|
||||||
background_alpha=0.25
|
background_alpha=0.25
|
||||||
|
|
||||||
# Set the loads and such
|
|
||||||
exec=echo $(echo $XDG_CURRENT_DESKTOP | sed 's/./\U&/') on $(cat /etc/os-release | grep PRETTY_NAME | cut -d '"' -f 2)
|
exec=echo $(echo $XDG_CURRENT_DESKTOP | sed 's/./\U&/') on $(cat /etc/os-release | grep PRETTY_NAME | cut -d '"' -f 2)
|
||||||
fps
|
fps
|
||||||
fps_color_change
|
fps_color_change
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
scripts = with pkgs.mpvScripts; [
|
||||||
|
mpris
|
||||||
|
sponsorblock
|
||||||
|
thumbnail
|
||||||
|
];
|
||||||
config = {
|
config = {
|
||||||
volume = 55;
|
volume = 55;
|
||||||
loop-playlist = "inf";
|
loop-playlist = "inf";
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
spotdl
|
spotdl
|
||||||
playerctl
|
playerctl
|
||||||
ffmpeg
|
ffmpeg
|
||||||
|
alsa-utils
|
||||||
puddletag
|
puddletag
|
||||||
pulsemixer
|
pulsemixer
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
vesktop
|
vesktop
|
||||||
|
|
|
@ -3,7 +3,11 @@
|
||||||
imports = [
|
imports = [
|
||||||
./avtools
|
./avtools
|
||||||
./chat
|
./chat
|
||||||
|
./gaming
|
||||||
./general
|
./general
|
||||||
./headless
|
./headless
|
||||||
|
./production
|
||||||
|
./remote-desktop
|
||||||
|
./school
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
dolphin-emu
|
dolphin-emu
|
||||||
|
@ -6,6 +6,6 @@
|
||||||
ryujinx
|
ryujinx
|
||||||
duckstation
|
duckstation
|
||||||
pcsx2
|
pcsx2
|
||||||
#lime3ds
|
#unstable.lime3ds
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
steam
|
steam
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [ xash3d ];
|
||||||
xash3d
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
imv
|
imv
|
||||||
|
|
|
@ -2,12 +2,9 @@
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gotop
|
gotop
|
||||||
tcptrack
|
|
||||||
p7zip
|
p7zip
|
||||||
vimv
|
vimv
|
||||||
dua
|
dua
|
||||||
pciutils
|
|
||||||
usbutils
|
|
||||||
protonvpn-cli_2
|
protonvpn-cli_2
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
{ pkgs, blender-bin, ... }:
|
{ pkgs, blender-bin, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ./obs ];
|
||||||
./obs
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
krita
|
krita
|
||||||
inkscape
|
inkscape
|
||||||
audacity
|
audacity
|
||||||
blender_4_2
|
blender_4_2
|
||||||
sunvox
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.overlays = [ blender-bin.overlays.default ];
|
nixpkgs.overlays = [ blender-bin.overlays.default ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
remmina
|
remmina
|
||||||
freerdp
|
freerdp
|
||||||
zoom-us
|
zoom-us
|
||||||
globalprotect-openconnect
|
unstable.gpauth
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,5 +7,6 @@
|
||||||
./neovim
|
./neovim
|
||||||
./ranger
|
./ranger
|
||||||
./tmux
|
./tmux
|
||||||
|
./zsh
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,8 @@
|
||||||
|
|
||||||
# Flake commands
|
# Flake commands
|
||||||
flakedate = "doas nix flake update /etc/nixos";
|
flakedate = "doas nix flake update /etc/nixos";
|
||||||
sysswitch = "doas nixos-rebuild switch --flake /etc/nixos";
|
nixswitch = "doas nixos-rebuild switch --flake /etc/nixos";
|
||||||
homeswitch = "home-manager switch --flake /etc/nixos";
|
nixdate = "flakedate && nixswitch";
|
||||||
nixswitch = "sysswitch; homeswitch";
|
|
||||||
nixdate = "flakedate && sysswitch; homeswitch";
|
|
||||||
|
|
||||||
# Shortcut aliases
|
# Shortcut aliases
|
||||||
neo = "clear && fastfetch";
|
neo = "clear && fastfetch";
|
||||||
|
@ -38,8 +36,7 @@
|
||||||
myip = "curl ifconfig.co";
|
myip = "curl ifconfig.co";
|
||||||
|
|
||||||
# Download from sources
|
# Download from sources
|
||||||
ytdl = "yt-dlp --embed-thumbnail --embed-metadata --output \"%(title)s.%(ext)s\"";
|
ytdl = ''yt-dlp --embed-thumbnail --embed-metadata --output "%(title)s.%(ext)s"'';
|
||||||
ytmp4 = "ytdl --recode-video webm";
|
|
||||||
ytm3u = "yt-dlp -gS proto:m3u8";
|
ytm3u = "yt-dlp -gS proto:m3u8";
|
||||||
opusdl = "ytdl --recode-video opus";
|
opusdl = "ytdl --recode-video opus";
|
||||||
ytopus = "opusdl --format 251";
|
ytopus = "opusdl --format 251";
|
|
@ -3,6 +3,5 @@
|
||||||
imports = [
|
imports = [
|
||||||
./gnome-keyring
|
./gnome-keyring
|
||||||
./udiskie
|
./udiskie
|
||||||
./zsh
|
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@
|
||||||
./dconf
|
./dconf
|
||||||
./fonts
|
./fonts
|
||||||
./gtk
|
./gtk
|
||||||
|
./nix
|
||||||
./xdg
|
./xdg
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
twitter-color-emoji
|
twitter-color-emoji
|
||||||
|
|
5
modules/home/settings/nix/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
}
|
|
@ -28,10 +28,6 @@
|
||||||
url = "https://raw.githubusercontent.com/iguanajuice/sway-font-awesome/6b7a9d08974eea1b9cddb8d444e1c89d6837083a/icons";
|
url = "https://raw.githubusercontent.com/iguanajuice/sway-font-awesome/6b7a9d08974eea1b9cddb8d444e1c89d6837083a/icons";
|
||||||
sha256 = "09ki5qw1h91kd33k3fwzq7cb6ck8sq4haswgizrsy387sfr2a75x";
|
sha256 = "09ki5qw1h91kd33k3fwzq7cb6ck8sq4haswgizrsy387sfr2a75x";
|
||||||
}}
|
}}
|
||||||
|
|
||||||
# Switch to workspace 1
|
|
||||||
workspace ${config.ws.w7}
|
|
||||||
workspace ${config.ws.w1}
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
# Set default modifier and variables
|
# Set default modifier and variables
|
||||||
primeMod = "Mod4";
|
primeMod = "Mod4";
|
||||||
secMod = "Mod1";
|
secMod = "Mod1";
|
||||||
resizeAmount = ''55'';
|
resizeAmount = "55";
|
||||||
sendNotif = ''notify-send --expire-time=1500'';
|
sendNotif = "notify-send --expire-time=1500";
|
||||||
in {
|
in {
|
||||||
# Hotkeys
|
# Hotkeys
|
||||||
modifier = "${primeMod}";
|
modifier = "${primeMod}";
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wl-clipboard
|
|
||||||
wdisplays
|
|
||||||
clipman
|
clipman
|
||||||
|
swaybg
|
||||||
libnotify
|
libnotify
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
swappy
|
swappy
|
||||||
jq
|
|
||||||
lm_sensors
|
lm_sensors
|
||||||
|
wl-clipboard
|
||||||
|
wdisplays
|
||||||
|
jq
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,90 +41,99 @@
|
||||||
(assign "${config.displays.d3}" workspaces3);
|
(assign "${config.displays.d3}" workspaces3);
|
||||||
|
|
||||||
# Rules
|
# Rules
|
||||||
|
defaultWorkspace = config.ws.w1;
|
||||||
|
|
||||||
window = {
|
window = {
|
||||||
border = config.look.border.int;
|
border = config.look.border.int;
|
||||||
titlebar = false;
|
titlebar = false;
|
||||||
commands = [
|
commands = [
|
||||||
# Scratchpads
|
# Scratchpads
|
||||||
{
|
{
|
||||||
criteria = {con_mark = "scratchpad";};
|
criteria = { con_mark = "scratchpad"; };
|
||||||
command = ''floating enable, sticky enable, move scratchpad, mark borderless'';
|
command = ''floating enable, sticky enable, move scratchpad, mark borderless'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "gotop";};
|
criteria = { app_id = "gotop"; };
|
||||||
command = ''mark scratchpad'';
|
command = ''mark scratchpad'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "music";};
|
criteria = { app_id = "music"; };
|
||||||
command = ''mark scratchpad'';
|
command = ''mark scratchpad'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "sound";};
|
criteria = { app_id = "sound"; };
|
||||||
command = ''mark scratchpad'';
|
command = ''mark scratchpad'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "com.github.wwmm.easyeffects";};
|
criteria = { app_id = "com.github.wwmm.easyeffects"; };
|
||||||
command = ''mark scratchpad, opacity 0.9'';
|
command = ''mark scratchpad, opacity 0.9'';
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a "Scratchpad" for apps I don't want to be seen when launched
|
# Create a "Scratchpad" for apps I don't want to be seen when launched
|
||||||
{
|
{
|
||||||
criteria = {con_mark = "hiddenaway";};
|
criteria = { con_mark = "hiddenaway"; };
|
||||||
command = ''move scratchpad'';
|
command = ''move scratchpad'';
|
||||||
}
|
}
|
||||||
|
|
||||||
# Give apps that don't have them borders
|
# Give apps that don't have them borders
|
||||||
{
|
{
|
||||||
criteria = {con_mark = "borderless";};
|
criteria = { con_mark = "borderless"; };
|
||||||
command = ''border pixel ${config.look.border.string}'';
|
command = ''border pixel ${config.look.border.string}'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "com.github.wwmm.easyeffects";};
|
criteria = { app_id = "com.github.wwmm.easyeffects"; };
|
||||||
command = ''mark borderless'';
|
command = ''mark borderless'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {class = "steam";};
|
criteria = { class = "steam"; };
|
||||||
command = ''mark borderless'';
|
command = ''mark borderless'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "swappy";};
|
criteria = { app_id = "swappy"; };
|
||||||
command = ''mark borderless'';
|
command = ''mark borderless'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "virt-manager";};
|
criteria = { app_id = "virt-manager"; };
|
||||||
command = ''mark borderless'';
|
command = ''mark borderless'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {window_role = "pop-up";};
|
criteria = { window_role = "pop-up"; };
|
||||||
command = ''mark borderless'';
|
command = ''mark borderless'';
|
||||||
}
|
}
|
||||||
|
|
||||||
# Floating or fullscreen rules
|
# Floating or fullscreen rules
|
||||||
{
|
{
|
||||||
criteria = {app_id = "float";};
|
criteria = { app_id = "float"; };
|
||||||
command = ''floating enable'';
|
command = ''floating enable'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {title = "^GlobalShot";};
|
criteria = { title = "^GlobalShot"; };
|
||||||
command = ''floating enable, fullscreen enable global'';
|
command = ''floating enable, fullscreen enable global'';
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
assigns = {
|
assigns = {
|
||||||
# Broconfig.wsers
|
# Broconfig.wsers
|
||||||
"${config.ws.w1}" = [{app_id = "MainBrowser";}];
|
"${config.ws.w1}" = [{ app_id = "MainBrowser"; }];
|
||||||
"${config.ws.w1a}" = [{app_id = "AltBrowser";}];
|
"${config.ws.w1a}" = [{ app_id = "AltBrowser"; }];
|
||||||
|
|
||||||
# Communication
|
# Communication
|
||||||
"${config.ws.w3a}" = [{class = "zoom";}];
|
"${config.ws.w3a}" = [{ class = "zoom"; }];
|
||||||
"${config.ws.w7}" = [{app_id = "MiscBrowser";} {app_id = "vesktop";} {class = "vesktop";}];
|
"${config.ws.w7}" = [
|
||||||
"${config.ws.w8}" = [{app_id = "org.gnome.Fractal";}];
|
{ app_id = "MiscBrowser"; }
|
||||||
"${config.ws.w9}" = [{app_id = "thunderbird";}];
|
{ app_id = "vesktop"; }
|
||||||
|
{ class = "vesktop"; }
|
||||||
|
];
|
||||||
|
"${config.ws.w8}" = [{ app_id = "org.gnome.Fractal"; }];
|
||||||
|
"${config.ws.w9}" = [{ app_id = "thunderbird"; }];
|
||||||
|
|
||||||
# Else
|
# Etc
|
||||||
"${config.ws.w2}" = [{class = "steam";} {app_id = "heroic";}];
|
"${config.ws.w2}" = [
|
||||||
"${config.ws.w2a}" = [{app_id = "looking-glass-client";}];
|
{ class = "steam"; }
|
||||||
"${config.ws.w4a}" = [{app_id = "com.obsproject.Studio";}];
|
{app_id = "heroic";}
|
||||||
|
];
|
||||||
|
"${config.ws.w2a}" = [{ app_id = "looking-glass-client"; }];
|
||||||
|
"${config.ws.w4a}" = [{ app_id = "com.obsproject.Studio"; }];
|
||||||
};
|
};
|
||||||
focus.newWindow = "focus";
|
focus.newWindow = "focus";
|
||||||
};
|
};
|
||||||
|
|
|
@ -47,15 +47,14 @@
|
||||||
vramModule = {
|
vramModule = {
|
||||||
exec = pkgs.writeScript "vramScript" ''
|
exec = pkgs.writeScript "vramScript" ''
|
||||||
# Don't run the script if running on integrated graphics
|
# Don't run the script if running on integrated graphics
|
||||||
if lspci -k | grep "Kernel driver in use: nvidia" &> /dev/null || lspci -k | grep "Kernel driver in use: amdgpu" &> /dev/null; then
|
gpu_driver=$(${pkgs.pciutils}/bin/lspci -k | grep -Eo "in use: (nvidia|amdgpu)" | awk '{print $3}')
|
||||||
|
|
||||||
# Run the nvidia-smi command and capture the VRAM usage and GPU utilization output
|
if [ -n "$gpu_driver" ]; then
|
||||||
if lspci -k | grep "Kernel driver in use: nvidia" &> /dev/null; then
|
if [ "$gpu_driver" == "nvidia" ]; then
|
||||||
vram_usage_mb=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits)
|
vram_usage_mb=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits)
|
||||||
temperature=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits)
|
temperature=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits)
|
||||||
|
|
||||||
# Check the drm memory if an AMD GPU is present
|
elif [ "$gpu_driver" == "amdgpu" ]; then
|
||||||
elif lspci -k | grep "Kernel driver in use: amdgpu" &> /dev/null; then
|
|
||||||
vram_usage_mb=$(echo "$(cat /sys/class/drm/card0/device/mem_info_vram_used || cat /sys/class/drm/card1/device/mem_info_vram_used) / 1024 / 1024" | bc)
|
vram_usage_mb=$(echo "$(cat /sys/class/drm/card0/device/mem_info_vram_used || cat /sys/class/drm/card1/device/mem_info_vram_used) / 1024 / 1024" | bc)
|
||||||
temperature=$(sensors | grep 'edge' | awk '{print $2}' | sed 's/[^0-9.-]//g')
|
temperature=$(sensors | grep 'edge' | awk '{print $2}' | sed 's/[^0-9.-]//g')
|
||||||
fi
|
fi
|
||||||
|
@ -69,10 +68,8 @@
|
||||||
vram_usage_display="$(echo $vram_usage_gib)G"
|
vram_usage_display="$(echo $vram_usage_gib)G"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Print the VRAM usage in MB or GiB, and include GPU utilization and temperature
|
# Print the VRAM usage and temperature
|
||||||
echo "{\"text\":\" $(echo $vram_usage_display)\",\"tooltip\":\"$(echo $temperature)°C\"}"
|
echo "{\"text\":\" $(echo $vram_usage_display)\",\"tooltip\":\"$(echo $temperature)°C\"}"
|
||||||
else
|
|
||||||
:
|
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
format = "{}";
|
format = "{}";
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ ... }:
|
{ home-manager, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./jimbo
|
./jimbo
|
||||||
./liquidsoap
|
./liquidsoap
|
||||||
./nextcloud
|
./nextcloud
|
||||||
./nginx
|
./nginx
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
];
|
];
|
||||||
|
|
||||||
|
users.mutableUsers = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, unstable, nur, blender-bin, ... }:
|
||||||
{
|
{
|
||||||
users.users = {
|
users.users = {
|
||||||
jimbo = {
|
jimbo = {
|
||||||
|
@ -26,7 +26,6 @@
|
||||||
"input"
|
"input"
|
||||||
"disk"
|
"disk"
|
||||||
"dialout"
|
"dialout"
|
||||||
"networkmanager"
|
|
||||||
"rtkit"
|
"rtkit"
|
||||||
"kvm"
|
"kvm"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
|
@ -39,4 +38,17 @@
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
useUserPackages = true;
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit
|
||||||
|
unstable
|
||||||
|
nur
|
||||||
|
blender-bin
|
||||||
|
;
|
||||||
|
};
|
||||||
|
users.jimbo = import ../../../../home;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,31 +2,14 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./greetd
|
./greetd
|
||||||
|
./portals
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.sway = {
|
programs.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = true;
|
extraPackages = with pkgs; [ swaylock ];
|
||||||
extraPackages = with pkgs; [
|
|
||||||
swaylock
|
|
||||||
swaybg
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Allow swaylock to function
|
# Allow swaylock to function
|
||||||
security.pam.services.swaylock = {};
|
security.pam.services.swaylock = {};
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
wlr = {
|
|
||||||
enable = true;
|
|
||||||
settings.screencast = {
|
|
||||||
max_fps = 60;
|
|
||||||
chooser_type = "simple";
|
|
||||||
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or -B 00000066 -b 00000099";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services = {
|
# Configure greetd for login directly to Sway
|
||||||
# Configure greetd for "auto" login (single user only)
|
services.greetd = let
|
||||||
greetd = let
|
|
||||||
startSway = pkgs.writeScript "startsway" ''
|
startSway = pkgs.writeScript "startsway" ''
|
||||||
if lspci -k | grep "Kernel driver in use: nvidia" &> /dev/null; then
|
if ${pkgs.pciutils}/bin/lspci -k | grep "in use: nvidia" &> /dev/null; then
|
||||||
export LIBVA_DRIVER_NAME=nvidia
|
export LIBVA_DRIVER_NAME=nvidia
|
||||||
export GBM_BACKEND=nvidia-drm
|
export GBM_BACKEND=nvidia-drm
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||||
|
@ -31,5 +30,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
16
modules/system/desktop/sway/portals/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
xdg.portal = {
|
||||||
|
wlr = {
|
||||||
|
enable = true;
|
||||||
|
settings.screencast = {
|
||||||
|
max_fps = 60;
|
||||||
|
chooser_type = "simple";
|
||||||
|
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or -B 00000066 -b 00000099";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,7 +3,6 @@
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
light.enable = true;
|
light.enable = true;
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
20
modules/system/devices/audio/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
wireplumber = {
|
||||||
|
enable = true;
|
||||||
|
configPackages = [
|
||||||
|
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" ''
|
||||||
|
wireplumber.settings = { bluetooth.autoswitch-to-headset-profile = false }
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
pulse.enable = true;
|
||||||
|
#jack.enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1,11 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./audio
|
||||||
./bluetooth
|
./bluetooth
|
||||||
./filesystems
|
./filesystems
|
||||||
|
./impermanence
|
||||||
./networking
|
./networking
|
||||||
./pipewire
|
|
||||||
./printing
|
./printing
|
||||||
./udev
|
./udev
|
||||||
./video
|
./video
|
||||||
|
|
8
modules/system/devices/impermanence/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ impermanence, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./root
|
||||||
|
./jimbo
|
||||||
|
impermanence.nixosModules.impermanence
|
||||||
|
];
|
||||||
|
}
|
37
modules/system/devices/impermanence/jimbo/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
environment.persistence."/persist" = {
|
||||||
|
hideMounts = true;
|
||||||
|
users.jimbo = {
|
||||||
|
directories = [
|
||||||
|
"Downloads"
|
||||||
|
"Documents"
|
||||||
|
"Games"
|
||||||
|
"Pictures"
|
||||||
|
"Videos"
|
||||||
|
".snapshots"
|
||||||
|
".mozilla"
|
||||||
|
".thunderbird"
|
||||||
|
|
||||||
|
".config/blender"
|
||||||
|
".config/vesktop"
|
||||||
|
".config/sunshine"
|
||||||
|
".config/heroic"
|
||||||
|
".config/obs-studio"
|
||||||
|
|
||||||
|
".local/share/nvim/undo"
|
||||||
|
".local/share/fractal"
|
||||||
|
".local/share/PrismLauncher"
|
||||||
|
".local/share/Steam"
|
||||||
|
|
||||||
|
{ directory = ".ssh"; mode = "0700"; }
|
||||||
|
{ directory = ".gnupg"; mode = "0700"; }
|
||||||
|
{ directory = ".local/share/keyrings"; mode = "0700"; }
|
||||||
|
];
|
||||||
|
files = [
|
||||||
|
".zsh_history"
|
||||||
|
".local/share/clipman.json"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
modules/system/devices/impermanence/root/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
environment.persistence."/persist" = {
|
||||||
|
hideMounts = true;
|
||||||
|
directories = [
|
||||||
|
"/etc/nixos"
|
||||||
|
"/etc/secureboot"
|
||||||
|
|
||||||
|
"/var/log"
|
||||||
|
"/var/lib/bluetooth"
|
||||||
|
"/var/lib/mpd"
|
||||||
|
"/var/lib/nixos"
|
||||||
|
"/var/lib/fail2ban"
|
||||||
|
"/var/lib/systemd/coredump"
|
||||||
|
];
|
||||||
|
files = [
|
||||||
|
"/etc/machine-id"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,5 +4,9 @@
|
||||||
wireless.enable = false;
|
wireless.enable = false;
|
||||||
dhcpcd.enable = true;
|
dhcpcd.enable = true;
|
||||||
nftables.enable = true;
|
nftables.enable = true;
|
||||||
|
nameservers = [
|
||||||
|
"1.1.1.1"
|
||||||
|
"1.1.1.2"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
networking.firewall = {
|
networking = {
|
||||||
allowedUDPPorts = [ 51820 ];
|
firewall.allowedUDPPorts = [ 51820 ];
|
||||||
};
|
|
||||||
|
|
||||||
networking.wireguard.interfaces = {
|
wireguard.interfaces = {
|
||||||
"${config.ips.wgInt}" = {
|
"${config.ips.wgInt}" = {
|
||||||
# Define IP of client in per device config
|
# Define IP of client in per device config
|
||||||
listenPort = 51820;
|
listenPort = 51820;
|
||||||
privateKey = config.secrets.wgClientPriv;
|
privateKey = config.secrets.wgClientPriv;
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{ # NixOS Server
|
||||||
publicKey = "qnOT/lXOJMaQgDUdXpyfGZB2IEyUouRje2m/bCe9ux8=";
|
publicKey = "qnOT/lXOJMaQgDUdXpyfGZB2IEyUouRje2m/bCe9ux8=";
|
||||||
allowedIPs = [ "${config.ips.wgSpan}.0/24" ];
|
allowedIPs = [ "${config.ips.wgSpan}.0/24" ];
|
||||||
endpoint = "sv.${config.domains.jim1}:51820";
|
endpoint = "sv.${config.domains.jim1}:51820";
|
||||||
|
@ -19,4 +18,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,10 @@
|
||||||
externalInterface = "${config.ips.netInt}";
|
externalInterface = "${config.ips.netInt}";
|
||||||
internalInterfaces = [ "${config.ips.wgInt}" ];
|
internalInterfaces = [ "${config.ips.wgInt}" ];
|
||||||
};
|
};
|
||||||
firewall.allowedUDPPorts = [ 51820 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.wireguard = {
|
firewall.allowedUDPPorts = [ 51820 ];
|
||||||
enable = true;
|
|
||||||
interfaces = {
|
wireguard.interfaces = {
|
||||||
"${config.ips.wgInt}" = {
|
"${config.ips.wgInt}" = {
|
||||||
ips = [ "${config.ips.wgSpan}.1/24" ];
|
ips = [ "${config.ips.wgSpan}.1/24" ];
|
||||||
listenPort = 51820;
|
listenPort = 51820;
|
||||||
|
|
|
@ -5,7 +5,5 @@
|
||||||
enableB43Firmware = true;
|
enableB43Firmware = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [ unstable.impala ];
|
||||||
unstable.impala
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
audio.enable = true;
|
|
||||||
wireplumber = {
|
|
||||||
enable = true;
|
|
||||||
configPackages = [(
|
|
||||||
pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" ''
|
|
||||||
wireplumber.settings = { bluetooth.autoswitch-to-headset-profile = false }
|
|
||||||
''
|
|
||||||
)];
|
|
||||||
};
|
|
||||||
alsa = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
};
|
|
||||||
pulse.enable = true;
|
|
||||||
#jack.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -3,7 +3,7 @@
|
||||||
services = {
|
services = {
|
||||||
printing = {
|
printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = with pkgs; [hplip];
|
drivers = with pkgs; [ hplip ];
|
||||||
webInterface = false;
|
webInterface = false;
|
||||||
};
|
};
|
||||||
avahi = {
|
avahi = {
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
destination = "/etc/udev/rules.d/10-oculus.rules";
|
destination = "/etc/udev/rules.d/10-oculus.rules";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
packages = [
|
packages = [ oculusRules ];
|
||||||
oculusRules
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
destination = "/etc/udev/rules.d/10-pdp.rules";
|
destination = "/etc/udev/rules.d/10-pdp.rules";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
packages = [
|
packages = [ pdpRules ];
|
||||||
pdpRules
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./fwupd
|
|
||||||
./gnome-keyring
|
./gnome-keyring
|
||||||
|
./gvfs
|
||||||
./keyd
|
./keyd
|
||||||
./mpd
|
./mpd
|
||||||
./networkfs
|
|
||||||
./polkit
|
./polkit
|
||||||
|
./snapper
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
services.fwupd.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
fwupd
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -8,7 +8,6 @@
|
||||||
main = {
|
main = {
|
||||||
capslock = "overload(control,esc)";
|
capslock = "overload(control,esc)";
|
||||||
leftcontrol = "overload(ctrlmod,noop)";
|
leftcontrol = "overload(ctrlmod,noop)";
|
||||||
|
|
||||||
esc = "`";
|
esc = "`";
|
||||||
rightcontrol = "esc";
|
rightcontrol = "esc";
|
||||||
left = "noop";
|
left = "noop";
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./globalprotect
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.globalprotect.enable = true;
|
|
||||||
}
|
|
13
modules/system/services/pc/snapper/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./root
|
||||||
|
./jimbo
|
||||||
|
];
|
||||||
|
|
||||||
|
services.snapper = {
|
||||||
|
snapshotInterval = "0/6:00:00";
|
||||||
|
cleanupInterval = "12:00:00";
|
||||||
|
persistentTimer = true;
|
||||||
|
};
|
||||||
|
}
|
12
modules/system/services/pc/snapper/jimbo/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.snapper.configs.jimbo = {
|
||||||
|
SUBVOLUME = "/persist/home/jimbo";
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
TIMELINE_LIMIT_DAILY = 1;
|
||||||
|
TIMELINE_LIMIT_WEEKLY = 1;
|
||||||
|
TIMELINE_LIMIT_MONTHLY = 0;
|
||||||
|
TIMELINE_LIMIT_YEARLY = 0;
|
||||||
|
};
|
||||||
|
}
|
12
modules/system/services/pc/snapper/root/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.snapper.configs.root = {
|
||||||
|
SUBVOLUME = "/persist";
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
TIMELINE_LIMIT_DAILY = 1;
|
||||||
|
TIMELINE_LIMIT_WEEKLY = 0;
|
||||||
|
TIMELINE_LIMIT_MONTHLY = 0;
|
||||||
|
TIMELINE_LIMIT_YEARLY = 0;
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,7 +2,6 @@
|
||||||
{
|
{
|
||||||
services.sunshine = {
|
services.sunshine = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.port = 57989;
|
|
||||||
autoStart = false;
|
autoStart = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,24 +5,25 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
securityType = "user";
|
securityType = "user";
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
extraConfig = ''
|
settings = {
|
||||||
workgroup = WORKGROUP
|
global = {
|
||||||
server string = JimSMB
|
"workgroup" = "WORKGROUP";
|
||||||
security = user
|
"server string" = "JimSMB";
|
||||||
hosts allow = ${config.ips.localSpan}. 127.0.0.1 localhost
|
"security" = "user";
|
||||||
hosts deny = 0.0.0.0/0
|
"hosts allow" = "${config.ips.localSpan}. 127.0.0.1 localhost";
|
||||||
guest account = nobody
|
"hosts deny" = "0.0.0.0/0";
|
||||||
map to guest = bad user
|
"guest account" = "nobody";
|
||||||
'';
|
"map to guest" = "bad user";
|
||||||
shares = {
|
};
|
||||||
roms = {
|
"roms" = {
|
||||||
comment = "Samba share with my ROMs";
|
"path" = "/export/JimboNFS/Downloads/GameFiles/ROMS";
|
||||||
path = "/export/JimboNFS/Downloads/GameFiles/ROMS";
|
"browseable" = "yes";
|
||||||
browseable = "yes";
|
|
||||||
"read only" = "no";
|
"read only" = "no";
|
||||||
"guest ok" = "no";
|
"guest ok" = "yes";
|
||||||
"create mask" = "0644";
|
"create mask" = "0644";
|
||||||
"directory mask" = "0755";
|
"directory mask" = "0755";
|
||||||
|
"force user" = "username";
|
||||||
|
"force group" = "groupname";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
min-port = 49000;
|
min-port = 49000;
|
||||||
max-port = 50000;
|
max-port = 50000;
|
||||||
use-auth-secret = true;
|
use-auth-secret = true;
|
||||||
static-auth-secret = "will be world readable for local users :(";
|
static-auth-secret = config.secrets.coturnSecret;
|
||||||
realm = "turn.${config.domains.jim1}";
|
realm = "turn.${config.domains.jim1}";
|
||||||
cert = "/var/lib/acme/turn.${config.domains.jim1}.com/fullchain.pem";
|
cert = "/var/lib/acme/turn.${config.domains.jim1}.com/fullchain.pem";
|
||||||
pkey = "/var/lib/acme/turn.${config.domains.jim1}.com/key.pem";
|
pkey = "/var/lib/acme/turn.${config.domains.jim1}.com/key.pem";
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
"turn:turn.${config.domains.jim1}:3478?transport=udp"
|
"turn:turn.${config.domains.jim1}:3478?transport=udp"
|
||||||
"turn:turn.${config.domains.jim1}:3478?transport=tcp"
|
"turn:turn.${config.domains.jim1}:3478?transport=tcp"
|
||||||
];
|
];
|
||||||
turn_shared_secret = config.services.coturn.static-auth-secret;
|
turn_shared_secret = config.secrets.coturnSecret;
|
||||||
turn_user_lifetime = "1h";
|
turn_user_lifetime = "1h";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -32,10 +32,12 @@
|
||||||
# Open coturn ports
|
# Open coturn ports
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedUDPPorts = [
|
allowedUDPPorts = [
|
||||||
3478 5349
|
3478
|
||||||
];
|
5349
|
||||||
allowedUDPPortRanges = [
|
|
||||||
{ from = 49000; to = 50000; }
|
|
||||||
];
|
];
|
||||||
|
allowedUDPPortRanges = [{
|
||||||
|
from = config.services.coturn.min-port;
|
||||||
|
to = config.services.coturn.max-port;
|
||||||
|
}];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,14 +13,16 @@
|
||||||
public_baseurl = "https://matrix.${config.domains.jim1}";
|
public_baseurl = "https://matrix.${config.domains.jim1}";
|
||||||
suppress_key_server_warning = true;
|
suppress_key_server_warning = true;
|
||||||
|
|
||||||
listeners = [{
|
listeners = [
|
||||||
|
{
|
||||||
port = 8008;
|
port = 8008;
|
||||||
bind_addresses = [ "::" "0.0.0.0" ];
|
bind_addresses = [ "::" "0.0.0.0" ];
|
||||||
resources = [ { compress = false; names = [ "client" "federation" ]; } ];
|
resources = [ { compress = true; names = [ "client" "federation" ]; } ];
|
||||||
type = "http";
|
type = "http";
|
||||||
tls = false;
|
tls = false;
|
||||||
x_forwarded = true;
|
x_forwarded = true;
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
email = {
|
email = {
|
||||||
notif_from = "Jimbo's Matrix <noreply@${config.domains.jim1}>";
|
notif_from = "Jimbo's Matrix <noreply@${config.domains.jim1}>";
|
||||||
|
|