diff --git a/flake.lock b/flake.lock index 7489a5e..eab1f84 100644 --- a/flake.lock +++ b/flake.lock @@ -19,6 +19,26 @@ } }, "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1788651960, + "narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "2c0350c759688177331b8f5242311fae8877bdb3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { "inputs": { "nixpkgs": [ "zen-browser", @@ -101,11 +121,33 @@ "type": "github" } }, + "noctalia-greeter": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1788336398, + "narHash": "sha256-1ZdtgBwndNHDltX8J7DLLl2/LBgywQhmt1JNcanfeMA=", + "owner": "noctalia-dev", + "repo": "noctalia-greeter", + "rev": "6379fe287bb02b0bb538ad155fe18b1bf8615daf", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-greeter", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": "flake-parts", + "home-manager": "home-manager", "import-tree": "import-tree", "nixpkgs": "nixpkgs", + "noctalia-greeter": "noctalia-greeter", "wrappers": "wrappers", "zen-browser": "zen-browser" } @@ -130,7 +172,7 @@ }, "zen-browser": { "inputs": { - "home-manager": "home-manager", + "home-manager": "home-manager_2", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index 68deb26..dad9ca4 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ import-tree.url = "github:vic/import-tree"; wrappers.url = "github:lassulus/wrappers"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix new file mode 100644 index 0000000..88767ca --- /dev/null +++ b/modules/hardware/nvidia.nix @@ -0,0 +1,45 @@ +{ ... }: +{ + flake.modules.nixos.nvidia = { config, ... }: { + services.xserver.videoDrivers = [ "nvidia" ]; + + boot.kernelParams = [ + "nvidia_drm" + "nvidia-drm.modeset=1" + "fbdev=1" + ]; + + hardware.nvidia = { + + # Modesetting is required. + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + # Enable this if you have graphical corruption issues or application crashes after waking + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # of just the bare essentials. + powerManagement.enable = false; + + # 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`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + }; +} diff --git a/modules/hardware/wake_on_lan.nix b/modules/hardware/wake_on_lan.nix new file mode 100644 index 0000000..2f2f1b9 --- /dev/null +++ b/modules/hardware/wake_on_lan.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + flake.modules.wake_on_lan = { ... }: { + networking.interfaces.enp5s0.wakeOnLan.enable = true; + }; +} diff --git a/modules/misc/homemanager.nix b/modules/misc/homemanager.nix new file mode 100644 index 0000000..99a7ce0 --- /dev/null +++ b/modules/misc/homemanager.nix @@ -0,0 +1,11 @@ +{ inputs, ... }: +{ + flake.modules.nixos.homemanager = { + imports = [ + inputs.home-manager.nixosModules.default + ]; + + home-manager.useUserPackages = true; + home-manager.useGlobalPkgs = true; + }; +} diff --git a/modules/networking/ssh.nix b/modules/networking/ssh.nix new file mode 100644 index 0000000..38130e3 --- /dev/null +++ b/modules/networking/ssh.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + flake.modules.networking.ssh = { + services.sshd.enable = true; + }; +}