Merge branch 'main' of src:greg/nixos-config

This commit is contained in:
Greg Hellings
2025-06-10 20:35:30 -05:00
46 changed files with 557 additions and 554 deletions
+4 -4
View File
@@ -29,8 +29,8 @@ default:
- IMG:
- img-bitwarden
script:
- podman login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- nix run "nixpkgs#podman" -- login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- nix build ".#${IMG}"
- podman load -i result
- podman tag "localhost/${IMG}:latest" "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
- podman push "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
- nix run "nixpkgs#podman" -- load -i result
- nix run "nixpkgs#podman" -- tag "localhost/${IMG}:latest" "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
- nix run "nixpkgs#podman" -- push "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
@@ -1,25 +1,21 @@
{ config, pkgs, ... }:
{
imports = [ ../baseline.nix ];
home-manager = {
useGlobalPkgs = true;
users."gregory.hellings" = import ../../home/home.nix;
extraSpecialArgs = {
gnome = false;
gui = false;
home = "/Users/gregory.hellings";
};
};
config,
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [
hms
];
fonts.packages = with pkgs; [
dejavu_fonts
hack-font
nerdfonts
nerd-fonts.hack
];
nix = {
gc.interval.Hour = 24;
enable = true;
gc.interval.Hour = 3;
settings.auto-optimise-store = false; # Darwin bugs?
};
@@ -34,10 +30,13 @@
bash.enable = true;
};
services.nix-daemon.enable = true;
system = {
defaults = {
CustomSystemPreferences = {
".GlobalPreferences" = {
"com.apple.swipescrolldirection" = 0;
};
};
finder = {
AppleShowAllExtensions = true;
AppleShowAllFiles = true;
@@ -50,11 +49,11 @@
LaunchServices.LSQuarantine = false;
menuExtraClock = {
Show24Hour = true;
ShowDate = true;
ShowDate = 2;
};
screencapture = {
include-date = true;
location = "${config.home-manager.extraSpecialArgs.home}/Photos/Screeneries";
location = "~/Photos/Screeneries";
};
trackpad = {
Dragging = false;
@@ -66,6 +65,4 @@
};
time.timeZone = "America/Chicago";
users.users."gregory.hellings".home = "/Users/gregory.hellings";
}
+9 -5
View File
@@ -14,22 +14,26 @@ let
top.darwin.lib.darwinSystem {
inherit system;
specialArgs = {
inherit nixpkgs;
inherit nixpkgs overlays top;
inherit (top) self;
};
modules = [
{
nixpkgs.overlays = overlays;
home-manager.extraSpecialArgs = {
home-manager = {
extraSpecialArgs = {
inherit top;
host = name;
};
};
}
hm.darwinModules.home-manager
top.self.modules.darwinModule
# Local changes
../modules/nix-conf.nix
./baseline.nix
] ++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ];
};
in
rec {
la23002 = mac { name = "ivr"; };
LA23002 = la23002;
"MacBook-Pro" = mac { name = "ivr"; };
}
+23 -2
View File
@@ -1,28 +1,49 @@
{ ... }:
let
username = "gregory.hellings";
in
{
#environment.loginShell = lib.getExe pkgs.xonsh;
homebrews = {
greg = {
nix.cache = false;
};
homebrew = {
enable = true;
brews = [
"bitwarden-cli"
"direnv"
{
name = "libvirt";
restart_service = true;
}
"mysql"
"nushell"
"poetry"
"qemu"
];
casks = [
"alt-tab"
"bitwarden"
"bruno"
"chromium"
"firefox"
"microsoft-teams"
"onlyoffice"
"pgadmin4"
"tabby"
"twine"
"vagrant"
"visual-studio-code"
"zed"
"zoho-workdrive"
];
user = username;
};
system.primaryUser = username;
users.users."${username}" = {
name = username;
home = "/Users/${username}";
};
}
Generated
+77 -127
View File
@@ -31,11 +31,11 @@
"nixpkgs-unstable": "nixpkgs-unstable"
},
"locked": {
"lastModified": 1747465275,
"narHash": "sha256-Vpgp7uWpXUmEAirJjj6+et+JC9BZP9GjvS1usv5Wl3A=",
"lastModified": 1748187031,
"narHash": "sha256-F4zdOfeg0xjEnvFjlHvoMmdmh/FxK1qIsZyscnGDgA0=",
"owner": "fort-nix",
"repo": "nix-bitcoin",
"rev": "1586a34e902706b6834b059c9bd6d80caffce84a",
"rev": "a06d1d8118865af14a9187e7d1a7a141dd89af74",
"type": "github"
},
"original": {
@@ -45,25 +45,6 @@
"type": "github"
}
},
"crane": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1717383740,
"narHash": "sha256-559HbY4uhNeoYvK3H6AMZAtVfmR3y8plXZ1x6ON/cWU=",
"owner": "ipetkov",
"repo": "crane",
"rev": "b65673fce97d277934488a451724be94cc62499a",
"type": "github"
},
"original": {
"owner": "ipetkov",
"ref": "v0.17.3",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
@@ -93,11 +74,11 @@
]
},
"locked": {
"lastModified": 1747964474,
"narHash": "sha256-i73u8NLiqewGy0iIriH4XizatLnAojXxzrBqHJEz49E=",
"lastModified": 1749194393,
"narHash": "sha256-vt6hM9DNywnXXuW1qPDLzECmbDcmxhh58wpb0EEQjAo=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "93562b65cf68612a544779c9f77536f9dff01096",
"rev": "19346808c445f23b08652971be198b9df6c33edc",
"type": "github"
},
"original": {
@@ -167,11 +148,11 @@
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
@@ -185,11 +166,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
@@ -245,11 +226,11 @@
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"lastModified": 1748821116,
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
"type": "github"
},
"original": {
@@ -340,11 +321,11 @@
]
},
"locked": {
"lastModified": 1747955385,
"narHash": "sha256-AKoBFaEGN02tGvBlkwVIDOGXouHvrTTfOUcvBDGxkxQ=",
"lastModified": 1749526396,
"narHash": "sha256-UL9F76abAk87llXOrcQRjhd5OaOclUd6MIltsqcUZmo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a868570581f0dbdef7e33c8c9bb34b735dfcbacf",
"rev": "427c96044f11a5da50faf6adaf38c9fa47e6d044",
"type": "github"
},
"original": {
@@ -409,27 +390,27 @@
]
},
"locked": {
"lastModified": 1737371634,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
"lastModified": 1748294338,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.7",
"ref": "v0.0.8",
"repo": "ixx",
"type": "github"
}
},
"nix-hardware": {
"locked": {
"lastModified": 1747900541,
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=",
"lastModified": 1749195551,
"narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06",
"rev": "4602f7e1d3f197b3cb540d5accf5669121629628",
"type": "github"
},
"original": {
@@ -476,11 +457,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1746422338,
"narHash": "sha256-NTtKOTLQv6dPfRe00OGSywg37A1FYqldS6xiNmqBUYc=",
"lastModified": 1748037224,
"narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5b35d248e9206c1f3baf8de6a7683fee126364aa",
"rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
"type": "github"
},
"original": {
@@ -492,11 +473,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"lastModified": 1748740939,
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github"
},
"original": {
@@ -507,11 +488,11 @@
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"lastModified": 1748740939,
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github"
},
"original": {
@@ -522,26 +503,26 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1732981179,
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
"lastModified": 1748437600,
"narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
"rev": "7282cb574e0607e65224d33be8241eae7cfe0979",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-24.11",
"ref": "nixos-25.05",
"type": "indirect"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1746332716,
"narHash": "sha256-VBmKSkmw9PYBCEGhBKzORjx+nwNZkPZyHcUHE21A/ws=",
"lastModified": 1747958103,
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b1c028bce9c89e9824cde040d6986d428296055",
"rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
"type": "github"
},
"original": {
@@ -584,27 +565,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1747885982,
"narHash": "sha256-rSuxACdwx5Ndr2thpjqcG89fj8mSSp96CFoCt0yrdkY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a16efe5d2fc7455d7328a01f4692bfec152965b3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1747744144,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
"lastModified": 1749285348,
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github"
},
"original": {
@@ -614,23 +579,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1714656196,
"narHash": "sha256-kjQkA98lMcsom6Gbhw8SYzmwrSo+2nruiTcTZp5jK7o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "94035b482d181af0a0f8f77823a790b256b7c3cc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_4": {
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -648,11 +597,11 @@
},
"nixunstable": {
"locked": {
"lastModified": 1747744144,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
"lastModified": 1749285348,
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github"
},
"original": {
@@ -665,16 +614,18 @@
"nixvimunstable": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3",
"nixpkgs": [
"nixunstable"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_4"
},
"locked": {
"lastModified": 1747945641,
"narHash": "sha256-Ts16c+kptbC3YDwPcB/NqXFVMHPNYKeFD7LkiawbWCU=",
"lastModified": 1749496904,
"narHash": "sha256-eNDMzrcDBOprdJs7DpMOJfCEcxribxDJP2OjozSC3Wo=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "46fd0b184cbc5f1bdc5a8325cb973fc54e49ab68",
"rev": "e0b3d8bc3a0ab5a7cc0792c7705e92f9c5c598f3",
"type": "github"
},
"original": {
@@ -687,15 +638,15 @@
"nurpkgs": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_3",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1747973449,
"narHash": "sha256-e+DaBDI6xzd7KW+1u3jHhEzdF2Ajx5hP0bF2CFiS/F8=",
"lastModified": 1749566933,
"narHash": "sha256-rolwj4dzqfzFMG3VGEN7zKwGTBd0XAKcvOTTEOre3XY=",
"owner": "nix-community",
"repo": "NUR",
"rev": "e4fcae418dde38789f3f59ea07ad289a4b9bcffe",
"rev": "28532113cfab3f76c3a80f04ef38dca164d7b819",
"type": "github"
},
"original": {
@@ -714,11 +665,11 @@
]
},
"locked": {
"lastModified": 1745046075,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
"lastModified": 1748298102,
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
"owner": "NuschtOS",
"repo": "search",
"rev": "066afe8643274470f4a294442aadd988356a478f",
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
"type": "github"
},
"original": {
@@ -729,11 +680,11 @@
},
"patched-nixpkgs": {
"locked": {
"lastModified": 1746961062,
"narHash": "sha256-7krN5Ii+jFQTIQL/KDQgjU7qRpbs9Ndgd0POccM+nb0=",
"lastModified": 1748133736,
"narHash": "sha256-8DCZF+SHXa7P9O9op2ET7qJtPomzQ49jy2vjzrHocg4=",
"owner": "TomaSajt",
"repo": "nixpkgs",
"rev": "40f15db812bdec49cd4e64ba46fc355b7e2af358",
"rev": "76121e3e5db9bfcc4b604b4093abea7b1aa3109e",
"type": "github"
},
"original": {
@@ -745,18 +696,17 @@
},
"proxmox": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable_2",
"utils": "utils"
},
"locked": {
"lastModified": 1746882493,
"narHash": "sha256-KbkIGJ6fe5F6AZRCzrNH3vNAnbbt+gf/PWrfMZ/B0As=",
"lastModified": 1749385025,
"narHash": "sha256-2w6+xAMdT9LgMxDHaIyddMTacBbF7RjaZFyGjjTDBhg=",
"owner": "SaumonNet",
"repo": "proxmox-nixos",
"rev": "bda8df28b6656843e459f166b04bc291bc495a29",
"rev": "48f39fbe2e8f90f9ac160dd4b6929f3ac06d8223",
"type": "github"
},
"original": {
@@ -916,14 +866,14 @@
"vsext": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1747965670,
"narHash": "sha256-O91kjsTL7xccgTQr2KITmGhhLTpX9zh+oRvvV8ScOrg=",
"lastModified": 1749521131,
"narHash": "sha256-ezZ15tLA2L+rmtn39dKLFW/UM2xlksC61V12blulpjE=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "d3099346fa5e9e33d0989a4e6afc3e8dedd25311",
"rev": "299b2aa650d32310153746135b6a84a6c4de9c21",
"type": "github"
},
"original": {
@@ -940,11 +890,11 @@
]
},
"locked": {
"lastModified": 1746453552,
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=",
"lastModified": 1749574455,
"narHash": "sha256-fm2/8KPOYvvIAnNVtjDlTt/My00lIbZQ+LMrfQIWVzs=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "be618645aa0adf461f778500172b6896d5ab2d01",
"rev": "917af390377c573932d84b5e31dd9f2c1b5c0f09",
"type": "github"
},
"original": {
@@ -962,11 +912,11 @@
"patched-nixpkgs": "patched-nixpkgs"
},
"locked": {
"lastModified": 1747467107,
"narHash": "sha256-IIewGkpjoV6zSJNgxsL7p+wij/Q7RpDAlf0OVggK/ME=",
"lastModified": 1749228292,
"narHash": "sha256-cavxEaS1a1jQqkQsGVUiu3Hlex3wqUfFB1LE2TXT0vA=",
"owner": "HPsaucii",
"repo": "zed-editor-flake",
"rev": "50b08c64d1abed4318b8289ec3f62b64b4f34231",
"rev": "db6c84831c7bedcf63dcecf1e0b59cddea302c62",
"type": "github"
},
"original": {
+4 -1
View File
@@ -39,7 +39,10 @@
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixunstable";
};
nixvimunstable.url = "github:nix-community/nixvim/main";
nixvimunstable = {
url = "github:nix-community/nixvim/main";
inputs.nixpkgs.follows = "nixunstable";
};
nixunstable.url = "github:nixos/nixpkgs/nixos-unstable";
nurpkgs.url = "github:nix-community/NUR";
vsext.url = "github:nix-community/nix-vscode-extensions";
@@ -7,7 +7,7 @@
./direnv.nix
./git.nix
./ssh.nix
./vim.nix
./vim
./xonsh.nix
];
}
@@ -1,15 +1,4 @@
{ pkgs, ... }:
let
vim-xonsh = pkgs.vimUtils.buildVimPlugin {
name = "vim-xonsh";
src = pkgs.fetchFromGitHub {
owner = "meatballs";
repo = "vim-xonsh";
rev = "929f35e";
hash = "sha256-ugHLu2Z9bTtQsIp4FQPKxgjVe9oZNjfQYrP+aHu+/uU=";
};
};
in
{
colorschemes.gruvbox.enable = true;
globals = {
@@ -162,7 +151,6 @@ in
context-vim
vim-indent-guides
vim-xonsh
];
viAlias = true;
vimAlias = true;
@@ -10,7 +10,7 @@
fonts.fontconfig.enable = true;
home.packages = with pkgs.nerd-fonts; [ hack ];
programs.nixvim = (import ./vim/config.nix { inherit config pkgs lib; }) // {
programs.nixvim = (import ./config.nix { inherit config pkgs lib; }) // {
enable = true;
};
}
@@ -3,7 +3,6 @@
{
# Programs that are used in the settings file
home.packages = with pkgs; [
bitwarden-cli
copier
git
gnused
@@ -52,7 +52,7 @@ def _rebuild(args):
system = uname()
hostname = system.nodename
if system.sysname == 'Darwin':
darwin-rebuild --flake ~/.config/darwin switch
sudo darwin-rebuild switch
else:
with TemporaryDirectory() as td:
pushd @(td)
+18 -18
View File
@@ -1,27 +1,26 @@
{ top, overlays, ... }:
rec {
greghellings =
let
system = "x86_64-linux";
pkgs = (
import top.nixunstable {
{
overlays,
top,
...
}:
let
pkgs =
system:
(import top.nixunstable {
inherit system overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
}
);
});
ivr =
let
system = "aarch64-darwin";
in
top.hmunstable.lib.homeManagerConfiguration {
inherit pkgs;
pkgs = pkgs system;
modules = [
(import ../modules/nix-conf.nix {
inherit pkgs;
inherit (pkgs) lib;
cache = false;
})
../modules/nix-conf.nix
./home.nix
];
extraSpecialArgs = {
@@ -33,6 +32,7 @@ rec {
username = "gregory.hellings";
};
};
"gregory.hellings" = greghellings;
in
{
"MacBook-Pro.local" = ivr;
}
+13 -12
View File
@@ -2,27 +2,20 @@
pkgs,
lib,
host ? "most",
nixvim,
top,
...
}:
{
imports = [
nixvim.homeManagerModules.default
./modules
top.nixvimunstable.homeManagerModules.nixvim
top.self.modules.homeManagerModule
./baseline
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
programs.tmux = {
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
};
home.stateVersion = "25.05";
home.stateVersion = "23.05";
home.packages = with pkgs; [
bitwarden-cli
copier
diffutils
findutils
@@ -44,4 +37,12 @@
wget
zip
];
programs.tmux = {
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
};
}
+19 -27
View File
@@ -4,13 +4,7 @@
...
}:
let
py = pkgs.python311.withPackages (
p: with p; [
pyyaml
ruamel-yaml
tox
]
);
username = "gregory.hellings";
x = pkgs.xonsh.override {
extraPackages = (
ps: [
@@ -23,10 +17,13 @@ let
};
in
{
# Disables hitting local cache
_module.args.cache = lib.mkForce false;
greg = {
development = true;
gui = true;
pypackage = py;
nix.cache = false;
pypackage.enable = false;
vscodium = true;
};
@@ -34,25 +31,15 @@ in
packages = with pkgs; [
aacs
ansible
bitwarden-cli
direnv
home-manager
k9s
kubectl
minikube
mise
mysql-workbench
nixStable
pipenv-ivr
(poetry.withPlugins (
ps: with ps; [
poetry-audit-plugin
poetry-plugin-export
poetry-plugin-shell
]
))
pre-commit
robo3t
skaffold
x
];
@@ -66,17 +53,22 @@ in
" https://pypidev.ivrtechnology.com/simple/"
]
);
username = "gregory.hellings";
homeDirectory = lib.mkForce "/home/gregory.hellings";
username = username;
homeDirectory = "/Users/${username}";
};
programs.tmux.shell = (lib.getExe x);
services.podman = {
programs = {
direnv = {
enable = true;
settings = {
registries.search = [
"docker.io"
"quay.io"
];
enableNushellIntegration = true;
};
nushell = {
enable = true;
};
starship = {
enable = true;
enableNushellIntegration = true;
};
tmux.shell = (lib.getExe x);
};
}
-15
View File
@@ -1,15 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
options.greg.pypackage = lib.mkOption {
description = "Enable Gnome support and settings";
type = lib.types.package;
default = pkgs.gregpy;
};
config.home.packages = [ config.greg.pypackage ];
}
+218
View File
@@ -0,0 +1,218 @@
{
config,
lib,
overlays,
pkgs,
self,
top,
...
}:
let
builderHosts =
if self != null then
(lib.attrNames (
lib.filterAttrs (_: v: v.config.greg.remote-builder.enable) self.nixosConfigurations
))
else
[ ];
in
{
imports = [
../modules/nix-conf.nix
];
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
environment.systemPackages = with pkgs; [
agenix
bitwarden-cli
bmon
btop
btrfs-progs
coreutils-full
diffutils
efibootmgr
findutils
file
git
gnupatch
hms # My own home manager switcher
iperf
killall
nano
lshw
pciutils
psmisc
pwgen
unzip
usbutils
wget
xfsprogs
];
home-manager = {
backupFileExtension = "bkp";
useGlobalPkgs = true;
useUserPackages = true;
users.greg = import ../home/home.nix;
extraSpecialArgs = {
inherit top overlays;
home = "/home/greg";
host = config.networking.hostName;
};
};
i18n.defaultLocale = "en_US.UTF-8";
nix = {
gc.dates = "weekly";
settings.auto-optimise-store = true;
};
nixpkgs.overlays = overlays;
# Network Manager pulls in too many deps
networking = {
search = [
"thehellings.lan"
"home"
];
networkmanager.enable = false;
};
programs = {
xonsh = {
enable = true;
extraPackages = (
ps: with ps; [
xonsh-apipenv
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
]
);
};
ssh = {
extraConfig = builtins.concatStringsSep "\n" (
lib.map (x: ''
Host ${x}-builder
Hostname ${x}.home
User remote-builder-user
'') builderHosts
);
knownHosts = {
chronicles = {
extraHostNames = [
"chronicles.thehellings.lan"
"chronicles.home"
"nas"
"nas.thehellings.lan"
"nas.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS";
};
dns = {
extraHostNames = [
"dns"
"dns.me.ts"
"dns.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRCXdhXWHEvw84V9JC5bAGovvj12DLVphcEnsTHDjxW";
};
"genesis" = {
extraHostNames = [
"genesis.shire-zebra.ts.net"
"genesis.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k";
};
"git" = {
extraHostNames = [
"git.home"
"git.thehellings.lan"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq";
};
hosea = {
extraHostNames = [
"hosea.home"
"hosea.thehellings.lan"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz";
};
isaiah = {
extraHostNames = [
"isaiah.home"
"isaiah.thehellings.lan"
"isaiah-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf";
};
jeremiah = {
extraHostNames = [
"jeremiah.home"
"jeremiah.thehellings.lan"
"jeremiah-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0";
};
jude = {
extraHostNames = [
"jude.home"
"jude.thehellings.lan"
"jude-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0";
};
linode = {
extraHostNames = [
"linode.home"
"linode.thehellings.lan"
"thehellings.com"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q";
};
};
};
};
# Enable the OpenSSH daemon for remote control
services = {
openssh = {
enable = true;
settings.X11Forwarding = true;
};
};
security.sudo.extraRules = [
{
users = [ "greg" ];
commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
}
];
# Define a user account. Don't forget to set a password with passwd.
users.users.greg = {
isNormalUser = true;
createHome = true;
extraGroups = [
"wheel"
]; # Enable sudo for the user.
shell = config.programs.xonsh.package;
initialPassword = "password";
openssh.authorizedKeys.keys = lib.strings.splitString "\n" (
builtins.readFile ../../home/ssh/authorized_keys
);
};
system.stateVersion = "24.11";
}
+5 -18
View File
@@ -9,7 +9,6 @@ let
// {
channel = top.nixunstable;
hm = top.hmunstable;
nixvim = top.nixvimunstable;
}
));
machine =
@@ -19,7 +18,6 @@ let
name,
system ? "x86_64-linux",
hm ? top.hm,
nixvim ? top.nixvimstable,
}:
let
nixpkgs = import channel { inherit system; };
@@ -32,29 +30,18 @@ let
inherit (top) self;
};
modules = [
{
nixpkgs.overlays = overlays;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.greg = import ../home/home.nix;
extraSpecialArgs = {
inherit top overlays nixvim;
home = "/home/greg";
host = name;
};
backupFileExtension = "bkp";
};
}
# Imported ones
top.agenix.nixosModules.default
hm.nixosModules.home-manager
top.self.modules.nixosModule
top.nurpkgs.modules.nixos.default
# Local ones
./baseline.nix
top.self.modules.nixosModule
./${name}
] ++ extraMods;
};
in
rec {
{
genesis = unstable { name = "genesis"; };
exodus = unstable { name = "exodus"; };
jude = unstable { name = "jude"; };
+2
View File
@@ -55,4 +55,6 @@
virtualisation = {
oci-containers.backend = "podman";
};
users.users.greg.extraGroups = [ "podman" ];
}
+1 -1
View File
@@ -103,7 +103,7 @@
}
{
hw-address = "c8:4b:d6:ca:20:8f";
ip-address = "10.42.1.10"; # Jude - but maybe through the monitor?
ip-address = "10.42.1.10"; # The monitor
}
{
hw-address = "04:7c:16:d5:60:6f";
-127
View File
@@ -1,127 +0,0 @@
{
pkgs,
lib,
self,
...
}:
let
builderHosts =
if self != null then
(lib.attrNames (
lib.filterAttrs (_: v: v.config.greg.remote-builder.enable) self.nixosConfigurations
))
else
[ ];
in
{
# This is a dumb hack to pass the value into the import below, but it's how we have to do it,
# since that's how the module system works
_module.args.cache = true;
imports = [
./nix-conf.nix
];
programs.ssh = {
knownHosts = {
chronicles = {
extraHostNames = [
"chronicles.thehellings.lan"
"chronicles.home"
"nas"
"nas.thehellings.lan"
"nas.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS";
};
dns = {
extraHostNames = [
"dns"
"dns.me.ts"
"dns.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRCXdhXWHEvw84V9JC5bAGovvj12DLVphcEnsTHDjxW";
};
"genesis" = {
extraHostNames = [
"genesis.shire-zebra.ts.net"
"genesis.home"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k";
};
"git" = {
extraHostNames = [
"git.home"
"git.thehellings.lan"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq";
};
hosea = {
extraHostNames = [
"hosea.home"
"hosea.thehellings.lan"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz";
};
isaiah = {
extraHostNames = [
"isaiah.home"
"isaiah.thehellings.lan"
"isaiah-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf";
};
jeremiah = {
extraHostNames = [
"jeremiah.home"
"jeremiah.thehellings.lan"
"jeremiah-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0";
};
jude = {
extraHostNames = [
"jude.home"
"jude.thehellings.lan"
"jude-builder"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0";
};
linode = {
extraHostNames = [
"linode.home"
"linode.thehellings.lan"
"thehellings.com"
];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q";
};
};
extraConfig = builtins.concatStringsSep "\n" (
lib.map (x: ''
Host ${x}-builder
Hostname ${x}.home
User remote-builder-user
'') builderHosts
);
};
# Base packages that need to be in all my hosts
environment.systemPackages = with pkgs; [
agenix
bmon
diffutils
git
gnupatch
gregpy
findutils
file
hms # My own home manager switcher
btop
iperf
killall
nano
pciutils
pwgen
unzip
wget
];
}
+2 -2
View File
@@ -1,8 +1,8 @@
let
nixos = (import ./nixos);
darwin = (import ./darwin);
hm = (import ./hm);
in
{
homeManagerModule = hm;
nixosModule = nixos;
darwinModule = darwin;
}
@@ -2,7 +2,6 @@
{
imports = [
./baseline
./development.nix
./gnome.nix
./gui.nix
@@ -11,8 +11,6 @@ let
cargo
gh-copilot
gnumake
libcap.dev
libmysqlclient.dev
nix-eval-jobs
nix-fast-build
nix-output-monitor
@@ -57,6 +57,10 @@ in
sort-method = "name";
sort-type = "ascending";
};
"org/gnome/mutter" = {
# Enables quarter-point scaling options
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
search-filter-time-type = "last_modified";
+9 -9
View File
@@ -31,6 +31,7 @@ in
cdrtools
element-desktop
freetube
onlyoffice-bin
qpwgraph
vlc
x265
@@ -51,14 +52,6 @@ in
jellyfin-media-player
nextcloud-client
slack
]
)
++
# Items that are not supported on ARM/Linux
(excludes [ "aarch64-linux" ] [
onlyoffice-bin
synology-drive-client
(pkgs.zoom-us.overrideAttrs {
version = "6.2.11.5069";
src = pkgs.fetchurl {
@@ -66,10 +59,17 @@ in
hash = "sha256-k8T/lmfgAFxW1nwEyh61lagrlHP5geT2tA7e5j61+qw=";
};
})
]
)
++
# Items that are not supported on ARM/Linux
(excludes [ "aarch64-linux" ] [
synology-drive-client
]);
programs.firefox = {
enable = (!pkgs.stdenv.hostPlatform.isDarwin);
enable = true; #(!pkgs.stdenv.hostPlatform.isDarwin);
package = pkgs.firefox-bin;
policies = {
DisableAppUpdate = true;
+27
View File
@@ -0,0 +1,27 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.greg.pypackage;
in
{
options.greg.pypackage = {
enable = lib.mkOption {
description = "Enable installing my Python package here";
type = lib.types.bool;
default = true;
};
package = lib.mkOption {
description = "Enable Gnome support and settings";
type = lib.types.package;
default = pkgs.gregpy;
};
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
};
}
@@ -39,7 +39,6 @@ in
njpwerner.autodocstring
rust-lang.rust-analyzer
tamasfe.even-better-toml
vadimcn.vscode-lldb
vscjava.vscode-java-test
vscjava.vscode-java-dependency
vscjava.vscode-java-debug
+18 -4
View File
@@ -1,11 +1,22 @@
{
pkgs,
config,
lib,
cache,
pkgs,
...
}:
let
cfg = config.greg.nix;
in
{
options.greg.nix = {
cache = lib.mkOption {
type = lib.types.bool;
default = true;
};
};
config = {
nix = {
gc = {
automatic = true;
@@ -29,7 +40,8 @@
"gregory.hellings"
]; # For home and for work machines
substituters =
(lib.optionals cache [
(lib.optionals cfg.cache [
"http://nas.thehellings.lan:9000/binary-cache/"
"http://nas.home:9000/binary-cache/"
])
++ [
@@ -40,7 +52,8 @@
"https://cache.nixos.org"
];
trusted-public-keys = [
"nas.home:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"nix.thehellings.lan:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"nix.home:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc="
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
"greg-hellings.cachix.org-1:y01Jl/L5evlhxdnUW6n56AiI1k8g1wxWhTxJCe7XSco="
@@ -55,4 +68,5 @@
allowUnfreePredicate = _: true;
permittedInsecurePackages = [ "ventoy-1.1.05" ];
};
};
}
-82
View File
@@ -1,13 +1,9 @@
{
config,
pkgs,
lib,
...
}:
{
imports = [
../baseline.nix
./backup.nix
./ceph.nix
./container.nix
@@ -29,82 +25,4 @@
./tailscale.nix
./vmdev.nix
];
environment.systemPackages = with pkgs; [
btrfs-progs
coreutils-full
efibootmgr
psmisc
lshw
usbutils
xfsprogs
];
system.stateVersion = "24.11";
nix = {
gc.dates = "weekly";
settings.auto-optimise-store = true;
};
# Network Manager pulls in too many deps
networking = {
search = [
"thehellings.lan"
"home"
];
networkmanager.enable = false;
};
programs.xonsh = {
enable = true;
extraPackages = (
ps: with ps; [
xonsh-apipenv
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
]
);
};
# Enable the OpenSSH daemon for remote control
services = {
openssh = {
enable = true;
settings.X11Forwarding = true;
};
};
# Define a user account. Don't forget to set a password with passwd.
users.users.greg = {
isNormalUser = true;
createHome = true;
extraGroups = [
"wheel"
]; # Enable sudo for the user.
shell = config.programs.xonsh.package;
initialPassword = "password";
openssh.authorizedKeys.keys = lib.strings.splitString "\n" (
builtins.readFile ../../home/ssh/authorized_keys
);
};
security.sudo.extraRules = [
{
users = [ "greg" ];
commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
}
];
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
}
+1 -2
View File
@@ -18,9 +18,8 @@ with lib;
devices = {
chronicles.id = "7FI6Y3M-C7YQEDI-IB345L6-RKLXMB6-AEIV57Y-3J2RCXQ-MK6QRNK-EINPXAE";
genesis.id = "YDTH4SD-GUAC5AA-SSYWYPZ-YMJW5LK-LE7PZKJ-GV2UJFZ-CU7LZAD-GTYWCQK";
gitlab.id = "VAG5GHP-L7TNY7O-CHR3CKU-GXXVCIL-OT3WHHU-E4VAIZC-JI4BKOM-PYZQOQS";
gitlab.id = "GKNOZWI-CNC2Q2F-R5GGGDX-RYFGHK4-CCC37LC-GVOEMJI-46QPC6G-AWFEOQE";
linode.id = "IJMMXPR-WNALZBD-FMJH5W5-WV7XGJY-HLJTKGT-5TKHJIH-75LT56D-UUZCYQE";
matrix.id = "K5IHM3I-TJFFEW5-GAYJMPS-CYSHW5C-XHMC462-MFRMOHJ-EJLKIKC-CZHGJQ2";
};
options = {
urAccepted = -1;
+1 -1
View File
@@ -78,7 +78,7 @@ func main() {
// flake output type. Therefore, it just informs you that it is
// part of the output, but does not evaluate deeper to tell you
// what the name of it is. I will just do this manually for now.
pipeline["Build Home config "] = NewGitlabCIJob("homeConfigurations.\"gregory.hellings\".activationPackage")
pipeline["Build Home config "] = NewGitlabCIJob("homeConfigurations.\"greg\".activationPackage")
if flakeOutput.Apps != nil {
for appName := range flakeOutput.Apps {
+31 -6
View File
@@ -1,13 +1,38 @@
# vim: set ft=bash:
# Build different targets with GUI or not
set -ex -o pipefail
# Build and switch
user="$(whoami)"
src="${HOME}/.config/nix"
echo "Building ${user}"
system="$(uname -s)"
# Determine where the Flake is
if [ "$system" == "Darwin" ]; then
try_src="/etc/nix-darwin"
else
try_src="/etc/nixos"
fi
if [ -d "$try_src" ]; then
src="$try_src"
target="$(hostname)"
else
src="$HOME/.config/nix"
target="$(whoami)"
fi
# Find the hostname
echo "Building user for ${target}"
# Build the system
dest=$(mktemp -d)
trap cleanup 1 2 3 6 15
function cleanup {
echo "Cleaning up"
rm -r "${dest}"
exit
}
pushd "${dest}" > /dev/null
nom build "${src}#homeConfigurations.\"${user}\".activationPackage"
nom build "${src}#homeConfigurations.\"${target}\".activationPackage"
./result/activate
popd > /dev/null
rm -r "${dest}"