mirror of
https://github.com/tuxdotrs/nix-config.git
synced 2026-06-21 03:36:32 +05:30
Compare commits
5 Commits
7c2869f47b
...
841f2ca4fb
| Author | SHA1 | Date | |
|---|---|---|---|
|
841f2ca4fb
|
|||
|
351d3b44f6
|
|||
|
1824de4b0a
|
|||
|
594c1d07e7
|
|||
|
3115bd6d0e
|
13
.sops.yaml
Normal file
13
.sops.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
keys:
|
||||||
|
- &users
|
||||||
|
- &tux age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
||||||
|
|
||||||
|
- &hosts
|
||||||
|
- &sirius age18hepvvp3nw9ram6usxc8rvpxed2pye0knqx0zutqgxeu35k745vqyxfphz
|
||||||
|
|
||||||
|
creation_rules:
|
||||||
|
- path_regex: hosts/sirius/secrets.yaml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *tux
|
||||||
|
- *sirius
|
||||||
113
flake.lock
generated
113
flake.lock
generated
@@ -186,6 +186,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"revCount": 69,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1767039857,
|
||||||
@@ -239,6 +253,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777678872,
|
||||||
|
"narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
@@ -765,6 +797,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixcord": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
"nixpkgs-nixcord": "nixpkgs-nixcord"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778145028,
|
||||||
|
"narHash": "sha256-tJHyzazrh9cnL72lPiDCnLDOOP95vDb37PprmgiqHtw=",
|
||||||
|
"owner": "kaylorben",
|
||||||
|
"repo": "nixcord",
|
||||||
|
"rev": "b53c871a9c3d4d450ffbcac71d54f3e0ca1bbafc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kaylorben",
|
||||||
|
"repo": "nixcord",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777796046,
|
"lastModified": 1777796046,
|
||||||
@@ -812,6 +865,37 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-lib_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777168982,
|
||||||
|
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-nixcord": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777428379,
|
||||||
|
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777805331,
|
"lastModified": 1777805331,
|
||||||
@@ -893,6 +977,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777428379,
|
||||||
|
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777578337,
|
"lastModified": 1777578337,
|
||||||
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
||||||
@@ -908,7 +1008,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777918403,
|
"lastModified": 1777918403,
|
||||||
"narHash": "sha256-7QiZv0LcW1yIOLo2LNuCQjWon1Z1r99FwK24hbtBOF4=",
|
"narHash": "sha256-7QiZv0LcW1yIOLo2LNuCQjWon1Z1r99FwK24hbtBOF4=",
|
||||||
@@ -924,7 +1024,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770107345,
|
"lastModified": 1770107345,
|
||||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||||
@@ -975,8 +1075,9 @@
|
|||||||
"import-tree": "import-tree",
|
"import-tree": "import-tree",
|
||||||
"lan-mouse": "lan-mouse",
|
"lan-mouse": "lan-mouse",
|
||||||
"mango": "mango",
|
"mango": "mango",
|
||||||
|
"nixcord": "nixcord",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_7",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"tnvim": "tnvim",
|
"tnvim": "tnvim",
|
||||||
@@ -1072,7 +1173,7 @@
|
|||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777944972,
|
"lastModified": 1777944972,
|
||||||
@@ -1191,7 +1292,7 @@
|
|||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_8"
|
"nixpkgs": "nixpkgs_9"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775636079,
|
"lastModified": 1775636079,
|
||||||
@@ -1252,7 +1353,7 @@
|
|||||||
},
|
},
|
||||||
"vicinae-extensions": {
|
"vicinae-extensions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_5",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -55,5 +55,6 @@
|
|||||||
lan-mouse.url = "github:feschber/lan-mouse";
|
lan-mouse.url = "github:feschber/lan-mouse";
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
awww.url = "git+https://codeberg.org/LGFae/awww";
|
awww.url = "git+https://codeberg.org/LGFae/awww";
|
||||||
|
nixcord.url = "github:kaylorben/nixcord";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
45
modules/hm/desktop/discord.nix
Normal file
45
modules/hm/desktop/discord.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop =
|
||||||
|
{ inputs, userName, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixcord.homeModules.nixcord
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixcord = {
|
||||||
|
enable = true;
|
||||||
|
user = userName;
|
||||||
|
discord.enable = false;
|
||||||
|
vesktop.enable = true;
|
||||||
|
config = {
|
||||||
|
themeLinks = [
|
||||||
|
"https://raw.githubusercontent.com/refact0r/system24/refs/heads/main/archive/flavors/spotify-text.theme.css"
|
||||||
|
];
|
||||||
|
frameless = true;
|
||||||
|
plugins = {
|
||||||
|
hideMedia.enable = true;
|
||||||
|
ignoreActivities = {
|
||||||
|
enable = true;
|
||||||
|
ignorePlaying = true;
|
||||||
|
ignoreWatching = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dorion = {
|
||||||
|
theme = "dark";
|
||||||
|
zoom = "1.1";
|
||||||
|
blur = "acrylic";
|
||||||
|
sysTray = true;
|
||||||
|
openOnStartup = true;
|
||||||
|
autoClearCache = true;
|
||||||
|
disableHardwareAccel = false;
|
||||||
|
rpcServer = true;
|
||||||
|
rpcProcessScanner = true;
|
||||||
|
pushToTalk = true;
|
||||||
|
pushToTalkKeys = [ "RControl" ];
|
||||||
|
desktopNotifications = true;
|
||||||
|
unreadBadge = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,9 +12,9 @@
|
|||||||
settings = {
|
settings = {
|
||||||
# Monitors
|
# Monitors
|
||||||
monitorrule = [
|
monitorrule = [
|
||||||
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:1, rr:1"
|
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
|
||||||
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:1"
|
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
|
||||||
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:1, rr:3"
|
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Keyboard
|
# Keyboard
|
||||||
|
|||||||
35
modules/hm/desktop/zed.nix
Normal file
35
modules/hm/desktop/zed.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
flake.modules.homeManager.desktop = {
|
||||||
|
programs.zed-editor = {
|
||||||
|
enable = true;
|
||||||
|
extensions = [
|
||||||
|
"lua"
|
||||||
|
"nix"
|
||||||
|
"C#"
|
||||||
|
"solidity"
|
||||||
|
];
|
||||||
|
userKeymaps = [
|
||||||
|
{
|
||||||
|
context = "Workspace";
|
||||||
|
bindings = {
|
||||||
|
F7 = "workspace::NewTerminal";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
ui_font_size = 18;
|
||||||
|
buffer_font_size = 18;
|
||||||
|
theme = {
|
||||||
|
mode = "dark";
|
||||||
|
light = "Ayu Light";
|
||||||
|
dark = "Ayu Dark";
|
||||||
|
};
|
||||||
|
vim_mode = true;
|
||||||
|
telemetry = {
|
||||||
|
diagnostics = false;
|
||||||
|
metrics = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -11,9 +11,24 @@
|
|||||||
imports = with config.flake.modules.nixos; [
|
imports = with config.flake.modules.nixos; [
|
||||||
networking
|
networking
|
||||||
desktop
|
desktop
|
||||||
|
virtualisation
|
||||||
];
|
];
|
||||||
|
|
||||||
tnix.services.openssh.enable = true;
|
tnix = {
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
docker.enable = true;
|
||||||
|
docker.nvidia.enable = true;
|
||||||
|
qemu.enable = true;
|
||||||
|
waydroid.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets.tux-password = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
|
||||||
# --- Boot ---
|
# --- Boot ---
|
||||||
boot = {
|
boot = {
|
||||||
@@ -67,12 +82,6 @@
|
|||||||
# --- Programs ---
|
# --- Programs ---
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
# --- Packages ---
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
discord
|
|
||||||
zed-editor
|
|
||||||
];
|
|
||||||
|
|
||||||
# !!! DO NOT CHANGE THIS !!!
|
# !!! DO NOT CHANGE THIS !!!
|
||||||
# This should match the version used at initial install.
|
# This should match the version used at initial install.
|
||||||
system.stateVersion = "26.05";
|
system.stateVersion = "26.05";
|
||||||
|
|||||||
25
modules/hosts/sirius/secrets.yaml
Normal file
25
modules/hosts/sirius/secrets.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
tux-password: ENC[AES256_GCM,data:EJFFMc0W1YvCLINg4kETlUbqMYSfRTsiRuoB5MybaVwl7bbBXyPFo/MspFFMXpAqSPrzRAPaM8Lxk9ndbjt7gZpSu1dPThq36Q==,iv:zn3UUMOcW09u6KTz87tDr1wfmsLMKIRBDpLfQhg0p14=,tag:AOs7NASXeo98mNKqsYP3Ww==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyblpIWjNqeVBXWnFlSGxw
|
||||||
|
WXhPYlFDNVV2QktKQ2dKdEgxY0dnR2JuRUdRCk5ZNTc0RGpZOG5SRCtRQ0JsdkZt
|
||||||
|
ZEZQSWswa1FTRU04Ky9vWDdOTWdZRncKLS0tIFg2SkJFK1JDVk5Uc2VJTzYyWk1h
|
||||||
|
cFpmZ0h5SGJtd2JJR05CMkJISnBtbmcKLGKreXlu3YU6KsV8lTVnPYyn33BL2D0z
|
||||||
|
tMpXdTw0hVilpmpZXjwnvV/3OvN6WybXydxaPOjKODBWIKpVxRthBQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age18hepvvp3nw9ram6usxc8rvpxed2pye0knqx0zutqgxeu35k745vqyxfphz
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTWQ0OHhnN1p3dTBLeGxp
|
||||||
|
N05yOUVicnYxU3NETlRQUVgrcWJlMEl3blhZCkl0OGhCN25KTEJaWGNpOVRJUDRX
|
||||||
|
bENKSDN3Z1Fab3lLLzVNMXlrSm5ZVTgKLS0tIHlycjZJUllsb0xvczFKMVFKaldD
|
||||||
|
UGpKTHZTT2JZU0xaTHhhRjk2bEhaU1EKutUEk+TMTATHEoM9+MOdkUnIoBMeeDfu
|
||||||
|
+GGKvInVKkAOtujBtSMj+xM8AEcfaHAFtwTgP/HEk3Hu6v7gp14oew==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2026-05-07T02:30:17Z"
|
||||||
|
mac: ENC[AES256_GCM,data:tF/Nr1iTuV52xQNxgil6I0TMwCiJ1oyz2OLgb2DVWVjTMfKT0wlOMK/Rm62bTjRvXFZnGtmS0YoVLkIjFzJ3hjt+626P69e7rdRkwpSz0rbZX9Tb+jxvGKfSwqiGocPA/rlMXTy/vPIM9/gg4b8rhjMnTiNH9bkODcKwF5LIjc0=,iv:uWiQrav4scz2iz3ZmuXfgMdg+228wNNmZ/LDtU11D/o=,tag:rhHrbu1a3Ph7pnqLsfm6nQ==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.12.2
|
||||||
25
modules/nixos/core/sops.nix
Normal file
25
modules/nixos/core/sops.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
flake.modules.nixos.core =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
isEd25519 = k: k.type == "ed25519";
|
||||||
|
getKeyPath = k: k.path;
|
||||||
|
keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ inputs.sops-nix.nixosModules.sops ];
|
||||||
|
|
||||||
|
sops.age = {
|
||||||
|
sshKeyPaths = map getKeyPath keys;
|
||||||
|
keyFile = "/var/lib/sops-nix/key.txt";
|
||||||
|
generateKey = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [ sops ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
config,
|
||||||
userName,
|
userName,
|
||||||
userEmail,
|
userEmail,
|
||||||
...
|
...
|
||||||
@@ -30,7 +31,7 @@
|
|||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
defaultUserShell = pkgs.zsh;
|
defaultUserShell = pkgs.zsh;
|
||||||
users.${userName} = {
|
users.${userName} = {
|
||||||
initialPassword = userName;
|
hashedPasswordFile = config.sops.secrets.tux-password.path;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
|||||||
32
modules/nixos/virtualisation/docker.nix
Normal file
32
modules/nixos/virtualisation/docker.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.virtualisation =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
userName,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.tnix.virtualisation;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.tnix.virtualisation.docker = {
|
||||||
|
enable = lib.mkEnableOption "Docker container runtime";
|
||||||
|
nvidia = {
|
||||||
|
enable = lib.mkEnableOption "NVIDIA Container Toolkit for Docker";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.docker.enable {
|
||||||
|
virtualisation = {
|
||||||
|
oci-containers.backend = "docker";
|
||||||
|
docker.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia-container-toolkit.enable = lib.mkIf cfg.docker.nvidia.enable true;
|
||||||
|
environment.systemPackages = with pkgs; [ lazydocker ];
|
||||||
|
users.users.${userName}.extraGroups = [ "docker" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
38
modules/nixos/virtualisation/qemu.nix
Normal file
38
modules/nixos/virtualisation/qemu.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.virtualisation =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
userName,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.tnix.virtualisation;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.tnix.virtualisation.qemu = {
|
||||||
|
enable = lib.mkEnableOption "QEMU/KVM virtualization with libvirtd";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.qemu.enable {
|
||||||
|
virtualisation = {
|
||||||
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
qemu = {
|
||||||
|
swtpm.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.${userName}.extraGroups = [ "libvirtd" ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
virt-manager
|
||||||
|
virt-viewer
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
20
modules/nixos/virtualisation/waydroid.nix
Normal file
20
modules/nixos/virtualisation/waydroid.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
flake.modules.nixos.virtualisation =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.tnix.virtualisation;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.tnix.virtualisation.waydroid = {
|
||||||
|
enable = lib.mkEnableOption "Waydroid Android container";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.waydroid.enable {
|
||||||
|
virtualisation.waydroid.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user