Compare commits
No commits in common. "704a630a339f04f61904efb075dfd3756d718972" and "ccd08cf21d01ae1dd6b92de6daf575fc296b68d5" have entirely different histories.
704a630a33
...
ccd08cf21d
49 changed files with 70 additions and 125 deletions
|
@ -134,7 +134,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
# Import secrets
|
# Import secrets
|
||||||
./modules/global/secret-spec.nix
|
./modules/common/secret-spec.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
|
|
||||||
# Host-specific configuration
|
# Host-specific configuration
|
||||||
|
|
|
@ -15,7 +15,7 @@ in
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"modules/global"
|
"modules/common"
|
||||||
"modules/home"
|
"modules/home"
|
||||||
])
|
])
|
||||||
./asdf.nix
|
./asdf.nix
|
||||||
|
|
|
@ -16,7 +16,7 @@ in
|
||||||
(lib.custom.scanPaths ./.)
|
(lib.custom.scanPaths ./.)
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"modules/global"
|
"modules/common"
|
||||||
"hosts/users"
|
"hosts/users"
|
||||||
])
|
])
|
||||||
];
|
];
|
22
hosts/common/optional/ventura.nix
Normal file
22
hosts/common/optional/ventura.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixtheplanet.nixosModules.macos-ventura
|
||||||
|
];
|
||||||
|
|
||||||
|
services.macos-ventura = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.makeDarwinImage { diskSizeBytes = 80000000000; };
|
||||||
|
openFirewall = true;
|
||||||
|
vncListenAddr = "0.0.0.0";
|
||||||
|
autoStart = false;
|
||||||
|
extraQemuFlags = [
|
||||||
|
"-spice"
|
||||||
|
"port=5930,addr=127.0.0.1,disable-ticketing"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -27,11 +27,11 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/global/common/acme"
|
"hosts/common/optional/acme"
|
||||||
"hosts/global/common/docker.nix"
|
"hosts/common/optional/docker.nix"
|
||||||
|
|
||||||
## Host user ##
|
## Host user ##
|
||||||
"hosts/users/${username}" # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
"hosts/users/${username}" # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
||||||
|
|
|
@ -10,7 +10,7 @@ in
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/lxc.nix"
|
"hosts/common/optional/system/lxc.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,11 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/global/common/acme"
|
"hosts/common/optional/acme"
|
||||||
"hosts/global/common/docker.nix"
|
"hosts/common/optional/docker.nix"
|
||||||
|
|
||||||
## Host User ##
|
## Host User ##
|
||||||
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/lxc.nix"
|
"hosts/common/optional/system/lxc.nix"
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Proxy Specific ##
|
## Proxy Specific ##
|
||||||
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/lxc.nix"
|
"hosts/common/optional/system/lxc.nix"
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/lxc.nix"
|
"hosts/common/optional/system/lxc.nix"
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,11 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/global/common/acme"
|
"hosts/common/optional/acme"
|
||||||
"hosts/global/common/docker.nix"
|
"hosts/common/optional/docker.nix"
|
||||||
|
|
||||||
## Proxy User ##
|
## Proxy User ##
|
||||||
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/lxc.nix"
|
"hosts/common/optional/system/lxc.nix"
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,21 +27,21 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/global/common/audio.nix" # pipewire and cli controls
|
"hosts/common/optional/audio.nix" # pipewire and cli controls
|
||||||
"hosts/global/common/adb.nix" # android tools
|
"hosts/common/optional/adb.nix" # android tools
|
||||||
"hosts/global/common/bluetooth.nix"
|
"hosts/common/optional/bluetooth.nix"
|
||||||
"hosts/global/common/ddcutil.nix" # ddcutil for monitor controls
|
"hosts/common/optional/ddcutil.nix" # ddcutil for monitor controls
|
||||||
"hosts/global/common/gaming.nix" # steam, gamescope, gamemode, and related hardware
|
"hosts/common/optional/gaming.nix" # steam, gamescope, gamemode, and related hardware
|
||||||
# "hosts/global/common/gnome.nix" # desktop
|
# "hosts/common/optional/gnome.nix" # desktop
|
||||||
"hosts/global/common/hyprland" # desktop
|
"hosts/common/optional/hyprland" # desktop
|
||||||
"hosts/global/common/libvirt.nix" # vm tools
|
"hosts/common/optional/libvirt.nix" # vm tools
|
||||||
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
|
"hosts/common/optional/nvtop.nix" # GPU monitor (not available in home-manager)
|
||||||
"hosts/global/common/plymouth.nix" # fancy boot screen
|
"hosts/common/optional/plymouth.nix" # fancy boot screen
|
||||||
"hosts/global/common/vial.nix" # KB setup
|
"hosts/common/optional/vial.nix" # KB setup
|
||||||
# "hosts/global/common/ventura.nix" # macos vm
|
# "hosts/common/optional/ventura.nix" # macos vm
|
||||||
|
|
||||||
## Misc Inputs ##
|
## Misc Inputs ##
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -24,15 +24,15 @@ in
|
||||||
|
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
"hosts/global/core"
|
"hosts/common/core"
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/global/common/audio.nix" # pipewire and cli controls
|
"hosts/common/optional/audio.nix" # pipewire and cli controls
|
||||||
# "hosts/global/common/gaming.nix" # steam, gamescope, gamemode, and related hardware
|
# "hosts/common/optional/gaming.nix" # steam, gamescope, gamemode, and related hardware
|
||||||
# "hosts/global/common/gnome.nix" # desktop
|
# "hosts/common/optional/gnome.nix" # desktop
|
||||||
"hosts/global/common/hyprland" # desktop
|
"hosts/common/optional/hyprland" # desktop
|
||||||
# "hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
|
# "hosts/common/optional/nvtop.nix" # GPU monitor (not available in home-manager)
|
||||||
# "hosts/global/common/plymouth.nix" # fancy boot screen
|
# "hosts/common/optional/plymouth.nix" # fancy boot screen
|
||||||
|
|
||||||
## Misc Inputs ##
|
## Misc Inputs ##
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ in
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
(map lib.custom.relativeToRoot [
|
(map lib.custom.relativeToRoot [
|
||||||
"hosts/global/common/system/pool.nix"
|
"hosts/common/optional/system/pool.nix"
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
# TODO:
|
|
||||||
|
|
||||||
- I dont like the current system for hosts importing their main user
|
|
||||||
- I could rework hostSpecs so its imported since flake and manage it like that?
|
|
||||||
- or just rework the users/default and the hosts/core to just work different...
|
|
||||||
- Fix up how DEs are configured, its not modular at all rn, i need to be able to select the DE from hostSpec and it should be able to change config per user
|
|
||||||
- decouple /pool from places its not needed, or should be optional
|
|
||||||
- some users should not have access to pool or just cant access it cuz not local
|
|
||||||
- ssh keys are not setup per user
|
|
||||||
- should probably fix
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
let
|
|
||||||
hostSpec = config.hostSpec;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
users.groups = {
|
|
||||||
ryot = {
|
|
||||||
gid = 1004;
|
|
||||||
members = [ "${hostSpec.username}" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set a temp password for use by minimal builds like installer and iso
|
|
||||||
users.users.${hostSpec.username} = {
|
|
||||||
isNormalUser = true;
|
|
||||||
hashedPassword = hostSpec.hashedPassword;
|
|
||||||
group = "ryot";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
let
|
|
||||||
hostSpec = config.hostSpec;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
users.groups = {
|
|
||||||
ryot = {
|
|
||||||
gid = 1004;
|
|
||||||
members = [ "${hostSpec.username}" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set a temp password for use by minimal builds like installer and iso
|
|
||||||
users.users.${hostSpec.username} = {
|
|
||||||
isNormalUser = true;
|
|
||||||
hashedPassword = hostSpec.hashedPassword;
|
|
||||||
group = "ryot";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
let
|
|
||||||
hostSpec = config.hostSpec;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
users.groups = {
|
|
||||||
ryot = {
|
|
||||||
gid = 1004;
|
|
||||||
members = [ "${hostSpec.username}" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set a temp password for use by minimal builds like installer and iso
|
|
||||||
users.users.${hostSpec.username} = {
|
|
||||||
isNormalUser = true;
|
|
||||||
hashedPassword = hostSpec.hashedPassword;
|
|
||||||
group = "ryot";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -16,11 +16,12 @@ in
|
||||||
users.users.${username} = {
|
users.users.${username} = {
|
||||||
name = hostSpec.username;
|
name = hostSpec.username;
|
||||||
shell = _shell;
|
shell = _shell;
|
||||||
|
|
||||||
# These get placed into /etc/ssh/authorized_keys.d/<name> on nixos
|
# These get placed into /etc/ssh/authorized_keys.d/<name> on nixos
|
||||||
openssh.authorizedKeys.keys = pubKeys;
|
openssh.authorizedKeys.keys = pubKeys;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create ssh directory when homemanager is not loaded
|
# Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal)
|
||||||
systemd.tmpfiles.rules =
|
systemd.tmpfiles.rules =
|
||||||
let
|
let
|
||||||
user = config.users.users.${username}.name;
|
user = config.users.users.${username}.name;
|
||||||
|
@ -30,6 +31,7 @@ in
|
||||||
"d ${homeDir}/.ssh 0750 ${user} ${group} -"
|
"d ${homeDir}/.ssh 0750 ${user} ${group} -"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# No matter what environment we are in we want these tools
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
}
|
}
|
||||||
# Import the user's personal/home configurations, unless the environment is minimal
|
# Import the user's personal/home configurations, unless the environment is minimal
|
||||||
|
|
Loading…
Add table
Reference in a new issue