Anzeigen eines Teils eines Fensters in einem anderen

Anzeigen eines Teils eines Fensters in einem anderen

Ich hätte gerne eine Möglichkeit, einen Teil eines Fensters (z. B. das Video auf einer YouTube-Seite oder den Fortschrittsbalken eines Programms) zu nehmen und nur diesen Teil in ein separates schwebendes Fenster zu „streamen“, sodass ich nur diesen Teil auf einem anderen Desktop sehen kann.

Ich weiß, dass Streaming-Software wie OBS so etwas kann, und ich weiß, dass ffmpeg/ffplay das theoretisch können (ich konnte keine Beispiele zum Laufen bringen). Ich denke auch, dass es für den Compositor möglich sein sollte, dies zu tun (wie Live-Alt-Tab-Vorschauen), aber ich konnte kein passendes Compiz-Plugin finden.

Wie kann ich eine zweite, separate Ansicht eines Desktop-Programms erhalten (idealerweise mit Skalierung)?

(Ich verwende eine Standardinstallation von Ubuntu Bionic.)

Antwort1

Schauen Sie sich die xmag- oder xmagnifyX-Anwendungen an; diese lesen einen Teil des Framebuffers aus, vergrößern ihn und zeigen ihn in einem separaten Fenster an.

Dies funktioniert nicht für Videos, die im Video-Overlay angezeigt werden (das heute kaum noch verwendet wird, da Overlays heute meist die GPU zum Rendern der Oberfläche verwenden).

Beachten Sie auch, dass diese Anwendungen reines X sind und aus der Zeit vor Compositors stammen. Ich habe keine Ahnung, wie sie mit einem Compositor interagieren würden.

Außerdem funktioniert die Anzeige des Fensters „auf einem anderen Desktop“ möglicherweise nicht, da Fenster, die sich nicht auf Ihrem aktuellen Desktop befinden, nicht zugeordnet sind und nicht aktualisiert werden.

Es wäre wahrscheinlich möglich, die Quelle so zu ändern, dass sie direkt aus dem Fenster-Backing-Store der Anwendung liest, an der Sie interessiert sind.

verwandte Informationen