mirror of https://git.jolheiser.com/dotnix.git
Compare commits
2 Commits
af5925da19
...
08c39b6601
Author | SHA1 | Date |
---|---|---|
jolheiser | 08c39b6601 | |
jolheiser | 6a5f3da703 |
220
flake.nix
220
flake.nix
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
|
||||||
nixpkgs-py39.url = "github:nixos/nixpkgs/f294325aed382b66c7a188482101b0f336d1d7db";
|
nixpkgs-py39.url = "github:nixos/nixpkgs/f294325aed382b66c7a188482101b0f336d1d7db";
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
@ -17,7 +18,6 @@
|
||||||
home-manager.follows = "";
|
home-manager.follows = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
nixos-hardware.url = "github:nixos/nixos-hardware/master";
|
nixos-hardware.url = "github:nixos/nixos-hardware/master";
|
||||||
|
|
||||||
nur.url = "github:nix-community/NUR";
|
nur.url = "github:nix-community/NUR";
|
||||||
|
@ -124,28 +124,21 @@
|
||||||
})
|
})
|
||||||
inputs.golink.overlay
|
inputs.golink.overlay
|
||||||
];
|
];
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit overlays system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
userSecret = path: {
|
userSecret = path: {
|
||||||
file = path;
|
file = path;
|
||||||
owner = username;
|
owner = username;
|
||||||
};
|
};
|
||||||
commonConfig = {gui ? true}: {config, ...}: {
|
commonConfig = {config, ...}: {
|
||||||
config = {
|
config = {
|
||||||
nixpkgs.overlays = overlays;
|
nixpkgs.overlays = overlays;
|
||||||
# TODO Remove when apps are updated
|
# TODO Remove when apps are updated
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
"electron-25.9.0"
|
"electron-25.9.0"
|
||||||
];
|
];
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
users.${username}.imports =
|
|
||||||
if gui
|
|
||||||
then [./apps/gui]
|
|
||||||
else [./apps/nogui];
|
|
||||||
extraSpecialArgs = {
|
|
||||||
flakePath = "/home/${username}/.config/nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
ssh-config = userSecret ./secrets/shared/ssh-config.age;
|
ssh-config = userSecret ./secrets/shared/ssh-config.age;
|
||||||
ssh-config-work = userSecret ./secrets/shared/ssh-config-work.age;
|
ssh-config-work = userSecret ./secrets/shared/ssh-config-work.age;
|
||||||
|
@ -166,9 +159,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
workModules = [
|
workModules = [
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
(commonConfig {})
|
commonConfig
|
||||||
({pkgs, ...}: {
|
({pkgs, ...}: {
|
||||||
config = {
|
config = {
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
|
@ -176,10 +168,6 @@
|
||||||
py39 = import nixpkgs-py39 {inherit (pkgs) system;};
|
py39 = import nixpkgs-py39 {inherit (pkgs) system;};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
home-manager.users.${username}.programs = {
|
|
||||||
git.package = pkgs.gitSVN;
|
|
||||||
firefox.profiles.default.bookmarks = [(import ./apps/gui/firefox/work.nix)];
|
|
||||||
};
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
netrc = {
|
netrc = {
|
||||||
file = ./secrets/work/netrc.age;
|
file = ./secrets/work/netrc.age;
|
||||||
|
@ -202,92 +190,118 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
username = "jolheiser";
|
username = "jolheiser";
|
||||||
in
|
system = "x86_64-linux";
|
||||||
{
|
in {
|
||||||
nixosConfigurations = {
|
homeConfigurations = let
|
||||||
"chai" = nixpkgs.lib.nixosSystem {
|
commonModules = [
|
||||||
system = "x86_64-linux";
|
{
|
||||||
modules =
|
home = {
|
||||||
workModules
|
inherit username;
|
||||||
++ [
|
homeDirectory = "/home/${username}";
|
||||||
./machines/chai
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"earlgrey" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules =
|
|
||||||
workModules
|
|
||||||
++ [
|
|
||||||
./machines/earlgrey
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"masala" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules =
|
|
||||||
workModules
|
|
||||||
++ [
|
|
||||||
wsl.nixosModules.wsl
|
|
||||||
./machines/masala
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"matcha" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = [
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
agenix.nixosModules.default
|
|
||||||
./machines/matcha
|
|
||||||
(commonConfig {})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"genmaicha" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = [
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
nixos-hardware.nixosModules.framework-13-7040-amd
|
|
||||||
agenix.nixosModules.default
|
|
||||||
./machines/genmaicha
|
|
||||||
(commonConfig {})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"sencha" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = [
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
agenix.nixosModules.default
|
|
||||||
./machines/sencha
|
|
||||||
(commonConfig {})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
colmena = {
|
|
||||||
meta = {
|
|
||||||
nixpkgs = import nixpkgs {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
overlays = overlays;
|
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
dragonwell = {
|
./apps/gui
|
||||||
imports = [
|
];
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.golink.nixosModules.default
|
|
||||||
inputs.ugit.nixosModules.default
|
|
||||||
./machines/dragonwell
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nixConfig = {
|
|
||||||
extra-substitutors = ["https://jolheiser.cachix.org"];
|
|
||||||
extra-trusted-public-keys = ["jolheiser.cachix.org-1:fiKkfTuHFqDK5ZOVxcqb4InUkKsrTvtMLISid7XvuVg="];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// inputs.flake-utils.lib.eachDefaultSystem (system: let
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
in {
|
in {
|
||||||
devShells.default = pkgs.mkShell {
|
"jolheiser" = home-manager.lib.homeManagerConfiguration {
|
||||||
nativeBuildInputs = [
|
inherit pkgs;
|
||||||
agenix.packages.${system}.agenix
|
modules = commonModules;
|
||||||
pkgs.colmena
|
};
|
||||||
|
"work" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
modules =
|
||||||
|
commonModules
|
||||||
|
++ [
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(_: _: {
|
||||||
|
py39 = import nixpkgs-py39 {inherit (pkgs) system;};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
programs = {
|
||||||
|
git.package = pkgs.gitSVN;
|
||||||
|
firefox.profiles.default.bookmarks = [(import ./apps/gui/firefox/work.nix)];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixosConfigurations = {
|
||||||
|
"chai" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules =
|
||||||
|
workModules
|
||||||
|
++ [
|
||||||
|
./machines/chai
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"earlgrey" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules =
|
||||||
|
workModules
|
||||||
|
++ [
|
||||||
|
./machines/earlgrey
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"masala" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules =
|
||||||
|
workModules
|
||||||
|
++ [
|
||||||
|
wsl.nixosModules.wsl
|
||||||
|
./machines/masala
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"matcha" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./machines/matcha
|
||||||
|
commonConfig
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
});
|
"genmaicha" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [
|
||||||
|
nixos-hardware.nixosModules.framework-13-7040-amd
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./machines/genmaicha
|
||||||
|
commonConfig
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"sencha" = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
modules = [
|
||||||
|
agenix.nixosModules.default
|
||||||
|
./machines/sencha
|
||||||
|
commonConfig
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
colmena = {
|
||||||
|
meta = {
|
||||||
|
nixpkgs = import nixpkgs {
|
||||||
|
inherit overlays system;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dragonwell = {
|
||||||
|
imports = [
|
||||||
|
inputs.agenix.nixosModules.default
|
||||||
|
inputs.golink.nixosModules.default
|
||||||
|
inputs.ugit.nixosModules.default
|
||||||
|
./machines/dragonwell
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixConfig = {
|
||||||
|
extra-substitutors = ["https://jolheiser.cachix.org"];
|
||||||
|
extra-trusted-public-keys = ["jolheiser.cachix.org-1:fiKkfTuHFqDK5ZOVxcqb4InUkKsrTvtMLISid7XvuVg="];
|
||||||
|
};
|
||||||
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
|
nativeBuildInputs = [
|
||||||
|
agenix.packages.${system}.agenix
|
||||||
|
pkgs.colmena
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
6
justfile
6
justfile
|
@ -11,6 +11,12 @@ rebuild *args:
|
||||||
switch *args:
|
switch *args:
|
||||||
@just rebuild switch {{args}}
|
@just rebuild switch {{args}}
|
||||||
|
|
||||||
|
hm:
|
||||||
|
@home-manager switch --flake .
|
||||||
|
|
||||||
|
work:
|
||||||
|
@home-manager switch --flake '.#work'
|
||||||
|
|
||||||
# Rebuild the current machine for next boot
|
# Rebuild the current machine for next boot
|
||||||
boot *args:
|
boot *args:
|
||||||
@just rebuild boot {{args}}
|
@just rebuild boot {{args}}
|
||||||
|
|
|
@ -1,31 +1,35 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix") ../common/cifs.nix
|
lib,
|
||||||
];
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
../common/cifs.nix
|
||||||
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod"];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/e2274508-9989-4f6b-9bcf-a0d246f292f9";
|
device = "/dev/disk/by-uuid/e2274508-9989-4f6b-9bcf-a0d246f292f9";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-1121cd25-7c4c-47ee-b04a-2cab0cd251ea".device = "/dev/disk/by-uuid/1121cd25-7c4c-47ee-b04a-2cab0cd251ea";
|
boot.initrd.luks.devices."luks-1121cd25-7c4c-47ee-b04a-2cab0cd251ea".device = "/dev/disk/by-uuid/1121cd25-7c4c-47ee-b04a-2cab0cd251ea";
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/86CA-6DF6";
|
device = "/dev/disk/by-uuid/86CA-6DF6";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
Loading…
Reference in New Issue