chore: add a new host and make a few adjustments
This commit is contained in:
parent
d084d841ce
commit
688acfe889
16 changed files with 195 additions and 65 deletions
33
hosts/thegeneralist-central-mbp/configuration.nix
Normal file
33
hosts/thegeneralist-central-mbp/configuration.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ self, config, pkgs, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ./jellyfin.nix ];
|
||||
|
||||
users.knownUsers = [
|
||||
"central"
|
||||
];
|
||||
|
||||
users.users.central = {
|
||||
name = "central";
|
||||
home = "/Users/central";
|
||||
shell = pkgs.zsh;
|
||||
uid = 502;
|
||||
openssh.authorizedKeys.keys = let
|
||||
inherit (import ../../keys.nix) thegeneralist;
|
||||
in [ thegeneralist ];
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
backupFileExtension = "home.bak";
|
||||
users.central.home = {
|
||||
stateVersion = "25.11";
|
||||
homeDirectory = "/Users/central";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = 6;
|
||||
}
|
||||
30
hosts/thegeneralist-central-mbp/default.nix
Normal file
30
hosts/thegeneralist-central-mbp/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
lib: inputs: self: lib.darwinSystem {
|
||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
||||
modules = [
|
||||
# Extensions: nixosModules, darwinModules, overlays
|
||||
({ pkgs, lib, inputs, ... }: let
|
||||
inherit (lib) attrValues hasAttrByPath getAttrFromPath filter;
|
||||
|
||||
collect = packagePath: (attrValues inputs)
|
||||
|> filter (hasAttrByPath packagePath)
|
||||
|> map (getAttrFromPath packagePath);
|
||||
|
||||
modules = collect [ "darwinModules" "default" ];
|
||||
extensions = {
|
||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
||||
imports = modules;
|
||||
};
|
||||
in extensions)
|
||||
|
||||
./configuration.nix
|
||||
|
||||
# Modules
|
||||
({ pkgs, ... }: let
|
||||
inherit (lib) filter hasSuffix;
|
||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
||||
darwinModules = lib.filesystem.listFilesRecursive ../../modules/darwin |> filter (hasSuffix ".nix");
|
||||
in {
|
||||
imports = commonModules ++ darwinModules;
|
||||
})
|
||||
];
|
||||
}
|
||||
11
hosts/thegeneralist-central-mbp/hardware-configuration.nix
Normal file
11
hosts/thegeneralist-central-mbp/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
# networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-darwin";
|
||||
}
|
||||
|
|
@ -5,17 +5,14 @@
|
|||
{ self, config, pkgs, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ./jellyfin.nix ];
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
users.knownUsers = [
|
||||
"central"
|
||||
];
|
||||
|
||||
users.users.central = {
|
||||
name = "central";
|
||||
home = "/Users/central";
|
||||
users.users.thegeneralist = {
|
||||
isNormalUser = true;
|
||||
description = "thegeneralist";
|
||||
extraGroups = [ "wheel" "audio" "video" "input" "scanner" ];
|
||||
shell = pkgs.zsh;
|
||||
uid = 502;
|
||||
home = "/home/thegeneralist";
|
||||
openssh.authorizedKeys.keys = let
|
||||
inherit (import ../../keys.nix) thegeneralist;
|
||||
in [ thegeneralist ];
|
||||
|
|
@ -23,11 +20,34 @@
|
|||
|
||||
home-manager = {
|
||||
backupFileExtension = "home.bak";
|
||||
users.central.home = {
|
||||
stateVersion = "25.11";
|
||||
homeDirectory = "/Users/central";
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
users = {
|
||||
thegeneralist = import (self + /modules/home);
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = 6;
|
||||
age.secrets.hostkey.file = ./hostkey.age;
|
||||
services.openssh.hostKeys = [{
|
||||
type = "ed25519";
|
||||
path = config.age.secrets.hostkey.path;
|
||||
}];
|
||||
|
||||
# Some programs
|
||||
services.libinput.enable = true;
|
||||
programs.firefox.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# useXkbConfig = true; # use xkb.options in tty.
|
||||
# };
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
lib: inputs: self: lib.darwinSystem {
|
||||
lib: inputs: self: lib.nixosSystem {
|
||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
||||
modules = [
|
||||
# Extensions: nixosModules, darwinModules, overlays
|
||||
|
|
@ -9,7 +9,7 @@ lib: inputs: self: lib.darwinSystem {
|
|||
|> filter (hasAttrByPath packagePath)
|
||||
|> map (getAttrFromPath packagePath);
|
||||
|
||||
modules = collect [ "darwinModules" "default" ];
|
||||
modules = collect [ "nixosModules" "default" ];
|
||||
extensions = {
|
||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
||||
imports = modules;
|
||||
|
|
@ -22,9 +22,9 @@ lib: inputs: self: lib.darwinSystem {
|
|||
({ pkgs, ... }: let
|
||||
inherit (lib) filter hasSuffix;
|
||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
||||
darwinModules = lib.filesystem.listFilesRecursive ../../modules/darwin |> filter (hasSuffix ".nix");
|
||||
linuxModules = lib.filesystem.listFilesRecursive ../../modules/linux |> filter (hasSuffix ".nix");
|
||||
in {
|
||||
imports = commonModules ++ darwinModules;
|
||||
imports = commonModules ++ linuxModules;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,37 @@
|
|||
{ lib, ... }:
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
|
||||
# Wi-Fi stuff
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/dev/disk/by-label/swap";
|
||||
}];
|
||||
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
# networking.useDHCP = lib.mkDefault true;
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp0s20f0u5.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-darwin";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
}
|
||||
|
|
|
|||
BIN
hosts/thegeneralist-central/hostkey.age
Normal file
BIN
hosts/thegeneralist-central/hostkey.age
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue