19 Commits

Author SHA1 Message Date
Tom Alexander
a5e17590a7 Add support for DisplayLink docks at work. 2026-09-23 09:43:58 -04:00
Tom Alexander
ffbd3847e7 Fix lexical binding issue loading python language server. 2026-09-13 23:47:20 -04:00
Tom Alexander
4a6cbfad67 Use lexical binding in elisp files.
This silences a warning for each of these files. Lexical binding will become the default in a future version of emacs.
2026-09-12 21:00:26 -04:00
Tom Alexander
450478cff4 I changed bhyverc to use pci slot 10 for network, so update the network interface. 2026-09-12 17:27:33 -04:00
Tom Alexander
82d460e08e Update packages. 2026-09-12 17:27:33 -04:00
Tom Alexander
24853ba6a2 Add secret for private images pulled in tekton steps. 2026-09-12 17:26:41 -04:00
Tom Alexander
f2bde9ffea Disable installing documentation. 2026-09-07 15:41:38 -04:00
Tom Alexander
0d6001d655 Add parted to debugging role on kubernetes.
This is to support expanding the storage.
2026-09-07 13:24:39 -04:00
Tom Alexander
a0e8a74906 Update packages. 2026-09-05 19:07:41 -04:00
Tom Alexander
e719948a3e Switch to quad9 for DNS.
Mullvad is shutting down their public DNS.

ref: https://mullvad.net/en/blog/shutting-down-our-public-encrypted-dns-servers-and-sponsoring-quad9-instead
2026-09-05 09:46:36 -04:00
Tom Alexander
3f281f1980 Clean up nix_builder directories at the start of a build. 2026-09-03 22:21:07 -04:00
Tom Alexander
6ed4aa08f6 Add a role for mitmproxy. 2026-08-29 09:40:21 -04:00
Tom Alexander
9bfa21368b Update to Linux 7.2.
This is to pull in the drivers for the mt7927 wireless chipset in my desktop. Normally, I would keep the rest of my machines on LTS but since Linux 7 significantly changed the kernel preemption, maintaining two configs would be more trouble than it is worth.
2026-08-29 06:50:47 -04:00
Tom Alexander
4eb7749967 Update persist directory for the latest firefox. 2026-08-29 06:50:45 -04:00
Tom Alexander
d0504bf98f Update rpcs3. 2026-08-28 09:02:47 -04:00
Tom Alexander
f1d6ae3f1b Merge branch 'update' into nix 2026-08-28 06:55:11 -04:00
Tom Alexander
85815fddfd Update deprecated podman settings. 2026-08-28 06:53:56 -04:00
Tom Alexander
5680e566bc Update packages. 2026-08-28 06:53:56 -04:00
Tom Alexander
3bbaeaf2af Install Arial font with rpcs3. 2026-08-26 17:16:22 -04:00
59 changed files with 204 additions and 284 deletions

View File

@@ -28,6 +28,7 @@ in
./roles/d2
./roles/direnv
./roles/disko
./roles/displaylink
./roles/distributed_build
./roles/doas
./roles/docker
@@ -64,6 +65,7 @@ in
./roles/media
./roles/memtest86
./roles/minimal_base
./roles/mitmproxy
./roles/network
./roles/nix_index
./roles/nix_repl
@@ -247,31 +249,32 @@ in
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: {
fwupd = prev.fwupd.overrideAttrs (
rpcs3 = prev.rpcs3.overrideAttrs (
finalAttrs: prevAttrs: {
version = "2.1.5";
version = "0.0.42-19843";
src = final.fetchFromGitHub {
owner = "fwupd";
repo = "fwupd";
tag = finalAttrs.version;
hash = "sha256-DzQ+N99ZmFRqZc2rN6PSqmoIMXUyrE8Kkn+KnT/AWPc=";
owner = "RPCS3";
repo = "rpcs3";
rev = "6567a5a2f8ab47a89db395d6b47a7b59b23d6960";
postCheckout = ''
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 "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;
# })
# ];
# })
(disableTests "ada") # test failing with http url is not idempotent.
];
# This option defines the first version of NixOS you have installed on this particular machine,

View File

@@ -22,11 +22,11 @@
]
},
"locked": {
"lastModified": 1780894562,
"narHash": "sha256-c3430xwxwhHipl3jigUGMMBfpaMylDqytW/kdmB3ZGs=",
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"owner": "nix-community",
"repo": "disko",
"rev": "24fed06cac83bcc44ac8efbb57cab1a82fa0bedc",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"type": "github"
},
"original": {
@@ -170,11 +170,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1786250497,
"narHash": "sha256-OPhVT5n9OyPDZA3mIO6D5jVVvp/QmG8nT5Trb0gouSs=",
"lastModified": 1788488145,
"narHash": "sha256-s1UY+kbLtb+5ye4GnE/HKh0idUQ0iiIkMMtGI7cDRHk=",
"ref": "refs/heads/main",
"rev": "0a270dcbdd51baa2895634a3baee29373db8337a",
"revCount": 42,
"rev": "8b28dfb583e094f52fd6ab70c709cc1981d8853d",
"revCount": 46,
"type": "git",
"url": "https://code.fizz.buzz/talexander/nix_builder.git"
},
@@ -185,11 +185,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"lastModified": 1788752844,
"narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"rev": "dc5d91f840324650bac8c379428c7037a416959a",
"type": "github"
},
"original": {
@@ -199,22 +199,6 @@
"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": {
"locked": {
"lastModified": 1730741070,
@@ -264,8 +248,7 @@
"impermanence": "impermanence",
"lanzaboote": "lanzaboote",
"nix_builder": "nix_builder",
"nixpkgs": "nixpkgs",
"nixpkgs-google": "nixpkgs-google"
"nixpkgs": "nixpkgs"
}
},
"rust-overlay": {

View File

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

View File

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

View File

@@ -118,6 +118,7 @@
me.lvfs.enable = true;
me.media.enable = true;
me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true;
me.nix_index.enable = true;
me.nix_repl.enable = true;

View File

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

View File

@@ -111,6 +111,7 @@
me.lvfs.enable = true;
me.media.enable = true;
me.memtest.enable = true;
me.mitmproxy.enable = true;
me.network.enable = true;
me.nix_index.enable = true;
me.nix_repl.enable = true;

View File

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

View File

@@ -0,0 +1,40 @@
{
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,3 +1,4 @@
;; -*- lexical-binding: t; -*-
(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
(when (version<= "27.0" emacs-version)

View File

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

View File

@@ -1,3 +1,4 @@
;; -*- lexical-binding: t; -*-
;; ========== Function to reload current file =================
(defun reload-file ()
@@ -11,10 +12,9 @@
"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 (
(stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process-region nil nil cmd nil stdout-buffer nil) args))
)
(unwind-protect
(let ((exit-status (eval full-cmd)))
(let ((exit-status (apply #'call-process-region nil nil cmd nil (list stdout-buffer nil) nil args)))
(if (eq exit-status 0)
(save-excursion
(replace-buffer-contents stdout-buffer)
@@ -31,10 +31,9 @@
"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 (
(stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process-region nil nil cmd nil stdout-buffer nil) args))
)
(unwind-protect
(let ((exit-status (eval full-cmd)))
(let ((exit-status (apply #'call-process-region nil nil cmd nil (list stdout-buffer nil) nil args)))
(if (eq exit-status 0)
(if (> (buffer-size stdout-buffer) 0)
(save-excursion
@@ -55,10 +54,9 @@
(let (
(default-directory (or dir default-directory))
(stdout-buffer (generate-new-buffer "tmp-stdout" t))
(full-cmd (append '(call-process cmd nil (list stdout-buffer nil) nil) args))
)
(unwind-protect
(let ((exit-status (condition-case nil (eval full-cmd) (file-missing nil))))
(let ((exit-status (condition-case nil (apply #'call-process cmd nil (list stdout-buffer nil) nil args) (file-missing nil))))
(if (eq exit-status 0)
(progn
(with-current-buffer stdout-buffer

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,3 +1,4 @@
;; -*- lexical-binding: t; -*-
(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."
(interactive "p")

View File

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

View File

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

View File

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

View File

@@ -100,6 +100,7 @@
IFS=$'\n\t'
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}
'';
restartIfChanged = false;

View File

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

View File

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

View File

@@ -0,0 +1,25 @@
{
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,6 +6,8 @@
}:
# Alternative DNS servers:
# "194.242.2.2#doh.mullvad.net"
# "2a07:e340::2#doh.mullvad.net"
# "1.0.0.1#cloudflare-dns.com"
# "1.1.1.1#cloudflare-dns.com"
# "2606:4700:4700::1001#cloudflare-dns.com"
@@ -14,6 +16,10 @@
# "8.8.8.8#dns.google"
# "2001:4860:4860::8844#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
patchScriptBin =
@@ -39,8 +45,10 @@ in
networking.dhcpcd.enable = lib.mkDefault false;
networking.useDHCP = lib.mkDefault false;
networking.nameservers = [
"194.242.2.2#doh.mullvad.net"
"2a07:e340::2#doh.mullvad.net"
"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"
];
services.resolved = {
enable = true;

View File

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

View File

@@ -38,7 +38,7 @@ in
};
};
Miscellaneous = {
"Pause emulation on RPCS3 focus loss" = true;
"Pause emulation on RPCS3 focus loss" = false;
"Start games in fullscreen mode" = true;
"Pause Emulation During Home Menu" = false; # true makes the home menu slow
};
@@ -53,7 +53,10 @@ in
rpcs3
];
allowedUnfree = [ "rpcs3" ];
allowedUnfree = [
"rpcs3"
"corefonts"
];
security.pam.loginLimits = [
{
@@ -70,6 +73,10 @@ in
}
];
fonts.packages = with pkgs; [
corefonts # Needed for Arial, otherwise launching games fails.
];
me.install.user.talexander.file = {
".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) {
source = rpcs3_config_yaml;

View File

@@ -64,6 +64,10 @@
};
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) {
hideMounts = true;
directories = [

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -134,6 +134,18 @@ let
"nix-pull-through-cache" = {
"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 = (

View File

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

View File

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

View File

@@ -1,49 +0,0 @@
{
"nodes": {
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1785389976,
"narHash": "sha256-0tLW8Ff5yt8AH97jw4ZpFJ0OCJ122zIlgWGDmOfU/VU=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "15abb8c98f336cd8bd840d71059adebabe60bf04",
"type": "github"
},
"original": {
"owner": "nix-darwin",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1786348146,
"narHash": "sha256-we5zDEFfn8TgzeWKjKDMIjeQZ59omEPl23NIF+13/ys=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d482ef84049d9b7276b83a06e4e4d76983830097",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -1,128 +0,0 @@
# Initial install:
# Install nix: https://github.com/nixOS/nix-installer
# sudo nix run nix-darwin -- switch --flake .#garak
#
# Update after that:
# sudo darwin-rebuild switch --flake .#garak
#
# Manual:
# Install rosetta to run x86_64 programs:
# softwareupdate --install-rosetta --agree-to-license
#
# Install homebrew for installing graphical apps:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
{
description = "nix-darwin system flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ self, nix-darwin, nixpkgs }:
let
configuration = { pkgs, ... }: {
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages =
[
pkgs.tmux
pkgs.htop
pkgs.git
];
# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";
# Enable alternative shell support in nix-darwin.
# programs.fish.enable = true;
# Set Git commit hash for darwin-version.
system.configurationRevision = self.rev or self.dirtyRev or null;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 6;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "aarch64-darwin";
# Identifies which user some settings apply to.
system.primaryUser = "talexander";
# Enable Linux VM for building Linux binaries.
#
# Test with:
# nix build --impure --expr '(with import <nixpkgs> { system = "aarch64-linux"; }; runCommand "foo" {} "uname -a > $out")'
nix.linux-builder.enable = true;
# system.defaults.CustomUserPreferences = {
# "com.apple.desktopservices" = {
# # Do not write .DS_Store files to external volumes
# DSDontWriteNetworkStores = true;
# DSDontWriteUSBStores = true;
# };
# "com.apple.screensaver" = {
# # Ask for password when returning from screensaver
# askForPassword = 1;
# askForPasswordDelay = 0;
# };
# "com.apple.SoftwareUpdate" = {
# AutomaticCheckEnabled = true;
# # Download updates in the background
# AutomaticDownload = 1;
# };
# };
# Use homebrew to install graphical apps from casks.
# homebrew = {
# enable = false;
# casks = [
# "firefox"
# ];
# };
# system.defaults = {
# dock = {
# autohide = true;
# };
# };
environment.variables = {
TERMINFO_DIRS = ["${pkgs.alacritty.terminfo.outPath}/share/terminfo"];
};
power = {
sleep = {
# sudo pmset -a displaysleep 10 sleep 0 disksleep 10
# Other options to consider: lowpowermode 0 standby 0 hibernatemode 0 powernap 0
#
# Defaults:
# standby 0
# Sleep On Power Button 1
# autorestartatconnect 0
# autorestart 0
# powernap 1
# networkoversleep 0
# disksleep 10
# sleep 1
# ttyskeepawake 1
# displaysleep 10
# tcpkeepalive 1
# womp 1
#
computer = "never";
display = 10;
harddisk = 10;
};
};
};
in
{
darwinConfigurations."garak" = nix-darwin.lib.darwinSystem {
modules = [ configuration ];
};
};
}