disabled udev-settle
This commit is contained in:
parent
34495ccc71
commit
62b1cd72db
@ -1,19 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
hdmiHandler = pkgs.writeShellScript "hdmi-handler" ''
|
||||
hdmiHandler = pkgs.writeShellScript "hdmi-display-manager" ''
|
||||
#!/usr/bin/env bash
|
||||
PORT="/sys/class/drm/card0-HDMI-A-1/status"
|
||||
USER="nicole"
|
||||
set -euo pipefail
|
||||
PORT=$(ls /sys/class/drm/card*-HDMI-A-*/*status 2>/dev/null | head -n1 || true)
|
||||
[[ -z "$PORT" ]] && exit 0
|
||||
status=$(cat "$PORT" || echo "disconnected")
|
||||
|
||||
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"
|
||||
systemctl start display-manager.service
|
||||
else
|
||||
runuser -l "$USER" -c "systemctl --user stop vm-viewer@ha-vm.service" || true
|
||||
runuser -l "$USER" -c "systemctl --user stop kodi.service"
|
||||
systemctl stop display-manager.service
|
||||
fi
|
||||
exit 0
|
||||
'';
|
||||
in
|
||||
{
|
||||
@ -59,13 +59,21 @@ in
|
||||
users.users.nicole = {
|
||||
isNormalUser = true;
|
||||
hashedPassword = "$6$p73d5mOLoSuJGOol$KRlszaPXZK9/frADlfR3kAr/57DD5f4.CPTGNNX80QWEWFE5y.bM1WiZwmRHiAlrws3q/zCDQ6AqeSyCUX.8U/";
|
||||
extraGroups = [ "wheel" "docker" "libvirtd" ];
|
||||
linger = true;
|
||||
extraGroups = [ "wheel" "docker" "libvirtd" "video" "render" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGAsiKDWCwyf1usprg3K6Zk0xE9S4DX6+Bc4+nIOZGmf drezil@Manticore"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.kodi = {
|
||||
isNormalUser = true;
|
||||
home = "/home/kodi";
|
||||
description = "Kodi Auto-Login User";
|
||||
extraGroups = [ "video" "render" ]; # GPU-/DRM-Zugriff
|
||||
linger = true; # User-Scope darf headless laufen
|
||||
# kein wheel ⇒ kein sudo
|
||||
};
|
||||
|
||||
|
||||
system.stateVersion = "25.05"; # ← einmalig festnageln
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
@ -77,8 +85,10 @@ in
|
||||
serviceConfig.ExecStart = "/run/current-system/sw/bin/zfs-prune-snapshots -r --keep=2w";
|
||||
startAt = "daily";
|
||||
};
|
||||
|
||||
|
||||
systemd.services.systemd-udev-settle.enable = false;
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
|
||||
# Wir pinnen den Kernel, bis ZFS 2.3.x für 6.13 bereit ist
|
||||
boot.kernelPackages = pkgs.linuxPackages_6_12;
|
||||
|
||||
@ -115,32 +125,31 @@ in
|
||||
### Kodi & TV-Detect #####################################################
|
||||
##########################################################################
|
||||
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "modesetting" ]; # Intel iGPU
|
||||
desktopManager.kodi = {
|
||||
enable = true;
|
||||
package = (pkgs.kodi.withPackages (kodiPkgs: with kodiPkgs; [
|
||||
jellyfin
|
||||
netflix
|
||||
mediacccde
|
||||
mediathekview
|
||||
sponsorblock
|
||||
youtube
|
||||
]));
|
||||
};
|
||||
displayManager.startx.enable = false; # nutzt LightDM intern
|
||||
};
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "kodi";
|
||||
};
|
||||
|
||||
### 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";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user