A terminal emulator provides a standardised character based interface for text mode applications, it emulates the behavior of real or idealised hardware.
Consoles typically run some sort of terminal emulation, (linux console emulates a VT220 with some additions)
A terminal was dedicated hardware that implements the standard and iwas connected to ther server via a serial connection either directly or via a concentrator. The term is often used to include terminal emulators, it can also include GUI terminals that use X or RDP instead of being text based.
A terminal multiplexer emulates several terminals and mixes their output and directs input in a way that is useful to the user.
Xterm is a terminal emulator the runs under a GUI (X). a window manager
can be used to resize and relocate the terminal windows that xterm uses.
xterm also has a graphical capability where it emulates a graphical terminal,
but there aren't many applications that can exploit this, i know of only two
gnuplot and dosemu) most other GUI based terminal emulators dsiplay text only.
It really depends on what exactly you want to end up with.
If you want multiple people connecting to your computer watching what you are doing, then exporting the X session through VNC should do it. You can either run a separate "headless" server (rendering into RAM frame buffer instead of a graphical card memory) or even export your current session with x11vnc
. For x11vnc
(which you may of course do even with the headless server), the -viewonly
option is your friend, since you don't want others to be able to interfere with whatever you do there. There seem to be solutions for connectiong to VNC server from a web browser, for example noVNC or realvnc
To broadcast the video (and optionally audio), so that it can be viewed without any "special" software or played back later, you can use for example ffmpeg
which is able to grab X11 data (search for x11grab
in docs) and turn it into a video. Of course you can add an audio stream of you commenting it. You can then stream the output and depending on the format and codecs it might be possible to watch it in a browser directly. However, unless you are in academia (or making this as a private, non-commercial activity), you are likely to be legally unable to use some codecs because of their patent encumberedness.
Best Answer
xlsclients
is a simple application which is listing theWM_CLIENT_MACHINE
andWM_COMMAND
properties set on top windows (ie. windows which are children of the root window or have aWM_STATE
property).That's about everything that it does. There's no magic.
For instance, I'm using my own window manager which has opened an
InputOnly
(invisible) window as child of the root window, to use it for ewmh's wm check. If I set those two properties on it, the expected thing will happen ;-)But to answer your question:
They're both clients of the X11 server, and they usually communicate by sending client messages with XSendEvent(3) and setting properties on windows. The protocol is described in icccm and ewmh. Notice that a client does not "have" a window; any client can do any operation on any window, including but not limited to setting and getting any property off it.