Adding changes for complete support of multiple host setups

This commit is contained in:
Tyler Kelley 2024-04-03 19:01:52 -05:00
parent 2dbfe4e5b3
commit abce019203
43 changed files with 225 additions and 83 deletions

View File

@ -1,8 +1,8 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let
palette = config.colorScheme.palette;
inherit (import ../../options.nix) alacritty;
inherit (import ../../hosts/${host}/options.nix) alacritty;
in lib.mkIf (alacritty == true) {
programs.alacritty = {
enable = true;

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../options.nix) flakeDir flakePrev
let inherit (import ../../hosts/${host}/options.nix) flakeDir flakePrev
hostname flakeBackup theShell; in
lib.mkIf (theShell == "bash") {
# Configure Bash

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) blender; in
let inherit (import ../../hosts/${host}/options.nix) blender; in
lib.mkIf (blender == true) {
home.packages = with pkgs; [
pkgs.blender-hip

View File

@ -1,9 +1,9 @@
{ pkgs, config, lib, inputs, ... }:
{ pkgs, config, lib, inputs, host, ... }:
let
theme = config.colorScheme.palette;
hyprplugins = inputs.hyprland-plugins.packages.${pkgs.system};
inherit (import ../../options.nix)
inherit (import ../../hosts/${host}/options.nix)
browser cpuType gpuType
wallpaperDir borderAnim
theKBDLayout terminal

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) kdenlive; in
let inherit (import ../../hosts/${host}/options.nix) kdenlive; in
lib.mkIf (kdenlive == true) {
home.packages = with pkgs; [
pkgs.kdenlive

View File

@ -1,8 +1,8 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let
palette = config.colorScheme.palette;
inherit (import ../../options.nix) alacritty wezterm kitty;
inherit (import ../../hosts/${host}/options.nix) alacritty wezterm kitty;
in lib.mkIf (wezterm == false && alacritty == false
|| kitty == true) {
# Configure Kitty

View File

@ -1,7 +1,7 @@
{ pkgs, config, username, ... }:
{ pkgs, config, username, host, ... }:
let
inherit (import ../../options.nix)
inherit (import ../../hosts/${host}/options.nix)
browser wallpaperDir wallpaperGit flakeDir;
in {
# Install Packages For The User
@ -17,13 +17,13 @@ in {
(import ./../scripts/squirtle.nix { inherit pkgs; })
(import ./../scripts/wallsetter.nix { inherit pkgs; inherit wallpaperDir;
inherit username; inherit wallpaperGit; })
(import ./../scripts/themechange.nix { inherit pkgs; inherit flakeDir; })
(import ./../scripts/themechange.nix { inherit pkgs; inherit flakeDir; inherit host; })
(import ./../scripts/theme-selector.nix { inherit pkgs; })
(import ./../scripts/nvidia-offload.nix { inherit pkgs; })
(import ./../scripts/web-search.nix { inherit pkgs; })
(import ./../scripts/rofi-launcher.nix { inherit pkgs; })
(import ./../scripts/screenshootin.nix { inherit pkgs; })
(import ./../scripts/list-hypr-bindings.nix { inherit pkgs; })
(import ./../scripts/list-hypr-bindings.nix { inherit pkgs; inherit host; })
];
programs.gh.enable = true;

View File

@ -1,7 +1,7 @@
{ pkgs, config, ... }:
{ pkgs, config, host, ... }:
let
inherit (import ../../options.nix) screenshotDir;
inherit (import ../../hosts/${host}/options.nix) screenshotDir;
in {
home.file.".config/swappy/config".text = ''
[Default]

View File

@ -1,9 +1,9 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let
palette = config.colorScheme.palette;
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../options.nix) bar-number clock24h waybarAnim;
inherit (import ../../hosts/${host}/options.nix) bar-number clock24h waybarAnim;
in with lib; {
# Configure & Theme Waybar
programs.waybar = {

View File

@ -1,8 +1,8 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let
palette = config.colorScheme.palette;
inherit (import ../../options.nix) wezterm;
inherit (import ../../hosts/${host}/options.nix) wezterm;
in lib.mkIf (wezterm == true) {
home.packages = with pkgs; [
pkgs.wezterm

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) enableZeroAD; in
let inherit (import ../../hosts/${host}/options.nix) enableZeroAD; in
lib.mkIf (enableZeroAD == true) {
home.packages = with pkgs; [
zeroad

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../options.nix) flakeDir theShell hostname; in
let inherit (import ../../hosts/${host}/options.nix) flakeDir theShell hostname; in
lib.mkIf (theShell == "zsh") {
programs.zsh = {
enable = true;

View File

@ -1,7 +1,7 @@
{ pkgs, ... }:
{ pkgs, host, ... }:
let
inherit ( import ../../options.nix ) terminal browser;
inherit ( import ../../hosts/${host}/options.nix ) terminal browser;
in
pkgs.writeShellScriptBin "list-hypr-bindings" ''
yad --width=800 --height=650 \

View File

@ -1,7 +1,7 @@
{ pkgs, ... }:
{ pkgs, host, ... }:
let
inherit (import ../../options.nix) flakeDir hostname;
inherit (import ../../hosts/${host}/options.nix) flakeDir hostname;
in
pkgs.writeShellScriptBin "themechange" ''
if [[ ! $@ ]];then

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) gpuType; in
let inherit (import ../../hosts/${host}/options.nix) gpuType; in
lib.mkIf ("${gpuType}" == "amd") {
systemd.tmpfiles.rules = [
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"

View File

@ -1,6 +1,6 @@
{ pkgs, config, username, ... }:
{ pkgs, config, username, host, ... }:
let inherit (import ../../options.nix) wallpaperDir wallpaperGit; in
let inherit (import ../../hosts/${host}/options.nix) wallpaperDir wallpaperGit; in
{
# system.userActivationScripts = {
# gitwallpapers.text = ''

View File

@ -1,6 +1,6 @@
{ pkgs, config, ... }:
{ pkgs, config, host, ... }:
let inherit (import ../../options.nix) theKBDVariant
let inherit (import ../../hosts/${host}/options.nix) theKBDVariant
theKBDLayout theSecondKBDLayout; in
{
services.xserver = {

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../options.nix) distrobox; in
let inherit (import ../../hosts/${host}/options.nix) distrobox; in
lib.mkIf (distrobox == true) {
virtualisation.podman = {
enable = true;

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) flatpak; in
let inherit (import ../../hosts/${host}/options.nix) flatpak; in
lib.mkIf (flatpak == true) {
services.flatpak.enable = true;

View File

@ -1,6 +1,6 @@
{ config, lib, ... }:
{ config, lib, host, ... }:
let inherit (import ../../options.nix) localHWClock; in
let inherit (import ../../hosts/${host}/options.nix) localHWClock; in
lib.mkIf (localHWClock == true) {
time.hardwareClockInLocalTime = true;
}

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) gpuType; in
let inherit (import ../../hosts/${host}/options.nix) gpuType; in
lib.mkIf ("${gpuType}" == "intel-amd") {
nixpkgs.config.packageOverrides =
pkgs: {

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) gpuType; in
let inherit (import ../../hosts/${host}/options.nix) gpuType; in
lib.mkIf ("${gpuType}" == "intel") {
nixpkgs.config.packageOverrides =
pkgs: {

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) intel-bus-id nvidia-bus-id gpuType; in
let inherit (import ../../hosts/${host}/options.nix) intel-bus-id nvidia-bus-id gpuType; in
lib.mkIf ("${gpuType}" == "intel-nvidia") {
nixpkgs.config.packageOverrides =
pkgs: {

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "default") {
boot.kernelPackages = pkgs.linuxPackages;
}

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "latest") {
boot.kernelPackages = pkgs.linuxPackages_latest;
}

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "lqx") {
boot.kernelPackages = pkgs.linuxPackages_lqx;
}

View File

@ -1,9 +1,9 @@
# For the adventurous people
# It's not listed in the list of possible options,
# but the ones who want to try it can do so.
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "testing") {
boot.kernelPackages = pkgs.linuxPackages_testing;
}

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "xanmod") {
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
}

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, host, ... }:
let inherit (import ../../../options.nix) theKernel; in
let inherit (import ../../../hosts/${host}/options.nix) theKernel; in
lib.mkIf (theKernel == "zen") {
boot.kernelPackages = pkgs.linuxPackages_zen;
}

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) logitech; in
let inherit (import ../../hosts/${host}/options.nix) logitech; in
lib.mkIf (logitech == true) {
hardware.logitech.wireless.enable = true;
hardware.logitech.wireless.enableGraphical = true;

View File

@ -1,6 +1,6 @@
{ config, lib, ... }:
{ config, lib, host, ... }:
let inherit (import ../../options.nix) nfs nfsMountPoint nfsDevice; in
let inherit (import ../../hosts/${host}/options.nix) nfs nfsMountPoint nfsDevice; in
lib.mkIf (nfs == true) {
fileSystems."${nfsMountPoint}" = {
device = "${nfsDevice}";

View File

@ -1,6 +1,6 @@
{ config, lib, options, ... }:
{ config, lib, options, host, ... }:
let inherit (import ../../options.nix) ntp; in
let inherit (import ../../hosts/${host}/options.nix) ntp; in
lib.mkIf (ntp == true) {
networking.timeServers = options.networking.timeServers.default ++ [ "pool.ntp.org" ];
}

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, gpuType, ... }:
{ pkgs, config, lib, gpuType, host, ... }:
let inherit (import ../../options.nix) gpuType; in
let inherit (import ../../hosts/${host}/options.nix) gpuType; in
lib.mkIf ("${gpuType}" == "nvidia") {
environment.systemPackages = with pkgs; [
nvtop

View File

@ -1,7 +1,7 @@
{ config, pkgs, lib, username, ... }:
{ config, pkgs, lib, username, host, ... }:
let
inherit ( import ../../options.nix ) username;
inherit ( import ../../hosts/${host}/options.nix ) username;
in
{
environment.persistence."/nix/persist" = {

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, username, ... }:
{ config, lib, pkgs, username, host, ... }:
let inherit (import ../../options.nix) printer; in
let inherit (import ../../hosts/${host}/options.nix) printer; in
lib.mkIf (printer == true) {
services = {
printing.enable = true;

View File

@ -1,7 +1,7 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let
inherit (import ../../options.nix) python;
inherit (import ../../hosts/${host}/options.nix) python;
my-python-packages = ps: with ps; [
pandas
requests

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) syncthing username userHome; in
let inherit (import ../../hosts/${host}/options.nix) syncthing username userHome; in
lib.mkIf (syncthing == true) {
services = {
syncthing = {

View File

@ -1,6 +1,6 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, host, ... }:
let inherit (import ../../options.nix) cpuType; in
let inherit (import ../../hosts/${host}/options.nix) cpuType; in
lib.mkIf ("${cpuType}" == "vm") {
services.qemuGuest.enable = true;
services.spice-vdagentd.enable = true;

View File

@ -22,7 +22,7 @@
let
system = "x86_64-linux";
host = "hyprnix";
inherit (import ./${host}/options.nix) username hostname;
inherit (import ./hosts/${host}/options.nix) username hostname;
pkgs = import nixpkgs {
inherit system;

View File

@ -1,7 +1,7 @@
{ config, pkgs, inputs, username,
gtkThemeFromScheme, ... }:
host, gtkThemeFromScheme, ... }:
let
inherit (import ./options.nix)
inherit (import ./hosts/${host}/options.nix)
gitUsername gitEmail theme browser
wallpaperDir wallpaperGit flakeDir
waybarStyle;

View File

@ -0,0 +1,51 @@
# 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" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/362d23fa-3cbd-4ee1-9c27-ea8c30242ec3";
fsType = "ext4";
};
fileSystems."/home/zaney/Documents" =
{ device = "/dev/disk/by-uuid/35f6d96f-0837-4868-8ce5-8e1df5e3b2f3";
fsType = "ext4";
};
fileSystems."/home/zaney/Videos" =
{ device = "/dev/disk/by-uuid/cbe1beaf-6c7f-4251-ad5c-2897aecc367d";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-cdf913d6-7149-4a8f-9461-61c394b2f5af".device = "/dev/disk/by-uuid/cdf913d6-7149-4a8f-9461-61c394b2f5af";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/C598-AF28";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/8160cef0-c5eb-4caa-9ef5-56a5b4eb51b8"; }
];
# 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.enp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

91
hosts/default/options.nix Normal file
View File

@ -0,0 +1,91 @@
# PLEASE READ THE WIKI FOR DETERMINING
# WHAT TO PUT HERE AS OPTIONS.
# https://gitlab.com/Zaney/zaneyos/-/wikis/Setting-Options
let
setUsername = "defaultuser";
setHostname = "nixos";
in {
# No Change Needed Below
username = "${setUsername}";
hostname = "${setHostname}";
userHome = "/home/${setUsername}";
flakeDir = "/home/${setUsername}/zaneyos";
wallpaperGit = "https://gitlab.com/Zaney/my-wallpapers.git"; # Can be changed IF you know what your doing
wallpaperDir = "/home/${setUsername}/Pictures/Wallpapers";
screenshotDir = "/home/${setUsername}/Pictures/Screenshots";
flakePrev = "/home/${setUsername}/.zaneyos-previous";
flakeBackup = "/home/${setUsername}/.zaneyos-backup";
# Git Configuration ( For Pulling Software Repos )
gitUsername = "John Smith";
gitEmail = "johnsmith@gmail.com";
# Base16 Theme
theme = "atelier-cave";
# Hyprland Settings
borderAnim = true; # Enable / Disable Hyprland Border Animation
extraMonitorSettings = "";
# Waybar Settings
waybarAnim = true; # Enable / Disable Waybar Animation CSS
bar-number = true; # Enable / Disable Workspace Numbers In Waybar
# System Settings
clock24h = false;
theLocale = "en_US.UTF-8";
theKBDLayout = "us";
theSecondKBDLayout = "de";
theKBDVariant = "";
theLCVariables = "en_US.UTF-8";
theTimezone = "America/Chicago";
theShell = "bash"; # Possible options: bash, zsh
theKernel = "zen"; # Possible options: default, latest, lqx, xanmod, zen
sdl-videodriver = "x11"; # Either x11 or wayland ONLY. Games might require x11 set here
# For Hybrid Systems intel-nvidia
# Should Be Used As gpuType
cpuType = "intel";
gpuType = "intel";
# Nvidia Hybrid Devices ONLY NEEDED FOR HYBRID SYSTEMS!
intel-bus-id = "PCI:1:0:0";
nvidia-bus-id = "PCI:0:2:0";
# Enable / Setup NFS
nfs = false;
nfsMountPoint = "/mnt/nas";
nfsDevice = "nas:/volume1/nas";
# NTP & HWClock Settings
ntp = true;
localHWClock = false;
# Enable Printer & Scanner Support
printer = true;
# Program Options
browser = "firefox"; # Install & Set Default Browser
terminal = "kitty"; # Set Default System Terminal
distrobox = false;
flatpak = false;
kdenlive = false;
blender = false;
enableZeroAD = false;
# Enable Support For
# Logitech Devices
logitech = false;
# Enable Terminals ( If You Disable All You Get Kitty )
wezterm = false;
alacritty = false;
kitty = true;
# Enable Python & PyCharm
python = false;
# Enable SyncThing
syncthing = false;
}

View File

@ -2,7 +2,7 @@
username, hostname, host, ... }:
let
inherit (import ./options.nix)
inherit (import ./hosts/${host}/options.nix)
theLocale theTimezone gitUsername
theShell wallpaperDir wallpaperGit
theLCVariables theKBDLayout flakeDir
@ -10,7 +10,7 @@ let
in {
imports =
[
./${host}/hardware.nix
./hosts/${host}/hardware.nix
./config/system
];