From 34495ccc71c834c4e52c9368f363f7388917db8f Mon Sep 17 00:00:00 2001 From: "root@nixos-nas" <> Date: Wed, 11 Jun 2025 19:11:16 +0000 Subject: [PATCH] kodi & tv-wakeup --- configuration.nix | 53 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/configuration.nix b/configuration.nix index 859a67d..75b0f91 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,5 +1,21 @@ { config, pkgs, ... }: +let + hdmiHandler = pkgs.writeShellScript "hdmi-handler" '' + #!/usr/bin/env bash + PORT="/sys/class/drm/card0-HDMI-A-1/status" + USER="nicole" + + read status < "$PORT" + if [[ "$status" == "connected" ]]; then + runuser -l "$USER" -c "systemctl --user start kodi.service" + # runuser -l "$USER" -c "systemctl --user start vm-viewer@ha-vm.service" + else + runuser -l "$USER" -c "systemctl --user stop vm-viewer@ha-vm.service" || true + runuser -l "$USER" -c "systemctl --user stop kodi.service" + fi + ''; +in { imports = [ ./hardware/hardware-configuration.nix ]; @@ -44,6 +60,7 @@ isNormalUser = true; hashedPassword = "$6$p73d5mOLoSuJGOol$KRlszaPXZK9/frADlfR3kAr/57DD5f4.CPTGNNX80QWEWFE5y.bM1WiZwmRHiAlrws3q/zCDQ6AqeSyCUX.8U/"; extraGroups = [ "wheel" "docker" "libvirtd" ]; + linger = true; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGAsiKDWCwyf1usprg3K6Zk0xE9S4DX6+Bc4+nIOZGmf drezil@Manticore" ]; @@ -65,7 +82,7 @@ # Wir pinnen den Kernel, bis ZFS 2.3.x für 6.13 bereit ist boot.kernelPackages = pkgs.linuxPackages_6_12; - environment.systemPackages = with pkgs; [ git vim zfs ]; + environment.systemPackages = with pkgs; [ git vim zfs virt-viewer kodi ]; #### Virtualisation @@ -77,8 +94,7 @@ #### nix-Cache - - # --- Binary-Cache ------------------------------------------------------------- + # --- Binary-Cache services.nix-serve = { enable = true; secretKeyFile = "/var/cache/nix/secret-key"; @@ -95,5 +111,36 @@ secret-key-files = [ "/var/cache/nix/secret-key" ]; }; + ########################################################################## + ### Kodi & TV-Detect ##################################################### + ########################################################################## + + ### UDEV-Regel + Skript ################################################## + services.udev.extraRules = '' + ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="${hdmiHandler}" + ''; + + ## Kodi – GBM/Wayland Stand-alone ################################### + systemd.user.services.kodi = { + description = "Kodi Media Center (stand-alone)"; + # wird nur manuell/über den Udev-Hook gestartet → kein wantedBy nötig + # wantedBy = [ "default.target" ]; # auskommentieren, falls immer laufen soll + after = [ "graphical-session.target" ]; # optional + + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.kodi}/bin/kodi-standalone"; + Restart = "on-failure"; + }; + }; + + ### Virt-Viewer Template-Unit (optional) ################################# + systemd.user.services."vm-viewer@" = { + description = "Virt-viewer fullscreen for %i"; + serviceConfig = { + ExecStart = "${pkgs.virt-viewer}/bin/virt-viewer --full-screen --wait --domain-name %i"; + Restart = "on-failure"; + }; + }; }