diff --git a/hosts/tardis/default.nix b/hosts/tardis/default.nix index 6576d76..c5ca9f3 100644 --- a/hosts/tardis/default.nix +++ b/hosts/tardis/default.nix @@ -4,31 +4,14 @@ imports = [ ./hardware-configuration.nix + + ../../modules/ollama + ../../modules/workstation/graphics.nix + ../../modules/workstation/audio.nix + ../../modules/workstation/xserver.nix + ../../modules/workstation/keyd.nix ]; - boot.blacklistedKernelModules = [ - "nouveau" - ]; - - boot.kernelParams = [ "video=efifb:1920x1080" ]; - - boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ]; - - hardware.graphics.enable = true; - - hardware.nvidia = { - modesetting.enable = true; - open = true; - prime = { - offload = { - enable = true; - enableOffloadCmd = true; - }; - intelBusId = "PCI:0@0:2:0"; - nvidiaBusId = "PCI:1@0:0:0"; - }; - }; - environment.systemPackages = lib.mkAfter (with pkgs; [ firefox xdg-utils @@ -49,52 +32,6 @@ unifont ]; - services.xserver = { - enable = true; - displayManager.startx.enable = true; - videoDrivers = [ "nvidia" ]; - xkb = { - layout = "us"; - variant = ""; - options = "terminate:ctrl_alt_bksp"; - }; - }; - - services.dbus.enable = true; - services.clipmenu.enable = true; - - xdg.portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - ]; - config.common.default = "*"; - }; - - security.rtkit.enable = true; - - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - services.pulseaudio.enable = false; - - services.power-profiles-daemon.enable = true; - - services.keyd = { - enable = true; - keyboards.default = { - ids = [ "*" ]; - settings.main = { - "leftmeta+leftshift+f23" = "rightcontrol"; - }; - }; - }; - programs.steam.enable = true; networking.hostName = "tardis"; diff --git a/modules/ollama/default.nix b/modules/ollama/default.nix new file mode 100644 index 0000000..bc18cd3 --- /dev/null +++ b/modules/ollama/default.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + services.ollama = { + enable = true; + package = pkgs.ollama-cuda; + loadModels = [ "deepseek-coder-v2:16b" "qwen3.5:9b" ]; + }; +} diff --git a/modules/workstation/audio.nix b/modules/workstation/audio.nix new file mode 100644 index 0000000..75ce0e3 --- /dev/null +++ b/modules/workstation/audio.nix @@ -0,0 +1,17 @@ +{ ... }: + +{ + security.rtkit.enable = true; + + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + + services.pulseaudio.enable = false; + + services.power-profiles-daemon.enable = true; +} diff --git a/modules/workstation/graphics.nix b/modules/workstation/graphics.nix new file mode 100644 index 0000000..1ec4dda --- /dev/null +++ b/modules/workstation/graphics.nix @@ -0,0 +1,26 @@ +{ config, ... }: + +{ + boot.blacklistedKernelModules = [ + "nouveau" + ]; + + boot.kernelParams = [ "video=efifb:1920x1080" ]; + + boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ]; + + hardware.graphics.enable = true; + + hardware.nvidia = { + modesetting.enable = true; + open = true; + prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; + intelBusId = "PCI:0@0:2:0"; + nvidiaBusId = "PCI:1@0:0:0"; + }; + }; +} diff --git a/modules/workstation/keyd.nix b/modules/workstation/keyd.nix new file mode 100644 index 0000000..8e30ca9 --- /dev/null +++ b/modules/workstation/keyd.nix @@ -0,0 +1,13 @@ +{ ... }: + +{ + services.keyd = { + enable = true; + keyboards.default = { + ids = [ "*" ]; + settings.main = { + "leftmeta+leftshift+f23" = "rightcontrol"; + }; + }; + }; +} diff --git a/modules/workstation/xserver.nix b/modules/workstation/xserver.nix new file mode 100644 index 0000000..6e267cd --- /dev/null +++ b/modules/workstation/xserver.nix @@ -0,0 +1,25 @@ +{ config, pkgs, ... }: + +{ + services.xserver = { + enable = true; + displayManager.startx.enable = true; + videoDrivers = [ "nvidia" ]; + xkb = { + layout = "us"; + variant = ""; + options = "terminate:ctrl_alt_bksp"; + }; + }; + + services.dbus.enable = true; + services.clipmenu.enable = true; + + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-gtk + ]; + config.common.default = "*"; + }; +}