Skip to content

Devel GTK

Simeon Andreev edited this page Feb 23, 2023 · 1 revision

Getting started

If you are new to or want to learn SWT-GTK development, please see the comprehensive SWT-GTK development guide

SWT-GTK development articles

GTK compilation

SWT JNI compilation and os_custom development

GTK CSS

Debugging

Accessibility

Equinox launcher

Coding

Testing

Uploading your patch

Miscellaneous

Wayland specific development articles

Wayland (wiki) is a rendering engine, intended to be a replacement for X Window System (wiki).

Launching Wayland

In Fedora 21+, you can run things on Wayland. There are several ways:

Log into GNOME Wayland

Log out and then on the logon screen, click on the gear icon and select "Gnome Wayland". See example screenshot. As of 4.8 Eclipse is very usable on Wayland full time, barring a few smaller issues.

Launch Gnome Wayland in other Virtual Console

Alternatively, you can press Ctl+Alt+F3 etc.. to launch a virtual console. You login with your own user. Then run Gnome Wayland via:

gnome-session --session gnome-wayland

Kill unresponsive Wayland session

You may find sometimes that Wayland with GNOME becomes unresponsive. In this case, switch back to your original virtual terminal (using Ctlr + Alt + F[1,2,3,4...]).

Running the following command will give you the PID of the process that needs to be killed in order to end the GNOME Wayland session:

  ps aux | grep `<TTY_NUMBER>` | grep "gnome-session --session gnome-wayland" | grep -v dbus | awk '{print $2}'                # where `<TTY_NUMBER>` is the tty Wayland is running on (i.e. tty[1,2,3,4...])

You can then kill it using:

 sudo kill PID               # where PID is the PID of process found from the step above

To make this a bit easier I have written a script that does this all in one step.

 export PID="$(ps aux | grep $1 | grep "gnome-session --session gnome-wayland" | grep -v dbus | awk '{print $2}')"
 kill $PID

Simply run the script using:

 kill_gnome_wayland `<TTY_NUMBER>`            # where `<TTY_NUMBER>` is the tty Wayland is running on (i.e. tty[1,2,3,4...])

Note: to kill the process you may/may not need to use sudo.

How to identify if your app runs on Wayland as backend

Wayland has a notion of XWayland. This is so that you can run GTK2 apps on Wayland. Since Wayland and X applications look almost the same, it's tricky to tell them apart.

There are several ways to tell.

  • Launch Gtk Inspector. Under "General" tab, look under "GDK Backend".
  • Launch looking glass "lg", top left click on "Windows" Tab, then click on one of the applications in the list, inspect 'Gtype'. E.g
           Gtype:MetaWindowX11          # X11
           Gtype:MetaWindowWayland      # Wayland

Useful Eclipse wiki pages

These are pages mostly for special interest.

Further reading beyond this wiki

Clone this wiki locally