Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad17b67774 | ||
|
|
6b8778c6be | ||
|
|
d2b4e9d1f1 | ||
|
|
36fbaf137e | ||
|
|
8c2dbe4775 | ||
|
|
7c00c133ab |
@@ -0,0 +1,61 @@
|
||||
# NixOS configuration
|
||||
|
||||
The default package set is NixOS 26.05. Home Manager and AAGL use their
|
||||
matching 26.05 release branches. `drivebystation-nix` uses the standard
|
||||
`pkgs.linuxPackages` kernel from stable, including matching external modules.
|
||||
|
||||
## Packages from unstable
|
||||
|
||||
`inputs.nixpkgs-unstable` is a separate package set, pinned in `flake.lock`.
|
||||
Select individual applications explicitly, as with Trilium and JetBrains
|
||||
Toolbox in the desktop host:
|
||||
|
||||
```nix
|
||||
unstablePkgs.trilium-desktop
|
||||
```
|
||||
|
||||
The host defines `unstablePkgs` by importing the separate input with
|
||||
`allowUnfree = true`. Use `pkgs.<name>` for stable packages. Unstable
|
||||
applications retain their own dependencies; the system package set stays on
|
||||
stable.
|
||||
|
||||
Update the stable inputs and the application exceptions independently:
|
||||
|
||||
```sh
|
||||
nix flake update nixpkgs home-manager aagl
|
||||
nix flake update nixpkgs-unstable
|
||||
```
|
||||
|
||||
The existing Mutter tearing override remains experimental. Its compatibility
|
||||
and B580 graphics behavior require testing when changing the desktop stack.
|
||||
|
||||
## Validate and boot
|
||||
|
||||
```sh
|
||||
nix build .#nixosConfigurations.drivebystation-nix.config.system.build.toplevel --no-link
|
||||
sudo nixos-rebuild boot --flake .#drivebystation-nix
|
||||
```
|
||||
|
||||
Only run the boot command after the build succeeds. Keep the previous working
|
||||
generation available in the boot menu, then test networking, graphics, and
|
||||
the webcam loopback after reboot. Git restores configuration sources; booting
|
||||
the previous generation restores the previous system closure.
|
||||
|
||||
Whole-flake checks currently also evaluate an unfinished WSL host referencing
|
||||
the disabled `nixos-wsl` input. Validate the desktop target directly until that
|
||||
separate host configuration is repaired.
|
||||
|
||||
## Migration validation (2026-10-17)
|
||||
|
||||
The complete `drivebystation-nix` system built successfully without activation.
|
||||
Its closure contains Linux 6.18.56, patched Mutter 50.5, GNOME Shell 50.5,
|
||||
libdrm 2.4.133, r8125 9.016.01, and v4l2loopback 0.15.3. The explicit unstable
|
||||
applications are Trilium 0.106.0 and JetBrains Toolbox 3.8.1.88030.
|
||||
|
||||
Nix syntax and Git whitespace checks pass. `nix flake check --no-build` stops
|
||||
at the existing WSL input error described above. The edited Nix files retain
|
||||
the repository's existing formatting; `nixpkgs-fmt --check` reports formatting
|
||||
differences, including on the original flake before migration.
|
||||
|
||||
Boot, networking, B580 graphics, and tearing behavior still require runtime
|
||||
testing. The migration does not add Intel tearing kernel patches.
|
||||
Generated
+186
-70
@@ -60,15 +60,16 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787517695,
|
||||
"narHash": "sha256-Z119G3qLJx22frNHO3/seMs7fCCvxe9NJJRfN4Jadew=",
|
||||
"lastModified": 1789138195,
|
||||
"narHash": "sha256-cvK9QXAzcgYYg6WsMSfzSE78QyCbNoRMF25GIZ0pz1s=",
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"rev": "4bb57072d963aa47f14894383a5560cf290e296a",
|
||||
"rev": "decd5655d94eec05b6d5beacb9a652f8ca95344e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ezKEa",
|
||||
"ref": "release-26.05",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -90,6 +91,31 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"bun2nix": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"import-tree": "import-tree",
|
||||
"nixpkgs": [
|
||||
"linux-wallpaper-engine",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770895533,
|
||||
"narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "bun2nix",
|
||||
"rev": "c843f477b15f51151f8c6bcc886954699440a6e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "bun2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"codex-desktop": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
@@ -159,22 +185,6 @@
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
@@ -195,11 +205,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788306937,
|
||||
"narHash": "sha256-lbrI1UYVpFgKSsyrU9oeF7FHfnu8nLD9ja0ou9f2rxk=",
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f16b25b8c3d2809b87925d0b76652d7821a75c68",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -228,7 +238,7 @@
|
||||
},
|
||||
"flake-utils-plus": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2"
|
||||
"flake-utils": "flake-utils_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
@@ -249,6 +259,24 @@
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
@@ -309,15 +337,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788355065,
|
||||
"narHash": "sha256-gAz5oTI7ur34CfuakQduiQd/2ZhO62Bn2XXg08nZYYQ=",
|
||||
"lastModified": 1791938526,
|
||||
"narHash": "sha256-yNYK2pdk3bCtJrpblrNYA6hZKdybWUeyTtx74+OEJFo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d9d750e4fc11c10cab2da677bdd31e427f3a3a71",
|
||||
"rev": "32904dfe1cf86039f3c8c9f41f94e1cfd76dbb34",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-26.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -343,6 +372,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"import-tree": {
|
||||
"locked": {
|
||||
"lastModified": 1763762820,
|
||||
"narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=",
|
||||
"owner": "vic",
|
||||
"repo": "import-tree",
|
||||
"rev": "3c23749d8013ec6daa1d7255057590e9ca726646",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "vic",
|
||||
"repo": "import-tree",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"json": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -401,6 +445,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"linux-wallpaper-engine": {
|
||||
"inputs": {
|
||||
"bun2nix": "bun2nix",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1792046320,
|
||||
"narHash": "sha256-AM22WLmtSfXw/AKKTEVBpSTZ+ksc8aWTwLyu/xyTRSs=",
|
||||
"owner": "jagrat7",
|
||||
"repo": "linux-wallpaper-engine",
|
||||
"rev": "f52102134ea4205a422eb93cc5550e8568a8d769",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jagrat7",
|
||||
"repo": "linux-wallpaper-engine",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"millennium": {
|
||||
"inputs": {
|
||||
"millennium-src": "millennium-src",
|
||||
@@ -442,39 +506,18 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-cachyos-kernel": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788379544,
|
||||
"narHash": "sha256-EMfRomvn1lAErvY/Q3bQL+PwEi+5hbBwI0ZI5SRC/WM=",
|
||||
"owner": "xddxdd",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"rev": "d1c3cadc796061778cf7f62bdbfaf68cf3c3c654",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "xddxdd",
|
||||
"ref": "release",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1788329703,
|
||||
"narHash": "sha256-fHvRW4JUchuw6QNzQ50BfzeYe0TnjKml1V8PVRjntSI=",
|
||||
"lastModified": 1772624091,
|
||||
"narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "090e478bd64824e2122328df47a7efb74fdaf0c1",
|
||||
"rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable-small",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -497,11 +540,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1788057806,
|
||||
"narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=",
|
||||
"lastModified": 1769909678,
|
||||
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c",
|
||||
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -510,13 +553,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1788179007,
|
||||
"narHash": "sha256-hn1oU2rue2SYK8dAr8+WNZWtbsz1S2W5mnHlSEuh3bo=",
|
||||
"lastModified": 1791956154,
|
||||
"narHash": "sha256-jBYGPi4udQ9uo4KQp9m2J0546nJVQitG15gvZSaVVAs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "34ab99075ac4f7e40cf037eef32cb1c360bb85e9",
|
||||
"rev": "55bfb4d7437bd4e09ab7cba58a43bd68eb310044",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -526,6 +569,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1791883866,
|
||||
"narHash": "sha256-yvkDdToRZ4IgPc9tSBzzCYJvTLf8n5eE3rgUkpCuD5A=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a033e66ab94a6bedf2c3d58d93a36319d3cbbbaf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1789286504,
|
||||
@@ -588,9 +647,10 @@
|
||||
"codex-desktop": "codex-desktop",
|
||||
"home-manager": "home-manager",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"linux-wallpaper-engine": "linux-wallpaper-engine",
|
||||
"millennium": "millennium",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"simple-wallpaper-engine": "simple-wallpaper-engine",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"sops-nix": "sops-nix",
|
||||
@@ -606,11 +666,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785476452,
|
||||
"narHash": "sha256-/CXwCFPS41rb/JI2VitKCgVK6V5E6/sfw5ke3B9zyVQ=",
|
||||
"lastModified": 1785907205,
|
||||
"narHash": "sha256-Ds1vTi53af4wDMAveSR/K0JnywDslLwmgwhVIiwnNmY=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "6ef009bf4c4873cdc1a621826722bdea7c03e62c",
|
||||
"rev": "c5cb13481d718fac906aa9cfd85f9b60e1a546cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -663,7 +723,7 @@
|
||||
},
|
||||
"snowfall-lib": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -765,9 +825,61 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"linux-wallpaper-engine",
|
||||
"bun2nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770228511,
|
||||
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
@@ -797,14 +909,18 @@
|
||||
"stb": "stb"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790172262,
|
||||
"narHash": "sha256-gTnF4besYxSEFx0GTA35+/k81nE7WwvTIyJbIs1p20k=",
|
||||
"path": "/home/andreas/Projects/linwallpaap/linux-wallpaperengine",
|
||||
"type": "path"
|
||||
"lastModified": 1792233763,
|
||||
"narHash": "sha256-jT37HuSiRnYEJlmZwsu2+WqcaUIaLJXTkpZuXXCLX54=",
|
||||
"owner": "Hion-V",
|
||||
"repo": "linux-wallpaperengine",
|
||||
"rev": "482ecf2b08a8111eed993dfcd44b6126b6e43c91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"path": "/home/andreas/Projects/linwallpaap/linux-wallpaperengine",
|
||||
"type": "path"
|
||||
"owner": "Hion-V",
|
||||
"ref": "Hion-V/prod",
|
||||
"repo": "linux-wallpaperengine",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
|
||||
inputs = {
|
||||
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # Use nixos-unstable for latest kernel and packages
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||
# Application exceptions; keep the system and graphics stack on stable.
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
# nixos-wsl = {
|
||||
# url = "github:nix-community/NixOS-WSL/main";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -27,7 +29,7 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
url = "github:nix-community/home-manager/release-26.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# anikki = {
|
||||
@@ -43,15 +45,15 @@
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
aagl = {
|
||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||
url = "github:ezKEa/aagl-gtk-on-nix/release-26.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||
wallpaperengine.url = "path:/home/andreas/Projects/linwallpaap/linux-wallpaperengine";
|
||||
wallpaperengine.url = "github:Hion-V/linux-wallpaperengine/Hion-V/prod";
|
||||
simple-wallpaper-engine = {
|
||||
url = "github:Maxnights/simple-linux-wallpaperengine-gui";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
linux-wallpaper-engine.url = "github:jagrat7/linux-wallpaper-engine";
|
||||
millennium = {
|
||||
url = "github:SteamClientHomebrew/Millennium?dir=packages/nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -100,9 +102,6 @@
|
||||
src = ./.;
|
||||
|
||||
overlays = with inputs; [
|
||||
# Use the exact kernel versions as defined in this repo.
|
||||
# Guarantees you have binary cache.
|
||||
nix-cachyos-kernel.overlays.pinned
|
||||
inputs.millennium.overlays.default
|
||||
];
|
||||
|
||||
|
||||
@@ -7,6 +7,17 @@
|
||||
let
|
||||
inherit (lib.my-namespace) enabled;
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
jagratWallpaperEngine =
|
||||
(inputs.linux-wallpaper-engine.packages.${system}.default.override {
|
||||
linux-wallpaperengine = inputs.wallpaperengine.packages.${system}.default;
|
||||
}).overrideAttrs (old: {
|
||||
# Forge 7 expects a default export, but the bundled Vite exposes named exports.
|
||||
preBuild = (old.preBuild or "") + ''
|
||||
substituteInPlace node_modules/@electron-forge/plugin-vite/dist/VitePlugin.js \
|
||||
--replace-fail 'const vite_1 = __importDefault(require("vite"));' \
|
||||
'const vite_1 = { default: require("vite") };'
|
||||
'';
|
||||
});
|
||||
simpleWallpaperEngine =
|
||||
inputs.simple-wallpaper-engine.packages.${system}.default.override {
|
||||
# The upstream GUI package otherwise puts nixpkgs' unmodified
|
||||
@@ -39,6 +50,8 @@ in
|
||||
pkgs.libreoffice
|
||||
pkgs.localsend
|
||||
simpleWallpaperEngine
|
||||
# Separate GUI for manual testing; keep the existing GUI's autostart.
|
||||
jagratWallpaperEngine
|
||||
# pkgs.vesktop
|
||||
pkgs.obsidian
|
||||
inputs.zen-browser.packages.x86_64-linux.default
|
||||
|
||||
@@ -3,6 +3,13 @@ set -euo pipefail
|
||||
nic="/sys/bus/pci/devices/$NIC_PCI"
|
||||
bridge="/sys/bus/pci/devices/$NIC_BRIDGE"
|
||||
log() { echo "rtl8125-recovery: $*"; }
|
||||
disable_eee() {
|
||||
local netdir
|
||||
for netdir in "$nic"/net/*; do
|
||||
[[ -e "$netdir/ifindex" ]] || continue
|
||||
ethtool --set-eee "$(basename "$netdir")" eee off
|
||||
done
|
||||
}
|
||||
|
||||
# Let normal PCI and network resume finish before diagnosing anything.
|
||||
sleep 10
|
||||
@@ -28,9 +35,10 @@ if [[ -d "$nic" ]]; then
|
||||
command=$(timeout 5 setpci -s "$NIC_PCI" COMMAND 2>/dev/null || true)
|
||||
# Both memory decoding and bus mastering should be enabled on this host.
|
||||
# Disconnected cables do not disable these PCI command bits.
|
||||
if [[ "$power" != D3cold && "$command" =~ ^[[:xdigit:]]{4}$ ]] &&
|
||||
if [[ "$power" == D0 && "$command" =~ ^[[:xdigit:]]{4}$ && "${command,,}" != ffff ]] &&
|
||||
(( (16#$command & 6) == 6 )); then
|
||||
log "PCI state healthy ($power, COMMAND=$command); no recovery needed."
|
||||
disable_eee
|
||||
exit 0
|
||||
fi
|
||||
# An administratively disabled NIC should not be automatically reset.
|
||||
@@ -70,11 +78,12 @@ for ((attempt=0; attempt<20; attempt++)); do
|
||||
iface=$(basename "${netdirs[0]}")
|
||||
power=$(cat "$nic/power_state")
|
||||
command=$(timeout 5 setpci -s "$NIC_PCI" COMMAND 2>/dev/null || true)
|
||||
if [[ "$power" == D0 && "$command" =~ ^[[:xdigit:]]{4}$ ]] &&
|
||||
if [[ "$power" == D0 && "$command" =~ ^[[:xdigit:]]{4}$ && "${command,,}" != ffff ]] &&
|
||||
(( (16#$command & 6) == 6 )); then
|
||||
# NetworkManager also reapplies the saved profile. Explicitly
|
||||
# restore WoL here so recovery does not depend on its timing.
|
||||
ethtool -s "$iface" wol g
|
||||
disable_eee
|
||||
if ! ethtool "$iface" | grep -Eq '^[[:space:]]*Wake-on: g$'; then
|
||||
log "PCI recovered, but magic-packet WoL could not be confirmed."
|
||||
exit 1
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.code-server = {
|
||||
enable = true;
|
||||
user = "andreas";
|
||||
group = "users";
|
||||
host = "0.0.0.0";
|
||||
port = 1337;
|
||||
auth = "password";
|
||||
hashedPassword = "$argon2i$v=19$m=4096,t=3,p=1$Njl5em15cVdqMVluSWJneWp4OUhObGgxZ0tnPQ$1AAVNLuuKv5qyno40QAxFVPeAydY+8XkEVovKYrkJN0";
|
||||
disableTelemetry = true;
|
||||
disableUpdateCheck = true;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 1337 ];
|
||||
}
|
||||
@@ -10,8 +10,10 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
./code-server.nix
|
||||
./tigervnc.nix
|
||||
./hardware/hardware-configuration.nix
|
||||
./hardware/realtek-r8125.nix
|
||||
];
|
||||
|
||||
|
||||
@@ -266,7 +268,7 @@
|
||||
|
||||
services.mullvad-vpn = {
|
||||
enable = true;
|
||||
gui.enable = true;
|
||||
package = pkgs.mullvad-vpn;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
|
||||
@@ -29,6 +29,11 @@ let
|
||||
# inherit (lib.my-namespace) systemPackages;
|
||||
inherit pkgs;
|
||||
installedPackages = lib.my-namespace.mkPackages pkgs;
|
||||
# Explicit application exceptions; all other packages use stable pkgs.
|
||||
unstablePkgs = import inputs.nixpkgs-unstable {
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
# inherit system;
|
||||
@@ -87,7 +92,7 @@ in
|
||||
spotify
|
||||
appimage-run
|
||||
prismlauncher #replaces broken minecraft package
|
||||
trilium-desktop
|
||||
unstablePkgs.trilium-desktop
|
||||
terraform
|
||||
virt-manager
|
||||
nil
|
||||
@@ -170,7 +175,7 @@ in
|
||||
my-namespace.cs-demo-manager
|
||||
vscode-modernized
|
||||
zed-editor
|
||||
jetbrains-toolbox
|
||||
unstablePkgs.jetbrains-toolbox
|
||||
|
||||
(pkgs.writeShellScriptBin "switch-to-desktop" ''
|
||||
#!/bin/sh
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
./acer-monitor-edid.nix
|
||||
./samsung-monitor-edid.nix
|
||||
];
|
||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
||||
# boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.kernelModules = [ "kvm-amd" "r8125" "4vl2loopback" ];
|
||||
@@ -26,17 +22,6 @@
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
boot.blacklistedKernelModules = [ "r8169" ];
|
||||
|
||||
systemd.services.disable-realtek-eee = {
|
||||
description = "Disable Realtek Energy Efficient Ethernet";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.ethtool}/bin/ethtool --set-eee enp10s0 eee off";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
fileSystems."/" =
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Keep the vendor driver tied to this host's selected kernel, including its
|
||||
# build dependencies and module installation path supplied by nixpkgs.
|
||||
boot.kernelPackages = pkgs.linuxPackages.extend (_final: prev: {
|
||||
r8125 = prev.r8125.overrideAttrs {
|
||||
version = "9.018.00";
|
||||
# The mirror's top-level wrapper overrides BASEDIR with /lib/modules.
|
||||
# Build in src directly so nixpkgs' kernel path reaches kbuild.
|
||||
buildFlags = [ "-C" "src" "modules" ];
|
||||
# Realtek's release mirrored by the DKMS maintainer. Pin the source rather
|
||||
# than running the vendor installer or following a mutable branch.
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "awesometic";
|
||||
repo = "realtek-r8125-dkms";
|
||||
rev = "9a152bf920334aead090d2fb4d91f67a84923123"; # 9.018.00-1
|
||||
hash = "sha256-yeQsyraNrms1Txm7ZAKeiPfF0tfN6WSHUo5DnvfFosw=";
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user