Init gojo host configs

This commit is contained in:
Chris Toph 2025-05-28 22:07:55 -04:00
parent 6cd181ecb9
commit 7301574365
8 changed files with 328 additions and 0 deletions

View file

@ -0,0 +1,41 @@
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"user-theme@gnome-shell-extensions.gcampax.github.com"
"dash-in-panel@fthx"
"AlphabeticalAppGrid@stuarthayhurst"
"color-picker@tuberry"
"monitor-brightness-volume@ailin.nemui"
"quicksettings-audio-devices-renamer@marcinjahn.com"
"Vitals@CoreCoding.com"
"appindicatorsupport@rgcjonas.gmail.com"
"paperwm@paperwm.github.com"
"just-perfection-desktop@just-perfection"
"pano@elhan.io"
"blur-my-shell@aunetx"
"quicksettings-audio-devices-hider@marcinjahn.com"
"undecorate@sun.wxg@gmail.com"
];
favorite-apps = [
"com.mitchellh.ghostty.desktop"
"org.gnome.Nautilus.desktop"
"win11.desktop"
"zen.desktop"
"code.desktop"
"spotify.desktop"
"discord.desktop"
"org.telegram.desktop.desktop"
"steam.desktop"
"Ryujinx.desktop"
"Marvel Rivals.desktop"
];
last-selected-power-profile = "performance";
};
}

View file

@ -0,0 +1,8 @@
{
# home.file.".config/monitors_source" = {
# source = ./monitors.xml;
# onChange = ''
# cp $HOME/.config/monitors_source $HOME/.config/monitors.xml
# '';
# };
}

View file

@ -0,0 +1,2 @@
<monitors version="2">
</monitors>

View file

@ -0,0 +1,32 @@
{
lib,
pkgs,
...
}:
{
imports = lib.flatten [
## Common Imports ##
(map lib.custom.relativeToRoot [
"home/global/common/browsers"
"home/global/common/gaming"
"home/global/common/gnome"
"home/global/common/vscode"
"home/global/common/xdg.nix"
])
## VM Specific ##
./config
];
## Packages with no needed configs ##
home.packages = builtins.attrValues {
inherit (pkgs)
## Media ##
cider # Apple Music
youtube-music
## Tools ##
inspector
;
};
}

View file

@ -0,0 +1,4 @@
{ lib, ... }:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -0,0 +1,75 @@
###############################################################
#
# Rune - Main Desktop
# NixOS running on Ryzen 9 7900X3D , Radeon RX 6950 XT, 32GB RAM
#
###############################################################
{
inputs,
lib,
config,
pkgs,
...
}:
let
username = "gio";
user = config.secretsSpec.users.${username};
in
{
imports = lib.flatten [
## Rune Only ##
inputs.chaotic.nixosModules.default
# ./config
## Hardware ##
./hardware.nix
inputs.hardware.nixosModules.common-cpu-amd
inputs.hardware.nixosModules.common-gpu-amd
inputs.hardware.nixosModules.common-pc-ssd
(map lib.custom.relativeToRoot [
## Required Configs ##
"hosts/global/core"
## Optional Configs ##
"hosts/global/common/audio.nix" # pipewire and cli controls
"hosts/global/common/bluetooth.nix"
"hosts/global/common/ddcutil.nix" # ddcutil for monitor controls
"hosts/global/common/gaming.nix" # steam, gamescope, gamemode, and related hardware
"hosts/global/common/gnome.nix"
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/global/common/plymouth.nix" # fancy boot screen
])
];
## Host Specifications ##
hostSpec = {
hostName = "gojo";
username = username;
hashedPassword = user.hashedPassword;
email = user.email;
handle = user.handle;
userFullName = user.fullName;
isServer = true;
};
networking = {
enableIPv6 = false;
};
## System-wide packages ##
programs.nix-ld.enable = true;
environment.systemPackages = with pkgs; [
asdf-vm
];
environment.sessionVariables = {
AMD_VULKAN_ICD = "RADV";
RADV_PERFTEST = "aco";
PROTON_USE_D9VK = 1;
};
# https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.11";
}

View file

@ -0,0 +1,101 @@
# 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.
{
pkgs,
inputs,
config,
lib,
modulesPath,
...
}:
{
imports = lib.flatten [
(modulesPath + "/installer/scan/not-detected.nix")
(map lib.custom.relativeToRoot [
"hosts/global/common/system/pool.nix"
])
];
## Boot ##
boot = {
loader = {
systemd-boot = {
enable = true;
# When using plymouth, initrd can expand by a lot each time, so limit how many we keep around
configurationLimit = lib.mkDefault 10;
};
efi.canTouchEfiVariables = true;
timeout = 3;
};
# Use the cachyos kernel for better performance
kernelPackages = pkgs.linuxPackages_cachyos;
initrd = {
systemd.enable = true;
verbose = false;
availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
kernelModules = [ ];
};
kernelModules = [
"kvm-amd"
"amdgpu"
];
extraModulePackages = [ ];
};
# For less permission issues with SSHFS
programs.fuse.userAllowOther = true;
# FIXME: Fix on first boot
# File system configurations
# fileSystems = {
# "/" = {
# device = "/dev/disk/by-uuid/d38c182c-6f05-4bf3-8a45-5532c10fd342";
# fsType = "ext4";
# };
# "/boot" = {
# device = "/dev/disk/by-uuid/5B39-A7CB";
# fsType = "vfat";
# options = [
# "fmask=0077"
# "dmask=0077"
# ];
# };
# };
# FIXME: Fix on first boot
# swapDevices = [ { device = "/dev/disk/by-uuid/6586847d-eba9-4317-9077-98ae9b2812c9"; } ];
# Time and networking configurations
time.hardwareClockInLocalTime = true; # Fixes windows dual-boot time issues
# 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.enp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableAllFirmware;
}
# STUFF ABOUT CHAOTIC NIX CACHE
# nix eval 'github:chaotic-cx/nyx/nyxpkgs-unstable#linuxPackages_cachyos.kernel.outPath'
# nix eval 'chaotic#linuxPackages_cachyos.kernel.outPath'
# nix eval '/pool/git/Nix/dot.nix#nixosConfigurations.rune.config.boot.kernelPackages.kernel.outPath'
# curl -L 'https://chaotic-nyx.cachix.org/{{HASH}}.narinfo'
# sudo nixos-rebuild switch --flake ./git/Nix/dot.nix/. --option 'extra-substituters' 'https://chaotic-nyx.cachix.org/' --option extra-trusted-public-keys "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="

View file

@ -0,0 +1,65 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
let
username = config.hostSpec.username;
in
{
imports = lib.flatten [
(modulesPath + "/profiles/qemu-guest.nix")
(map lib.custom.relativeToRoot [
"hosts/global/common/system/pool.nix"
])
];
## Boot ##
boot = {
loader = {
grub = {
enable = true;
device = "/dev/vda";
useOSProber = true;
};
efi.canTouchEfiVariables = true;
timeout = 3;
};
# use latest kernel
kernelPackages = pkgs.linuxPackages_latest;
initrd = {
availableKernelModules = [
"ahci"
"xhci_pci"
"virtio_pci"
"sr_mod"
"virtio_blk"
];
systemd.enable = true;
verbose = false;
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/7ec7d686-6f4c-482f-8b9d-4337a06afc48";
fsType = "ext4";
};
};
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.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}