summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-10-15 15:52:11 +0200
committerMel <einebeere@gmail.com>2024-10-15 15:52:11 +0200
commitc8235346fe342df4aebc3f47d4f29040162dbe61 (patch)
tree4ca20dccf9db66203b1c9a8b1593b8d964a2fa16 /modules
parent42d7140ae47ec30b84150d9b721682b30c74a1a7 (diff)
downloadminerals-c8235346fe342df4aebc3f47d4f29040162dbe61.tar.zst
minerals-c8235346fe342df4aebc3f47d4f29040162dbe61.zip
Bring in bismuth configuration
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/home/common.nix40
-rw-r--r--modules/jellyfin.nix18
-rw-r--r--modules/nvidia.nix63
3 files changed, 121 insertions, 0 deletions
diff --git a/modules/home/common.nix b/modules/home/common.nix
new file mode 100644
index 0000000..8e1a1c7
--- /dev/null
+++ b/modules/home/common.nix
@@ -0,0 +1,40 @@
+{ pkgs, ... }:
+
+{
+ programs = {
+ git = {
+ enable = true;
+ userName = "Mel";
+ userEmail = "einebeere@gmail.com";
+ signing = {
+ key = "D75A C286 ACA7 00B4 D8EC 377D 2082 F8EC 11CC 009B";
+ signByDefault = true;
+ };
+ extraConfig.init.defaultBranch = "main";
+ };
+
+ tmux = {
+ enable = true;
+ mouse = true;
+ keyMode = "vi";
+ plugins = with pkgs.tmuxPlugins; [
+ yank fpp open fuzzback
+ ];
+ };
+
+ fish = {
+ enable = true;
+ interactiveShellInit = ''
+ set fish_greeting
+ '';
+ };
+
+ zoxide = { enable = true; enableFishIntegration = true; };
+ starship = { enable = true; enableFishIntegration = true; };
+ direnv = { enable = true; };
+ };
+
+ home.sessionPath = [
+ "$HOME/.local/share/JetBrains/Toolbox/scripts"
+ ];
+}
diff --git a/modules/jellyfin.nix b/modules/jellyfin.nix
new file mode 100644
index 0000000..1194573
--- /dev/null
+++ b/modules/jellyfin.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, unstable, ... }:
+
+let
+ auxiliaryPkgs = import ../pkgs { inherit pkgs unstable; };
+in
+{
+ services.jellyfin = {
+ enable = true;
+ openFirewall = true;
+ package = auxiliaryPkgs.jellyfin;
+ };
+
+ environment.systemPackages = (with auxiliaryPkgs; [
+ jellyfin
+ jellyfin-web
+ pkgs.jellyfin-ffmpeg
+ ]);
+}
diff --git a/modules/nvidia.nix b/modules/nvidia.nix
new file mode 100644
index 0000000..efb38a3
--- /dev/null
+++ b/modules/nvidia.nix
@@ -0,0 +1,63 @@
+{ config, lib, pkgs, fetchpatch, ... }:
+
+let
+ # Fixes framebuffer with linux 6.11
+ fbdev_linux_611_patch = fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/NVIDIA/open-gpu-kernel-modules/pull/692.patch";
+ hash = "sha256-OYw8TsHDpBE5DBzdZCBT45+AiznzO9SfECz5/uXN5Uc=";
+ };
+in
+{
+ # Enable OpenGL
+ hardware.opengl = {
+ enable = true;
+ driSupport = true;
+ driSupport32Bit = true;
+ };
+
+ # Load nvidia driver for Xorg and Wayland
+ services.xserver.videoDrivers = ["nvidia"];
+
+ hardware.nvidia = {
+
+ # Modesetting is required.
+ modesetting.enable = true;
+
+ # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
+ powerManagement.enable = true;
+ # Fine-grained power management. Turns off GPU when not in use.
+ # Experimental and only works on modern Nvidia GPUs (Turing or newer).
+ powerManagement.finegrained = false;
+
+ # Use the NVidia open source kernel module (not to be confused with the
+ # independent third-party "nouveau" open source driver).
+ # Support is limited to the Turing and later architectures. Full list of
+ # supported GPUs is at:
+ # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
+ # Only available from driver 515.43.04+
+ # Currently alpha-quality/buggy, so false is currently the recommended setting.
+ # open = false;
+
+ # Enable the Nvidia settings menu,
+ # accessible via `nvidia-settings`.
+ # note: fails to build after 560
+ nvidiaSettings = false;
+
+ # Optionally, you may need to select the appropriate driver version for your specific GPU.
+ # package = config.boot.kernelPackages.nvidiaPackages.beta;
+
+ # note: this is enabled by default for nvidia 555 so maybe it should be true?
+ # very crashy :(
+ open = false;
+
+ package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
+ version = "560.35.03";
+ sha256_64bit = "sha256-8pMskvrdQ8WyNBvkU/xPc/CtcYXCa7ekP73oGuKfH+M=";
+ sha256_aarch64 = "sha256-s8ZAVKvRNXpjxRYqM3E5oss5FdqW+tv1qQC2pDjfG+s=";
+ openSha256 = "sha256-/32Zf0dKrofTmPZ3Ratw4vDM7B+OgpC4p7s+RHUjCrg=";
+ settingsSha256 = "sha256-kQsvDgnxis9ANFmwIwB7HX5MkIAcpEEAHc8IBOLdXvk=";
+ persistencedSha256 = "sha256-E2J2wYYyRu7Kc3MMZz/8ZIemcZg68rkzvqEwFAL3fFs=";
+ #patchesOpen = [ fbdev_linux_611_patch ];
+ };
+ };
+}