Courses IPC 2026



Road to Lazarus 5.0: The GTK3 Widgetset on Linux


Summary: GTK2 has been the default widgetset for Lazarus on Linux for many years. However, modern Linux distributions are gradually removing GTK2 from their repositories, making it necessary for Lazarus to move forward. Starting with Lazarus 5.0, GTK3 becomes the default Linux widgetset, supporting both X11 and Wayland display servers. In this mini-course, we explore the GTK3 widgetset implementation in Lazarus, discuss architectural differences compared to GTK2, and examine practical issues developers may encounter when running applications on Wayland compositors. The session includes live demonstrations and practical advice for developers migrating existing Lazarus applications from GTK2 to GTK3.

Instructor: Željan Rikalo
CV: Željan Rikalo is a Lazarus core developer who implemented the Qt4, Qt5, and Qt6 widgetsets for Lazarus, enabling cross-platform support for Linux, macOS, Windows, and Amiga (Qt5/Qt6). He has contributed numerous improvements and fixes to the GTK2 widgetset over the years. In 2012, he created the initial GTK3 widgetset skeleton, and over the past year and a half has worked extensively on updates and improvements that significantly advanced GTK3 support in Lazarus.

The course will cover the following topics:

1. The Shift to GTK3 in Lazarus 5.0

1.1 Why GTK2 is no longer viable
1.2 X11 vs Wayland: what changed
1.3 Lazarus widgetsets and the GTK3 transition

2. Inside the GTK3 Widgetset

2.1 How Lazarus widgetsets work
2.2 GTK2 vs GTK3: architectural differences
2.3 Rendering and event model

3. Runtime Behavior: X11 vs Wayland

3.1 GTK3 on X11 (compatibility mode)
3.2 GTK3 on Wayland
3.3 Real-world limitations and pitfalls

4. Migration and Best Practices

4.1 Adapting code for Wayland
4.2 Debugging and testing
4.3 Stability, performance, and future

Social Icon Social Icon

International Pascal Congress® is a registered trademark.