EuGTK is a complete and up-to-date Euphoria 4.1 wrapper for the GTK3 GUI (graphic user interface) for Linux, Windows, and OS-X. Euphoria 4.1b2 is required, earlier versions 3.x and 4.0 do not work.

  • All GTK3 widgets are wrapped, and up-to-date with the latest version of GTK3 - currently 3.24.5 on Windows, 3.22.30 on Mint (Aug 1, 2019). GTK is also one of the few GUI packages that is under continuous development and updating.
  • Euphoria/GTK code is much simpler and easier to understand than similar libraries for other programming languages. There's no need to manually size and position interface objects, and objects can be referred to by 'handle' or by name, whichever makes your code clearer. Dot notation for properties can be used: set("MainWindow.title","Hello") for example.
  • EuGTK uses a pseudo object oriented approach. Objects have properties which you can 'set' or 'get', by property name. Many difficult or complex GTK3 functions (such as creating and using a GtkListView) have easier-to-use alternatives implemented in Euphoria.


Built on an original concept by Dave Cuny, with help from Pete Eberlein, Greg Haberek, Kenneth Rhodes, Ron Tarrant, C.K. Lester, Don Cahela, Mike Sabal, Jerry Story, Derek Parnell, Jeremy Cowgar, and others. It is currently maintained by Irv Mullins.


The latest EuGTK version can be downloaded from
Or previous version (fallback in case the latest has bugs!) at

As of August 2023, and possibly back in May 2023, the above links stopped working.

However, you can still grab the fallback from or if you prefer Irv Mullins unmodified code.

For a simple download, you can grab it from

There is also a copy at


EuGTK runs on Linux, Windows, and OSX. In most cases, the same source code can run on all three platforms without change.

On the Linux platform, EuGTK uses the GTK3 libraries which are installed by default with current Linux distros such as Mint or Ubuntu, etc...

EuGTK on Windows requires the appropriate GTK libraries for Windows. Apparently, only 64-bit versions are now being maintained. A link to an easy GTK for Windows installer is included in the pdf which comes with the EuGTK package.

For OSX, you must install the gtk3 package with MacPorts

For Raspberry Pi


Simply open the .gz file, drag the 'demos' folder and drop it into your home folder (e.g. /home/irv/*demos goes here*).

Putting the EuGTK files in other locations will require some extra work, and isn't recommended. Demo programs and documentation will not be able to find the needed support files if you do this.

When you write your own programs, you can put things wherever you choose.


Extensive html docs are provided with the download, as well as more than 250 test programs which you can use to explore the capabilities of GTK3, and to copy/paste to make your own programming easier.

Simple, easy syntax:


  • create - declares a new, unique instance of a GTK object (a.k.a. 'widget')
  • add - puts 'widgets' into container, sharing available space equally
  • pack - puts 'widgets' into container, using only as much space as required
  • show_all - instantiates created widget instances
  • set - set one or more properties of a widget
  • get - retrieve the value of a widget property
  • main
    • enters the GTK main loop,
    • waits for user activity (called 'events')
    • and calls your Euphoria function(s) which you have connected to those events

Capable of creating complex programs:

BEAR (for Browse, Edit, and Run), shown above, edits and runs EuGTK programs, and is an excellent and productive web page html/css editor/viewer as well. The built-in program editor has syntax-color coding for more than 100 programming languages, selectable fonts, and pop-up help for both Euphoria and GTK keywords..

(Linux only at this time)

Drag & Drop Design

You can create your programs using any plain-text editor (WEE is recommended), or you can use Glade to design your user interface visually, then load the interface with just one line of Euphoria code!


Although for most purposes, interpreting or binding EuGTK programs works fine,
if you wish to compile your program, on newest Linux distros (e.g. Mint 19) euc fails:
You'll need to run a short script, shown below.

Replace $1 with the name of program you are compiling:
Replace the -j8 with -j[n] where [n] is the number of processors you have. Makes things faster.

$ euc -build-dir build -extra-lflags="-no-pie" -makefile $1.ex
$ make -j8 -f $1.mak -C build


Quick Links

User menu

Not signed in.

Misc Menu