diff --git a/configuration.nix b/configuration.nix index 3ba0bc6..99c6eb7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -105,6 +105,10 @@ adwaita-icon-theme pkgs-unstable.claude-code # Use unstable for latest version yubikey-manager + # iOS interop + uxplay + libimobiledevice + ifuse ]; # Some programs need SUID wrappers, can be configured further or are @@ -116,6 +120,12 @@ pinentryPackage = pkgs.pinentry-gnome3; }; + # AirDrop-style file transfer (LocalSend) + programs.localsend = { + enable = true; + openFirewall = true; + }; + # List services that you want to enable: # Enable the OpenSSH daemon. @@ -225,11 +235,12 @@ }; - # Open firewall for Tailscale + # Open firewall for Tailscale + UxPlay AirPlay receiver networking.firewall = { checkReversePath = "loose"; trustedInterfaces = [ "tailscale0" "wg0" ]; - allowedUDPPorts = [ config.services.tailscale.port ]; + allowedTCPPorts = [ 7000 7001 7100 ]; + allowedUDPPorts = [ config.services.tailscale.port 6000 6001 7011 ]; }; # Auto-connect tailscale on boot @@ -267,6 +278,21 @@ services.pcscd.enable = true; + # iPhone USB mount (libimobiledevice) + services.usbmuxd.enable = true; + + # mDNS for AirPlay receiver (UxPlay) discovery from iPhone + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + publish = { + enable = true; + addresses = true; + userServices = true; + }; + }; + security.pam.services = { login.u2fAuth = true; sudo.u2fAuth = true;