ci / rust-arm64 (pull_request) Successful in 1m33s
ci / web (pull_request) Successful in 1m34s
ci / docs-site (pull_request) Successful in 1m13s
ci / bun-nix (pull_request) Successful in 27s
ci / docs-drift (pull_request) Successful in 31s
nix / flake (pull_request) Successful in 10m31s
ci / rust (pull_request) Successful in 28m5s
The gamepad console has shipped since the arch split, but on Linux the only way in was `punktfunk-session --browse` (or `punktfunk-client --browse`, which execs it) on a command line — no way to find a mode. The WinUI shell has had both doors for a while; this is the GTK half. Three entry points, one destination: * A gamepad button in the hosts header (`input-gaming-symbolic`), left of the hamburger — the same placement WinUI gives it. * "Console UI" in the main menu, so the mode has a searchable name and not just a tooltip. * `io.unom.Punktfunk.Console.desktop` — a second launcher shipped by the deb, rpm, arch and flatpak packagings. It is what an app-grid search finds and what gets added to Steam as a non-Steam game. `Exec=punktfunk-client --browse --fullscreen` deliberately goes through the shell binary: that argv already execs the session, and it is the command flatpak's Exec rewrite expects. The in-shell launch is a `gio::Subprocess` — `wait_check_async` lands the child's exit on the GTK main loop with no thread and no channel, releases `busy`, refreshes the host list (the console can pair hosts), and banners a non-zero exit. That last part is also how a session built without its `ui` feature surfaces: it prints "--browse needs the console UI" and exits non-zero. Which is why the Nix build does NOT install the new desktop entry — it compiles the session `--no-default-features`, so that launcher could only ever print an error. Noted in packaging/nix/README.md next to the existing Skia caveat.
15 lines
634 B
Desktop File
15 lines
634 B
Desktop File
[Desktop Entry]
|
|
Type=Application
|
|
Name=Punktfunk Console
|
|
Comment=Controller-driven couch interface — browse hosts and stream with a gamepad
|
|
# The shell already execs `punktfunk-session --browse` for this argv, so the shortcut goes
|
|
# through the same binary the main entry uses (which is also what flatpak's Exec rewrite
|
|
# expects). A couch UI is fullscreen; the session fullscreens itself on the Deck and under
|
|
# gamescope anyway.
|
|
Exec=punktfunk-client --browse --fullscreen
|
|
Icon=io.unom.Punktfunk
|
|
Terminal=false
|
|
Categories=Network;Game;
|
|
Keywords=streaming;remote;game;gamepad;controller;couch;console;bigpicture;
|
|
StartupNotify=true
|