My question was about weather it would be possible to embed the contents of a window (such as a terminal emulator, browser, game, or any other X org app) inside of a GTK3 application. This means that the user can still interact with the app and see contents of it. I am running Debian 11 64-bit and I want to make the app using C.
About c : is-it-possible-run-an-app-inside-another-app-in-GTK
Question Detail
Question Answer
The closest I have seen is using a GtkPlug
and a GtkSocket
:
Together with GtkSocket, GtkPlug provides the ability to embed widgets
from one process into another process in a fashion that is transparent
to the user. One process creates a GtkSocket widget and passes the ID
of that widget’s window to the other process, which then creates a
GtkPlug with that window ID. Any widgets contained in the GtkPlug then
will appear inside the first application’s window.The communication between a GtkSocket and a GtkPlug follows the XEmbed
Protocol. This protocol has also been implemented in other toolkits,
e.g. Qt, allowing the same level of integration when embedding a Qt
widget in GTK+ or vice versa.
An example of this is the xfce-settings-manager
, which you can study here (search for “socket-id” in the repo).
Notes:
GtkPlug
s andGtkSocket
s are X11 specific. If you are looking for something cross platform, this might not be it.- It seems both of these no longer exist in Gtk4.