Compare commits
1 Commits
087225be45
..
nixbsd
| Author | SHA1 | Date | |
|---|---|---|---|
|
92330a6fe2
|
Generated
+175
-47
@@ -58,6 +58,33 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cppnix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks-nix": "git-hooks-nix",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||||
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771531533,
|
||||||
|
"narHash": "sha256-E6uWPzQoMpzUb+2kcrxaYsfhUXjyIAoTpI6DPtbe1Y0=",
|
||||||
|
"owner": "rhelmot",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "d623444c12428e69a3269d3b4b40200f2b4618fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rhelmot",
|
||||||
|
"ref": "freebsd-safe",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765145449,
|
"lastModified": 1765145449,
|
||||||
@@ -105,6 +132,36 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"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_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1627913399,
|
"lastModified": 1627913399,
|
||||||
@@ -120,6 +177,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733312601,
|
||||||
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
@@ -153,6 +232,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"git-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix"
|
||||||
|
],
|
||||||
|
"gitignore": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixbsd",
|
||||||
|
"cppnix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734279981,
|
||||||
|
"narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -220,20 +334,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"linux-ntfs": {
|
"mini-tmpfiles": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixbsd",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778111793,
|
"lastModified": 1742754557,
|
||||||
"narHash": "sha256-E+f1utc2Az4ZmqvkZ8lDgHpXsheJobUMbLff1vdpQHE=",
|
"narHash": "sha256-nGxgiNhA94eSl8jcQwCboJ5Ed132z8yrFdOoT+rf8bE=",
|
||||||
"owner": "Lumpiasty",
|
"owner": "nixos-bsd",
|
||||||
"repo": "linux-ntfs",
|
"repo": "mini-tmpfiles",
|
||||||
"rev": "7fbf82056e26d99bfa4d5aab87ce287cd8c8cbef",
|
"rev": "534ee577692c7092fdcd035f89bc29b663c6f9ca",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Lumpiasty",
|
"owner": "nixos-bsd",
|
||||||
"ref": "main",
|
"repo": "mini-tmpfiles",
|
||||||
"repo": "linux-ntfs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -253,26 +371,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-skills": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775452536,
|
|
||||||
"narHash": "sha256-1MjzL/U5OtALBmsel4YHVSK9jr2c/YP4eXfi7lA5C+o=",
|
|
||||||
"owner": "sudosubin",
|
|
||||||
"repo": "nix-skills",
|
|
||||||
"rev": "c2d1958a5cdd7ee83f552c046fbc7cb43e8171e4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "sudosubin",
|
|
||||||
"repo": "nix-skills",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-sweep": {
|
"nix-sweep": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cf": "cf",
|
"cf": "cf",
|
||||||
@@ -296,6 +394,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixbsd": {
|
||||||
|
"inputs": {
|
||||||
|
"cppnix": "cppnix",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"mini-tmpfiles": "mini-tmpfiles",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777600581,
|
||||||
|
"narHash": "sha256-DbKmDIFNLqR8xXnSepJPr29FngkiPDa8+vAErZRrQUA=",
|
||||||
|
"path": "/home/user/Projects/nixbsd",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/home/user/Projects/nixbsd",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776830795,
|
"lastModified": 1776830795,
|
||||||
@@ -328,30 +446,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ntfsplus": {
|
"nixpkgs-23-11": {
|
||||||
"inputs": {
|
|
||||||
"linux-ntfs": "linux-ntfs",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774317576,
|
"lastModified": 1717159533,
|
||||||
"narHash": "sha256-HSDFaDLvfS/NqJlXbHh9135DEpqH6JrNuWqbu3YPcTg=",
|
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||||
"owner": "cmspam",
|
"owner": "NixOS",
|
||||||
"repo": "ntfsplus-flake",
|
"repo": "nixpkgs",
|
||||||
"rev": "e22d1bcbac31b4e6484d32c503396e8184650215",
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cmspam",
|
"owner": "NixOS",
|
||||||
"repo": "ntfsplus-flake",
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-regression": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1643052045,
|
||||||
|
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"peerix": {
|
"peerix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_4",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@@ -424,11 +553,10 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nix-skills": "nix-skills",
|
|
||||||
"nix-sweep": "nix-sweep",
|
"nix-sweep": "nix-sweep",
|
||||||
|
"nixbsd": "nixbsd",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"ntfsplus": "ntfsplus",
|
|
||||||
"peerix": "peerix",
|
"peerix": "peerix",
|
||||||
"plasma-manager": "plasma-manager"
|
"plasma-manager": "plasma-manager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,13 +34,8 @@
|
|||||||
url = "github:Lumpiasty/acer-wmi-ext/main";
|
url = "github:Lumpiasty/acer-wmi-ext/main";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
ntfsplus = {
|
nixbsd = {
|
||||||
url = "github:cmspam/ntfsplus-flake";
|
url = "path:/home/user/Projects/nixbsd";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.linux-ntfs.url = "github:Lumpiasty/linux-ntfs/main";
|
|
||||||
};
|
|
||||||
nix-skills = {
|
|
||||||
url = "github:sudosubin/nix-skills";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -50,11 +45,13 @@
|
|||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
let
|
let
|
||||||
mkNixosSystem = import lib/mkNixosSystem.nix inputs;
|
mkNixosSystem = import lib/mkNixosSystem.nix inputs;
|
||||||
|
mkNixbsdSystem = import lib/mkNixbsdSystem.nix inputs;
|
||||||
in
|
in
|
||||||
with nixos-hardware.nixosModules; {
|
with nixos-hardware.nixosModules; {
|
||||||
x260 = mkNixosSystem lenovo-thinkpad-x260 hosts/x260.nix;
|
x260 = mkNixosSystem lenovo-thinkpad-x260 hosts/x260.nix;
|
||||||
acer = mkNixosSystem {} hosts/acer.nix;
|
acer = mkNixosSystem {} hosts/acer.nix;
|
||||||
gaming-pc = mkNixosSystem {} hosts/gaming-pc.nix;
|
gaming-pc = mkNixosSystem {} hosts/gaming-pc.nix;
|
||||||
|
bestieTest = mkNixbsdSystem hosts/bestieTest.nix;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
+10
-31
@@ -21,20 +21,6 @@
|
|||||||
pkgs.vscode-extensions.arrterian.nix-env-selector
|
pkgs.vscode-extensions.arrterian.nix-env-selector
|
||||||
pkgs.vscode-extensions.jnoortheen.nix-ide
|
pkgs.vscode-extensions.jnoortheen.nix-ide
|
||||||
];
|
];
|
||||||
# profiles.default.userSettings = {
|
|
||||||
# "claudeCode.claudeProcessWrapper" = "${pkgs.claude-code}/bin/claude-code";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
# Just a fixed-location executable that launches claude code
|
|
||||||
# so we can point vscode's extenstion at it, not the nix store path
|
|
||||||
# remove it once we configure vscode using nix
|
|
||||||
home.file.".config/claude-code-wrapper" = {
|
|
||||||
text = ''
|
|
||||||
#!${pkgs.stdenv.shell}
|
|
||||||
exec ${pkgs.claude-code}/bin/claude "$@"
|
|
||||||
'';
|
|
||||||
executable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
@@ -60,6 +46,16 @@
|
|||||||
nodejs_24
|
nodejs_24
|
||||||
codex
|
codex
|
||||||
claude-code
|
claude-code
|
||||||
|
(
|
||||||
|
# Wrapping opencode to set the OPENCODE_ENABLE_EXA environment variable
|
||||||
|
runCommand "opencode" {
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
} ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
makeWrapper ${pkgs.opencode}/bin/opencode $out/bin/opencode \
|
||||||
|
--set OPENCODE_ENABLE_EXA "1"
|
||||||
|
''
|
||||||
|
)
|
||||||
winbox4
|
winbox4
|
||||||
amdgpu_top
|
amdgpu_top
|
||||||
dua
|
dua
|
||||||
@@ -118,22 +114,5 @@
|
|||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
|
|
||||||
programs.opencode = {
|
|
||||||
enable = true;
|
|
||||||
package = (
|
|
||||||
# Wrapping opencode to set the OPENCODE_ENABLE_EXA environment variable
|
|
||||||
pkgs.runCommand "opencode" {
|
|
||||||
buildInputs = [ pkgs.makeWrapper ];
|
|
||||||
} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
makeWrapper ${pkgs.opencode}/bin/opencode $out/bin/opencode \
|
|
||||||
--set OPENCODE_ENABLE_EXA "1"
|
|
||||||
''
|
|
||||||
);
|
|
||||||
skills = with pkgs.skills; {
|
|
||||||
caveman = majiayu000."claude-skill-registry".caveman + "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-10
@@ -6,16 +6,7 @@
|
|||||||
config = lib.mkIf (config.lumpiastyHome.enablePcApps && osConfig.lumpiasty.pc) {
|
config = lib.mkIf (config.lumpiastyHome.enablePcApps && osConfig.lumpiasty.pc) {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
vesktop
|
vesktop
|
||||||
# Manual update, not yet in nixpkgs as for now
|
spotify
|
||||||
(spotify.overrideAttrs (old: rec {
|
|
||||||
version = "1.2.86.502.g8cd7fb22";
|
|
||||||
rev = "94";
|
|
||||||
src = fetchurl {
|
|
||||||
name = "spotify-${version}-${rev}.snap";
|
|
||||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
|
||||||
hash = "sha256-XhwyaObck6viIvDRXEztlSLja5fsfw5HgHUUQzMehLI=";
|
|
||||||
};
|
|
||||||
}))
|
|
||||||
pass-wayland
|
pass-wayland
|
||||||
teamspeak6-client
|
teamspeak6-client
|
||||||
easyeffects
|
easyeffects
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
nixpkgs.hostPlatform = "x86_64-freebsd";
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
|
||||||
|
users.users.root.initialPassword = "toor";
|
||||||
|
|
||||||
|
networking.dhcpcd.wait = "background";
|
||||||
|
|
||||||
|
users.users.bestie = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "your bestie";
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
inherit (config.users.users.root) initialPassword;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.sshd.enable = true;
|
||||||
|
boot.loader.stand-freebsd.enable = true;
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/gpt/nixos";
|
||||||
|
fsType = "ufs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/msdosfs/ESP";
|
||||||
|
fsType = "msdosfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.vmVariant.virtualisation.diskImage = "./${config.system.name}.qcow2";
|
||||||
|
}
|
||||||
+1
-6
@@ -94,7 +94,7 @@
|
|||||||
"/var/games" =
|
"/var/games" =
|
||||||
{
|
{
|
||||||
device = "/dev/disk/by-uuid/8A3094A230949733"; # "Shared" NTFS partition
|
device = "/dev/disk/by-uuid/8A3094A230949733"; # "Shared" NTFS partition
|
||||||
fsType = "ntfs";
|
fsType = "ntfs-3g";
|
||||||
options = [
|
options = [
|
||||||
"uid=1000" "gid=100" # My user account
|
"uid=1000" "gid=100" # My user account
|
||||||
"nofail" # Don't fail boot if failed to mount because windows left it dirty
|
"nofail" # Don't fail boot if failed to mount because windows left it dirty
|
||||||
@@ -102,11 +102,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Use ntfs-plus instead driver
|
|
||||||
services.ntfsplus.enable = true;
|
|
||||||
# Force disable ntfs-3g driver
|
|
||||||
boot.supportedFilesystems.ntfs = lib.mkForce false;
|
|
||||||
|
|
||||||
# Config modules
|
# Config modules
|
||||||
lumpiasty = {
|
lumpiasty = {
|
||||||
pc = true;
|
pc = true;
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixbsd,
|
||||||
|
home-manager,
|
||||||
|
nix-flatpak,
|
||||||
|
plasma-manager,
|
||||||
|
lanzaboote,
|
||||||
|
claude-code,
|
||||||
|
nix-sweep,
|
||||||
|
peerix,
|
||||||
|
acer-wmi-ext,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
hostConfig:
|
||||||
|
|
||||||
|
nixbsd.lib.nixbsdSystem {
|
||||||
|
modules = [
|
||||||
|
# Cross-compile FreeBSD from Linux, builds dispatched to remote builder
|
||||||
|
{
|
||||||
|
nixpkgs.buildPlatform = "x86_64-linux";
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
# No-op emulator for FreeBSD - builds happen on remote builder where binaries run natively
|
||||||
|
freebsdEmulator = prev.runCommand "freebsd-emulator" { } ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat > $out/bin/freebsd-exec << 'SCRIPT'
|
||||||
|
#!/bin/sh
|
||||||
|
exec "$@"
|
||||||
|
SCRIPT
|
||||||
|
chmod +x $out/bin/freebsd-exec
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Override mesonEmulatorHook to not require a real emulator for FreeBSD
|
||||||
|
mesonEmulatorHook =
|
||||||
|
let
|
||||||
|
canExec = prev.stdenv.hostPlatform.canExecute prev.stdenv.targetPlatform;
|
||||||
|
emulatorPath = "${final.freebsdEmulator}/bin/freebsd-exec";
|
||||||
|
in
|
||||||
|
if canExec then
|
||||||
|
prev.mesonEmulatorHook
|
||||||
|
else
|
||||||
|
prev.makeSetupHook
|
||||||
|
{
|
||||||
|
name = "mesonEmulatorHook";
|
||||||
|
substitutions = {
|
||||||
|
crossFile = prev.writeText "cross-file.conf" ''
|
||||||
|
[binaries]
|
||||||
|
exe_wrapper = '${prev.lib.escape [ "'" "\\" ] emulatorPath}'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
"${nixpkgs.outPath}/pkgs/build-support/setup-hooks/meson/emulator-hook.sh";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
hostConfig
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -9,8 +9,6 @@
|
|||||||
nix-sweep,
|
nix-sweep,
|
||||||
peerix,
|
peerix,
|
||||||
acer-wmi-ext,
|
acer-wmi-ext,
|
||||||
ntfsplus,
|
|
||||||
nix-skills,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
hardwareConfig: hostConfig:
|
hardwareConfig: hostConfig:
|
||||||
@@ -27,7 +25,6 @@ nixpkgs.lib.nixosSystem {
|
|||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
claude-code.overlays.default
|
claude-code.overlays.default
|
||||||
acer-wmi-ext.overlays.default
|
acer-wmi-ext.overlays.default
|
||||||
nix-skills.overlays.default
|
|
||||||
];
|
];
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
substituters = [ "https://claude-code.cachix.org" ];
|
substituters = [ "https://claude-code.cachix.org" ];
|
||||||
@@ -39,7 +36,6 @@ nixpkgs.lib.nixosSystem {
|
|||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
nix-sweep.nixosModules.default
|
nix-sweep.nixosModules.default
|
||||||
peerix.nixosModules.peerix
|
peerix.nixosModules.peerix
|
||||||
ntfsplus.nixosModules.default
|
|
||||||
../modules
|
../modules
|
||||||
hostConfig
|
hostConfig
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
|
|
||||||
# Enable the KDE Plasma Desktop Environment.
|
# Enable the KDE Plasma Desktop Environment.
|
||||||
services.displayManager.plasma-login-manager.enable = true;
|
services.displayManager.sddm.enable = true;
|
||||||
services.desktopManager.plasma6.enable = true;
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
|
|||||||
@@ -6,14 +6,48 @@ let
|
|||||||
else if config.boot.loader.systemd-boot.enable then
|
else if config.boot.loader.systemd-boot.enable then
|
||||||
config.boot.loader.systemd-boot.configurationLimit
|
config.boot.loader.systemd-boot.configurationLimit
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
|
# NixBSD builder VM SSH key (needs to be readable by root/nix-daemon)
|
||||||
|
builderKeyDir = "/etc/nix/builder-keys";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
daemonIOSchedClass = "idle";
|
daemonIOSchedClass = "idle";
|
||||||
daemonCPUSchedPolicy = "idle";
|
daemonCPUSchedPolicy = "idle";
|
||||||
settings.trusted-users = [ "root" "user" ];
|
settings.trusted-users = [ "root" "user" ];
|
||||||
|
|
||||||
|
# FreeBSD remote builder VM (NixBSD)
|
||||||
|
distributedBuilds = true;
|
||||||
|
buildMachines = [
|
||||||
|
{
|
||||||
|
hostName = "192.168.122.100";
|
||||||
|
system = "x86_64-freebsd";
|
||||||
|
sshUser = "root";
|
||||||
|
sshKey = "${builderKeyDir}/nixbsd-builder";
|
||||||
|
maxJobs = 8;
|
||||||
|
speedFactor = 1;
|
||||||
|
supportedFeatures = [ "big-parallel" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
settings.builders-use-substitutes = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Install the builder SSH key where root/nix-daemon can read it
|
||||||
|
system.activationScripts.nixbsd-builder-key = ''
|
||||||
|
mkdir -p ${builderKeyDir}
|
||||||
|
cp /home/user/Projects/nixbsd-flake/keys/builder ${builderKeyDir}/nixbsd-builder
|
||||||
|
chmod 600 ${builderKeyDir}/nixbsd-builder
|
||||||
|
chown root:root ${builderKeyDir}/nixbsd-builder
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Skip host key checking for the local builder VM (keys change on rebuild)
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host 192.168.122.100
|
||||||
|
StrictHostKeyChecking no
|
||||||
|
UserKnownHostsFile /dev/null
|
||||||
|
LogLevel ERROR
|
||||||
|
'';
|
||||||
|
|
||||||
# Clean up nix store from old configurations usinx nix-sweep
|
# Clean up nix store from old configurations usinx nix-sweep
|
||||||
services.nix-sweep = {
|
services.nix-sweep = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.boot.zfs.enabled {
|
config = lib.mkIf config.boot.zfs.enabled {
|
||||||
|
# Set ARC max to 5% of physical RAM at boot
|
||||||
systemd.services."zfs-arc-limit" = {
|
systemd.services."zfs-arc-limit" = {
|
||||||
description = "Set ZFS ARC max to 20% of physical RAM";
|
description = "Set ZFS ARC max to 5% of physical RAM";
|
||||||
# Ensure the module is loaded before we write to /sys
|
# Ensure the module is loaded before we write to /sys
|
||||||
after = [ "systemd-modules-load.service" ];
|
after = [ "systemd-modules-load.service" ];
|
||||||
# Run early, but it’s fine if ZFS has already imported; the limit still applies
|
# Run early, but it’s fine if ZFS has already imported; the limit still applies
|
||||||
@@ -14,8 +15,8 @@
|
|||||||
# Total RAM in kB
|
# Total RAM in kB
|
||||||
mem_kb=$(awk '/MemTotal:/ {print $2}' /proc/meminfo)
|
mem_kb=$(awk '/MemTotal:/ {print $2}' /proc/meminfo)
|
||||||
echo "DEBUG: Total RAM: $mem_kb kB"
|
echo "DEBUG: Total RAM: $mem_kb kB"
|
||||||
# 20%, in bytes
|
# 5%, in bytes
|
||||||
arc_max_bytes=$(( mem_kb * 1024 / 100 * 20 ))
|
arc_max_bytes=$(( mem_kb * 1024 / 100 * 5 ))
|
||||||
echo "DEBUG: Setting ZFS ARC max to: $arc_max_bytes bytes"
|
echo "DEBUG: Setting ZFS ARC max to: $arc_max_bytes bytes"
|
||||||
param="/sys/module/zfs/parameters/zfs_arc_max"
|
param="/sys/module/zfs/parameters/zfs_arc_max"
|
||||||
if [ -w "$param" ]; then
|
if [ -w "$param" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user