summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-03-09 23:17:49 -0400
committerFreya Murphy <freya@freyacat.org>2026-03-09 23:17:49 -0400
commit5cebe15d8e2adc3fa227b582287740205862fdb0 (patch)
treee8e04f43909f61326ef194bf645719859615a86f
parentupdate commits (diff)
downloaddotfiles-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.nix1
-rw-r--r--home/apps/hyprlock.nix4
-rw-r--r--home/apps/obs.nix31
-rw-r--r--hosts/shinji/default.nix16
-rw-r--r--hosts/shinji/hardware.nix39
-rw-r--r--options.nix20
-rw-r--r--system/battery.nix3
-rw-r--r--system/bluetooth.nix7
-rw-r--r--system/default.nix1
-rw-r--r--system/desktop.nix5
-rw-r--r--system/fingerprint.nix3
-rw-r--r--system/networking.nix3
-rw-r--r--system/nvidia.nix51
-rw-r--r--system/sshd.nix3
-rw-r--r--system/tpm.nix3
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;