Using Xpra


Xpra (https://xpra.org/) provides a way to get the X11 screen environment of the CS lab machines on a remote computer. For example, it allows you to run Clojure and Emacs on the lab machines but see it remotely on your laptop. It uses SSH, which meets the security requirements of UT.

Xpra uses a server program that runs on the lab machines (already installed, but you start and stop it) and a client program on your laptop, which you will need to install.

Installing Xpra on Mac

Download Xpra for Mac OS X to your Applications folder, then double-click the PKG file to install.

On my Mac, it claimed that the Xpra was "damaged". To fix this, enter the following command in a terminal window on the mac:

sudo xattr -rd com.apple.quarantine /Applications/Xpra.app

Installing Xpra on Windows

Download General purpose installer for Windows and run it. The download page has other options: Github page.

Running Xpra

Start Xpra on the Lab Machine

To run Xpra, you must first start the server on a lab machine. Copy the files xprastart and xprastop.

xprastart is:

xpra start :100 --start-child=xterm --start-via-proxy=no --opengl=yes

xprastop is:

xpra stop :100

Make these files executable:

chmod +x xprastart
chmod +x xprastop

Once you have these installed, you can just enter the command csh xprastart to start the Xpra server as a Linux command on the lab machine; after you are done, use the command csh xprastop to stop it. (In the unlikely event that you get a message that server 100 is already in use, you can use a higher number instead of 100. Or if you think this is your xpra, you can stop it and restart it.)

Start Xpra on Your Laptop

After starting the Xpra server on the lab machine, start Xpra on your laptop; do the following:

  1. Click Connect

  2. Select SSH as the connection Mode.

  3. Fill in your login name and the address of the lab machine you are using, e.g. foo.cs.utexas.edu

  4. Fill in 100 in the last part of the address

  5. Fill in your Linux password

  6. Click Connect

If things are working properly, you should now get a new Linux command window, which is Linux on the lab machine. What is different is that you can now give commands that will bring up additional windows, such as a text editor.

The keyboard mapping may be different for the control keys; experiment to find out what the mapping is.

As an example, to run Emacs with Clojure, you could enter:

emacs &
This should bring up a new Emacs window. In that window, enter:
Esc-X load-file z.emacsclj
Once that is loaded, you can start Clojure by:
Esc-X run-lisp
Now you should see the Clojure prompt user=> ; put the cursor at the end of that line and type something to Clojure, e.g. (+ 2 3).

You can create additional windows for Emacs or another text editor. You can edit your file in the editing window, and reload it into Clojure with

(load-file "myfile.clj")
in the window running Clojure.