mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 04:59:42 +00:00
Compare commits
8 commits
f12f74f77a
...
7d1c51a1a3
Author | SHA1 | Date | |
---|---|---|---|
ItsDrike | 7d1c51a1a3 | ||
ItsDrike | b7e8083c15 | ||
ItsDrike | 7c6fb65431 | ||
ItsDrike | 161b754274 | ||
ItsDrike | af7339c2e7 | ||
ItsDrike | 8f6d4073b0 | ||
ItsDrike | 618144c7ac | ||
ItsDrike | b8ae87b938 |
|
@ -49,6 +49,14 @@ cryptsetup open /dev/disk/by-label/NIXCRYPTFS crypfs
|
||||||
mkfs.btrfs -L NIXFS /dev/mapper/cryptfs
|
mkfs.btrfs -L NIXFS /dev/mapper/cryptfs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> For the LUKS encrypted partitions, I'd heavily recommend that you back up the LUKS headers in case of a partial drive failure, so that you're still
|
||||||
|
> able to recover your remaining data. To do this, you can use the following command:
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> cryptsetup luksHeaderBackup /dev/device --header-backup-file /mnt/backup/file.img
|
||||||
|
> ```
|
||||||
|
|
||||||
### BTRFS Subvolumes
|
### BTRFS Subvolumes
|
||||||
|
|
||||||
Now we will split our btrfs partition into the following subvolumes:
|
Now we will split our btrfs partition into the following subvolumes:
|
||||||
|
|
108
flake.lock
108
flake.lock
|
@ -132,11 +132,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719994518,
|
"lastModified": 1725234343,
|
||||||
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
|
"narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
|
"rev": "567b938d64d4b4112ee253b9274472dc3a346eb6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -153,11 +153,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717285511,
|
"lastModified": 1722555600,
|
||||||
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
|
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -257,11 +257,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719226092,
|
"lastModified": 1724947644,
|
||||||
"narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=",
|
"narHash": "sha256-MHHrHasTngp7EYQOObHJ1a/IsRF+wodHqOckhH6uZbk=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "hercules-ci-effects",
|
"repo": "hercules-ci-effects",
|
||||||
"rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5",
|
"rev": "dba4367b9a9d9615456c430a6d6af716f6e84cef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -284,11 +284,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713898448,
|
"lastModified": 1719226092,
|
||||||
"narHash": "sha256-6q6ojsp/Z9P2goqnxyfCSzFOD92T3Uobmj8oVAicUOs=",
|
"narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "hercules-ci-effects",
|
"repo": "hercules-ci-effects",
|
||||||
"rev": "c0302ec12d569532a6b6bd218f698bc402e93adc",
|
"rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -303,6 +303,27 @@
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725948275,
|
||||||
|
"narHash": "sha256-4QOPemDQ9VRLQaAdWuvdDBhh+lEUOAnSMHhdr4nS1mk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "e5fa72bad0c6f533e8d558182529ee2acc9454fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"schizofox",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723015306,
|
"lastModified": 1723015306,
|
||||||
"narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=",
|
"narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=",
|
||||||
|
@ -317,34 +338,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"schizofox",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717097707,
|
|
||||||
"narHash": "sha256-HC5vJ3oYsjwsCaSbkIPv80e4ebJpNvFKQTBOGlHvjLs=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "0eb314b4f0ba337e88123e0b1e57ef58346aafd9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719091691,
|
"lastModified": 1725690722,
|
||||||
"narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=",
|
"narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a",
|
"rev": "63f4d0443e32b0dd7189001ee1894066765d18a5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -389,11 +389,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722479120,
|
"lastModified": 1725503605,
|
||||||
"narHash": "sha256-P0fXZvYT56dKd5Zjuao4uQqgw9YFZ5AE2V31f4iluXI=",
|
"narHash": "sha256-P/3wqoBMbQfjEtweRIzUBRWL7yj52ODsVPMinvOCFhQ=",
|
||||||
"owner": "nixpak",
|
"owner": "nixpak",
|
||||||
"repo": "nixpak",
|
"repo": "nixpak",
|
||||||
"rev": "c53bd63c6851f6972fb1f1f192e608775fb54a9f",
|
"rev": "baa4b365dd20aa5b56f73bc446e2970a3089c145",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -415,11 +415,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717036060,
|
"lastModified": 1723083542,
|
||||||
"narHash": "sha256-Bm1pBy1goxIz9PD0PRJ9ZgQzl7MQOQ6n5IB4wLNdXrA=",
|
"narHash": "sha256-Nkbb3j+P0zMqvZUlV6WbT5erHasZ14NW0TJS3Bb9dVY=",
|
||||||
"owner": "nixpak",
|
"owner": "nixpak",
|
||||||
"repo": "nixpak",
|
"repo": "nixpak",
|
||||||
"rev": "3a68b5453f75b1c8e5d31859a654e061a57dc059",
|
"rev": "d36970c58794c90401617accae0eb48868e335e6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -430,11 +430,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722813957,
|
"lastModified": 1725634671,
|
||||||
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
|
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
|
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -559,11 +559,11 @@
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722689807,
|
"lastModified": 1725210690,
|
||||||
"narHash": "sha256-8YZ2T0o2bcSaXmEbuxIhbb7u4MpVSU7BGdgPpLy6RNk=",
|
"narHash": "sha256-iCGXWHn7MeU3uKLw0bQyyl3rvIN7/X2bxZ7buqZgNvU=",
|
||||||
"owner": "schizofox",
|
"owner": "schizofox",
|
||||||
"repo": "schizofox",
|
"repo": "schizofox",
|
||||||
"rev": "cd6fbdda984644176ad45bfb4ecfb61fd190b95d",
|
"rev": "4c554d44b73823d820bb6add4c12411e0ffecd80",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -603,11 +603,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723004010,
|
"lastModified": 1725941773,
|
||||||
"narHash": "sha256-9NaGh1bUlIWrRJXY3qTmX5IFa+5xEP2wf8J0DCi/Wxs=",
|
"narHash": "sha256-pvjDesWV1L9LgiqKT1JUlviVFMcH3jVOm/wjt/uqIpg=",
|
||||||
"owner": "Gerg-L",
|
"owner": "Gerg-L",
|
||||||
"repo": "spicetify-nix",
|
"repo": "spicetify-nix",
|
||||||
"rev": "5a4a301de746e16851165b0da8ab6d38ed37b8dd",
|
"rev": "26955b675c39338e4e1963eaa1f5405890e63fb8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -654,11 +654,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723046394,
|
"lastModified": 1725430478,
|
||||||
"narHash": "sha256-WvUtvAfuhTL128OIDGgRcKjXkqbLkyypG711nlGmMNw=",
|
"narHash": "sha256-W30JZlSiFIUALwFtjIDG5E6LtuUTjHvAVrNlKpuSEt0=",
|
||||||
"owner": "abenz1267",
|
"owner": "abenz1267",
|
||||||
"repo": "walker",
|
"repo": "walker",
|
||||||
"rev": "bb2f7fa6a01ec92388e992cc9a8348e72fa00622",
|
"rev": "e4a58cd93691d3d9ace67a691bd74d54032c89b0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
_: {
|
_: {
|
||||||
imports = [
|
imports = [
|
||||||
./prismlauncher.nix
|
./prismlauncher.nix
|
||||||
|
./lutris.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
19
home/programs/graphical/games/lutris.nix
Normal file
19
home/programs/graphical/games/lutris.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
|
||||||
|
cfg = osConfig.myOptions.home-manager.programs.games.lutris;
|
||||||
|
in {
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
lutris.override
|
||||||
|
{
|
||||||
|
extraPkgs = pkgs: [];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -92,7 +92,6 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# Jetbrains
|
# Jetbrains
|
||||||
"windowdance, class:^(jetbrains-.*)$,floating:1"
|
|
||||||
"center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
"center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
||||||
"nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
"nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
||||||
"noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
"noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1"
|
||||||
|
|
|
@ -1,26 +1,57 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
# TODO: Consider switching to nixvim
|
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
# Packages required for:
|
# Packages required for:
|
||||||
|
#
|
||||||
# - Mason to build various language servers / linters / formatters from source
|
# - Mason to build various language servers / linters / formatters from source
|
||||||
# - Runtime dependencies of plugins / lang servers / ...
|
# - Runtime dependencies of plugins / lang servers / ...
|
||||||
withNodeJs = true;
|
withNodeJs = true;
|
||||||
withPython3 = true;
|
withPython3 = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
# Tools for building Mason packages
|
||||||
go
|
go
|
||||||
python3
|
python3
|
||||||
rustc
|
rustc
|
||||||
cargo
|
cargo
|
||||||
gcc
|
gcc
|
||||||
|
cmake
|
||||||
|
gnumake
|
||||||
|
|
||||||
|
# lang servers
|
||||||
|
lua-language-server
|
||||||
|
rust-analyzer
|
||||||
|
taplo
|
||||||
|
gopls
|
||||||
|
marksman
|
||||||
|
yaml-language-server
|
||||||
|
ruff
|
||||||
|
neocmakelsp
|
||||||
|
bash-language-server
|
||||||
|
nixd
|
||||||
|
|
||||||
|
# Linters / formatters
|
||||||
|
stylua
|
||||||
|
shfmt
|
||||||
|
gofumpt
|
||||||
|
gotools
|
||||||
|
sqlfluff
|
||||||
|
hadolint
|
||||||
|
markdownlint-cli2
|
||||||
|
nodePackages.prettier
|
||||||
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
alejandra
|
||||||
deadnix
|
deadnix
|
||||||
statix
|
statix
|
||||||
alejandra
|
|
||||||
nixd
|
# Other tools / utilities
|
||||||
|
ripgrep
|
||||||
|
fd
|
||||||
|
jq
|
||||||
|
lazygit
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
username = "itsdrike";
|
username = "itsdrike";
|
||||||
|
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
|
docker.enable = true;
|
||||||
|
|
||||||
impermanence = {
|
impermanence = {
|
||||||
root = {
|
root = {
|
||||||
|
@ -48,6 +49,7 @@
|
||||||
|
|
||||||
extraDirectories = [
|
extraDirectories = [
|
||||||
"/var/log"
|
"/var/log"
|
||||||
|
"/var/lib/docker"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -86,6 +88,8 @@
|
||||||
".config/github-copilot"
|
".config/github-copilot"
|
||||||
".config/ipython"
|
".config/ipython"
|
||||||
".cache/pre-commit"
|
".cache/pre-commit"
|
||||||
|
".cache/venv-selector"
|
||||||
|
".local/share/direnv"
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
".local/state/wireplumber" # volume settings
|
".local/state/wireplumber" # volume settings
|
||||||
|
@ -231,6 +235,7 @@
|
||||||
};
|
};
|
||||||
games = {
|
games = {
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
|
lutris.enable = true;
|
||||||
prismlauncher.enable = true;
|
prismlauncher.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -65,6 +65,7 @@ in {
|
||||||
|
|
||||||
games = {
|
games = {
|
||||||
steam.enable = mkEnableOption "Steam client";
|
steam.enable = mkEnableOption "Steam client";
|
||||||
|
lutris.enable = mkEnableOption "Lutris (Open Gaming Platform for Linux)";
|
||||||
prismlauncher.enable = mkEnableOption "PrismLauncher";
|
prismlauncher.enable = mkEnableOption "PrismLauncher";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{lib, ...}:
|
{lib, ...}: let
|
||||||
with lib; let
|
inherit (lib) mkOption mkEnableOption types;
|
||||||
inherit (lib) mkOption;
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./boot
|
./boot
|
||||||
|
@ -21,5 +20,14 @@ in {
|
||||||
sound = {
|
sound = {
|
||||||
enable = mkEnableOption "sound related programs and audio-dependent programs";
|
enable = mkEnableOption "sound related programs and audio-dependent programs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
docker = {
|
||||||
|
enable = mkEnableOption "docker virtualisation platform";
|
||||||
|
data-root = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Path to the directory where docker data should be stored";
|
||||||
|
default = "/var/lib/docker";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,5 +7,6 @@ _: {
|
||||||
./thermald.nix
|
./thermald.nix
|
||||||
./journald.nix
|
./journald.nix
|
||||||
./fstrim.nix
|
./fstrim.nix
|
||||||
|
./docker.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
16
system/shared/services/docker.nix
Normal file
16
system/shared/services/docker.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.myOptions.system.docker;
|
||||||
|
in {
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
storageDriver = "btrfs";
|
||||||
|
|
||||||
|
daemon.settings.data-root = cfg.data-root;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue