Change: system dir name to hosts

This commit is contained in:
ooks-io 2024-01-13 22:59:18 +13:00
parent 682a19b13c
commit 10a6fe5adc
19 changed files with 0 additions and 0 deletions

View file

@ -1,31 +0,0 @@
{ config, inputs, pkgs, lib, ... }:
let
inherit (config.networking) hostName;
isClean = inputs.self ? rev;
in
{
system.autoUpgrade = {
enable = isClean;
dates = "hourly";
flags = [
"--refresh"
];
flake = "github:ooks-io/nix#${hostName};
};
# Only run if current config (self) is older than the new one.
systemd.services.nixos-upgrade = lib.mkIf config.system.autoUpgrade.enable {
serviceConfig.ExecCondition = lib.getExe (
pkgs.writeShellScriptBin "check-date" ''
lastModified() {
nix flake metadata "$1" --refresh --json | ${lib.getExe pkgs.jq} '.lastModified'
}
test "$(lastModified "${config.system.autoUpgrade.flake}")" -gt "$(lastModified "self")"
''
);
};
}

View file

@ -1,29 +0,0 @@
{ inputs, outputs, ... }: {
imports = [
inputs.home-manager.nixosModules.home-manager
./nix.nix
./fish.nix
./locale.nix
./security.nix
./systemdboot.nix
./pipewire.nix
# ./auto-upgrade.nix # still needs some work
];
home-manager.extraSpecialArgs = { inherit inputs outputs; };
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
permittedInsecurePackages = [
"openssl-1.1.1u"
];
};
};
#hardware.enableRedistibutableFirmware = true;
environment.enableAllTerminfo = true;
}

View file

@ -1,10 +0,0 @@
{
programs.fish = {
enable = true;
vendor = {
completions.enable = true;
config.enable = true;
functions.enable = true;
};
};
}

View file

@ -1,9 +0,0 @@
{ lib, ... }: {
i18n = {
defaultLocale = lib.mkDefault "en_US.UTF-8";
supportedLocales = lib.mkDefault [
"en_US.UTF-8/UTF-8"
];
};
time.timeZone = lib.mkDefault "Pacific/Auckland";
}

View file

@ -1,26 +0,0 @@
{ inputs, lib, ... }:
{
nix = {
settings = {
trusted-users = [ "root" "@wheel" ];
auto-optimise-store = lib.mkDefault true;
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
warn-dirty = false;
system-features = [ "kvm" "big-parallel" "nixos-test" ];
flake-registry = "";
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 2d";
};
# Add each flake input as a registry
# To make nix3 commands consistent with the flake
registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
# Add nixpkgs input to NIX_PATH
# This lets nix2 commands still use <nixpkgs>
nixPath = [ "nixpkgs=${inputs.nixpkgs.outPath}" ];
};
}

View file

@ -1,11 +0,0 @@
{
security.rtkit.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
}

View file

@ -1,57 +0,0 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
polkit_gnome
];
programs = {
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
_1password = {
enable = true;
};
_1password-gui = {
enable = true;
polkitPolicyOwners = [ "ooks" ];
};
};
security = {
polkit = {
enable = true;
};
sudo = {
enable = true;
extraConfig = ''
ooks ALL=(ALL) NOPASSWD:ALL
'';
};
};
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View file

@ -1,9 +0,0 @@
{
boot.loader = {
systemd-boot = {
enable = true;
consoleMode = "max";
};
efi.canTouchEfiVariables = true;
};
}

View file

@ -1,13 +0,0 @@
{ config, lib, pkgs, ... }:
{
hardware.bluetooth.enable = true;
# services.blueman.enable = true;
environment.systemPackages = with pkgs; [
galaxy-buds-client
live-buds-cli
bluetuith
];
}

View file

@ -1,36 +0,0 @@
{ pkgs, ... }:
let
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
in
{
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${tuigreet} --time --remember --cmd Hyprland";
user = "greeter";
};
};
};
# this is a life saver.
# literally no documentation about this anywhere.
# might be good to write about this...
# https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
systemd.services.greetd.serviceConfig = {
Type = "idle";
StandardInput = "tty";
StandardOutput = "tty";
StandardError = "journal"; # Without this errors will spam on screen
# Without these bootlogs will spam on screen
TTYReset = true;
TTYVHangup = true;
TTYVTDisallocate = true;
};
#environment.etc."greetd/environments".text = ''
# Hyprland
# fish
# bash
#'';
}

View file

@ -1,28 +0,0 @@
{config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
virt-manager
virt-viewer
spice
spice-gtk
spice-protocol
win-virtio
win-spice
gnome.adwaita-icon-theme
];
virtualisation = {
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ];
};
};
spiceUSBRedirection.enable = true;
};
services.spice-vdagentd.enable = true;
}

View file

@ -1,27 +0,0 @@
{ pkgs, config, ... }:
let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in
{
users.users.ooks = {
isNormalUser = true;
shell = pkgs.fish;
extraGroups = [
"wheel"
"video"
"audio"
] ++ ifTheyExist [
"git"
"network"
"libvirtd"
"deluge"
];
packages = [ pkgs.home-manager ];
};
home-manager.users.ooks = import ../../../../home/user/ooks/${config.networking.hostName};
services.geoclue2.enable = true;
security.pam.services = { swaylock = { }; };
}

View file

@ -1,88 +0,0 @@
{ inputs, pkgs, ... }:
{
imports = [
inputs.hardware.nixosModule.common-cpu-intel
inputs.hardware.nixosModule.common-pc-ssd
./hardware-configuration.nix # Hardware configuration generated by nix-generate-config
../common/user/ooks # Add and configure the user "ooks"
../common/base # Default system programs
../common/features/vm.nix # Adds VM support
../common/features/greetd.nix # Adds login-manager greetd
];
networking = {
hostName = "ooksdesk"; # Define hostname
networkmanager.enable = true; # Networking tool
};
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_zen; # Kernel version
supportedFilesystems = ["ntfs"]; # Add ntfs support
};
programs = {
dconf.enable = true; # Low level configuration system
kdeconnect.enable = true; # Adds android connectivity over local network
gnupg.agent = { # Daemon to request and cache passwords for the keychain
enable = true;
enableSSHSupport = true;
};
};
xdg.portal = { # Allows cross-desktop communication
enable = true;
wlr.enable = true; # Adds Wayland support
};
hardware = {
opengl = { # Used for rendering 2D and 3D graphics
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [nvidia-vaapi-driver]; # Adds nvidia VAAPI driver for hardware-accelerated video decoding
};
nvidia = {
open = true; # Use Nvidia's open source kernel module
modesetting.enable = true; # Enables kernel modesettings
nvidiaSettings = true; # Nvidia's settings GUI
};
};
services = {
dbus = { # Allows communication between applications
enable = true;
packages = [ pkgs.gcr ]; # GNOME cryptographic services, used for managing cryptographic keys
};
xserver.videoDrivers = ["nvidia"]; # Required for Nvidia to work
udisks2 = { # Used to manage mounting of temp storage
enable = true;
mountOnMedia = true; # Auto mounts device to /media
};
};
environment = {
variables = { # Environment variables for nvidia
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
};
systemPackages = with pkgs; [ # Vulkan packages
vulkan-loader
vulkan-validation-layers
vulkan-tools
];
};
system = {
stateVersion = "22.05";
};
}

View file

@ -1,53 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
fsType = "btrfs";
options = [ "subvol=root" ];
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/fe7ea7fd-b531-4c00-8123-99f7ea855800";
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/57C5-11E7";
fsType = "vfat";
};
fileSystems."/persist" =
{ device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
fsType = "btrfs";
options = [ "subvol=persist" ];
};
swapDevices = [ ];
# 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.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,116 +0,0 @@
{ config, inputs, pkgs, ... }:
# Imports
# -------------------------------------------------------------------------------------------------
{
imports = [
inputs.hardware.nixosModules.gpd-micropc
./hardware-configuration.nix
../common/user/ooks
../common/base
../common/features/bluetooth.nix
../common/features/vm.nix
../common/features/greetd.nix
];
# Hostname and networking
# -------------------------------------------------------------------------------------------------
networking = {
hostName = "ooksmicro";
networkmanager.enable = true;
};
# Printing
# -------------------------------------------------------------------------------------------------
services.printing.enable = true;
# Kernel
# ------------------------------------------------------------------------------------------------
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
kernelParams = [ "fbcon=rotate:1" ];
};
# Laptop Programs
# -------------------------------------------------------------------------------------------------
powerManagement.powertop.enable = true;
programs = {
light.enable = true;
dconf.enable = true;
kdeconnect.enable = true;
};
# XDG Portal
# ------------------------------------------------------------------------------------------------
xdg.portal = {
enable = true;
wlr.enable = true;
};
hardware = {
opengl = {
enable = true;
};
};
# gnupg
# -------------------------------------------------------------------------------------------------
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Services
# -------------------------------------------------------------------------------------------------
services = {
thermald = {
enable = true;
};
logind = {
lidSwitch = "suspend";
};
dbus = {
enable = true;
packages = [ pkgs.gcr ];
};
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
};
# System Version
# -------------------------------------------------------------------------------------------------
system = {
stateVersion = "22.05";
};
}

View file

@ -1,61 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
fsType = "btrfs";
options = [ "subvol=root" ];
};
boot.initrd.luks.devices."cryptnix".device = "/dev/disk/by-uuid/014d725c-bf13-40a2-a9ab-0dd6185a95f6";
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/persist" =
{ device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
fsType = "btrfs";
options = [ "subvol=persist" ];
};
fileSystems."/swap" =
{ device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/F356-6F9C";
fsType = "vfat";
};
swapDevices = [ ];
# 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.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp61s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wwan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,104 +0,0 @@
{ config, inputs, pkgs, ... }:
# Imports
# -------------------------------------------------------------------------------------------------
{
imports = [
inputs.hardware.nixosModules.lenovo-thinkpad-t480s
./hardware-configuration.nix
../common/user/ooks
../common/base
../common/features/bluetooth.nix
../common/features/vm.nix
../common/features/greetd.nix
];
# Hostname and networking
# -------------------------------------------------------------------------------------------------
networking = {
hostName = "ookst480s";
networkmanager.enable = true;
};
# Printing
# -------------------------------------------------------------------------------------------------
services.printing.enable = true;
# Kernel
# ------------------------------------------------------------------------------------------------
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
};
# Laptop Programs
# -------------------------------------------------------------------------------------------------
powerManagement.powertop.enable = true;
programs = {
light.enable = true;
dconf.enable = true;
kdeconnect.enable = true;
};
hardware = {
opengl = {
enable = true;
};
};
# gnupg
# -------------------------------------------------------------------------------------------------
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Services
# -------------------------------------------------------------------------------------------------
services = {
logind = {
lidSwitch = "suspend";
};
dbus = {
enable = true;
packages = [ pkgs.gcr ];
};
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
};
# System Version
# -------------------------------------------------------------------------------------------------
system = {
stateVersion = "22.05";
};
}

View file

@ -1,62 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
fsType = "btrfs";
options = [ "subvol=root" ];
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/3ea21f10-f705-457c-8366-a8268f658ba6";
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/persist" =
{ device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
fsType = "btrfs";
options = [ "subvol=persist" ];
};
fileSystems."/swap" =
{ device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/45D8-8DC3";
fsType = "vfat";
};
swapDevices = [{
device = "/swap/swapfile";
size = 8196;
}];
# 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.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wwp0s20f0u2c2.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,135 +0,0 @@
{ config, inputs, pkgs, ... }:
# Imports
# -------------------------------------------------------------------------------------------------
{
imports = [
inputs.hardware.nixosModules.common-pc-ssd
inputs.hardware.nixosModules.common-cpu-intel
inputs.hardware.nixosModules.common-gpu-intel
./hardware-configuration.nix
../common/user/ooks
../common/base
../common/features/bluetooth.nix
../common/features/greetd.nix
];
# Hostname and networking
# -------------------------------------------------------------------------------------------------
networking = {
hostName = "ooksx1";
networkmanager.enable = true;
};
# Printing
# -------------------------------------------------------------------------------------------------
services.printing.enable = true;
# Kernel
# ------------------------------------------------------------------------------------------------
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
};
# Laptop Programs
# -------------------------------------------------------------------------------------------------
powerManagement.powertop.enable = true;
programs = {
light.enable = true;
dconf.enable = true;
kdeconnect.enable = true;
};
# XDG Portal
# ------------------------------------------------------------------------------------------------
xdg.portal = {
enable = true;
wlr.enable = true;
};
hardware = {
opengl = {
enable = true;
};
};
# gnupg
# -------------------------------------------------------------------------------------------------
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Services
# -------------------------------------------------------------------------------------------------
services = {
logind = {
lidSwitch = "suspend";
};
dbus = {
enable = true;
packages = [ pkgs.gcr ];
};
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
};
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
# Firewall
# -------------------------------------------------------------------------------------------------
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# System Version
# -------------------------------------------------------------------------------------------------
system = {
stateVersion = "22.05";
};
}