diff --git a/homes/x86_64-linux/evanreichard@lin-va-thinkpad/default.nix b/homes/x86_64-linux/evanreichard@lin-va-thinkpad/default.nix index 115178a..39ae578 100755 --- a/homes/x86_64-linux/evanreichard@lin-va-thinkpad/default.nix +++ b/homes/x86_64-linux/evanreichard@lin-va-thinkpad/default.nix @@ -15,6 +15,7 @@ in ssh-agent = enabled; fusuma = enabled; swww = enabled; + poweralertd = enabled; sops = { enable = true; defaultSopsFile = lib.snowfall.fs.get-file "secrets/default.yaml"; diff --git a/modules/home/services/poweralertd/default.nix b/modules/home/services/poweralertd/default.nix new file mode 100644 index 0000000..1a52772 --- /dev/null +++ b/modules/home/services/poweralertd/default.nix @@ -0,0 +1,17 @@ +{ config, lib, namespace, ... }: +let + inherit (lib) mkIf; + + cfg = config.${namespace}.services.poweralertd; +in +{ + options.${namespace}.services.poweralertd = { + enable = lib.mkEnableOption "poweralertd"; + }; + + config = mkIf cfg.enable { + services.poweralertd = { + enable = true; + }; + }; +} diff --git a/modules/nixos/hardware/battery/upower/default.nix b/modules/nixos/hardware/battery/upower/default.nix new file mode 100644 index 0000000..40fc9bc --- /dev/null +++ b/modules/nixos/hardware/battery/upower/default.nix @@ -0,0 +1,15 @@ +{ config, lib, namespace, ... }: +let + inherit (lib) mkIf; + + cfg = config.${namespace}.hardware.battery.upower; +in +{ + options.${namespace}.hardware.battery.upower = { + enable = lib.mkEnableOption "enable upower"; + }; + + config = mkIf cfg.enable { + services.upower.enable = true; + }; +} diff --git a/modules/nixos/virtualisation/libvirtd/default.nix b/modules/nixos/virtualisation/libvirtd/default.nix new file mode 100644 index 0000000..a7e8eca --- /dev/null +++ b/modules/nixos/virtualisation/libvirtd/default.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, namespace, ... }: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.virtualisation.libvirtd; +in +{ + options.${namespace}.virtualisation.libvirtd = { + enable = lib.mkEnableOption "enable libvirtd"; + withVirtManager = mkBoolOpt false "add virt-manager"; + enableIntelIOMMU = mkBoolOpt false "enable Intel IOMMU for better device passthrough"; + enableAMDIOMMU = mkBoolOpt false "enable AMD IOMMU for better device passthrough"; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + win-virtio + libvirt + qemu_kvm + ] ++ lib.optionals cfg.withVirtManager [ + virt-manager + virt-viewer + spice-gtk + ]; + + reichard = { + user = { + extraGroups = [ + "libvirtd" + ]; + }; + }; + + virtualisation = { + libvirtd = { + enable = true; + qemu = { + package = pkgs.qemu_kvm; + runAsRoot = false; + swtpm.enable = true; + ovmf = { + enable = true; + packages = [ pkgs.OVMFFull.fd ]; + }; + }; + }; + + spiceUSBRedirection.enable = true; + }; + + boot.kernelParams = lib.optionals cfg.enableIntelIOMMU [ + "intel_iommu=on" + ] ++ lib.optionals cfg.enableAMDIOMMU [ + "amd_iommu=on" + ]; + }; +} diff --git a/systems/x86_64-linux/lin-va-thinkpad/default.nix b/systems/x86_64-linux/lin-va-thinkpad/default.nix index b86f8b2..ddae833 100755 --- a/systems/x86_64-linux/lin-va-thinkpad/default.nix +++ b/systems/x86_64-linux/lin-va-thinkpad/default.nix @@ -33,6 +33,9 @@ in hardware = { opengl = enabled; + battery = { + upower = enabled; + }; }; services = { @@ -43,6 +46,11 @@ in virtualisation = { podman = enabled; + libvirtd = { + enable = true; + withVirtManager = true; + enableAMDIOMMU = true; + }; }; programs = {