{ fleetFlake, fleetModules, lib, pkgs, config, ... }: { imports = fleetModules [ "common" "ssh" "ccr" "wireguard-client" ]; ccr.enable = true; services.rock5b-fan-control.enable = true; nixpkgs.hostPlatform = "aarch64-linux"; swapDevices = []; boot.loader = { grub.enable = false; generic-extlinux-compatible.enable = true; }; disko = import ./disko.nix {}; fileSystems."/mnt/film" = { device = "//ccr.ydns.eu/film"; fsType = "cifs"; options = let credentials = pkgs.writeText "credentials" '' username=guest password= ''; in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"]; }; fileSystems."/mnt/archivio" = { device = "//ccr.ydns.eu/archivio"; fsType = "cifs"; options = let credentials = pkgs.writeText "credentials" '' username=guest password= ''; in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"]; }; environment.systemPackages = with pkgs; [ kodi-rock5b cifs-utils ]; users.extraUsers.kodi = { isNormalUser = true; uid = 1002; extraGroups = ["video" "input"]; }; networking.firewall.allowedTCPPorts = [ 8080 # kodi control 80 ]; programs.bash.loginShellInit = '' [[ "$(tty)" == '/dev/tty1' ]] && \ [[ "$(whoami)" == 'kodi' ]] && \ ${pkgs.kodi-rock5b}/bin/kodi-standalone ''; # Waiting for https://github.com/NixOS/nixpkgs/issues/140304 services.getty = let script = pkgs.writeText "login-program.sh" '' if [[ "$(tty)" == '/dev/tty1' ]]; then ${pkgs.shadow}/bin/login -f kodi; else ${pkgs.shadow}/bin/login; fi ''; in { loginProgram = "${pkgs.bash}/bin/sh"; loginOptions = toString script; extraArgs = ["--skip-login"]; }; }