hey John I looked at your tutorial..
couple things I noticed maybe you already know...
in 3b the python code...
This is not needed:
# language stuff I think
import gettext
LOCALEDIR = os.path.join(BASE, "share", "locale")
gettext.install("linuxcnc", localedir=LOCALEDIR, unicode=True)
gtk.glade.bindtextdomain("linuxcnc", LOCALEDIR)
gtk.glade.textdomain("linuxcnc")
TCLPATH = os.environ
Also when putting the new screen in /bin you don't need to remove the .py part.
DISPLAY=gui3.py
will work.
The reason I mention this is if someone is testing it is nice if the editor knows the file is python.
great work though! is your plan to add it to the official docs ?