# /etc/nixos/configuration.nix { config, pkgs, lib, fetchurl, ... }: let moondeckBuddyWrapped = pkgs.appimageTools.wrapType2 { pname = "moondeck-buddy"; version = "1.8.2"; src = pkgs.fetchurl { url = "https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v1.8.2/MoonDeckBuddy-1.8.2-x86_64.AppImage"; hash = "sha256-D+9XIi3pIwaAq22DGHWAUqKub778qHQSjCU0aIjXmYY="; # Don't forget to update this! }; extraPkgs = pkgs: with pkgs; [ # Your extraPkgs here ]; desktopItems = [ (pkgs.makeDesktopItem { name = "Moondeck Buddy"; exec = "moondeck-buddy"; icon = "applications-other"; comment = "A Sunshine/Moondeck Buddy."; categories = ["Utility" "Productivity"]; }) ]; meta = with lib; { description = "Moondeck Buddy is an companion app for NVIDIA Sunshine/Moonlight."; homepage = "https://github.com/FrogTheFrog/moondeck-buddy"; license = licenses.gpl3Only; platforms = platforms.linux; mainProgram = "moondeck-buddy"; }; }; in { environment.systemPackages = with pkgs; [ moondeckBuddyWrapped ]; programs.appimage.enable = true; programs.appimage.binfmt = true; # --- Firewall Configuration --- networking.firewall.allowedTCPPorts = [ 59999 # Allow Moondeck Buddy to listen on this port ]; # If Moondeck Buddy also needs UDP, uncomment and add it here: # networking.firewall.allowedUDPPorts = [ # 59999 # ]; }