1 Commits

Author SHA1 Message Date
Tom Alexander
1fc31fbfea Add an install of nixbsd. 2026-08-08 16:18:41 -04:00
63 changed files with 438 additions and 269 deletions

View File

@@ -28,7 +28,6 @@ in
./roles/d2 ./roles/d2
./roles/direnv ./roles/direnv
./roles/disko ./roles/disko
./roles/displaylink
./roles/distributed_build ./roles/distributed_build
./roles/doas ./roles/doas
./roles/docker ./roles/docker
@@ -37,7 +36,6 @@ in
./roles/emacs ./roles/emacs
./roles/emulate_isa ./roles/emulate_isa
./roles/esim ./roles/esim
./roles/exfat
./roles/firefox ./roles/firefox
./roles/firewall ./roles/firewall
./roles/flux ./roles/flux
@@ -65,7 +63,6 @@ in
./roles/media ./roles/media
./roles/memtest86 ./roles/memtest86
./roles/minimal_base ./roles/minimal_base
./roles/mitmproxy
./roles/network ./roles/network
./roles/nix_index ./roles/nix_index
./roles/nix_repl ./roles/nix_repl
@@ -120,14 +117,14 @@ in
nix.settings.experimental-features = [ nix.settings.experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
# "ca-derivations" "ca-derivations"
# "blake3-hashes" # "blake3-hashes"
# "git-hashing" # "git-hashing"
]; ];
nix.settings.trusted-users = [ "@wheel" ]; nix.settings.trusted-users = [ "@wheel" ];
nix.settings.connect-timeout = 5; nix.settings.connect-timeout = 5;
nix.settings.min-free = 5 * 1024 * 1024 * 1024; # Kick off garbage collect if space for nix store is less than 5 GiB nix.settings.min-free = 128000000;
nix.settings.max-free = 10 * 1024 * 1024 * 1024; # Run that garbage collect until at least 10 GiB are free. nix.settings.max-free = 1000000000;
nix.settings.fallback = true; nix.settings.fallback = true;
nix.settings.warn-dirty = false; nix.settings.warn-dirty = false;
nix.settings.fsync-metadata = true; nix.settings.fsync-metadata = true;
@@ -249,32 +246,31 @@ in
glew = (final.glew.override { enableEGL = false; }); glew = (final.glew.override { enableEGL = false; });
}; };
}) })
(disableTests "onetbb") # oneTBB tests hang forever on machines with a single core (like my build virtual machine) https://github.com/uxlfoundation/oneTBB/issues/1557
(disableTests "aws-c-common") # aws-c-common tests time out on my build virtual machine but run fine on my laptop.
(disableOptimizations "onnxruntime") # QuantizeLinearOpTest test failing.
(final: prev: { (final: prev: {
rpcs3 = prev.rpcs3.overrideAttrs ( fwupd = prev.fwupd.overrideAttrs (
finalAttrs: prevAttrs: { finalAttrs: prevAttrs: {
version = "0.0.42-19843"; version = "2.1.5";
src = final.fetchFromGitHub { src = final.fetchFromGitHub {
owner = "RPCS3"; owner = "fwupd";
repo = "rpcs3"; repo = "fwupd";
rev = "6567a5a2f8ab47a89db395d6b47a7b59b23d6960"; tag = finalAttrs.version;
postCheckout = '' hash = "sha256-DzQ+N99ZmFRqZc2rN6PSqmoIMXUyrE8Kkn+KnT/AWPc=";
cd $out/3rdparty
git submodule update --init \
fusion/fusion asmjit/asmjit yaml-cpp/yaml-cpp SoundTouch/soundtouch stblib/stb \
feralinteractive/feralinteractive wolfssl/wolfssl
'';
hash = "sha256-a1c1+Ui7XyHFTGEZAgRuJasCzQqr2PZNTlwaDUWVb18=";
}; };
patches = [ ];
} }
); );
}) })
(disableTests "ada") # test failing with http url is not idempotent. (disableTests "onetbb") # oneTBB tests hang forever on machines with a single core (like my build virtual machine) https://github.com/uxlfoundation/oneTBB/issues/1557
(disableTests "aws-c-common") # aws-c-common tests time out on my build virtual machine but run fine on my laptop.
# Works but probably sets python2's scipy to be python3:
#
# (final: prev: {
# pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
# (python-final: python-prev: {
# scipy = final.unoptimized.python3Packages.scipy;
# })
# ];
# })
]; ];
# This option defines the first version of NixOS you have installed on this particular machine, # This option defines the first version of NixOS you have installed on this particular machine,

View File

@@ -22,11 +22,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781152676, "lastModified": 1780894562,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=", "narHash": "sha256-c3430xwxwhHipl3jigUGMMBfpaMylDqytW/kdmB3ZGs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1", "rev": "24fed06cac83bcc44ac8efbb57cab1a82fa0bedc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -170,11 +170,11 @@
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1788488145, "lastModified": 1785893798,
"narHash": "sha256-s1UY+kbLtb+5ye4GnE/HKh0idUQ0iiIkMMtGI7cDRHk=", "narHash": "sha256-69nKdvM+E/66sj9R2HEK8i0p0TOt/0MSqfXiZjcJ9nI=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "8b28dfb583e094f52fd6ab70c709cc1981d8853d", "rev": "6386febdb81eb1e072ad7cb568019f06618008fe",
"revCount": 46, "revCount": 41,
"type": "git", "type": "git",
"url": "https://code.fizz.buzz/talexander/nix_builder.git" "url": "https://code.fizz.buzz/talexander/nix_builder.git"
}, },
@@ -185,11 +185,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1788752844, "lastModified": 1780749050,
"narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=", "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dc5d91f840324650bac8c379428c7037a416959a", "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -199,6 +199,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-google": {
"locked": {
"lastModified": 1779893571,
"narHash": "sha256-wiwMyVCtmjRjlFCe2zaumCE6LRV9GzzN0ZH25NQkbAU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "45f6cfaa4605b706c870e75bd74bdb5e97eee11e",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "45f6cfaa4605b706c870e75bd74bdb5e97eee11e",
"type": "github"
}
},
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1730741070, "lastModified": 1730741070,
@@ -248,7 +264,8 @@
"impermanence": "impermanence", "impermanence": "impermanence",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nix_builder": "nix_builder", "nix_builder": "nix_builder",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"nixpkgs-google": "nixpkgs-google"
} }
}, },
"rust-overlay": { "rust-overlay": {

View File

@@ -20,6 +20,7 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-google.url = "github:NixOS/nixpkgs/45f6cfaa4605b706c870e75bd74bdb5e97eee11e";
lanzaboote = { lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2"; url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -38,6 +39,7 @@
{ {
self, self,
nixpkgs, nixpkgs,
nixpkgs-google,
disko, disko,
impermanence, impermanence,
lanzaboote, lanzaboote,
@@ -97,6 +99,9 @@
hostPlatform.gcc.arch = "default"; hostPlatform.gcc.arch = "default";
hostPlatform.gcc.tune = "default"; hostPlatform.gcc.tune = "default";
}; };
google = import nixpkgs-google {
system = prev.stdenv.hostPlatform.system;
};
}) })
]; ];
}; };

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -94,7 +94,6 @@
me.emacs_flavor = "full"; me.emacs_flavor = "full";
me.emulate_isa.enable = true; me.emulate_isa.enable = true;
me.esim.enable = true; me.esim.enable = true;
me.exfat.enable = true;
me.firefox.enable = true; me.firefox.enable = true;
me.firewall.enable = true; me.firewall.enable = true;
me.flux.enable = true; me.flux.enable = true;
@@ -118,7 +117,6 @@
me.lvfs.enable = true; me.lvfs.enable = true;
me.media.enable = true; me.media.enable = true;
me.memtest.enable = true; me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true; me.network.enable = true;
me.nix_index.enable = true; me.nix_index.enable = true;
me.nix_repl.enable = true; me.nix_repl.enable = true;
@@ -166,7 +164,7 @@
me.zrepl.enable = true; me.zrepl.enable = true;
me.zsh.enable = true; me.zsh.enable = true;
me.sm64ex.enable = false; me.sm64ex.enable = true;
me.shipwright.enable = false; me.shipwright.enable = false;
me.ship2harkinian.enable = true; me.ship2harkinian.enable = true;
}; };

View File

@@ -4,7 +4,7 @@
config = { config = {
me.distributed_build.enable = true; me.distributed_build.enable = true;
me.distributed_build.machines.quark = { me.distributed_build.machines.quark = {
enable_build = true; enable_build = false;
enable_substituter = false; enable_substituter = false;
additional_config = { additional_config = {
speedFactor = 2; speedFactor = 2;

View File

@@ -92,7 +92,6 @@
me.chromium.enable = true; me.chromium.enable = true;
me.d2.enable = true; me.d2.enable = true;
me.direnv.enable = true; me.direnv.enable = true;
me.displaylink.enable = true;
me.doas.enable = true; me.doas.enable = true;
me.docker.enable = false; me.docker.enable = false;
me.dont_use_substituters.enable = true; me.dont_use_substituters.enable = true;

View File

@@ -111,7 +111,6 @@
me.lvfs.enable = true; me.lvfs.enable = true;
me.media.enable = true; me.media.enable = true;
me.memtest.enable = true; me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true; me.network.enable = true;
me.nix_index.enable = true; me.nix_index.enable = true;
me.nix_repl.enable = true; me.nix_repl.enable = true;
@@ -160,7 +159,7 @@
me.zrepl.enable = true; me.zrepl.enable = true;
me.zsh.enable = true; me.zsh.enable = true;
me.sm64ex.enable = false; me.sm64ex.enable = true;
me.shipwright.enable = false; me.shipwright.enable = false;
me.ship2harkinian.enable = true; me.ship2harkinian.enable = true;
}; };

View File

@@ -72,9 +72,5 @@ in
git_fix_author git_fix_author
rsync_clone rsync_clone
]; ];
# Disable installing documentation.
documentation.doc.enable = false;
documentation.nixos.enable = false;
}; };
} }

View File

@@ -1,40 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
displaylink.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install displaylink.";
};
};
config = lib.mkIf config.me.displaylink.enable (
lib.mkMerge [
{
environment.systemPackages = with pkgs; [
displaylink
];
allowedUnfree = [ "displaylink" ];
boot = {
extraModulePackages = [ config.boot.kernelPackages.evdi ];
initrd.kernelModules = [
"evdi"
];
};
}
(lib.mkIf config.me.graphical {
})
]
);
}

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(setq gc-cons-threshold (* 128 1024 1024)) ;; 128MiB Increase garbage collection threshold for performance (default 800000) (setq gc-cons-threshold (* 128 1024 1024)) ;; 128MiB Increase garbage collection threshold for performance (default 800000)
;; Increase amount of data read from processes, default 4k ;; Increase amount of data read from processes, default 4k
(when (version<= "27.0" emacs-version) (when (version<= "27.0" emacs-version)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package diminish) (use-package diminish)
;; Eglot recommends pulling the latest of the standard libraries it ;; Eglot recommends pulling the latest of the standard libraries it

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
;; ========== Function to reload current file ================= ;; ========== Function to reload current file =================
(defun reload-file () (defun reload-file ()
@@ -12,9 +11,10 @@
"Run a command using the current buffer as stdin and replacing its contents if the command succeeds with the stdout from the command. This is useful for code formatters." "Run a command using the current buffer as stdin and replacing its contents if the command succeeds with the stdout from the command. This is useful for code formatters."
(let ( (let (
(stdout-buffer (generate-new-buffer "tmp-stdout" t)) (stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process-region nil nil cmd nil stdout-buffer nil) args))
) )
(unwind-protect (unwind-protect
(let ((exit-status (apply #'call-process-region nil nil cmd nil (list stdout-buffer nil) nil args))) (let ((exit-status (eval full-cmd)))
(if (eq exit-status 0) (if (eq exit-status 0)
(save-excursion (save-excursion
(replace-buffer-contents stdout-buffer) (replace-buffer-contents stdout-buffer)
@@ -31,9 +31,10 @@
"Run a command using the current buffer as stdin and replacing its contents if the command succeeds with the stdout from the command. This is useful for code formatters. This version only replaces the buffer contents if the command output some text." "Run a command using the current buffer as stdin and replacing its contents if the command succeeds with the stdout from the command. This is useful for code formatters. This version only replaces the buffer contents if the command output some text."
(let ( (let (
(stdout-buffer (generate-new-buffer "tmp-stdout" t)) (stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process-region nil nil cmd nil stdout-buffer nil) args))
) )
(unwind-protect (unwind-protect
(let ((exit-status (apply #'call-process-region nil nil cmd nil (list stdout-buffer nil) nil args))) (let ((exit-status (eval full-cmd)))
(if (eq exit-status 0) (if (eq exit-status 0)
(if (> (buffer-size stdout-buffer) 0) (if (> (buffer-size stdout-buffer) 0)
(save-excursion (save-excursion
@@ -54,9 +55,10 @@
(let ( (let (
(default-directory (or dir default-directory)) (default-directory (or dir default-directory))
(stdout-buffer (generate-new-buffer "tmp-stdout" t)) (stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process cmd nil (list stdout-buffer nil) nil) args))
) )
(unwind-protect (unwind-protect
(let ((exit-status (condition-case nil (apply #'call-process cmd nil (list stdout-buffer nil) nil args) (file-missing nil)))) (let ((exit-status (condition-case nil (eval full-cmd) (file-missing nil))))
(if (eq exit-status 0) (if (eq exit-status 0)
(progn (progn
(with-current-buffer stdout-buffer (with-current-buffer stdout-buffer

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
;; Add your keys here, as such ;; Add your keys here, as such
;; Disable the suspend frame hotkeys ;; Disable the suspend frame hotkeys

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
;; Set theme ;; Set theme
(load-theme 'tango-dark t) (load-theme 'tango-dark t)
(set-face-attribute 'default nil :background "black") (set-face-attribute 'default nil :background "black")

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(package-initialize) (package-initialize)
(use-package use-package (use-package use-package
:custom :custom

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package eglot (use-package eglot
;; This is an emacs built-in but we're pulling the latest version ;; This is an emacs built-in but we're pulling the latest version
:pin gnu :pin gnu

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'util-tree-sitter) (require 'util-tree-sitter)
(use-package bash-ts-mode (use-package bash-ts-mode

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(use-package cmake-mode (use-package cmake-mode

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(defun d2-format-buffer () (defun d2-format-buffer ()
"Run prettier." "Run prettier."
(interactive) (interactive)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package dockerfile-ts-mode (use-package dockerfile-ts-mode
:pin manual :pin manual
:mode ( :mode (

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(defun lua-format-buffer () (defun lua-format-buffer ()
"Run stylua." "Run stylua."
(interactive) (interactive)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package markdown-mode (use-package markdown-mode
:ensure t :ensure t
:commands (markdown-mode gfm-mode) :commands (markdown-mode gfm-mode)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package nftables-mode (use-package nftables-mode
:commands nftables-mode :commands nftables-mode
) )

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'color) (require 'color)
(let ((bg (face-attribute 'default :background))) (let ((bg (face-attribute 'default :background)))
(use-package org (use-package org

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(require 'common-lsp) (require 'common-lsp)
(require 'util-tree-sitter) (require 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(defun xml-fmt () (defun xml-fmt ()
"Run xmllint --format." "Run xmllint --format."
(run-command-on-buffer "xmllint" "--format" "-") (run-command-on-buffer "xmllint" "--format" "-")

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(defun yaml-format-buffer () (defun yaml-format-buffer ()
"Run prettier." "Run prettier."
(interactive) (interactive)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(use-package flymake (use-package flymake
:pin manual :pin manual
:ensure nil :ensure nil

View File

@@ -1,5 +1,3 @@
;; -*- lexical-binding: t; -*-
;; (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) ;; (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode))
(use-package treesit (use-package treesit
@@ -15,8 +13,6 @@
;; :custom ;; :custom
;; (treesit-font-lock-level 3) ;; (treesit-font-lock-level 3)
(setq treesit-font-lock-level 4) (setq treesit-font-lock-level 4)
;; (setq treesit-auto-install-grammar t)
;; (setq treesit-enabled-modes t)
) )
(provide 'util-tree-sitter) (provide 'util-tree-sitter)

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(defun my/minibuffer-delete (arg) (defun my/minibuffer-delete (arg)
"When looking for files, go up an entire directory with the backspace button if theres no text after the directory." "When looking for files, go up an entire directory with the backspace button if theres no text after the directory."
(interactive "p") (interactive "p")

View File

@@ -1,4 +1,3 @@
;; -*- lexical-binding: t; -*-
(add-to-list 'load-path (concat user-emacs-directory "elisp")) (add-to-list 'load-path (concat user-emacs-directory "elisp"))
(require 'base) (require 'base)

View File

@@ -1,26 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
exfat.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install exfat.";
};
};
config = lib.mkIf config.me.exfat.enable {
# boot.supportedFilesystems = [ "exfat" ];
environment.systemPackages = with pkgs; [
exfatprogs
];
};
}

View File

@@ -20,7 +20,7 @@
config = lib.mkIf (config.me.firefox.enable && config.me.graphical) { config = lib.mkIf (config.me.firefox.enable && config.me.graphical) {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { withPipewire = true; }) { }); package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) { });
languagePacks = [ "en-US" ]; languagePacks = [ "en-US" ];
preferences = { preferences = {
# "identity.sync.tokenserver.uri": "https://ffsync.fizz.buzz/token/1.0/sync/1.5"; # "identity.sync.tokenserver.uri": "https://ffsync.fizz.buzz/token/1.0/sync/1.5";
@@ -134,7 +134,7 @@
users.talexander = { users.talexander = {
directories = [ directories = [
{ {
directory = ".config/mozilla"; directory = ".mozilla";
user = "talexander"; user = "talexander";
group = "talexander"; group = "talexander";
mode = "0700"; mode = "0700";

View File

@@ -18,7 +18,7 @@
}; };
config = lib.mkIf config.me.gcloud.enable { config = lib.mkIf config.me.gcloud.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs.google; [
(google-cloud-sdk.withExtraComponents [ google-cloud-sdk.components.gke-gcloud-auth-plugin ]) (google-cloud-sdk.withExtraComponents [ google-cloud-sdk.components.gke-gcloud-auth-plugin ])
]; ];

View File

@@ -61,7 +61,6 @@
systemd.services."build-cache" = systemd.services."build-cache" =
let let
enabled_targets = [ enabled_targets = [
"wip"
"odo" "odo"
"odo_update" "odo_update"
"odowork" "odowork"
@@ -100,7 +99,6 @@
IFS=$'\n\t' IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )"
NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder.packages.x86_64-linux.default}/bin/nix-builder clean --config ${./files/nix_builder.toml}
NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder.packages.x86_64-linux.default}/bin/nix-builder build --config ${./files/nix_builder.toml} ${builtins.concatStringsSep " " build_flags} NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder.packages.x86_64-linux.default}/bin/nix-builder build --config ${./files/nix_builder.toml} ${builtins.concatStringsSep " " build_flags}
''; '';
restartIfChanged = false; restartIfChanged = false;

View File

@@ -1,12 +1,5 @@
output_directory = "/home/nixworker/persist/nix_builder" output_directory = "/home/nixworker/persist/nix_builder"
[[targets]]
name = "wip"
repo = "https://code.fizz.buzz/talexander/machine_setup.git"
branch = "wip"
path = "nix/configuration"
attr = "nixosConfigurations.odo.config.system.build.toplevel"
[[targets]] [[targets]]
name = "odo" name = "odo"
repo = "https://code.fizz.buzz/talexander/machine_setup.git" repo = "https://code.fizz.buzz/talexander/machine_setup.git"
@@ -187,10 +180,10 @@ output_directory = "/home/nixworker/persist/nix_builder"
[[targets]] [[targets]]
name = "nixbsd" name = "nixbsd"
repo = "https://code.fizz.buzz/talexander/machine_setup.git" repo = "https://github.com/nixos-bsd/nixbsd.git"
branch = "nixbsd" revision = "2b512eda58e6d77378bd20d6027802b158942e24"
path = "nix/nixbsd" path = "."
attr = "computer.vm" attr = "base.vmClosureInfo"
[[targets]] [[targets]]
name = "nix_builder_develop" name = "nix_builder_develop"

View File

@@ -14,12 +14,30 @@ let
full = { full = {
PREEMPT_DYNAMIC = yes; PREEMPT_DYNAMIC = yes;
PREEMPT = yes; PREEMPT = yes;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = lib.mkForce no; PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = no;
}; };
lazy = { lazy = {
PREEMPT_DYNAMIC = yes; PREEMPT_DYNAMIC = yes;
PREEMPT = no; PREEMPT = no;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = yes; PREEMPT_LAZY = yes;
PREEMPT_NONE = no;
};
voluntary = {
PREEMPT_DYNAMIC = no;
PREEMPT = no;
PREEMPT_VOLUNTARY = yes;
PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = no;
};
none = {
PREEMPT_DYNAMIC = no;
PREEMPT = no;
PREEMPT_VOLUNTARY = lib.mkForce no;
PREEMPT_LAZY = lib.mkForce no;
PREEMPT_NONE = yes;
}; };
}; };
tick_hz = tick_hz =
@@ -81,14 +99,16 @@ let
TRANSPARENT_HUGEPAGE_MADVISE = yes; TRANSPARENT_HUGEPAGE_MADVISE = yes;
}; };
}; };
common_config = with lib.kernel; { common_config =
with lib.kernel;
{
# Google's BBRv3 TCP congestion Control # Google's BBRv3 TCP congestion Control
TCP_CONG_BBR = yes; TCP_CONG_BBR = yes;
DEFAULT_BBR = yes; DEFAULT_BBR = yes;
}; };
flavors = { flavors = {
server = lib.mkMerge [ server = lib.mkMerge [
preemption_type.lazy preemption_type.none
tick_hz."300" tick_hz."300"
performance_governor.default performance_governor.default
tick_rate.tickless tick_rate.tickless
@@ -122,8 +142,7 @@ in
kernel.version = lib.mkOption { kernel.version = lib.mkOption {
type = lib.types.str; type = lib.types.str;
# default = "linux"; # LTS default = "linux"; # LTS
default = "linux_7_2"; # LTS
example = "linux_6_18"; example = "linux_6_18";
description = "What version of the kernl should we use."; description = "What version of the kernl should we use.";
}; };

View File

@@ -25,8 +25,8 @@
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: { (final: prev: {
tex = ( tex = (
pkgs.texliveSmall.withPackages ( pkgs.texlive.combine {
ps: with ps; [ inherit (pkgs.texlive)
scheme-basic scheme-basic
dvisvgm dvisvgm
dvipng # for preview and export as html in org-mode dvipng # for preview and export as html in org-mode
@@ -44,8 +44,8 @@
upquote # emacs org-mode pdf export upquote # emacs org-mode pdf export
lineno # emacs org-mode pdf export lineno # emacs org-mode pdf export
beamer # emacs org-mode presentation pdf export beamer # emacs org-mode presentation pdf export
] ;
) }
); );
}) })
]; ];

View File

@@ -1,25 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
options.me = {
mitmproxy.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install mitmproxy.";
};
};
config = lib.mkIf config.me.mitmproxy.enable {
environment.systemPackages = with pkgs; [
mitmproxy
];
};
}

View File

@@ -6,8 +6,6 @@
}: }:
# Alternative DNS servers: # Alternative DNS servers:
# "194.242.2.2#doh.mullvad.net"
# "2a07:e340::2#doh.mullvad.net"
# "1.0.0.1#cloudflare-dns.com" # "1.0.0.1#cloudflare-dns.com"
# "1.1.1.1#cloudflare-dns.com" # "1.1.1.1#cloudflare-dns.com"
# "2606:4700:4700::1001#cloudflare-dns.com" # "2606:4700:4700::1001#cloudflare-dns.com"
@@ -16,10 +14,6 @@
# "8.8.8.8#dns.google" # "8.8.8.8#dns.google"
# "2001:4860:4860::8844#dns.google" # "2001:4860:4860::8844#dns.google"
# "2001:4860:4860::8888#dns.google" # "2001:4860:4860::8888#dns.google"
# "9.9.9.10#dns10.quad9.net"
# "149.112.112.10#dns10.quad9.net"
# "2620:fe::10#dns10.quad9.net"
# "2620:fe::fe:10#dns10.quad9.net"
let let
patchScriptBin = patchScriptBin =
@@ -45,10 +39,8 @@ in
networking.dhcpcd.enable = lib.mkDefault false; networking.dhcpcd.enable = lib.mkDefault false;
networking.useDHCP = lib.mkDefault false; networking.useDHCP = lib.mkDefault false;
networking.nameservers = [ networking.nameservers = [
"9.9.9.10#dns10.quad9.net" "194.242.2.2#doh.mullvad.net"
"149.112.112.10#dns10.quad9.net" "2a07:e340::2#doh.mullvad.net"
"2620:fe::10#dns10.quad9.net"
"2620:fe::fe:10#dns10.quad9.net"
]; ];
services.resolved = { services.resolved = {
enable = true; enable = true;

View File

@@ -34,9 +34,7 @@
# Write config files in /etc/containers # Write config files in /etc/containers
virtualisation.containers.enable = true; virtualisation.containers.enable = true;
# By default this includes "quay.io" which leads to prompting for which registry to download from. # By default this includes "quay.io" which leads to prompting for which registry to download from.
virtualisation.containers.registries.settings = { virtualisation.containers.registries.search = [ "docker.io" ];
unqualified-search-registries = [ "docker.io" ];
};
virtualisation = { virtualisation = {
podman = { podman = {
enable = true; enable = true;

View File

@@ -38,7 +38,7 @@ in
}; };
}; };
Miscellaneous = { Miscellaneous = {
"Pause emulation on RPCS3 focus loss" = false; "Pause emulation on RPCS3 focus loss" = true;
"Start games in fullscreen mode" = true; "Start games in fullscreen mode" = true;
"Pause Emulation During Home Menu" = false; # true makes the home menu slow "Pause Emulation During Home Menu" = false; # true makes the home menu slow
}; };
@@ -53,10 +53,7 @@ in
rpcs3 rpcs3
]; ];
allowedUnfree = [ allowedUnfree = [ "rpcs3" ];
"rpcs3"
"corefonts"
];
security.pam.loginLimits = [ security.pam.loginLimits = [
{ {
@@ -73,10 +70,6 @@ in
} }
]; ];
fonts.packages = with pkgs; [
corefonts # Needed for Arial, otherwise launching games fails.
];
me.install.user.talexander.file = { me.install.user.talexander.file = {
".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) { ".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) {
source = rpcs3_config_yaml; source = rpcs3_config_yaml;
@@ -88,10 +81,6 @@ in
# Demon's Souls per-game config. # Demon's Souls per-game config.
source = ./files/config_BLUS30443.yml; source = ./files/config_BLUS30443.yml;
}; };
".config/rpcs3/custom_configs/config_BLUS30421.yml" = {
# The Lord of the Rings The War in the North per-game config.
source = ./files/config_BLUS30421.yml;
};
".config/rpcs3/patches/patch.yml" = { ".config/rpcs3/patches/patch.yml" = {
# All of the available patches. # All of the available patches.
source = ./files/patch.yml; source = ./files/patch.yml;

View File

@@ -1,14 +0,0 @@
Core:
SPU Block Size: Safe
Video:
Write Color Buffers: true
Minimum Scalable Dimension: 640
Net:
Internet enabled: Connected
IP address: 0.0.0.0
Bind address: 0.0.0.0
DNS address: 8.8.8.8
IP swap list: ""
UPNP Enabled: false
PSN status: RPCN
PSN Country: us

View File

@@ -41,7 +41,7 @@
nix.settings.experimental-features = [ nix.settings.experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
# "ca-derivations" "ca-derivations"
# "blake3-hashes" # "blake3-hashes"
# "git-hashing" # "git-hashing"
]; ];
@@ -64,10 +64,6 @@
}; };
nix.settings.auto-optimise-store = !config.me.buildingPortable; nix.settings.auto-optimise-store = !config.me.buildingPortable;
# Disable installing documentation.
documentation.doc.enable = false;
documentation.nixos.enable = false;
environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) { environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) {
hideMounts = true; hideMounts = true;
directories = [ directories = [

View File

@@ -164,11 +164,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1788752844, "lastModified": 1784120854,
"narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=", "narHash": "sha256-KesHgItiZPgGX740axSiQLcIQ8D24MDqNpkKYWIek8k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dc5d91f840324650bac8c379428c7037a416959a", "rev": "753cc8a3a87467296ddd1fa93f0cc3e81120ee46",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -20,7 +20,7 @@
config = { config = {
networking = networking =
let let
interface = "enp0s10"; interface = "enp0s2";
in in
{ {
# Generate with `head -c4 /dev/urandom | od -A none -t x4` # Generate with `head -c4 /dev/urandom | od -A none -t x4`

View File

@@ -134,18 +134,6 @@ let
"nix-pull-through-cache" = { "nix-pull-through-cache" = {
"CACHE_GET_TOKEN" = (builtins.readFile "${./secrets/nix-pull-through-cache/auth/CACHE_GET_TOKEN}"); "CACHE_GET_TOKEN" = (builtins.readFile "${./secrets/nix-pull-through-cache/auth/CACHE_GET_TOKEN}");
}; };
"registry-credentials" =
(generate_docker_secret {
username = builtins.readFile "${./secrets/flux-system/registry-credentials/username}";
password = builtins.readFile "${./secrets/flux-system/registry-credentials/password}";
email = builtins.readFile "${./secrets/flux-system/registry-credentials/email}";
address = builtins.readFile "${./secrets/flux-system/registry-credentials/address}";
})
// {
# "__annotations" = {
# "tekton.dev/docker-0" = "https://harbor.fizz.buzz";
# };
};
}; };
}; };
encrypted_secrets = ( encrypted_secrets = (

View File

@@ -25,7 +25,6 @@
gptfdisk # cgdisk gptfdisk # cgdisk
arp-scan # To find devices on the network arp-scan # To find devices on the network
ldns # for drill ldns # for drill
parted
]; ];
# This can make debugging easier by rejecting packets instead of dropping them: # This can make debugging easier by rejecting packets instead of dropping them:

View File

@@ -21,7 +21,7 @@
assertions = [ assertions = [
{ {
# Kubernetes should only upgrade 1 minor version at a time, so this assert is here to prevent unwittingly jumping versions. # Kubernetes should only upgrade 1 minor version at a time, so this assert is here to prevent unwittingly jumping versions.
assertion = lib.hasPrefix "1.37." pkgs.kubernetes.version; assertion = lib.hasPrefix "1.36." pkgs.kubernetes.version;
message = "Unexpected Kubernetes package version: ${pkgs.kubernetes.version}"; message = "Unexpected Kubernetes package version: ${pkgs.kubernetes.version}";
} }
]; ];

209
nix/nixbsd/flake.lock generated Normal file
View File

@@ -0,0 +1,209 @@
{
"nodes": {
"cppnix": {
"inputs": {
"flake-compat": "flake-compat",
"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": 1781190364,
"narHash": "sha256-uP1AYpXYHdzmuz+a4AcScRIHa1uy7l9ObZovS0OqN70=",
"owner": "nixos",
"repo": "nix",
"rev": "ce9fda43e5cb8d2f6c57c7240d05d10ad0415799",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nix",
"type": "github"
}
},
"flake-compat": {
"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_2": {
"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-parts": {
"inputs": {
"nixpkgs-lib": [
"nixbsd",
"cppnix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"git-hooks-nix": {
"inputs": {
"flake-compat": [
"nixbsd",
"cppnix"
],
"gitignore": [
"nixbsd",
"cppnix"
],
"nixpkgs": [
"nixbsd",
"cppnix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"mini-tmpfiles": {
"inputs": {
"nixpkgs": [
"nixbsd",
"nixpkgs"
]
},
"locked": {
"lastModified": 1742754557,
"narHash": "sha256-nGxgiNhA94eSl8jcQwCboJ5Ed132z8yrFdOoT+rf8bE=",
"owner": "nixos-bsd",
"repo": "mini-tmpfiles",
"rev": "534ee577692c7092fdcd035f89bc29b663c6f9ca",
"type": "github"
},
"original": {
"owner": "nixos-bsd",
"repo": "mini-tmpfiles",
"type": "github"
}
},
"nixbsd": {
"inputs": {
"cppnix": "cppnix",
"flake-compat": "flake-compat_2",
"mini-tmpfiles": "mini-tmpfiles",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1783703343,
"narHash": "sha256-kt38BGQYWXUtNgTV/hCx0tf8IZJFuEGE3/IYoRutha4=",
"owner": "nixos-bsd",
"repo": "nixbsd",
"rev": "2b512eda58e6d77378bd20d6027802b158942e24",
"type": "github"
},
"original": {
"owner": "nixos-bsd",
"repo": "nixbsd",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1783693695,
"narHash": "sha256-4eOaoE0Z2OR28W/vdzp1H9Qkl84ajh7tdVsfNwTuG5U=",
"rev": "dc29ee8fa098c86053cc8ef25594738f28be5b6b",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable-small/nixos-26.11pre1032146.dc29ee8fa098/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
}
},
"nixpkgs-23-11": {
"locked": {
"lastModified": 1717159533,
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
"type": "github"
},
"original": {
"owner": "NixOS",
"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"
}
},
"root": {
"inputs": {
"nixbsd": "nixbsd",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

111
nix/nixbsd/flake.nix Normal file
View File

@@ -0,0 +1,111 @@
# nix build .#computer.vm
# result/bin/run-nixbsd-base-vm
{
description = "NixBSD Flake";
inputs = {
nixpkgs.url = "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz";
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixbsd = {
url = "github:nixos-bsd/nixbsd";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
nixbsd,
...
}@inputs:
let
forAllSystems =
func:
builtins.listToAttrs (
map (system: {
name = system;
value = func system;
}) nixpkgs.lib.systems.flakeExposed
);
makeImage =
buildPlatform: conf:
let
extended = conf.extendModules {
modules = [
{
config.nixpkgs.buildPlatform = buildPlatform;
}
];
};
in
extended.config.system.build
// {
# appease `nix flake show`
type = "derivation";
name = "system-build";
closureInfo = extended.pkgs.closureInfo {
rootPaths = [ extended.config.system.build.toplevel.drvPath ];
};
vmClosureInfo = extended.pkgs.closureInfo {
rootPaths = [ extended.config.system.build.vm.drvPath ];
};
system = extended.config.system.build.toplevel;
inherit (extended) pkgs config;
};
in
{
nixosConfigurations.computer = nixbsd.lib.nixbsdSystem {
system = "x86_64-freebsd";
modules = [
(
{ config, lib, ... }:
{
nixpkgs.hostPlatform = "x86_64-freebsd";
networking.hostName = "computer";
users.users.root.initialPassword = "toor";
# Don't make me wait for an address...
networking.dhcpcd.wait = "background";
users.users.talexander = {
isNormalUser = true;
description = "me";
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";
system.stateVersion = "26.11";
}
)
];
};
packages = forAllSystems (
system:
nixpkgs.lib.mapAttrs (name: makeImage system) self.nixosConfigurations
// {
tools =
nixpkgs.legacyPackages.${system}.callPackages "${nixbsd}/modules/installer/tools/package.nix"
{ };
}
);
};
}