Screencast: cast the desktop to Cast, DLNA and AirPlay receivers
An Omarchy shell plugin: a Python/asyncio daemon that discovers network displays and serves an encoded screen capture for them to pull, plus a Quickshell bar widget and panel to drive it. The screen comes from the xdg-desktop-portal ScreenCast interface (asked for every time, never remembered), goes through GStreamer, and is served from a local HTTP port. Desktop audio is mixed in from the default output's monitor. The container follows the receiver: WebM/VP8 for Cast, MPEG-TS/H.264 for DLNA, HLS for AirPlay video. The stream port has to be reachable from the LAN, and none of these protocols can carry a credential, so the capability is the URL: a fresh random path per session, refused to anything off the LAN, capped at four concurrent readers.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "io.github.alanfortlink.screencast",
|
||||
"name": "Screencast",
|
||||
"version": "0.1.0",
|
||||
"author": "alanfortlink",
|
||||
"license": "MIT",
|
||||
"description": "Find the displays on your network — Google Cast, AirPlay and DLNA — and cast this desktop to them, with volume, pause and stop from the bar.",
|
||||
"kinds": [
|
||||
"service",
|
||||
"bar-widget"
|
||||
],
|
||||
"keepLoaded": true,
|
||||
"entryPoints": {
|
||||
"service": "plugin/Service.qml",
|
||||
"barWidget": "plugin/Panel.qml"
|
||||
},
|
||||
"barWidget": {
|
||||
"displayName": "Screencast",
|
||||
"description": "Cast the screen to a TV, Chromecast or speaker on the network; the icon lights up while casting.",
|
||||
"category": "Media",
|
||||
"allowMultiple": false,
|
||||
"defaultSection": "right",
|
||||
"defaults": {
|
||||
"alwaysShow": true
|
||||
},
|
||||
"schema": [
|
||||
{
|
||||
"key": "alwaysShow",
|
||||
"type": "boolean",
|
||||
"label": "Show the icon even when nothing is being cast",
|
||||
"defaultValue": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user