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:
- img-bitwarden - img-bitwarden
script: 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}" - nix build ".#${IMG}"
- podman load -i result - nix run "nixpkgs#podman" -- load -i result
- podman tag "localhost/${IMG}:latest" "$CI_REGISTRY/greg/ci-images/${IMG}:latest" - nix run "nixpkgs#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" -- push "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
@@ -1,25 +1,21 @@
{ config, pkgs, ... }:
{ {
imports = [ ../baseline.nix ]; config,
pkgs,
home-manager = { ...
useGlobalPkgs = true; }:
users."gregory.hellings" = import ../../home/home.nix; {
extraSpecialArgs = { environment.systemPackages = with pkgs; [
gnome = false; hms
gui = false; ];
home = "/Users/gregory.hellings";
};
};
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
dejavu_fonts dejavu_fonts
hack-font nerd-fonts.hack
nerdfonts
]; ];
nix = { nix = {
gc.interval.Hour = 24; enable = true;
gc.interval.Hour = 3;
settings.auto-optimise-store = false; # Darwin bugs? settings.auto-optimise-store = false; # Darwin bugs?
}; };
@@ -34,10 +30,13 @@
bash.enable = true; bash.enable = true;
}; };
services.nix-daemon.enable = true;
system = { system = {
defaults = { defaults = {
CustomSystemPreferences = {
".GlobalPreferences" = {
"com.apple.swipescrolldirection" = 0;
};
};
finder = { finder = {
AppleShowAllExtensions = true; AppleShowAllExtensions = true;
AppleShowAllFiles = true; AppleShowAllFiles = true;
@@ -50,11 +49,11 @@
LaunchServices.LSQuarantine = false; LaunchServices.LSQuarantine = false;
menuExtraClock = { menuExtraClock = {
Show24Hour = true; Show24Hour = true;
ShowDate = true; ShowDate = 2;
}; };
screencapture = { screencapture = {
include-date = true; include-date = true;
location = "${config.home-manager.extraSpecialArgs.home}/Photos/Screeneries"; location = "~/Photos/Screeneries";
}; };
trackpad = { trackpad = {
Dragging = false; Dragging = false;
@@ -66,6 +65,4 @@
}; };
time.timeZone = "America/Chicago"; time.timeZone = "America/Chicago";
users.users."gregory.hellings".home = "/Users/gregory.hellings";
} }
+11 -7
View File
@@ -14,22 +14,26 @@ let
top.darwin.lib.darwinSystem { top.darwin.lib.darwinSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit nixpkgs; inherit nixpkgs overlays top;
inherit (top) self;
}; };
modules = [ modules = [
{ {
nixpkgs.overlays = overlays; nixpkgs.overlays = overlays;
home-manager.extraSpecialArgs = { home-manager = {
inherit top; extraSpecialArgs = {
host = name; inherit top;
host = name;
};
}; };
} }
hm.darwinModules.home-manager hm.darwinModules.home-manager
top.self.modules.darwinModule # Local changes
../modules/nix-conf.nix
./baseline.nix
] ++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ]; ] ++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ];
}; };
in in
rec { rec {
la23002 = mac { name = "ivr"; }; "MacBook-Pro" = mac { name = "ivr"; };
LA23002 = la23002;
} }
+23 -2
View File
@@ -1,28 +1,49 @@
{ ... }: { ... }:
let
username = "gregory.hellings";
in
{ {
#environment.loginShell = lib.getExe pkgs.xonsh; greg = {
homebrews = { nix.cache = false;
};
homebrew = {
enable = true; enable = true;
brews = [ brews = [
"bitwarden-cli"
"direnv" "direnv"
{ {
name = "libvirt"; name = "libvirt";
restart_service = true; restart_service = true;
} }
"mysql"
"nushell" "nushell"
"poetry"
"qemu" "qemu"
]; ];
casks = [ casks = [
"alt-tab" "alt-tab"
"bitwarden"
"bruno" "bruno"
"chromium" "chromium"
"firefox" "firefox"
"microsoft-teams"
"onlyoffice" "onlyoffice"
"pgadmin4" "pgadmin4"
"tabby" "tabby"
"twine"
"vagrant" "vagrant"
"visual-studio-code" "visual-studio-code"
"zed" "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" "nixpkgs-unstable": "nixpkgs-unstable"
}, },
"locked": { "locked": {
"lastModified": 1747465275, "lastModified": 1748187031,
"narHash": "sha256-Vpgp7uWpXUmEAirJjj6+et+JC9BZP9GjvS1usv5Wl3A=", "narHash": "sha256-F4zdOfeg0xjEnvFjlHvoMmdmh/FxK1qIsZyscnGDgA0=",
"owner": "fort-nix", "owner": "fort-nix",
"repo": "nix-bitcoin", "repo": "nix-bitcoin",
"rev": "1586a34e902706b6834b059c9bd6d80caffce84a", "rev": "a06d1d8118865af14a9187e7d1a7a141dd89af74",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -45,25 +45,6 @@
"type": "github" "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": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -93,11 +74,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747964474, "lastModified": 1749194393,
"narHash": "sha256-i73u8NLiqewGy0iIriH4XizatLnAojXxzrBqHJEz49E=", "narHash": "sha256-vt6hM9DNywnXXuW1qPDLzECmbDcmxhh58wpb0EEQjAo=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "93562b65cf68612a544779c9f77536f9dff01096", "rev": "19346808c445f23b08652971be198b9df6c33edc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -167,11 +148,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1747046372,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -185,11 +166,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1749398372,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -245,11 +226,11 @@
"nixpkgs-lib": "nixpkgs-lib_2" "nixpkgs-lib": "nixpkgs-lib_2"
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1748821116,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -340,11 +321,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747955385, "lastModified": 1749526396,
"narHash": "sha256-AKoBFaEGN02tGvBlkwVIDOGXouHvrTTfOUcvBDGxkxQ=", "narHash": "sha256-UL9F76abAk87llXOrcQRjhd5OaOclUd6MIltsqcUZmo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a868570581f0dbdef7e33c8c9bb34b735dfcbacf", "rev": "427c96044f11a5da50faf6adaf38c9fa47e6d044",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -409,27 +390,27 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737371634, "lastModified": 1748294338,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=", "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "ixx", "repo": "ixx",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648", "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NuschtOS", "owner": "NuschtOS",
"ref": "v0.0.7", "ref": "v0.0.8",
"repo": "ixx", "repo": "ixx",
"type": "github" "type": "github"
} }
}, },
"nix-hardware": { "nix-hardware": {
"locked": { "locked": {
"lastModified": 1747900541, "lastModified": 1749195551,
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", "rev": "4602f7e1d3f197b3cb540d5accf5669121629628",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -476,11 +457,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1746422338, "lastModified": 1748037224,
"narHash": "sha256-NTtKOTLQv6dPfRe00OGSywg37A1FYqldS6xiNmqBUYc=", "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5b35d248e9206c1f3baf8de6a7683fee126364aa", "rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -492,11 +473,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1743296961, "lastModified": 1748740939,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -507,11 +488,11 @@
}, },
"nixpkgs-lib_2": { "nixpkgs-lib_2": {
"locked": { "locked": {
"lastModified": 1743296961, "lastModified": 1748740939,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -522,26 +503,26 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1732981179, "lastModified": 1748437600,
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=", "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65", "rev": "7282cb574e0607e65224d33be8241eae7cfe0979",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-24.11", "ref": "nixos-25.05",
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1746332716, "lastModified": 1747958103,
"narHash": "sha256-VBmKSkmw9PYBCEGhBKzORjx+nwNZkPZyHcUHE21A/ws=", "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6b1c028bce9c89e9824cde040d6986d428296055", "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -584,27 +565,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1747885982, "lastModified": 1749285348,
"narHash": "sha256-rSuxACdwx5Ndr2thpjqcG89fj8mSSp96CFoCt0yrdkY=", "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"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=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -614,23 +579,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_4": {
"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": {
"locked": { "locked": {
"lastModified": 1744868846, "lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -648,11 +597,11 @@
}, },
"nixunstable": { "nixunstable": {
"locked": { "locked": {
"lastModified": 1747744144, "lastModified": 1749285348,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -665,16 +614,18 @@
"nixvimunstable": { "nixvimunstable": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3", "nixpkgs": [
"nixunstable"
],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1747945641, "lastModified": 1749496904,
"narHash": "sha256-Ts16c+kptbC3YDwPcB/NqXFVMHPNYKeFD7LkiawbWCU=", "narHash": "sha256-eNDMzrcDBOprdJs7DpMOJfCEcxribxDJP2OjozSC3Wo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "46fd0b184cbc5f1bdc5a8325cb973fc54e49ab68", "rev": "e0b3d8bc3a0ab5a7cc0792c7705e92f9c5c598f3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -687,15 +638,15 @@
"nurpkgs": { "nurpkgs": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1747973449, "lastModified": 1749566933,
"narHash": "sha256-e+DaBDI6xzd7KW+1u3jHhEzdF2Ajx5hP0bF2CFiS/F8=", "narHash": "sha256-rolwj4dzqfzFMG3VGEN7zKwGTBd0XAKcvOTTEOre3XY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "e4fcae418dde38789f3f59ea07ad289a4b9bcffe", "rev": "28532113cfab3f76c3a80f04ef38dca164d7b819",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -714,11 +665,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1745046075, "lastModified": 1748298102,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=", "narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "066afe8643274470f4a294442aadd988356a478f", "rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -729,11 +680,11 @@
}, },
"patched-nixpkgs": { "patched-nixpkgs": {
"locked": { "locked": {
"lastModified": 1746961062, "lastModified": 1748133736,
"narHash": "sha256-7krN5Ii+jFQTIQL/KDQgjU7qRpbs9Ndgd0POccM+nb0=", "narHash": "sha256-8DCZF+SHXa7P9O9op2ET7qJtPomzQ49jy2vjzrHocg4=",
"owner": "TomaSajt", "owner": "TomaSajt",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "40f15db812bdec49cd4e64ba46fc355b7e2af358", "rev": "76121e3e5db9bfcc4b604b4093abea7b1aa3109e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -745,18 +696,17 @@
}, },
"proxmox": { "proxmox": {
"inputs": { "inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable_2", "nixpkgs-unstable": "nixpkgs-unstable_2",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1746882493, "lastModified": 1749385025,
"narHash": "sha256-KbkIGJ6fe5F6AZRCzrNH3vNAnbbt+gf/PWrfMZ/B0As=", "narHash": "sha256-2w6+xAMdT9LgMxDHaIyddMTacBbF7RjaZFyGjjTDBhg=",
"owner": "SaumonNet", "owner": "SaumonNet",
"repo": "proxmox-nixos", "repo": "proxmox-nixos",
"rev": "bda8df28b6656843e459f166b04bc291bc495a29", "rev": "48f39fbe2e8f90f9ac160dd4b6929f3ac06d8223",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -916,14 +866,14 @@
"vsext": { "vsext": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1747965670, "lastModified": 1749521131,
"narHash": "sha256-O91kjsTL7xccgTQr2KITmGhhLTpX9zh+oRvvV8ScOrg=", "narHash": "sha256-ezZ15tLA2L+rmtn39dKLFW/UM2xlksC61V12blulpjE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-vscode-extensions", "repo": "nix-vscode-extensions",
"rev": "d3099346fa5e9e33d0989a4e6afc3e8dedd25311", "rev": "299b2aa650d32310153746135b6a84a6c4de9c21",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -940,11 +890,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1746453552, "lastModified": 1749574455,
"narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=", "narHash": "sha256-fm2/8KPOYvvIAnNVtjDlTt/My00lIbZQ+LMrfQIWVzs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "be618645aa0adf461f778500172b6896d5ab2d01", "rev": "917af390377c573932d84b5e31dd9f2c1b5c0f09",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -962,11 +912,11 @@
"patched-nixpkgs": "patched-nixpkgs" "patched-nixpkgs": "patched-nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1747467107, "lastModified": 1749228292,
"narHash": "sha256-IIewGkpjoV6zSJNgxsL7p+wij/Q7RpDAlf0OVggK/ME=", "narHash": "sha256-cavxEaS1a1jQqkQsGVUiu3Hlex3wqUfFB1LE2TXT0vA=",
"owner": "HPsaucii", "owner": "HPsaucii",
"repo": "zed-editor-flake", "repo": "zed-editor-flake",
"rev": "50b08c64d1abed4318b8289ec3f62b64b4f34231", "rev": "db6c84831c7bedcf63dcecf1e0b59cddea302c62",
"type": "github" "type": "github"
}, },
"original": { "original": {
+4 -1
View File
@@ -39,7 +39,10 @@
url = "github:nix-community/nixos-generators"; url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixunstable"; 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"; nixunstable.url = "github:nixos/nixpkgs/nixos-unstable";
nurpkgs.url = "github:nix-community/NUR"; nurpkgs.url = "github:nix-community/NUR";
vsext.url = "github:nix-community/nix-vscode-extensions"; vsext.url = "github:nix-community/nix-vscode-extensions";
@@ -7,7 +7,7 @@
./direnv.nix ./direnv.nix
./git.nix ./git.nix
./ssh.nix ./ssh.nix
./vim.nix ./vim
./xonsh.nix ./xonsh.nix
]; ];
} }
@@ -1,15 +1,4 @@
{ pkgs, ... }: { 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; colorschemes.gruvbox.enable = true;
globals = { globals = {
@@ -162,7 +151,6 @@ in
context-vim context-vim
vim-indent-guides vim-indent-guides
vim-xonsh
]; ];
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
@@ -10,7 +10,7 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = with pkgs.nerd-fonts; [ hack ]; 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; enable = true;
}; };
} }
@@ -3,7 +3,6 @@
{ {
# Programs that are used in the settings file # Programs that are used in the settings file
home.packages = with pkgs; [ home.packages = with pkgs; [
bitwarden-cli
copier copier
git git
gnused gnused
@@ -52,7 +52,7 @@ def _rebuild(args):
system = uname() system = uname()
hostname = system.nodename hostname = system.nodename
if system.sysname == 'Darwin': if system.sysname == 'Darwin':
darwin-rebuild --flake ~/.config/darwin switch sudo darwin-rebuild switch
else: else:
with TemporaryDirectory() as td: with TemporaryDirectory() as td:
pushd @(td) pushd @(td)
+22 -22
View File
@@ -1,27 +1,26 @@
{ top, overlays, ... }: {
overlays,
rec { top,
greghellings = ...
}:
let
pkgs =
system:
(import top.nixunstable {
inherit system overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
});
ivr =
let let
system = "x86_64-linux"; system = "aarch64-darwin";
pkgs = (
import top.nixunstable {
inherit system overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
}
);
in in
top.hmunstable.lib.homeManagerConfiguration { top.hmunstable.lib.homeManagerConfiguration {
inherit pkgs; pkgs = pkgs system;
modules = [ modules = [
(import ../modules/nix-conf.nix { ../modules/nix-conf.nix
inherit pkgs;
inherit (pkgs) lib;
cache = false;
})
./home.nix ./home.nix
]; ];
extraSpecialArgs = { extraSpecialArgs = {
@@ -33,6 +32,7 @@ rec {
username = "gregory.hellings"; username = "gregory.hellings";
}; };
}; };
in
"gregory.hellings" = greghellings; {
"MacBook-Pro.local" = ivr;
} }
+13 -12
View File
@@ -2,27 +2,20 @@
pkgs, pkgs,
lib, lib,
host ? "most", host ? "most",
nixvim, top,
... ...
}: }:
{ {
imports = [ imports = [
nixvim.homeManagerModules.default top.nixvimunstable.homeManagerModules.nixvim
./modules top.self.modules.homeManagerModule
./baseline
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ]; ] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
programs.tmux = { home.stateVersion = "25.05";
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
};
home.stateVersion = "23.05";
home.packages = with pkgs; [ home.packages = with pkgs; [
bitwarden-cli
copier copier
diffutils diffutils
findutils findutils
@@ -44,4 +37,12 @@
wget wget
zip zip
]; ];
programs.tmux = {
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
};
} }
+20 -28
View File
@@ -4,13 +4,7 @@
... ...
}: }:
let let
py = pkgs.python311.withPackages ( username = "gregory.hellings";
p: with p; [
pyyaml
ruamel-yaml
tox
]
);
x = pkgs.xonsh.override { x = pkgs.xonsh.override {
extraPackages = ( extraPackages = (
ps: [ ps: [
@@ -23,10 +17,13 @@ let
}; };
in in
{ {
# Disables hitting local cache
_module.args.cache = lib.mkForce false;
greg = { greg = {
development = true; development = true;
gui = true; gui = true;
pypackage = py; nix.cache = false;
pypackage.enable = false;
vscodium = true; vscodium = true;
}; };
@@ -34,25 +31,15 @@ in
packages = with pkgs; [ packages = with pkgs; [
aacs aacs
ansible ansible
bitwarden-cli
direnv direnv
home-manager home-manager
k9s k9s
kubectl kubectl
minikube minikube
mise mise
mysql-workbench
nixStable nixStable
pipenv-ivr pipenv-ivr
(poetry.withPlugins (
ps: with ps; [
poetry-audit-plugin
poetry-plugin-export
poetry-plugin-shell
]
))
pre-commit pre-commit
robo3t
skaffold skaffold
x x
]; ];
@@ -66,17 +53,22 @@ in
" https://pypidev.ivrtechnology.com/simple/" " https://pypidev.ivrtechnology.com/simple/"
] ]
); );
username = "gregory.hellings"; username = username;
homeDirectory = lib.mkForce "/home/gregory.hellings"; homeDirectory = "/Users/${username}";
}; };
programs.tmux.shell = (lib.getExe x);
services.podman = { programs = {
enable = true; direnv = {
settings = { enable = true;
registries.search = [ enableNushellIntegration = true;
"docker.io"
"quay.io"
];
}; };
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; channel = top.nixunstable;
hm = top.hmunstable; hm = top.hmunstable;
nixvim = top.nixvimunstable;
} }
)); ));
machine = machine =
@@ -19,7 +18,6 @@ let
name, name,
system ? "x86_64-linux", system ? "x86_64-linux",
hm ? top.hm, hm ? top.hm,
nixvim ? top.nixvimstable,
}: }:
let let
nixpkgs = import channel { inherit system; }; nixpkgs = import channel { inherit system; };
@@ -32,29 +30,18 @@ let
inherit (top) self; inherit (top) self;
}; };
modules = [ modules = [
{ # Imported ones
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";
};
}
top.agenix.nixosModules.default top.agenix.nixosModules.default
hm.nixosModules.home-manager hm.nixosModules.home-manager
top.self.modules.nixosModule
top.nurpkgs.modules.nixos.default top.nurpkgs.modules.nixos.default
# Local ones
./baseline.nix
top.self.modules.nixosModule
./${name} ./${name}
] ++ extraMods; ] ++ extraMods;
}; };
in in
rec { {
genesis = unstable { name = "genesis"; }; genesis = unstable { name = "genesis"; };
exodus = unstable { name = "exodus"; }; exodus = unstable { name = "exodus"; };
jude = unstable { name = "jude"; }; jude = unstable { name = "jude"; };
+2
View File
@@ -55,4 +55,6 @@
virtualisation = { virtualisation = {
oci-containers.backend = "podman"; 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"; 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"; 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 let
nixos = (import ./nixos); nixos = (import ./nixos);
darwin = (import ./darwin); hm = (import ./hm);
in in
{ {
homeManagerModule = hm;
nixosModule = nixos; nixosModule = nixos;
darwinModule = darwin;
} }
@@ -2,7 +2,6 @@
{ {
imports = [ imports = [
./baseline
./development.nix ./development.nix
./gnome.nix ./gnome.nix
./gui.nix ./gui.nix
@@ -11,8 +11,6 @@ let
cargo cargo
gh-copilot gh-copilot
gnumake gnumake
libcap.dev
libmysqlclient.dev
nix-eval-jobs nix-eval-jobs
nix-fast-build nix-fast-build
nix-output-monitor nix-output-monitor
@@ -57,6 +57,10 @@ in
sort-method = "name"; sort-method = "name";
sort-type = "ascending"; sort-type = "ascending";
}; };
"org/gnome/mutter" = {
# Enables quarter-point scaling options
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/nautilus/preferences" = { "org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view"; default-folder-viewer = "icon-view";
search-filter-time-type = "last_modified"; search-filter-time-type = "last_modified";
+9 -9
View File
@@ -31,6 +31,7 @@ in
cdrtools cdrtools
element-desktop element-desktop
freetube freetube
onlyoffice-bin
qpwgraph qpwgraph
vlc vlc
x265 x265
@@ -51,25 +52,24 @@ in
jellyfin-media-player jellyfin-media-player
nextcloud-client nextcloud-client
slack slack
(pkgs.zoom-us.overrideAttrs {
version = "6.2.11.5069";
src = pkgs.fetchurl {
url = "https://zoom.us/client/6.2.11.5069/zoom_x86_64.pkg.tar.xz";
hash = "sha256-k8T/lmfgAFxW1nwEyh61lagrlHP5geT2tA7e5j61+qw=";
};
})
] ]
) )
++ ++
# Items that are not supported on ARM/Linux # Items that are not supported on ARM/Linux
(excludes [ "aarch64-linux" ] [ (excludes [ "aarch64-linux" ] [
onlyoffice-bin
synology-drive-client synology-drive-client
(pkgs.zoom-us.overrideAttrs {
version = "6.2.11.5069";
src = pkgs.fetchurl {
url = "https://zoom.us/client/6.2.11.5069/zoom_x86_64.pkg.tar.xz";
hash = "sha256-k8T/lmfgAFxW1nwEyh61lagrlHP5geT2tA7e5j61+qw=";
};
})
]); ]);
programs.firefox = { programs.firefox = {
enable = (!pkgs.stdenv.hostPlatform.isDarwin); enable = true; #(!pkgs.stdenv.hostPlatform.isDarwin);
package = pkgs.firefox-bin; package = pkgs.firefox-bin;
policies = { policies = {
DisableAppUpdate = true; 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 njpwerner.autodocstring
rust-lang.rust-analyzer rust-lang.rust-analyzer
tamasfe.even-better-toml tamasfe.even-better-toml
vadimcn.vscode-lldb
vscjava.vscode-java-test vscjava.vscode-java-test
vscjava.vscode-java-dependency vscjava.vscode-java-dependency
vscjava.vscode-java-debug vscjava.vscode-java-debug
+61 -47
View File
@@ -1,58 +1,72 @@
{ {
pkgs, config,
lib, lib,
cache, pkgs,
... ...
}: }:
let
cfg = config.greg.nix;
in
{ {
nix = { options.greg.nix = {
gc = { cache = lib.mkOption {
automatic = true; type = lib.types.bool;
# Scheduling of them is different in nixos vs nix-darwin, so check for default = true;
# the extra details there
options = "--delete-older-than 30d";
};
package = pkgs.nixStable;
settings = {
cores = 0; # Use all cores for builds
download-buffer-size = 500 * 1024 * 1024;
experimental-features = "nix-command flakes";
keep-outputs = true;
keep-derivations = true;
min-free = (toString (1024 * 1024 * 1024));
max-free = (toString (5 * 1024 * 1024 * 1024));
trusted-users = [
"greg"
"gregory.hellings"
]; # For home and for work machines
substituters =
(lib.optionals cache [
"http://nas.home:9000/binary-cache/"
])
++ [
"https://ai.cachix.org"
"https://nixpkgs-python.cachix.org"
"https://greg-hellings.cachix.org"
"https://nix-community.cachix.org"
"https://cache.nixos.org"
];
trusted-public-keys = [
"nas.home:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc="
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
"greg-hellings.cachix.org-1:y01Jl/L5evlhxdnUW6n56AiI1k8g1wxWhTxJCe7XSco="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
}; };
}; };
nixpkgs.config = { config = {
allowUnfree = true; nix = {
allowUnfreePredicate = _: true; gc = {
permittedInsecurePackages = [ "ventoy-1.1.05" ]; automatic = true;
# Scheduling of them is different in nixos vs nix-darwin, so check for
# the extra details there
options = "--delete-older-than 30d";
};
package = pkgs.nixStable;
settings = {
cores = 0; # Use all cores for builds
download-buffer-size = 500 * 1024 * 1024;
experimental-features = "nix-command flakes";
keep-outputs = true;
keep-derivations = true;
min-free = (toString (1024 * 1024 * 1024));
max-free = (toString (5 * 1024 * 1024 * 1024));
trusted-users = [
"greg"
"gregory.hellings"
]; # For home and for work machines
substituters =
(lib.optionals cfg.cache [
"http://nas.thehellings.lan:9000/binary-cache/"
"http://nas.home:9000/binary-cache/"
])
++ [
"https://ai.cachix.org"
"https://nixpkgs-python.cachix.org"
"https://greg-hellings.cachix.org"
"https://nix-community.cachix.org"
"https://cache.nixos.org"
];
trusted-public-keys = [
"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="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
};
};
nixpkgs.config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
permittedInsecurePackages = [ "ventoy-1.1.05" ];
};
}; };
} }
-82
View File
@@ -1,13 +1,9 @@
{ {
config,
pkgs,
lib,
... ...
}: }:
{ {
imports = [ imports = [
../baseline.nix
./backup.nix ./backup.nix
./ceph.nix ./ceph.nix
./container.nix ./container.nix
@@ -29,82 +25,4 @@
./tailscale.nix ./tailscale.nix
./vmdev.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 = { devices = {
chronicles.id = "7FI6Y3M-C7YQEDI-IB345L6-RKLXMB6-AEIV57Y-3J2RCXQ-MK6QRNK-EINPXAE"; chronicles.id = "7FI6Y3M-C7YQEDI-IB345L6-RKLXMB6-AEIV57Y-3J2RCXQ-MK6QRNK-EINPXAE";
genesis.id = "YDTH4SD-GUAC5AA-SSYWYPZ-YMJW5LK-LE7PZKJ-GV2UJFZ-CU7LZAD-GTYWCQK"; 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"; linode.id = "IJMMXPR-WNALZBD-FMJH5W5-WV7XGJY-HLJTKGT-5TKHJIH-75LT56D-UUZCYQE";
matrix.id = "K5IHM3I-TJFFEW5-GAYJMPS-CYSHW5C-XHMC462-MFRMOHJ-EJLKIKC-CZHGJQ2";
}; };
options = { options = {
urAccepted = -1; urAccepted = -1;
+1 -1
View File
@@ -78,7 +78,7 @@ func main() {
// flake output type. Therefore, it just informs you that it is // flake output type. Therefore, it just informs you that it is
// part of the output, but does not evaluate deeper to tell you // 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. // 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 { if flakeOutput.Apps != nil {
for appName := range flakeOutput.Apps { for appName := range flakeOutput.Apps {
+31 -6
View File
@@ -1,13 +1,38 @@
# vim: set ft=bash: # vim: set ft=bash:
# Build different targets with GUI or not
set -ex -o pipefail
# Build and switch # Build and switch
user="$(whoami)" system="$(uname -s)"
src="${HOME}/.config/nix"
echo "Building ${user}" # 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) dest=$(mktemp -d)
trap cleanup 1 2 3 6 15
function cleanup {
echo "Cleaning up"
rm -r "${dest}"
exit
}
pushd "${dest}" > /dev/null pushd "${dest}" > /dev/null
nom build "${src}#homeConfigurations.\"${user}\".activationPackage" nom build "${src}#homeConfigurations.\"${target}\".activationPackage"
./result/activate ./result/activate
popd > /dev/null popd > /dev/null
rm -r "${dest}"