Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sunshine: resolve tray icon issues #364438

Merged
merged 3 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions nixos/modules/services/networking/sunshine.nix
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ in
startLimitIntervalSec = 500;
startLimitBurst = 5;

environment.PATH = lib.mkForce null; # don't use default PATH, needed for tray icon menu links to work

serviceConfig = {
# only add configFile if an application or a setting other than the default port is set to allow configuration from web UI
ExecStart = escapeSystemdExecArgs (
Expand Down
16 changes: 10 additions & 6 deletions nixos/tests/sunshine.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import ./make-test-python.nix (
# test is flaky on aarch64
broken = pkgs.stdenv.hostPlatform.isAarch64;
maintainers = [ lib.maintainers.devusb ];
timeout = 600;
};

nodes.sunshine =
Expand Down Expand Up @@ -58,20 +59,23 @@ import ./make-test-python.nix (

# initiate pairing from moonlight
moonlight.execute("moonlight pair sunshine --pin 1234 >&2 & disown")
moonlight.wait_for_console_text("Executing request")
moonlight.wait_for_console_text("Executing request.*pair")

# respond to pairing request from sunshine
sunshine.succeed("curl --insecure -u sunshine:sunshine -d '{\"pin\": \"1234\"}' https://localhost:47990/api/pin")
sunshine.succeed("curl --fail --insecure -u sunshine:sunshine -d '{\"pin\": \"1234\"}' https://localhost:47990/api/pin")

# close moonlight once pairing complete
moonlight.send_key("kp_enter")
# wait until pairing is complete
moonlight.wait_for_console_text("Executing request.*phrase=pairchallenge")

# hide icewm panel
sunshine.send_key("ctrl-alt-h")
# put words on the sunshine screen for moonlight to see
sunshine.execute("gxmessage 'hello world' -center -font 'sans 75' >&2 & disown")
sunshine.execute("gxmessage ' ABC' -center -font 'consolas 100' -fg '#FFFFFF' -bg '#000000' -borderless -geometry '2000x2000' -buttons \"\" >&2 & disown")

# connect to sunshine from moonlight and look for the words
moonlight.execute("moonlight --video-decoder software stream sunshine 'Desktop' >&2 & disown")
moonlight.wait_for_text("hello world")
moonlight.wait_for_console_text("Dropping window event during flush")
moonlight.wait_for_text("ABC")
'';
}
)
File renamed without changes.
File renamed without changes.
4 changes: 3 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -18792,7 +18792,9 @@ with pkgs;

sieveshell = with python3.pkgs; toPythonApplication managesieve;

sunshine = callPackage ../servers/sunshine { };
sunshine = callPackage ../by-name/su/sunshine/package.nix {
boost = boost185;
};

jami = qt6Packages.callPackage ../applications/networking/instant-messengers/jami {
# TODO: remove once `udev` is `systemdMinimal` everywhere.
Expand Down
Loading