plug-ins: Fix some Python plug-ins query in headless environments

This fixes this unharmful message we were getting on macOS CI:

Gdk-WARNING **: 18:06:23.048: Failed to initialize CVDisplayLink!

The hard ones (spyro-plus.py, histogram-export.py and python-console.py)
were not touched for now, just the ProcedureDialog plugins were fixed.
This commit is contained in:
Bruno Lopes 2026-02-16 08:59:13 -03:00
parent 59e4aeff3f
commit a7f02d4ee1
10 changed files with 36 additions and 29 deletions

View file

@ -24,8 +24,6 @@ import sys
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
@ -69,7 +67,8 @@ def export_colorxhtml(procedure, run_mode, image, file, options, metadata, confi
GLib.Error(error))
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

View file

@ -17,8 +17,6 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gegl', '0.4')
from gi.repository import Gegl
from gi.repository import GObject
@ -32,6 +30,9 @@ def _(message): return GLib.dgettext(None, message)
def foggify(procedure, run_mode, image, drawables, config, data):
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
GimpUi.init('python-fu-foggify')
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)

View file

@ -25,13 +25,9 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import time
import sys
@ -62,6 +58,11 @@ def gradient_css_save(procedure, config, data):
runmode = config.get_property("run-mode")
if runmode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
GimpUi.init('python-fu-gradient-save-as-css')
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)

View file

@ -42,8 +42,6 @@ import sys
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
@ -165,6 +163,9 @@ def histogram_export(procedure, img, layers, gio_file,
def run(procedure, run_mode, image, layers, config, data):
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
GimpUi.init("python-fu-histogram-export")
dialog = GimpUi.ProcedureDialog.new(procedure, config, _("Histogram Export..."))

View file

@ -19,13 +19,9 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import os, sys, tempfile, zipfile
import xml.etree.ElementTree as ET
@ -45,6 +41,11 @@ def palette_kpl_export(procedure, config, data):
runmode = config.get_property("run-mode")
if runmode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
GimpUi.init('python-fu-palette-export-as-kpl')
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)

View file

@ -16,8 +16,6 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
@ -86,6 +84,8 @@ class PaletteOffset (Gimp.PlugIn):
GLib.Error(error))
if runmode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

View file

@ -29,13 +29,9 @@ gi.require_version('Babl', '0.1')
from gi.repository import Babl
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import sys
def N_(message): return message
@ -421,6 +417,11 @@ class PaletteSort (Gimp.PlugIn):
GLib.Error(error))
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
GimpUi.init('python-fu-palette-sort')
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)

View file

@ -16,13 +16,9 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import sys
def N_(message): return message
@ -62,6 +58,11 @@ def run(procedure, config, data):
run_mode = config.get_property("run-mode")
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
GimpUi.init(procedure.get_name())
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)

View file

@ -18,8 +18,6 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
@ -2359,6 +2357,9 @@ class SpyrogimpPlusPlugin(Gimp.PlugIn):
engine.draw_full(layers[0])
elif run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
Gegl.init (None)
window = SpyroWindow(image, layers[0])

View file

@ -16,8 +16,6 @@
import gi
gi.require_version('Gimp', '3.0')
from gi.repository import Gimp
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
gi.require_version('Gegl', '0.4')
from gi.repository import Gegl
from gi.repository import GObject
@ -99,6 +97,9 @@ def test_dialog(procedure, run_mode, image, drawables, config, data):
Just a standard shell for a plugin.
'''
if run_mode == Gimp.RunMode.INTERACTIVE:
gi.require_version('GimpUi', '3.0')
from gi.repository import GimpUi
GimpUi.init('python-fu-test-dialog')
Gegl.init(None)
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)