diff options
| author | Freya Murphy <freya@freyacat.org> | 2026-03-09 23:17:49 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2026-03-09 23:17:49 -0400 |
| commit | 5cebe15d8e2adc3fa227b582287740205862fdb0 (patch) | |
| tree | e8e04f43909f61326ef194bf645719859615a86f | |
| parent | update commits (diff) | |
| download | dotfiles-nix-5cebe15d8e2adc3fa227b582287740205862fdb0.tar.gz dotfiles-nix-5cebe15d8e2adc3fa227b582287740205862fdb0.tar.bz2 dotfiles-nix-5cebe15d8e2adc3fa227b582287740205862fdb0.zip | |
add .enable to modules, add nvidia module, add obs app
| -rw-r--r-- | home/apps/default.nix | 1 | ||||
| -rw-r--r-- | home/apps/hyprlock.nix | 4 | ||||
| -rw-r--r-- | home/apps/obs.nix | 31 | ||||
| -rw-r--r-- | hosts/shinji/default.nix | 16 | ||||
| -rw-r--r-- | hosts/shinji/hardware.nix | 39 | ||||
| -rw-r--r-- | options.nix | 20 | ||||
| -rw-r--r-- | system/battery.nix | 3 | ||||
| -rw-r--r-- | system/bluetooth.nix | 7 | ||||
| -rw-r--r-- | system/default.nix | 1 | ||||
| -rw-r--r-- | system/desktop.nix | 5 | ||||
| -rw-r--r-- | system/fingerprint.nix | 3 | ||||
| -rw-r--r-- | system/networking.nix | 3 | ||||
| -rw-r--r-- | system/nvidia.nix | 51 | ||||
| -rw-r--r-- | system/sshd.nix | 3 | ||||
| -rw-r--r-- | system/tpm.nix | 3 |
15 files changed, 129 insertions, 61 deletions
diff --git a/home/apps/default.nix b/home/apps/default.nix index baf9d82..b34fdd2 100644 --- a/home/apps/default.nix +++ b/home/apps/default.nix @@ -10,5 +10,6 @@ _: { ./kanshi.nix ./kitty.nix ./mako.nix + ./obs.nix ]; } diff --git a/home/apps/hyprlock.nix b/home/apps/hyprlock.nix index 237abb6..b94a3a7 100644 --- a/home/apps/hyprlock.nix +++ b/home/apps/hyprlock.nix @@ -19,7 +19,7 @@ in { settings = { auth = { "pam:enabled" = true; - "fingerprint:enabled" = config.fingerprint; + "fingerprint:enabled" = config.fingerprint.enable; }; animations = { @@ -56,7 +56,7 @@ in { placeholder_text = "Enter Password" + ( - if config.fingerprint + if config.fingerprint.enable then " or Touch Fingerprint" else "" ); diff --git a/home/apps/obs.nix b/home/apps/obs.nix new file mode 100644 index 0000000..e67190b --- /dev/null +++ b/home/apps/obs.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.apps.obs; +in { + config = mkIf cfg.enable { + programs.obs-studio = { + enable = true; + + package = + if config.nvidia.enable + then + (pkgs.obs-studio.override { + cudaSupport = true; + }) + else pkgs.obs-studio; + + plugins = with pkgs.obs-studio-plugins; [ + obs-backgroundremoval + obs-pipewire-audio-capture + obs-vaapi + obs-gstreamer + obs-vkcapture + ]; + }; + }; +} diff --git a/hosts/shinji/default.nix b/hosts/shinji/default.nix index 750b22a..828fd02 100644 --- a/hosts/shinji/default.nix +++ b/hosts/shinji/default.nix @@ -67,6 +67,7 @@ rofi.enable = true; kanshi.enable = true; kitty.enable = true; + obs.enable = true; }; browsers = { firefox.enable = true; @@ -95,8 +96,15 @@ }; # modules - battery = true; - bluetooth = true; - network = true; - tpm = true; + battery.enable = true; + bluetooth.enable = true; + network.enable = true; + tpm.enable = true; + nvidia = { + enable = true; + primeBusIds = { + amdgpuBusId = "PCI:115:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; } diff --git a/hosts/shinji/hardware.nix b/hosts/shinji/hardware.nix index ba4192c..b35c2a2 100644 --- a/hosts/shinji/hardware.nix +++ b/hosts/shinji/hardware.nix @@ -1,8 +1,6 @@ { config, inputs, - pkgs, - lib, ... }: { # external defaults @@ -46,43 +44,6 @@ hardware.enableRedistributableFirmware = true; hardware.cpu.amd.updateMicrocode = true; - # nvidia - services.xserver.videoDrivers = ["modesetting" "nvidia"]; - hardware.nvidia = { - modesetting.enable = true; - powerManagement = { - enable = false; - finegrained = false; - }; - prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; - amdgpuBusId = "PCI:115:0:0"; - nvidiaBusId = "PCI:1:0:0"; - }; - open = true; - nvidiaSettings = true; - package = let - pkg = config.boot.kernelPackages.nvidiaPackages.latest; - in pkg // { - open = pkg.open.overrideAttrs (finalAttrs: { - patches = (finalAttrs.patches or []) ++ [ - (pkgs.fetchpatch { - name = "linux-6.19"; - url = "https://raw.githubusercontent.com/CachyOS/CachyOS-PKGBUILDS/refs/heads/master/nvidia/nvidia-utils/kernel-6.19.patch"; - hash = "sha256-YuJjSUXE6jYSuZySYGnWSNG5sfVei7vvxDcHx3K+IN4="; - }) - ]; - }); - }; - }; - unfreePackages = [ - "nvidia-x11" - "nvidia-settings" - ]; - # luks device boot.initrd.luks.devices."root".device = "/dev/disk/by-uuid/ad489bfa-4280-44ea-8ad2-60347b516d60"; boot.initrd.luks.devices."swap".device = "/dev/disk/by-uuid/550e638d-eade-4d2f-aa39-c38774c91af3"; diff --git a/options.nix b/options.nix index 61dbc09..6021d69 100644 --- a/options.nix +++ b/options.nix @@ -287,21 +287,30 @@ in { # # System modules # - battery = mkEnableOption { + battery.enable = mkEnableOption { description = "Install battery and power system services and programs."; }; - bluetooth = mkEnableOption { + bluetooth.enable = mkEnableOption { description = "Install bluetooth system services and programs."; }; - fingerprint = mkEnableOption { + fingerprint.enable = mkEnableOption { description = "Install fingerprint system services and programs."; }; - network = mkEnableOption { + network.enable = mkEnableOption { description = "Install networking system services and programs."; }; - tpm = mkEnableOption { + tpm.enable = mkEnableOption { description = "Enable system TPM"; }; + nvidia = { + enable = mkEnableOption { + description = "Enable the nvidia graphics driver"; + }; + primeBusIds = mkOption { + type = types.attrs; + description = "Set of nvidia prime gpu bus ids"; + }; + }; minimal = mkEnableOption { description = "Install only required system services, drivers, and programs."; }; @@ -488,6 +497,7 @@ in { wofi.enable = mkEnableOption "Enable the wofi launcher."; rofi.enable = mkEnableOption "Enable the rofi launcher."; caelestia.enable = mkEnableOption "Enable the caelestia service."; + obs.enable = mkEnableOption "Enable the OBS Studio"; }; # diff --git a/system/battery.nix b/system/battery.nix index a904051..1802707 100644 --- a/system/battery.nix +++ b/system/battery.nix @@ -5,8 +5,9 @@ ... }: let inherit (lib) mkIf; + cfg = config.battery; in { - config = mkIf config.battery { + config = mkIf cfg.enable { # power monterting services.upower = { enable = true; diff --git a/system/bluetooth.nix b/system/bluetooth.nix index 06768b5..69b286f 100644 --- a/system/bluetooth.nix +++ b/system/bluetooth.nix @@ -5,13 +5,14 @@ ... }: let inherit (lib) mkIf; + cfg = config.bluetooth; in { - config = mkIf config.bluetooth { + config = mkIf cfg.enable { hardware.bluetooth.enable = true; services.blueman.enable = true; users.groups.bluetooth.members = [config.user]; - hardware.firmware = [ pkgs.broadcom-bt-firmware ]; - unfreePackages = [ "broadcom-bt-firmware" ]; + hardware.firmware = [pkgs.broadcom-bt-firmware]; + unfreePackages = ["broadcom-bt-firmware"]; }; } diff --git a/system/default.nix b/system/default.nix index e912856..09f8076 100644 --- a/system/default.nix +++ b/system/default.nix @@ -17,6 +17,7 @@ ./fingerprint.nix ./hardware.nix ./networking.nix + ./nvidia.nix ./sshd.nix ./tpm.nix ]; diff --git a/system/desktop.nix b/system/desktop.nix index 853296b..6eed43f 100644 --- a/system/desktop.nix +++ b/system/desktop.nix @@ -2,13 +2,12 @@ lib, pkgs, config, - inputs, - system, ... }: let inherit (lib) mkIf; + cfg = config.desktops; in { - config = mkIf config.desktops.enable { + config = mkIf cfg.enable { # nix-ld programs.nix-ld.enable = true; diff --git a/system/fingerprint.nix b/system/fingerprint.nix index 35737f5..7796cb0 100644 --- a/system/fingerprint.nix +++ b/system/fingerprint.nix @@ -5,8 +5,9 @@ ... }: let inherit (lib) mkIf; + cfg = config.fingerprint; in { - config = mkIf config.fingerprint { + config = mkIf cfg.enable { services.fprintd = { enable = true; tod.enable = true; diff --git a/system/networking.nix b/system/networking.nix index 6174cb2..72a7029 100644 --- a/system/networking.nix +++ b/system/networking.nix @@ -4,8 +4,9 @@ ... }: let inherit (lib) mkIf; + cfg = config.network; in { - config = mkIf config.network { + config = mkIf cfg.enable { # ethernet / wifi networking.networkmanager.enable = true; users.groups.networkmanager.members = [config.user]; diff --git a/system/nvidia.nix b/system/nvidia.nix new file mode 100644 index 0000000..1135434 --- /dev/null +++ b/system/nvidia.nix @@ -0,0 +1,51 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.nvidia; +in { + config = mkIf cfg.enable { + services.xserver.videoDrivers = ["modesetting" "nvidia"]; + hardware.nvidia = { + modesetting.enable = true; + powerManagement = { + enable = false; + finegrained = false; + }; + prime = + cfg.primeBusIds + // { + offload = { + enable = true; + enableOffloadCmd = true; + }; + }; + open = true; + nvidiaSettings = true; + package = let + pkg = config.boot.kernelPackages.nvidiaPackages.latest; + in + pkg + // { + open = pkg.open.overrideAttrs (finalAttrs: { + patches = + (finalAttrs.patches or []) + ++ [ + (pkgs.fetchpatch { + name = "linux-6.19"; + url = "https://raw.githubusercontent.com/CachyOS/CachyOS-PKGBUILDS/refs/heads/master/nvidia/nvidia-utils/kernel-6.19.patch"; + hash = "sha256-YuJjSUXE6jYSuZySYGnWSNG5sfVei7vvxDcHx3K+IN4="; + }) + ]; + }); + }; + }; + unfreePackages = [ + "nvidia-x11" + "nvidia-settings" + ]; + }; +} diff --git a/system/sshd.nix b/system/sshd.nix index e7f64d8..b3a76c2 100644 --- a/system/sshd.nix +++ b/system/sshd.nix @@ -5,8 +5,9 @@ ... }: let inherit (lib) mkIf; + cfg = config.network; in { - config = mkIf config.network { + config = mkIf cfg.enable { # sshd services.openssh = { enable = true; diff --git a/system/tpm.nix b/system/tpm.nix index c7507da..a227f36 100644 --- a/system/tpm.nix +++ b/system/tpm.nix @@ -4,8 +4,9 @@ ... }: let inherit (lib) mkIf; + cfg = config.tpm; in { - config = mkIf config.tpm { + config = mkIf cfg.enable { security.tpm2.enable = true; security.tpm2.pkcs11.enable = true; security.tpm2.tctiEnvironment.enable = true; |