Skip to content

Latest commit

 

History

History
52 lines (31 loc) · 1.53 KB

File metadata and controls

52 lines (31 loc) · 1.53 KB

Architecture

ddterm consists of three components:

GNOME Shell extension launches GJS/Gtk application as a special Wayland client. Then they communicate over D-Bus in both directions.

  • Launches the application.

  • Handles "global" keyboard shortcuts.

  • Invokes GJS/Gtk application's exported actions over D-Bus.

  • Moves, resizes, maximizes/unmaximizes GJS/Gtk application's window. Currently, most of the awful hacks are here.

  • Most of the UI is implemented here, currently in Gtk 3.

  • Exposes some actions on D-Bus, for the GNOME Shell extension to invoke.

  • Unlike a regular Gtk app, it does not rely on D-Bus activation. Instead, it calls GNOME Shell extension's D-Bus API to start the "service" instance.

  • On Wayland, synchronizes its window size with the GNOME Shell extension's expected window size before showing the window.

Can be loaded by ddterm GJS/Gtk application, or by GNOME Shell Extensions app. Because of that, it currently has to support both Gtk 3 and Gtk 4.

Otherwise, nothing interesting.