Skip to content

Intro To Gtk

StreamController allows plugins to inject GTK widgets into the action configuration area for configuration of the actions.


GTK is a cross-platform GUI toolkit for creating graphical user interfaces. It is a free and open-source toolkit for developing applications with a focus on high quality and customization.

Getting Started

Good resources to get started with GTK in python:


If you feel overwhelmed by GTK I have good news for you:

  1. You don't need to know much about GTK to add config rows to your actions.
  2. You can check out other plugins to see how they implemented config rows.
  3. Feel free to ask any questions on the StreamController Discord

Action Configuration Area


The configuration area is splitted into two parts:

Custom config rows (marked blue)

Here plugins can add Adw.PreferencesRow widgets.
See get_config_rows for more information about the implementation.

Custom config area (marked green)

Here plugins can add any Gtk.Widgets widgets allowing more options for customization but also requiring more work.
See get_custom_config_area for more information about the implementation.