Entry submitted by Martín Ferrari. DPOTD needs your help, please contribute !
Gems is an unknown, little, but efficient program which enables you to broadcast what is seen in your terminal to any number of clients. It’s great for technical lectures and talks, where people often has to make an effort to see what are you typing in the projected screen. It is terminal-agnostic, communicates by any TCP port using very little bandwith and no CPU power, and obviously, it’s free software!
It is very easy to set up, there is no configuration at all, apt-get it and you’re ready to go. In the master terminal, launch the server, optionally specifying a listening port and maximum number of connections (defaults to 6666 and 25, respectively, see the man page for more information), and immediatly you will be given back a shell:
teacherhost:~$ gems-server -port 9999 gems-server initialized. gems-server: warning: terminal size is greater than 80x25. teacherhost:~$ cd tmp teacherhost:~/tmp$ PS1='Hello world class:\w\$ ' Hello world class:~/tmp$ Hello world class:~/tmp$ ls test.c Hello world class:~/tmp$
Gems warns you if you are using a big terminal, because clients won’t be able to connect if they have smaller terminals. To connect to a server, just specify address and port:
pupil1:~$ gems-client teacherhost 9999 gems-client: Connection established -- Press 'q' to exit. Hello world class:~/tmp$ ls test.c Hello world class:~/tmp$
When a client connects, he sees only what you type after the connection is made, no screen status is maintained. This is key to its simplicity and compatibility with any type of terminal, but you will have to force screen refreshes as new clients connect (usually just pressing ^L). In this example the client connected just before the ls command was issued.
This is a screenshot of a gems session with clients in the same computer, the focused terminal is the server. You can have different terminal sizes for clients and server as long as the server terminal can fit in the clients.
- Homepage of the project. It has not seen development lately, but it seems to Just Work(tm).
gems is included in Debian and Ubuntu since respectively Sarge and Hoary.