mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
Directory structure: - Move from src/ to root level (system/, user/) - Remove unused machines (workstation, vm, laptop) User configuration: - Add user/home.nix for shared defaults (pass, essentials, default modules) - Centralize user options in user/default.nix - Move submodules to consistent paths (bash/bash, git/git, neovim/nvim, vim/vim) Module reorganization: - Flatten nested module structures (remove /modules/ subdirs) - Split CLI vs GUI tools (dev/ for CLI, gui/dev/ for GUI) - Move neovim/vim to top-level modules (not under utils/) - Remove security.enable - pass now in user/home.nix - Remove utils.enable - essentials now in user/home.nix - Add security/yubikey module with yubikey-manager, age-plugin-yubikey - Move pcb, design to gui/dev/ - Replace penpot docker wrapper with nixpkgs penpot-desktop - Remove i3 config - Remove deprecated wsl.nativeSystemd option GUI improvements: - Browser-focused mimeApps in gui/default.nix - Each WM handles its own auto-start via profileExtra Cleanup: - Update README with new structure - Update justfile paths and valid systems - Fix submodule paths in .gitmodules
83 lines
2.2 KiB
Nix
83 lines
2.2 KiB
Nix
{ config, lib, pkgs, modulesPath, ... }:
|
|
|
|
with lib;
|
|
{
|
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
|
|
options.monitors = mkOption {
|
|
type = types.listOf (types.submodule {
|
|
options = {
|
|
name = mkOption { type = types.str; example = "HDMI-A-1"; };
|
|
width = mkOption { type = types.int; };
|
|
height = mkOption { type = types.int; };
|
|
x = mkOption { type = types.int; };
|
|
y = mkOption { type = types.int; };
|
|
scale = mkOption { type = types.float; };
|
|
refreshRate = mkOption { type = types.int; };
|
|
};
|
|
});
|
|
default = [];
|
|
description = "System monitor configuration";
|
|
};
|
|
|
|
config = {
|
|
monitors = [
|
|
{ name = "HDMI-A-1"; width = 1920; height = 1080; x = 0; y = 0; scale = 1.0; refreshRate = 60; }
|
|
{ name = "DP-1"; width = 1920; height = 1080; x = 1920; y = 0; scale = 1.0; refreshRate = 60; }
|
|
];
|
|
|
|
boot = {
|
|
initrd = {
|
|
availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
|
kernelModules = [ "dm-snapshot" ];
|
|
};
|
|
extraModulePackages = [ ];
|
|
kernelPackages = pkgs.linuxPackages_zen;
|
|
kernelParams = [ "intel_iommu=on" ];
|
|
kernelModules = [ "kvm-intel" "virtio" "vfio-pci" "coretemp" ];
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
linuxHeaders
|
|
|
|
vulkan-headers
|
|
vulkan-loader
|
|
vulkan-tools
|
|
vulkan-extension-layer
|
|
|
|
mesa
|
|
mesa-demos
|
|
|
|
cudaPackages.cudatoolkit
|
|
cudaPackages.cudnn
|
|
];
|
|
|
|
hardware = {
|
|
cpu = {
|
|
intel = {
|
|
updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
};
|
|
};
|
|
nvidia = {
|
|
open = true;
|
|
modesetting.enable = true;
|
|
nvidiaSettings = true;
|
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
};
|
|
graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
};
|
|
};
|
|
|
|
virtualisation.libvirtd = {
|
|
enable = true;
|
|
qemu = {
|
|
runAsRoot = true;
|
|
};
|
|
};
|
|
|
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
|
};
|
|
}
|