has libvirtd in container in fusu-services.nix

This commit is contained in:
Sebastian Moser
2025-10-03 17:29:42 +02:00
parent 320570979e
commit d3f6e79b85
19 changed files with 827 additions and 256 deletions

View File

@@ -123,8 +123,27 @@ in {
services.blueman.enable = true; services.blueman.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
# fix bluetooth-3-0-keyboard not reporting left and right cmd seperately (and remapping the other things the way i want them)
services.udev.extraHwdb = ''
evdev:input:b0005v05AC*
KEYBOARD_KEY_700e3=leftctrl
KEYBOARD_KEY_700e7=rightalt
KEYBOARD_KEY_700e2=leftmeta
KEYBOARD_KEY_700e0=leftalt
'';
services.keyd = { services.keyd = {
enable = true; enable = true;
/*
keyboards.bluetooth-3-0-keyboard = {
ids = [ "05ac:0255:f22563e9" ];
settings.main = {
leftalt = "meta";
leftcontrol = "leftalt";
};
};
*/
#keyboards.default.ids = [ "-05ac:0255" ]; completely disables my rebinding...... hmmmm
keyboards.default.settings = { keyboards.default.settings = {
main = { main = {
leftalt = "leftcontrol"; leftalt = "leftcontrol";
@@ -256,11 +275,11 @@ in {
output * scale 1 bg #121212 solid_color output * scale 1 bg #121212 solid_color
#################### from nwg-display #################### from nwg-display
# Generated by nwg-displays on 2025-07-09 at 20:13:34. Do not edit manually. # Generated by nwg-displays on 2025-09-18 at 21:21:58. Do not edit manually.
output "eDP-1" { output "eDP-1" {
mode 1920x1080@60.001Hz mode 1920x1080@60.001Hz
pos 0 1080 pos 0 1888
transform normal transform normal
scale 1.0 scale 1.0
scale_filter nearest scale_filter nearest

196
flake.lock generated
View File

@@ -84,6 +84,28 @@
"type": "github" "type": "github"
} }
}, },
"arion": {
"inputs": {
"flake-parts": "flake-parts",
"haskell-flake": "haskell-flake",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1758372896,
"narHash": "sha256-dUhnDMEeqCzf7Ad74VP3B6c51LiR/1JXc2XQ2X18Qik=",
"owner": "hercules-ci",
"repo": "arion",
"rev": "2ad420c828f6cac28261a14fc7b00e7b29dacc99",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "arion",
"type": "github"
}
},
"c2vi-config": { "c2vi-config": {
"inputs": { "inputs": {
"firefox": "firefox_2", "firefox": "firefox_2",
@@ -999,11 +1021,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1752151250, "lastModified": 1759062765,
"narHash": "sha256-q8fRoDM/LH8l7YHaDqkCB/h9WX6OR7NYsQvnFPU5ZwU=", "narHash": "sha256-yFwzSPFEQyEAmfDcyGW7Dnk04n/PySWQ9LMXIGGOLh0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "flake-firefox-nightly", "repo": "flake-firefox-nightly",
"rev": "f5df06bf5571945c8f8abde44931a13627df9183", "rev": "cdf90e51df10590114d5cf30d0e6363e95061418",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1020,11 +1042,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1752120209, "lastModified": 1758879217,
"narHash": "sha256-htBJrss6a1Zh510pXecBYlYLRXkYs+9PcT+JNim54Cw=", "narHash": "sha256-vWk2iw/i5c0RHc/zLVyB51UYvmbzPq3uB14NN7kaouE=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "46fbfdbbbd5418716fced1d049aecba0ac370033", "rev": "58402e09ad48f9f509d9249b8704c1a4f390c434",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -1386,6 +1408,27 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": [
"arion",
"nixpkgs"
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@@ -1999,6 +2042,22 @@
"type": "github" "type": "github"
} }
}, },
"haskell-flake": {
"locked": {
"lastModified": 1675296942,
"narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "c2cafce9d57bfca41794dc3b99c593155006c71e",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.1.0",
"repo": "haskell-flake",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -2006,11 +2065,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751810233, "lastModified": 1758463745,
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=", "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068", "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2164,11 +2223,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1751804099, "lastModified": 1754828166,
"narHash": "sha256-xl30pF4Rq7p7zI/2bdem8DXncJbsJBkO3dRmpaHJ3PE=", "narHash": "sha256-i7c+fpXVsnvj2+63Gl3YfU1hVyxbLeqeFj55ZBZACWI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lib-aggregate", "repo": "lib-aggregate",
"rev": "70b9076f07f94d9269babb0b4d5ed0b5223c1259", "rev": "f01c8d121a3100230612be96e4ac668e15eafb77",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2417,11 +2476,11 @@
"ws-butler": "ws-butler" "ws-butler": "ws-butler"
}, },
"locked": { "locked": {
"lastModified": 1701264882, "lastModified": 1757881340,
"narHash": "sha256-MBXR7x7Ua8qystlGr+lenwjQd7dsFNFpEFmtHhh10zM=", "narHash": "sha256-bTrp7CtkIrczwpg0kayedP9T91+xEYcWci3GvkBsThc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-doom-emacs", "repo": "nix-doom-emacs",
"rev": "f7413022370f24bb53cb450bfb2803233510113e", "rev": "dbb02d7cb21f2826acf76b956bc3fe18dcf7ec5d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2712,11 +2771,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751774635, "lastModified": 1759032422,
"narHash": "sha256-DuOznGdgMxeSlPpUu6Wkq0ZD5e2Cfv9XRZeZlHWMd1s=", "narHash": "sha256-WZf+FhebP2/1pK2np5xj/NuDjD6fXK2BHnq/tPUN18o=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "85686025ba6d18df31cc651a91d5adef63378978", "rev": "ec7a78cb0e098832d8acac091a4df393259c4839",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2999,11 +3058,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1752138162, "lastModified": 1758785683,
"narHash": "sha256-ClgAN2eyqlkRjpnU9y0AL+Rg3ICs5k2sJvCjuSit57A=", "narHash": "sha256-mRn51IeEBXeNh5a6xNLylk4PKBX0s/QQxgkEbYoPq/w=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "11500b1ad1c01f7ade38b487924ae89f69f3d022", "rev": "1bfb978f2f6261b6086e04af17f9418e1fe36d70",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3230,11 +3289,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1752048960, "lastModified": 1758663926,
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=", "narHash": "sha256-6CFdj7Xs616t1W4jLDH7IohAAvl5Dyib3qEv/Uqw1rk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806", "rev": "170ff93c860b2a9868ed1e1102d4e52cb3d934e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3290,11 +3349,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1757034884, "lastModified": 1746576598,
"narHash": "sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao=", "narHash": "sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ca77296380960cd497a765102eeb1356eb80fed0", "rev": "b3582c75c7f21ce0b429898980eddbbf05c68e55",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3434,11 +3493,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1751764648, "lastModified": 1754788789,
"narHash": "sha256-YcOV5pjz6CGo3rogh6Cn+idk1D54stnHKPssKZHdSKA=", "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "ad3b5848957727196961b696418a3cea370b77a8", "rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3550,11 +3609,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1751984180, "lastModified": 1758690382,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", "rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -3834,11 +3893,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1752124863, "lastModified": 1759046355,
"narHash": "sha256-5rWuf6RAlMDp/CAEuyYEz7ryxzgjxOCgUDhWEef864c=", "narHash": "sha256-6XrsRkVv9ei9wRu3bQ9Sh17/UrvZFi38gWiHV9CWTn4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "40de82b434526744da778ed53c742c1282d9e75e", "rev": "5099bd78fcf8c36c9a85ac7c9f5515aa706716a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -4084,11 +4143,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1751792365, "lastModified": 1758277210,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -4100,11 +4159,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1752162966, "lastModified": 1759090419,
"narHash": "sha256-3MxxkU8ZXMHXcbFz7UE4M6qnIPTYGcE/7EMqlZNnVDE=", "narHash": "sha256-Njtgv8AwGCEdq8VeO+O9CtjSP4ArVTXEpa84yJpveGM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "10e687235226880ed5e9f33f1ffa71fe60f2638a", "rev": "04e1ec9c5dbf94ab78b6b755b5ec28c1d6dd5392",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -4116,11 +4175,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1751984180, "lastModified": 1758690382,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", "rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -4418,15 +4477,15 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1752169447, "lastModified": 1759091793,
"narHash": "sha256-RkmaDo+SjuNrDC41640pWTrwgVwmiFmy1noiK09sxRs=", "narHash": "sha256-BBeGZR3lbAp9x1CJxjQ2FkUZX4iOf5UIRvwUPQrSfFw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "c32fcb4a2c7edd97934f5a3520cb2e66f90cb623", "rev": "e88fd7766e9b1af996a438341cbbd51d6ca1c621",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -4895,11 +4954,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1743438845, "lastModified": 1758265079,
"narHash": "sha256-1GSaoubGtvsLRwoYwHjeKYq40tLwvuFFVhGrG8J9Oek=", "narHash": "sha256-amLaLNwKSZPShQHzfgmc/9o76dU8xzN0743dWgvYlr8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "pyproject.nix", "repo": "pyproject.nix",
"rev": "8063ec98edc459571d042a640b1c5e334ecfca1e", "rev": "02e9418fd4af638447dca4b17b1280da95527fc9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -5054,6 +5113,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"arion": "arion",
"disko": "disko", "disko": "disko",
"firefox": "firefox", "firefox": "firefox",
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
@@ -5838,11 +5898,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750353031, "lastModified": 1753541826,
"narHash": "sha256-Bx7DOPLhkr8Z60U9Qw4l0OidzHoqLDKQH5rDV5ef59A=", "narHash": "sha256-foGgZu8+bCNIGeuDqQ84jNbmKZpd+JvnrL2WlyU4tuU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-vscode-server", "repo": "nixos-vscode-server",
"rev": "4ec4859b12129c0436b0a471ed1ea6dd8a317993", "rev": "6d5f074e4811d143d44169ba4af09b20ddb6937d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -5880,11 +5940,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748247366, "lastModified": 1757845097,
"narHash": "sha256-+uQh9e8F8KjC5HzHCztvDvW4xZdI4TZVxNFjaesL338=", "narHash": "sha256-pA+G2XGZ1ZDDJ2L5SG0JcvACXNm0oZ3n2erujcD3A9o=",
"owner": "liff", "owner": "liff",
"repo": "waveforms-flake", "repo": "waveforms-flake",
"rev": "7b5dc468bfb2a284f97d29b91f9a9fe5acd5a673", "rev": "c6fac3b8694ab95a3f4204b6bf110df9d2594d0f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -6009,11 +6069,11 @@
"zephyr": "zephyr_2" "zephyr": "zephyr_2"
}, },
"locked": { "locked": {
"lastModified": 1743625659, "lastModified": 1758543734,
"narHash": "sha256-sdM/skladcDTed+Xyp0/YneaDpwVpeA6hBLWR1Uc/6Y=", "narHash": "sha256-2Rc5DxtBXRlojC9BufB9aVP6oVo8Y7qV3U+fc5Pgm/8=",
"owner": "adisbladis", "owner": "adisbladis",
"repo": "zephyr-nix", "repo": "zephyr-nix",
"rev": "5ba6564b7f2db1508bcf87f0f869b8e4f8be96c1", "rev": "b614ffaa1343beacaca254213451186af10e88f6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -6025,16 +6085,16 @@
"zephyr_2": { "zephyr_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1721992675, "lastModified": 1752880629,
"narHash": "sha256-rmOHH0uRU27U2T4w4+FEMcAcuiZ7W7p4vOwtSwiAFNY=", "narHash": "sha256-N5VgJMYJZCgTe3Qj59KVynxD0Gs5+qawXkH2geWTEE0=",
"owner": "zephyrproject-rtos", "owner": "zephyrproject-rtos",
"repo": "zephyr", "repo": "zephyr",
"rev": "36940db938a8f4a1e919496793ed439850a221c2", "rev": "413b789deb391d3a37d06b463288a5fe765ee57e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "zephyrproject-rtos", "owner": "zephyrproject-rtos",
"ref": "v3.7.0", "ref": "v4.2.0",
"repo": "zephyr", "repo": "zephyr",
"type": "github" "type": "github"
} }
@@ -6068,11 +6128,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751762606, "lastModified": 1759019986,
"narHash": "sha256-uhAx0iVSpjukhRbLOVdLbFxFF886E8u3/PvW8a25jw0=", "narHash": "sha256-/5WVzkUZZ7oX/e65cw/40+Vet26T1Uho7Kqq1EYB+6Y=",
"owner": "lilyinstarlight", "owner": "lilyinstarlight",
"repo": "zmk-nix", "repo": "zmk-nix",
"rev": "f528613ff83fd56967332a0ccd54e85ba9c46647", "rev": "c54acf72030701cbf00c77ff262511815a758066",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -32,6 +32,11 @@
nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; nix-doom-emacs.url = "github:nix-community/nix-doom-emacs";
arion = {
url = "github:hercules-ci/arion";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.url = "github:Mic92/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
@@ -110,6 +115,7 @@
workDir = "/home/me/work"; workDir = "/home/me/work";
secretsDir = "/home/me/secrets"; secretsDir = "/home/me/secrets";
persistentDir = "/home/me/work/app-data"; persistentDir = "/home/me/work/app-data";
dataDir = "/home/me/host";
tunepkgs = import nixpkgs { tunepkgs = import nixpkgs {
@@ -150,7 +156,7 @@
}; };
specialArgs = { specialArgs = {
inherit inputs confDir workDir secretsDir persistentDir self tunepkgs unstable nur pkgsUnstable; inherit inputs confDir workDir secretsDir persistentDir self tunepkgs unstable nur pkgsUnstable dataDir;
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = mypkgs; pkgs = mypkgs;
}; };
@@ -266,7 +272,7 @@
# default value if no --mode provided # default value if no --mode provided
MODE="default" MODE="format"
ARGS=() ARGS=()
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
@@ -295,6 +301,15 @@
DO_FLASH=yes DO_FLASH=yes
shift 1 shift 1
;; ;;
--efi-vars)
ARGS+=("--write-efi-boot-entries") # all other args preserved
shift 1
;;
--help)
ARGS+=("--help") # all other args preserved
DO_FLASH=yes
shift 1
;;
--disk) # --mode VALUE --disk) # --mode VALUE
if [[ $# -lt 3 ]]; then if [[ $# -lt 3 ]]; then
echo "Error: --disk requires two values" >&2 echo "Error: --disk requires two values" >&2
@@ -342,6 +357,7 @@
in { in {
te = createFlashScript "te"; te = createFlashScript "te";
ki = createFlashScript "ki"; ki = createFlashScript "ki";
fasu = createFlashScript "fasu";
}; };
test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy; test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy;
@@ -482,15 +498,6 @@
]; ];
}; };
# lesh... seccond raspi
"le" = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "aarch64-linux";
modules = [
./hosts/le.nix
];
};
"te" = nixpkgs.lib.nixosSystem { "te" = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
system = "x86_64-linux"; system = "x86_64-linux";
@@ -544,6 +551,16 @@
]; ];
}; };
# lesh... seccond raspi
"le" = nixpkgs.lib.nixosSystem rec {
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
system = "aarch64-linux";
modules = [
./hosts/le.nix
];
};
"hec-tmp" = nixpkgs.lib.nixosSystem rec { "hec-tmp" = nixpkgs.lib.nixosSystem rec {
system = "aarch64-linux"; system = "aarch64-linux";
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; }; specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };

View File

@@ -6,22 +6,13 @@
../common/nixos.nix ../common/nixos.nix
../common/building.nix ../common/building.nix
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
../users/me/headless.nix ../users/me/headless.nix
../users/root/default.nix ../users/root/default.nix
../users/server/headles.nix ../users/server/headles.nix
]; ];
fileSystems."/" = {
device = "/dev/disk/by-label/fasu-root";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/FASU-BOOT";
fsType = "vfat";
};
# allow acern to ssh into server # allow acern to ssh into server
users.users.server.openssh.authorizedKeys.keys = [ users.users.server.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern"
@@ -35,16 +26,6 @@
} }
]; ];
# Use the GRUB 2 boot loader.
boot.loader.grub = {
enable = true;
#device = "/dev/nbd1";
device = "nodev";
efiSupport = false;
extraConfig = ''
set timeout=2
'';
};
#fileSystems."/boot" = { #fileSystems."/boot" = {
# device = "/dev/disk/by-label/fusu-boot"; # device = "/dev/disk/by-label/fusu-boot";
@@ -124,4 +105,43 @@
}; };
}; };
############### disk config
boot.plymouth.enable = false;
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = false;
boot.loader.grub.efiInstallAsRemovable = false;
boot.loader.grub.devices = [ "nodev" ];
boot.loader.grub.extraConfig = ''
set timeout=2
'';
# the flash drive in use for fasu
disko.devices.disk.root.device = "/dev/nbd0";
disko.devices = {
disk = {
root = {
type = "disk";
content = {
type = "gpt";
partitions = {
biosboot = {
size = "2M";
type = "21686148-6449-6E6F-744E-656564454649"; # BIOS boot
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
} }

View File

@@ -163,4 +163,9 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
################################ services ############################
services.traefik = {
};
} }

View File

@@ -1,6 +1,7 @@
{ inputs, pkgs, secretsDir, ... }: { inputs, pkgs, secretsDir, config, system, ... }: let
{
in {
#disabledModules = [ "services/databases/couchdb.nix" ]; #disabledModules = [ "services/databases/couchdb.nix" ];
imports = [ imports = [
@@ -14,6 +15,9 @@
../users/root/default.nix ../users/root/default.nix
../users/files/headless.nix ../users/files/headless.nix
../users/server/headless.nix ../users/server/headless.nix
inputs.arion.nixosModules.arion
../mods/fusu-services.nix
]; ];
# mac address for wakeonlan: 00:19:99:fd:28:23 # mac address for wakeonlan: 00:19:99:fd:28:23
@@ -37,12 +41,19 @@
services.tailscale.enable = true; services.tailscale.enable = true;
services.resilio = { services.resilio = {
# TODO: add the config for the share to here
enable = true; enable = true;
enableWebUI = true; enableWebUI = true;
httpListenAddr = "100.70.54.18"; httpListenAddr = "100.70.54.18";
checkForUpdates = false;
listeningPort = 44444;
}; };
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
44444 # resilio sync
9000 # resilio webui
];
boot.supportedFilesystems = [ "zfs" ]; boot.supportedFilesystems = [ "zfs" ];
@@ -55,15 +66,6 @@
fsType = "zfs"; fsType = "zfs";
}; };
virtualisation.libvirtd = {
enable = true;
qemuOvmf = true;
qemuSwtpm = true;
#qemuOvmfPackage = pkgs.OVMFFull;
};
virtualisation.docker.enable = true;
users.users.server.extraGroups = [ "docker" ];
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
boot.loader.grub = { boot.loader.grub = {
enable = true; enable = true;
@@ -98,12 +100,6 @@
networking.firewall.allowPing = true; networking.firewall.allowPing = true;
networking.firewall.enable = true; networking.firewall.enable = true;
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
443 # couchdb for obsidian live sync https
44444 # resilio sync
9000 # resilio webui
];
services.samba.openFirewall = true; services.samba.openFirewall = true;
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
@@ -154,6 +150,8 @@
fuse3 fuse3
terraform terraform
usbutils usbutils
qemu_full
libvirt
]; ];
nix.settings = { nix.settings = {

View File

@@ -1,13 +1,5 @@
{ lib, secretsDir, pkgs, inputs, unstable, ... }: let { lib, secretsDir, pkgs, inputs, unstable, ... }: let
myobs = pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
obs-ndi
obs-teleport
];
};
in { in {
imports = [ imports = [
@@ -25,7 +17,9 @@ in {
services.tailscale.enable = true; services.tailscale.enable = true;
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
networking.hostName = "mac"; services.keyd.enable = lib.mkForce false;
networking.hostName = "ki";
networking.firewall.enable = false; networking.firewall.enable = false;
services.avahi = { services.avahi = {
enable = true; enable = true;
@@ -60,6 +54,22 @@ in {
4410 # lan-mouse 4410 # lan-mouse
]; ];
services.resilio = {
enable = true;
enableWebUI = true;
httpListenAddr = "100.96.201.42";
checkForUpdates = false;
listeningPort = 44444;
};
users.users.me.extraGroups = [ "rslsync" ];
users.users.rslsync.extraGroups = [ "users" ];
users.users.me.homeMode = "770"; # important for resilio
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
44444 # resilio sync
9000 # resilio webui
];
swapDevices = [ { device = "/swapfile"; } ]; swapDevices = [ { device = "/swapfile"; } ];
boot.kernelModules = [ "usbip_core" ]; boot.kernelModules = [ "usbip_core" ];
@@ -70,6 +80,10 @@ in {
"aarch64-linux" "aarch64-linux"
]; ];
home-manager.users.me.home.file.".config/sway/config".text = ''
exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666
'';
virtualisation.libvirtd = { virtualisation.libvirtd = {
enable = true; enable = true;
qemuOvmf = true; qemuOvmf = true;
@@ -102,68 +116,16 @@ in {
''; '';
}; };
services.greetd = lib.mkForce {
enable = true;
settings = rec {
terminal.vt = 1;
initial_session = let
newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1";
newerUnstable = import newerUnstableSrc.outPath {};
mySway = newerUnstable.sway.override {
sway-unwrapped = (newerUnstable.sway-unwrapped.overrideAttrs (prev: {
/*
src = pkgs.fetchFromGitHub {
owner = "WillPower3309";
repo = "swayfx";
rev = "";
hash = "";
};
*/
src = pkgs.fetchFromGitHub {
owner = "swaywm";
repo = "sway";
rev = "73c244fb4807a29c6599d42c15e8a8759225b2d6";
hash = "sha256-P2w1oRVUNBWajt8jZOxPXvBE29urbrhtORy+lfYqnF8=";
};
})).override {
wlroots = newerUnstable.wlroots.overrideAttrs (prev: {
version = "master";
src = pkgs.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "wlroots";
repo = "wlroots";
rev = "master";
sha256 = "sha256-2FK6FGRpgf/YYqwJST0LVA/pnNRSUDrfrrp6mSwA0Fk=";
};
});
};
};
in {
#command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -d --env WLR_RENDERER_ALLOW_SOFTWARE=1 --cmd sway";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${pkgs.writeScriptBin "run-sway" ''
export WLR_RENDERER_ALLOW_SOFTWARE=1
export SDL_VIDEODRIVER=wayland
export _JAVA_AWT_WM_NONREPARENTING=1
export QT_QPA_PLATFORM=wayland
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
exec ${pkgs.lib.getExe mySway}
''}/bin/run-sway";
user = "me";
};
default_session = initial_session;
};
};
systemd.extraConfig = "DefaultLimitNOFILE=2048"; systemd.extraConfig = "DefaultLimitNOFILE=2048";
###################################################### the kiosk stuff services.logind = {
extraConfig = ''
HandlePowerKey=suspend-then-hibernate
'';
lidSwitch = "ignore";
lidSwitchExternalPower = "ignore";
lidSwitchDocked = "ignore";
};
services.dbus.enable = true; services.dbus.enable = true;
@@ -218,7 +180,7 @@ in {
}; };
wifi = { wifi = {
mode = "ap"; mode = "ap";
ssid = "c2vi-mac"; ssid = "c2vi-ki";
}; };
wifi-security = { wifi-security = {
@@ -297,6 +259,11 @@ in {
type = "gpt"; type = "gpt";
partitions = { partitions = {
biosboot = {
size = "2M";
type = "21686148-6449-6E6F-744E-656564454649"; # BIOS boot
};
ESP = { ESP = {
size = "1G"; size = "1G";
type = "EF00"; type = "EF00";

View File

@@ -124,7 +124,7 @@
3240 # usbip 3240 # usbip
]; ];
networking.hostName = "lush"; networking.hostName = "le";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@@ -136,7 +136,7 @@
type = "wifi"; type = "wifi";
interface-name = "wlan0"; interface-name = "wlan0";
autoconnect = true; autoconnect = true;
autoconnect-priority = "-200"; autoconnect-priority = "400";
}; };
wifi = { wifi = {
@@ -156,6 +156,29 @@
}; };
}; };
hot = {
connection = {
id = "hot";
uuid = "ab51de8a-9742-465a-928b-be54a83ab6a3";
type = "wifi";
interface-name = "wlp3s0";
autoconnect-priority = "200";
};
wifi = {
mode = "ap";
ssid = "c2vi-le";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/wifi-password";
};
ipv4 = {
method = "shared";
};
};
hh40 = { hh40 = {
connection = { connection = {
id = "hh40"; id = "hh40";
@@ -163,7 +186,7 @@
type = "wifi"; type = "wifi";
interface-name = "wlan0"; interface-name = "wlan0";
autoconnect = true; autoconnect = true;
autoconnect-priority = "-999"; autoconnect-priority = "300";
}; };
wifi = { wifi = {
@@ -188,7 +211,7 @@
id = "dhcp"; id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = "true"; autoconnect = true;
interface-name = "end0"; interface-name = "end0";
}; };

View File

@@ -24,6 +24,8 @@ in {
services.tailscale.enable = true; services.tailscale.enable = true;
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
services.pid-fan-controller.enable = true;
networking.hostName = "mac"; networking.hostName = "mac";
networking.firewall.enable = false; networking.firewall.enable = false;
services.avahi = { services.avahi = {
@@ -88,6 +90,7 @@ in {
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
lm_sensors
linuxPackages.usbip linuxPackages.usbip
helvum helvum
passt passt
@@ -216,7 +219,7 @@ in {
in { in {
#command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -d --env WLR_RENDERER_ALLOW_SOFTWARE=1 --cmd sway"; #command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -d --env WLR_RENDERER_ALLOW_SOFTWARE=1 --cmd sway";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${pkgs.writeScriptBin "run-sway" '' command = "${pkgs.writeScriptBin "run-sway" ''
export WLR_RENDERER_ALLOW_SOFTWARE=1 export WLR_RENDERER_ALLOW_SOFTWARE=1
export SDL_VIDEODRIVER=wayland export SDL_VIDEODRIVER=wayland
export _JAVA_AWT_WM_NONREPARENTING=1 export _JAVA_AWT_WM_NONREPARENTING=1
@@ -353,6 +356,7 @@ in {
uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c"; uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c";
type = "wifi"; type = "wifi";
interface-name = "wlp3s0"; interface-name = "wlp3s0";
autoconnect-priority = "200";
}; };
wifi = { wifi = {
@@ -378,8 +382,8 @@ in {
id = "hot"; id = "hot";
uuid = "ab51de8a-9742-465a-928b-be54a83ab6a3"; uuid = "ab51de8a-9742-465a-928b-be54a83ab6a3";
type = "wifi"; type = "wifi";
autoconnect = false;
interface-name = "wlp3s0"; interface-name = "wlp3s0";
autoconnect-priority = "100";
}; };
wifi = { wifi = {
mode = "ap"; mode = "ap";
@@ -426,6 +430,7 @@ in {
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = true; autoconnect = true;
autoconnect-priority = "200";
interface-name = "enp2s0"; interface-name = "enp2s0";
}; };

View File

@@ -1,5 +1,5 @@
{ pkgs, lib, workDir, self, secretsDir, config, inputs, system, pkgsUnstable, ... }: { pkgs, lib, persistentDir, self, secretsDir, config, inputs, system, pkgsUnstable, ... }:
{ {
# https://bugzilla.kernel.org/show_bug.cgi?id=110941 # https://bugzilla.kernel.org/show_bug.cgi?id=110941
@@ -167,8 +167,15 @@
services.resilio = { services.resilio = {
enable = true; enable = true;
enableWebUI = true; enableWebUI = true;
httpListenAddr = "100.71.47.106";
checkForUpdates = false;
listeningPort = 44444;
}; };
users.users.me.homeMode = "770"; # important for resilio users.users.me.homeMode = "770"; # important for resilio
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
44444 # resilio sync
9000 # resilio webui
];
@@ -203,11 +210,11 @@
################# make firefox default browser ################# make firefox default browser
environment.sessionVariables.DEFAULT_BROWSER = "firefox"; # for electron apps environment.sessionVariables.DEFAULT_BROWSER = "firefox"; # for electron apps
xdg.mime.defaultApplications = { xdg.mime.defaultApplications = {
"text/html" = "firefox.desktop"; "text/html" = "firefox-nightly.desktop";
"x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/http" = "firefox-nightly.desktop";
"x-scheme-handler/https" = "firefox.desktop"; "x-scheme-handler/https" = "firefox-nightly.desktop";
"x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/about" = "firefox-nightly.desktop";
"x-scheme-handler/unknown" = "firefox.desktop"; "x-scheme-handler/unknown" = "firefox-nightly.desktop";
}; };
@@ -393,6 +400,62 @@
''; '';
# */ # */
################################ extra home-manager config for main #############################
home-manager.users.me.programs.bash = {
bashrcExtra = ''
function rp () {
host=$1
if [[ "$host" == "mosatop" ]]
then
xfreerdp /u:"c2vi" /v:mosatop /p:$(cat ${secretsDir}/mosatop-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "acern" ]]
then
xfreerdp /u:"seb" /v:acern /p:$(cat ${secretsDir}/acern-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "mwin" ]]
then
xfreerdp /u:"me" /v:mac:4400 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "win" ]]
then
xfreerdp /u:"me" /v:192.168.122.141 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "phone" ]]
then
ssh phone "source ~/.bashrc && on"
${pkgs.rustdesk}/bin/rustdesk --connect 100.77.80.77
elif [[ "$host" == "fwin" ]]
then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/fwin.remmina
elif [[ "$host" == "ki" ]]
then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/ki.remmina
elif [[ "$host" == "mac" ]]
then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/mac.remmina
elif [[ "$host" == "mandroid" ]]
then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/mandroid.remmina
fi
}
complete -W "mosatop acern phone mwin win fwin ki mac mandroid" rp
'';
};
################################ my youtube blocking service ############################# ################################ my youtube blocking service #############################
environment.etc."host.conf" = { environment.etc."host.conf" = {
# needed so that firefox does not ignore the hosts file # needed so that firefox does not ignore the hosts file
@@ -436,10 +499,6 @@
services.samba.openFirewall = true; services.samba.openFirewall = true;
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
44444 # resilio sync
];
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
5357 # wsdd 5357 # wsdd
8888 # for general usage 8888 # for general usage

View File

@@ -289,7 +289,7 @@ in {
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true; boot.loader.grub.efiSupport = true;
boot.loader.grub.efiInstallAsRemovable = true; boot.loader.grub.efiInstallAsRemovable = true;
boot.loader.grub.devices = [ "nodev" ]; boot.loader.grub.device = "nodev";
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"xhci_pci" "xhci_pci"
"ehci_pci" "ehci_pci"

220
log Normal file
View File

@@ -0,0 +1,220 @@
warning: Git tree '/home/me/work/config' is dirty
evaluation warning: You have set specialArgs.pkgs, which means that options like nixpkgs.config
and nixpkgs.overlays will be ignored. If you wish to reuse an already created
pkgs, which you know is configured correctly for this NixOS configuration,
please import the `nixosModules.readOnlyPkgs` module from the nixpkgs flake or
`(modulesPath + "/misc/nixpkgs/read-only.nix"), and set `{ nixpkgs.pkgs = <your pkgs>; }`.
This properly disables the ignored options to prevent future surprises.
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:37:12:
36|
37| strict = derivationStrict drvAttrs;
| ^
38|
… while evaluating derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst'
whose name attribute is located at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/make-derivation.nix:480:13
… while evaluating attribute 'buildCommand' of derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:235:9:
234|
235| buildCommand = ''
| ^
236| mkdir -p $out/nix-support $out/sd-image
… from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:285:13:
284| mkdir firmware
285| ${config.sdImage.populateFirmwareCommands}
| ^
286|
… while calling anonymous lambda
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1182:17:
1181| mapAttrs (
1182| name: value:
| ^
1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1183:85:
1182| name: value:
1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1184| );
… while calling anonymous lambda
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:273:71:
272| # For definitions that have an associated option
273| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
274|
… while evaluating the attribute 'value'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1084:7:
1083| // {
1084| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1085| inherit (res.defsFinal') highestPrio;
… while evaluating the option `sdImage.populateFirmwareCommands':
… while evaluating the attribute 'mergedValue'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1131:5:
1130| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
1131| mergedValue =
| ^
1132| if isDefined then
… while evaluating a branch condition
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1132:7:
1131| mergedValue =
1132| if isDefined then
| ^
1133| if all (def: type.check def.value) defsFinal then
… while evaluating the attribute 'values'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1125:9:
1124| {
1125| values = defs''';
| ^
1126| inherit (defs'') highestPrio;
… while evaluating a branch condition
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:11:
1118| # Avoid sorting if we don't have to.
1119| if any (def: def.value._type or "" == "order") defs''.values then
| ^
1120| sortProperties defs''.values
… while calling the 'any' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:14:
1118| # Avoid sorting if we don't have to.
1119| if any (def: def.value._type or "" == "order") defs''.values then
| ^
1120| sortProperties defs''.values
… while evaluating the attribute 'values'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:7:
1251| {
1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1253| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:16:
1251| {
1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1253| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1099:17:
1098| # Process mkMerge and mkIf properties.
1099| defs' = concatMap (
| ^
1100| m:
… while calling anonymous lambda
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1100:11:
1099| defs' = concatMap (
1100| m:
| ^
1101| map (
… while calling the 'map' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1101:11:
1100| m:
1101| map (
| ^
1102| value:
… while evaluating definitions from `/nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image-aarch64.nix':
… from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1110:80:
1109| }
1110| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1111| ) defs;
… while calling 'dischargeProperties'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1203:5:
1202| dischargeProperties =
1203| def:
| ^
1204| if def._type or "" == "merge" then
… while evaluating a branch condition
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1204:5:
1203| def:
1204| if def._type or "" == "merge" then
| ^
1205| concatMap dischargeProperties def.contents
… while evaluating the attribute 'value'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:770:21:
769| inherit (module) file;
770| inherit value;
| ^
771| }) module.config
… in the condition of the assert statement
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/customisation.nix:422:9:
421| outPath =
422| assert condition;
| ^
423| drv.outPath;
… while evaluating the attribute 'handled'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:653:9:
652| # or, alternatively, just output a warning message.
653| handled = (
| ^
654| if valid == "yes" then
… from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:657:14:
656| else if valid == "no" then
657| (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; })
| ^
658| else if valid == "warn" then
… while calling 'handleEvalIssue'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:301:5:
300| { meta, attrs }:
301| {
| ^
302| reason,
… while calling the 'throw' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:318:5:
317| in
318| handler msg;
| ^
319|
error: Package uboot-rpi_3_defconfig-2025.01 in /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/misc/uboot/default.nix:148 is not available on the requested hostPlatform:
hostPlatform.config = "x86_64-unknown-linux-gnu"
package.meta.platforms = [
"aarch64-linux"
]
package.meta.badPlatforms = [ ]
, refusing to evaluate.
a) To temporarily allow packages that are unsupported for this system, you can use an environment variable
for a single invocation of the nix tools.
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
then pass `--impure` in order to allow use of environment variables.
b) For `nixos-rebuild` you can set
{ nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
{ allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

View File

@@ -1,8 +1,12 @@
100.71.47.106 main 100.71.47.106 main
100.77.80.77 phone 100.77.80.77 phone
100.70.54.18 fusu 100.70.54.18 fusu
100.70.54.18 files
100.81.207.107 lush 100.81.207.107 lush
100.76.146.119 tab 100.76.146.119 tab
100.70.39.65 waydroid 100.70.39.65 waydroid
100.78.105.36 mac
100.107.67.76 te 100.107.67.76 te
100.100.55.117 mac
100.96.201.42 ki
100.107.101.77 fe
100.107.101.77 fesu

74
mods/fusu-services.nix Normal file
View File

@@ -0,0 +1,74 @@
{ pkgs, dataDir, config, inputs, system, ... }: let
/**
thanks: @melektron
This builder creates a small shell script that wraps arion to specify
it to operate on a specific registered arion service identified by `srv_name`.
This can be used to manage the docker-compose functionality of an arion service
that is defined in the NixOS system, independently from the systemctl service that
starts it. If you start/stop compose projects using this, you should first stop
the systemctl service.
*/
createArionServiceManager = srv_name: setup: (
pkgs.writeShellScriptBin "manage-arion-${srv_name}" ''
echo operating on: ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml}
${setup}
${pkgs.lib.getExe inputs.arion.packages."${system}".arion} --prebuilt-file ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml} $@
''
);
in {
environment.systemPackages = [
pkgs.arion
# Do install the docker CLI to talk to podman.
# Not needed when virtualisation.docker.enable = true;
pkgs.docker-client
# add all the service managers
(createArionServiceManager "libvirt" "")
];
# Arion works with Docker, but for NixOS-based containers, you need Podman
# since NixOS 21.05.
virtualisation.docker.enable = false;
virtualisation.podman.enable = true;
virtualisation.podman.dockerSocket.enable = true;
users.extraUsers.me.extraGroups = ["podman"];
######################## libvirtd in container #########################
virtualisation.arion = {
backend = "podman-socket";
projects.libvirt.settings.services.libvirt = { pkgs, lib, ... }: {
nixos.useSystemd = true;
service.useHostStore = true;
nixos.configuration = {
boot.tmp.useTmpfs = true;
virtualisation.libvirtd = {
enable = true;
};
users.users.me = {
uid = 1001;
isNormalUser = true;
password = "changeme";
extraGroups = [ "networkmanager" "wheel" "libvirtd" "plugdev" ];
};
};
service = {
privileged = true;
volumes = [
"${dataDir}/libvirt/run:/run/libvirt"
"${dataDir}/libvirt/lib:/var/lib/libvirt"
];
};
};
};
}

105
mods/le-disk-setup.nix Normal file
View File

@@ -0,0 +1,105 @@
# future setup of using disko to format my raspi sd-card
{
config,
lib,
pkgs,
inputs,
...
}:
{
imports = [
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image.nix"
"${inputs.nixpkgs}/nixos/modules/profiles/base.nix"
];
boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true;
boot.consoleLogLevel = lib.mkDefault 7;
# The serial ports listed here are:
# - ttyS0: for Tegra (Jetson TX1)
# - ttyAMA0: for QEMU's -machine virt
boot.kernelParams = [
"console=ttyS0,115200n8"
"console=ttyAMA0,115200n8"
"console=tty0"
];
sdImage = {
populateFirmwareCommands =
let
configTxt = pkgs.writeText "config.txt" ''
[pi3]
kernel=u-boot-rpi3.bin
# Otherwise the serial output will be garbled.
core_freq=250
[pi02]
kernel=u-boot-rpi3.bin
[pi4]
kernel=u-boot-rpi4.bin
enable_gic=1
armstub=armstub8-gic.bin
# Otherwise the resolution will be weird in most cases, compared to
# what the pi3 firmware does by default.
disable_overscan=1
# Supported in newer board revisions
arm_boost=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
# Boot in 64-bit mode.
arm_64bit=1
# U-Boot needs this to work, regardless of whether UART is actually used or not.
# Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still
# a requirement in the future.
enable_uart=1
# Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
# when attempting to show low-voltage or overtemperature warnings.
avoid_warnings=1
'';
in
''
(cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
# Add the config
cp ${configTxt} firmware/config.txt
# Add pi3 specific files
cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-2-b.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-3-b-plus.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-cm3.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2710-rpi-zero-2-w.dtb firmware/
# Add pi4 specific files
cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/
cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/
'';
populateRootCommands = ''
mkdir -p ./files/boot
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
'';
};
}

View File

@@ -21,6 +21,10 @@ elif [ "$1" == "du" ]
then then
du -d 1 -h $2 | sort -h -r du -d 1 -h $2 | sort -h -r
elif [ "$1" == "g" ]
then
ping 1.1.1.1

View File

@@ -1,4 +1,4 @@
{ secretsDir, confDir, hostname, self, pkgs, config, system, inputs, workDir, ... }: { secretsDir, confDir, hostname, self, pkgs, config, system, workDir, ... }:
{ {
programs.bash = { programs.bash = {
@@ -137,36 +137,6 @@
function rp () {
host=$1
if [[ "$host" == "mosatop" ]]
then
xfreerdp /u:"c2vi" /v:mosatop /p:$(cat ${secretsDir}/mosatop-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "acern" ]]
then
xfreerdp /u:"seb" /v:acern /p:$(cat ${secretsDir}/acern-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "mwin" ]]
then
xfreerdp /u:"me" /v:mac:4400 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "win" ]]
then
xfreerdp /u:"me" /v:192.168.122.141 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "phone" ]]
then
ssh phone "source ~/.bashrc && on"
${pkgs.rustdesk}/bin/rustdesk --connect 100.77.80.77
fi
}
complete -W "mosatop acern" rp
# function to create a tmpdir, to use for some temporary work.... # function to create a tmpdir, to use for some temporary work....
# made this, to not just keep cluttering my $HOME... with all kinds of projects # made this, to not just keep cluttering my $HOME... with all kinds of projects
function mt () { function mt () {

20
programs/thunderbird.nix Normal file
View File

@@ -0,0 +1,20 @@
{ pkgs, config, persistentDir, ... }: {
programs.thunderbird = {
enable = true;
profiles.me = {
isDefault = true;
};
};
/*
home.file.".thunderbird" = {
force = true;
source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/thunderbird";
};
*/
}

View File

@@ -13,6 +13,7 @@
../../programs/rofi/default.nix ../../programs/rofi/default.nix
../../programs/zathura.nix ../../programs/zathura.nix
../../programs/firefox/default.nix ../../programs/firefox/default.nix
../../programs/thunderbird.nix
inputs.lan-mouse.homeManagerModules.default inputs.lan-mouse.homeManagerModules.default
"${inputs.vscode-server}/modules/vscode-server/home.nix" "${inputs.vscode-server}/modules/vscode-server/home.nix"