From ef217f20f77347a6c45e1b1db1731839061c6e99 Mon Sep 17 00:00:00 2001
From: lovetox <philipp@hoerist.com>
Date: Sat, 5 Dec 2020 22:39:26 +0100
Subject: [PATCH] Make imports GUI agnostic

---
 gajim/app_actions.py                     | 14 +++---
 gajim/application.py                     |  4 +-
 gajim/chat_control.py                    | 24 ++++-----
 gajim/chat_control_base.py               | 24 ++++-----
 gajim/common/app.py                      |  2 +-
 gajim/common/client.py                   |  2 +-
 gajim/conversation_textview.py           | 16 +++---
 gajim/dialog_messages.py                 |  4 +-
 gajim/dialogs.py                         |  8 +--
 gajim/groupchat_control.py               | 28 +++++------
 gajim/gtk/account_wizard.py              | 14 +++---
 gajim/gtk/accounts.py                    | 18 +++----
 gajim/gtk/add_contact.py                 |  8 +--
 gajim/gtk/adhoc.py                       |  8 +--
 gajim/gtk/advanced_config.py             |  2 +-
 gajim/gtk/assistant.py                   |  4 +-
 gajim/gtk/avatar.py                      | 12 ++---
 gajim/gtk/avatar_selector.py             |  4 +-
 gajim/gtk/blocking.py                    |  6 +--
 gajim/gtk/bookmarks.py                   |  4 +-
 gajim/gtk/change_password.py             |  8 +--
 gajim/gtk/const.py                       | 62 ++++++++++++------------
 gajim/gtk/css_config.py                  |  4 +-
 gajim/gtk/dataform.py                    |  4 +-
 gajim/gtk/dialogs.py                     |  4 +-
 gajim/gtk/discovery.py                   | 12 ++---
 gajim/gtk/emoji_chooser.py               |  8 +--
 gajim/gtk/exception.py                   |  2 +-
 gajim/gtk/filechoosers.py                |  2 +-
 gajim/gtk/filetransfer.py                | 22 ++++-----
 gajim/gtk/filetransfer_progress.py       |  4 +-
 gajim/gtk/groupchat_config.py            |  8 +--
 gajim/gtk/groupchat_creation.py          |  8 +--
 gajim/gtk/groupchat_info.py              |  4 +-
 gajim/gtk/groupchat_invitation.py        |  4 +-
 gajim/gtk/groupchat_invite.py            |  4 +-
 gajim/gtk/groupchat_join.py              |  6 +--
 gajim/gtk/groupchat_nick.py              |  2 +-
 gajim/gtk/groupchat_roster.py            |  6 +--
 gajim/gtk/groupchat_settings.py          |  8 +--
 gajim/gtk/history.py                     | 20 ++++----
 gajim/gtk/history_sync.py                |  6 +--
 gajim/gtk/htmltextview.py                |  4 +-
 gajim/gtk/mam_preferences.py             | 12 ++---
 gajim/gtk/manage_sounds.py               |  2 +-
 gajim/gtk/message_input.py               |  2 +-
 gajim/gtk/notification.py                | 10 ++--
 gajim/gtk/pep_config.py                  | 10 ++--
 gajim/gtk/preferences.py                 | 28 +++++------
 gajim/gtk/profile.py                     |  8 +--
 gajim/gtk/proxies.py                     |  4 +-
 gajim/gtk/remove_account.py              |  6 +--
 gajim/gtk/roster_item_exchange.py        |  4 +-
 gajim/gtk/search.py                      | 10 ++--
 gajim/gtk/server_info.py                 |  8 +--
 gajim/gtk/service_registration.py        |  6 +--
 gajim/gtk/settings.py                    | 10 ++--
 gajim/gtk/single_message.py              | 12 ++---
 gajim/gtk/ssl_error_dialog.py            |  4 +-
 gajim/gtk/start_chat.py                  | 10 ++--
 gajim/gtk/status_change.py               | 12 ++---
 gajim/gtk/status_selector.py             |  2 +-
 gajim/gtk/statusicon.py                  | 12 ++---
 gajim/gtk/subscription_request.py        |  4 +-
 gajim/gtk/themes.py                      | 10 ++--
 gajim/gtk/tooltips.py                    | 16 +++---
 gajim/gtk/util.py                        |  6 +--
 gajim/gtk/video_preview.py               |  6 +--
 gajim/gtk/xml_console.py                 | 18 +++----
 gajim/gui_interface.py                   | 50 +++++++++----------
 gajim/gui_menu_builder.py                |  4 +-
 gajim/history_manager.py                 | 14 +++---
 gajim/message_window.py                  | 20 ++++----
 gajim/plugins/gui.py                     | 12 ++---
 gajim/plugins/helpers.py                 |  2 +-
 gajim/privatechat_control.py             |  4 +-
 gajim/remote_control.py                  |  2 +-
 gajim/roster_window.py                   | 50 +++++++++----------
 gajim/session.py                         |  4 +-
 gajim/vcard.py                           |  2 +-
 mypy.ini                                 |  3 ++
 pylintrc                                 |  2 +-
 test/gtk/assistant.py                    |  4 +-
 test/gtk/certificate_dialog.py           |  2 +-
 test/gtk/change_password.py              |  2 +-
 test/gtk/dataform.py                     |  2 +-
 test/gtk/fake_dataform.py                |  2 +-
 test/gtk/groupchat_info.py               |  2 +-
 test/gtk/ssl_error_dialog.py             |  2 +-
 test/no_gui/unit/test_nick_completion.py |  2 +-
 90 files changed, 420 insertions(+), 417 deletions(-)

diff --git a/gajim/app_actions.py b/gajim/app_actions.py
index 6d26c42b48..4c0abd85b4 100644
--- a/gajim/app_actions.py
+++ b/gajim/app_actions.py
@@ -23,13 +23,13 @@
 from gajim.common.exceptions import GajimGeneralException
 from gajim import dialogs
 
-from gajim.gtk.dialogs import ShortcutsWindow
-from gajim.gtk.single_message import SingleMessageWindow
-from gajim.gtk.about import AboutDialog
-from gajim.gtk.history import HistoryWindow
-from gajim.gtk.discovery import ServiceDiscoveryWindow
-from gajim.gtk.util import open_window
-from gajim.gtk.util import get_app_window
+from gajim.gui.dialogs import ShortcutsWindow
+from gajim.gui.single_message import SingleMessageWindow
+from gajim.gui.about import AboutDialog
+from gajim.gui.history import HistoryWindow
+from gajim.gui.discovery import ServiceDiscoveryWindow
+from gajim.gui.util import open_window
+from gajim.gui.util import get_app_window
 
 # General Actions
 
diff --git a/gajim/application.py b/gajim/application.py
index 3f5ea743b5..00a4963f57 100644
--- a/gajim/application.py
+++ b/gajim/application.py
@@ -208,7 +208,7 @@ def _startup(self, _application):
             dlg.destroy()
             sys.exit()
 
-        from gajim.gtk.util import load_user_iconsets
+        from gajim.gui.util import load_user_iconsets
         load_user_iconsets()
 
         from gajim.common.cert_store import CertificateStore
@@ -217,7 +217,7 @@ def _startup(self, _application):
 
         # Set Application Menu
         app.app = self
-        from gajim.gtk.util import get_builder
+        from gajim.gui.util import get_builder
         builder = get_builder('application_menu.ui')
         menubar = builder.get_object("menubar")
         self.set_menubar(menubar)
diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index b932135571..67126557df 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -59,18 +59,18 @@
 from gajim import gui_menu_builder
 from gajim import dialogs
 
-from gajim.gtk.gstreamer import create_gtk_widget
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.add_contact import AddNewContactWindow
-from gajim.gtk.util import get_cursor
-from gajim.gtk.util import format_mood
-from gajim.gtk.util import format_activity
-from gajim.gtk.util import format_tune
-from gajim.gtk.util import format_location
-from gajim.gtk.util import get_activity_icon_name
-from gajim.gtk.util import make_href_markup
-from gajim.gtk.const import ControlType
+from gajim.gui.gstreamer import create_gtk_widget
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.add_contact import AddNewContactWindow
+from gajim.gui.util import get_cursor
+from gajim.gui.util import format_mood
+from gajim.gui.util import format_activity
+from gajim.gui.util import format_tune
+from gajim.gui.util import format_location
+from gajim.gui.util import get_activity_icon_name
+from gajim.gui.util import make_href_markup
+from gajim.gui.const import ControlType
 
 from gajim.command_system.implementation.hosts import ChatCommands
 from gajim.command_system.framework import CommandHost  # pylint: disable=unused-import
diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py
index c4ff442b45..51e9c92e8c 100644
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -51,18 +51,18 @@
 
 from gajim.conversation_textview import ConversationTextview
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import PastePreviewDialog
-from gajim.gtk.message_input import MessageInputTextView
-from gajim.gtk.util import at_the_end
-from gajim.gtk.util import get_show_in_roster
-from gajim.gtk.util import get_show_in_systray
-from gajim.gtk.util import get_hardware_key_codes
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import generate_account_badge
-from gajim.gtk.const import ControlType  # pylint: disable=unused-import
-from gajim.gtk.emoji_chooser import emoji_chooser
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.dialogs import PastePreviewDialog
+from gajim.gui.message_input import MessageInputTextView
+from gajim.gui.util import at_the_end
+from gajim.gui.util import get_show_in_roster
+from gajim.gui.util import get_show_in_systray
+from gajim.gui.util import get_hardware_key_codes
+from gajim.gui.util import get_builder
+from gajim.gui.util import generate_account_badge
+from gajim.gui.const import ControlType  # pylint: disable=unused-import
+from gajim.gui.emoji_chooser import emoji_chooser
 
 from gajim.command_system.implementation.middleware import ChatCommandProcessor
 from gajim.command_system.implementation.middleware import CommandTools
diff --git a/gajim/common/app.py b/gajim/common/app.py
index ecd2b82cf0..97ced8a9f8 100644
--- a/gajim/common/app.py
+++ b/gajim/common/app.py
@@ -626,7 +626,7 @@ def prefers_app_menu():
 
 def load_css_config():
     global css_config
-    from gajim.gtk.css_config import CSSConfig
+    from gajim.gui.css_config import CSSConfig
     css_config = CSSConfig()
 
 def set_debug_mode(enable: bool) -> None:
diff --git a/gajim/common/client.py b/gajim/common/client.py
index de23e1c526..58b6825048 100644
--- a/gajim/common/client.py
+++ b/gajim/common/client.py
@@ -39,7 +39,7 @@
 from gajim.common.connection_handlers import ConnectionHandlers
 from gajim.common.connection_handlers_events import MessageSentEvent
 
-from gajim.gtk.util import open_window
+from gajim.gui.util import open_window
 
 
 log = logging.getLogger('gajim.client')
diff --git a/gajim/conversation_textview.py b/gajim/conversation_textview.py
index 508b014d05..a14c72c08a 100644
--- a/gajim/conversation_textview.py
+++ b/gajim/conversation_textview.py
@@ -45,14 +45,14 @@
 from gajim.common.const import URI_SCHEMES
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk import util
-from gajim.gtk.util import get_cursor
-from gajim.gtk.util import format_fingerprint
-from gajim.gtk.util import text_to_color
-from gajim.gtk.emoji_data import emoji_pixbufs
-from gajim.gtk.emoji_data import is_emoji
-from gajim.gtk.emoji_data import get_emoji_pixbuf
-from gajim.gtk.htmltextview import HtmlTextView
+from gajim.gui import util
+from gajim.gui.util import get_cursor
+from gajim.gui.util import format_fingerprint
+from gajim.gui.util import text_to_color
+from gajim.gui.emoji_data import emoji_pixbufs
+from gajim.gui.emoji_data import is_emoji
+from gajim.gui.emoji_data import get_emoji_pixbuf
+from gajim.gui.htmltextview import HtmlTextView
 
 NOT_SHOWN = 0
 ALREADY_RECEIVED = 1
diff --git a/gajim/dialog_messages.py b/gajim/dialog_messages.py
index 9cf27ba91a..bdcad6744b 100644
--- a/gajim/dialog_messages.py
+++ b/gajim/dialog_messages.py
@@ -21,8 +21,8 @@
 
 from gajim.common.app import app
 from gajim.common.i18n import _
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import InformationDialog
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.dialogs import InformationDialog
 
 Message = namedtuple('Message', ['title', 'text', 'dialog'])
 
diff --git a/gajim/dialogs.py b/gajim/dialogs.py
index 3e5af2b339..e9e12f165d 100644
--- a/gajim/dialogs.py
+++ b/gajim/dialogs.py
@@ -41,10 +41,10 @@
 from gajim.common import helpers
 from gajim.common.exceptions import GajimGeneralException
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_app_window
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.util import get_icon_name
+from gajim.gui.util import get_builder
+from gajim.gui.util import get_app_window
 
 log = logging.getLogger('gajim.dialogs')
 
diff --git a/gajim/groupchat_control.py b/gajim/groupchat_control.py
index 13982396b1..34b5309840 100644
--- a/gajim/groupchat_control.py
+++ b/gajim/groupchat_control.py
@@ -63,20 +63,20 @@
 
 from gajim.command_system.implementation.hosts import GroupChatCommands
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationCheckDialog
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.filechoosers import AvatarChooserDialog
-from gajim.gtk.groupchat_config import GroupchatConfig
-from gajim.gtk.adhoc import AdHocCommand
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.groupchat_info import GroupChatInfoScrolled
-from gajim.gtk.groupchat_invite import GroupChatInvite
-from gajim.gtk.groupchat_settings import GroupChatSettings
-from gajim.gtk.groupchat_roster import GroupchatRoster
-from gajim.gtk.util import NickCompletionGenerator
-from gajim.gtk.util import get_app_window
-from gajim.gtk.const import ControlType
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationCheckDialog
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.filechoosers import AvatarChooserDialog
+from gajim.gui.groupchat_config import GroupchatConfig
+from gajim.gui.adhoc import AdHocCommand
+from gajim.gui.dataform import DataFormWidget
+from gajim.gui.groupchat_info import GroupChatInfoScrolled
+from gajim.gui.groupchat_invite import GroupChatInvite
+from gajim.gui.groupchat_settings import GroupChatSettings
+from gajim.gui.groupchat_roster import GroupchatRoster
+from gajim.gui.util import NickCompletionGenerator
+from gajim.gui.util import get_app_window
+from gajim.gui.const import ControlType
 
 log = logging.getLogger('gajim.groupchat_control')
 
diff --git a/gajim/gtk/account_wizard.py b/gajim/gtk/account_wizard.py
index 9bd623cf50..1022b84e2c 100644
--- a/gajim/gtk/account_wizard.py
+++ b/gajim/gtk/account_wizard.py
@@ -41,15 +41,15 @@
 from gajim.common.const import SASL_ERRORS
 from gajim.common.const import GIO_TLS_ERRORS
 
-from gajim.gtk.assistant import Assistant
-from gajim.gtk.assistant import Page
-from gajim.gtk.assistant import SuccessPage
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import open_window
+from .assistant import Assistant
+from .assistant import Page
+from .assistant import SuccessPage
+from .dataform import DataFormWidget
+from .util import get_builder
+from .util import open_window
 
 
-log = logging.getLogger('gajim.gtk.account_wizard')
+log = logging.getLogger('gajim.gui.account_wizard')
 
 
 class AccountWizard(Assistant):
diff --git a/gajim/gtk/accounts.py b/gajim/gtk/accounts.py
index b7dd832bef..76bf8120b7 100644
--- a/gajim/gtk/accounts.py
+++ b/gajim/gtk/accounts.py
@@ -26,17 +26,17 @@
 from gajim.common import passwords
 from gajim.common.i18n import _
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.const import Setting
-from gajim.gtk.const import SettingKind
-from gajim.gtk.const import SettingType
-from gajim.gtk.settings import SettingsDialog
-from gajim.gtk.settings import SettingsBox
-from gajim.gtk.util import open_window
+from .dialogs import DialogButton
+from .dialogs import ConfirmationDialog
+from .const import Setting
+from .const import SettingKind
+from .const import SettingType
+from .settings import SettingsDialog
+from .settings import SettingsBox
+from .util import open_window
 
 
-log = logging.getLogger('gajim.gtk.accounts')
+log = logging.getLogger('gajim.gui.accounts')
 
 
 class AccountsWindow(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/add_contact.py b/gajim/gtk/add_contact.py
index c098a202a7..f193f06e0f 100644
--- a/gajim/gtk/add_contact.py
+++ b/gajim/gtk/add_contact.py
@@ -21,9 +21,9 @@
 from gajim.common import helpers
 from gajim.common.i18n import _
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
+from .dialogs import ErrorDialog
+from .util import get_builder
+from .util import EventHelper
 
 
 class AddNewContactWindow(Gtk.ApplicationWindow, EventHelper):
@@ -233,7 +233,7 @@ def on_register_button_clicked(self, widget):
         model = self.protocol_jid_combobox.get_model()
         row = self.protocol_jid_combobox.get_active()
         jid = model[row][0]
-        from gajim.gtk.service_registration import ServiceRegistration
+        from .service_registration import ServiceRegistration
         ServiceRegistration(self.account, jid)
 
     def _on_key_press(self, widget, event):
diff --git a/gajim/gtk/adhoc.py b/gajim/gtk/adhoc.py
index 593e9f096c..9a8083c536 100644
--- a/gajim/gtk/adhoc.py
+++ b/gajim/gtk/adhoc.py
@@ -26,11 +26,11 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.util import find_widget
-from gajim.gtk.util import MultiLineLabel
+from .dataform import DataFormWidget
+from .util import find_widget
+from .util import MultiLineLabel
 
-log = logging.getLogger('gajim.gtk.adhoc')
+log = logging.getLogger('gajim.gui.adhoc')
 
 
 class Page(IntEnum):
diff --git a/gajim/gtk/advanced_config.py b/gajim/gtk/advanced_config.py
index c99d1e4a60..651cd7134d 100644
--- a/gajim/gtk/advanced_config.py
+++ b/gajim/gtk/advanced_config.py
@@ -32,7 +32,7 @@
 
 from gajim.common.setting_values import ADVANCED_SETTINGS
 from gajim.common.setting_values import APP_SETTINGS
-from gajim.gtk.util import get_builder
+from .util import get_builder
 
 
 @unique
diff --git a/gajim/gtk/assistant.py b/gajim/gtk/assistant.py
index 21ce51d79f..b30e8f92cf 100644
--- a/gajim/gtk/assistant.py
+++ b/gajim/gtk/assistant.py
@@ -17,8 +17,8 @@
 from gi.repository import Gio
 from gi.repository import GObject
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
+from .util import get_builder
+from .util import EventHelper
 
 
 class Assistant(Gtk.ApplicationWindow, EventHelper):
diff --git a/gajim/gtk/avatar.py b/gajim/gtk/avatar.py
index e9ea430b6c..f59bf8ac12 100644
--- a/gajim/gtk/avatar.py
+++ b/gajim/gtk/avatar.py
@@ -29,13 +29,13 @@
 from gajim.common.const import AvatarSize
 from gajim.common.const import StyleAttr
 
-from gajim.gtk.util import load_pixbuf
-from gajim.gtk.util import text_to_color
-from gajim.gtk.util import scale_with_ratio
-from gajim.gtk.util import get_css_show_class
-from gajim.gtk.util import convert_rgb_string_to_float
+from .util import load_pixbuf
+from .util import text_to_color
+from .util import scale_with_ratio
+from .util import get_css_show_class
+from .util import convert_rgb_string_to_float
 
-log = logging.getLogger('gajim.gtk.avatar')
+log = logging.getLogger('gajim.gui.avatar')
 
 
 def generate_avatar(letters, color, size, scale):
diff --git a/gajim/gtk/avatar_selector.py b/gajim/gtk/avatar_selector.py
index c16ce61b63..b16ade8428 100755
--- a/gajim/gtk/avatar_selector.py
+++ b/gajim/gtk/avatar_selector.py
@@ -30,9 +30,9 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import get_file_path_from_dnd_dropped_uri
 
-from gajim.gtk.util import scale_with_ratio
+from .util import scale_with_ratio
 
-log = logging.getLogger('gajim.gtk.avatar_selector')
+log = logging.getLogger('gajim.gui.avatar_selector')
 
 
 @unique
diff --git a/gajim/gtk/blocking.py b/gajim/gtk/blocking.py
index ca1b8a5199..0721f79e11 100644
--- a/gajim/gtk/blocking.py
+++ b/gajim/gtk/blocking.py
@@ -23,10 +23,10 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.dialogs import HigDialog
+from .util import get_builder
+from .dialogs import HigDialog
 
-log = logging.getLogger('gajim.gtk.blocking_list')
+log = logging.getLogger('gajim.gui.blocking_list')
 
 
 class BlockingList(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/bookmarks.py b/gajim/gtk/bookmarks.py
index 2f134d67ca..c07c073094 100644
--- a/gajim/gtk/bookmarks.py
+++ b/gajim/gtk/bookmarks.py
@@ -25,10 +25,10 @@
 from gajim.common.helpers import validate_jid
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
+from .util import get_builder
 
 
-log = logging.getLogger('gajim.gtk.bookmarks')
+log = logging.getLogger('gajim.gui.bookmarks')
 
 
 class Column(IntEnum):
diff --git a/gajim/gtk/change_password.py b/gajim/gtk/change_password.py
index bdfb4fc1a3..6633bf2708 100644
--- a/gajim/gtk/change_password.py
+++ b/gajim/gtk/change_password.py
@@ -24,11 +24,11 @@
 from gajim.common import passwords
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk.assistant import Assistant
-from gajim.gtk.assistant import Page
-from gajim.gtk.dataform import DataFormWidget
+from .assistant import Assistant
+from .assistant import Page
+from .dataform import DataFormWidget
 
-log = logging.getLogger('gajim.gtk.change_password')
+log = logging.getLogger('gajim.gui.change_password')
 
 
 class ChangePassword(Assistant):
diff --git a/gajim/gtk/const.py b/gajim/gtk/const.py
index ac04bb2c4a..833ae64000 100644
--- a/gajim/gtk/const.py
+++ b/gajim/gtk/const.py
@@ -98,37 +98,37 @@ def __str__(self):
 
 
 WINDOW_MODULES = {
-    'AccountsWindow': 'gajim.gtk.accounts',
-    'HistorySyncAssistant': 'gajim.gtk.history_sync',
-    'ServerInfo': 'gajim.gtk.server_info',
-    'MamPreferences': 'gajim.gtk.mam_preferences',
-    'Preferences': 'gajim.gtk.preferences',
-    'CreateGroupchatWindow': 'gajim.gtk.groupchat_creation',
-    'StartChatDialog': 'gajim.gtk.start_chat',
-    'AddNewContactWindow': 'gajim.gtk.add_contact',
-    'SingleMessageWindow': 'gajim.gtk.single_message',
-    'Bookmarks': 'gajim.gtk.bookmarks',
-    'AccountWizard': 'gajim.gtk.account_wizard',
-    'HistoryWindow': 'gajim.gtk.history',
-    'ManageProxies': 'gajim.gtk.proxies',
-    'ManageSounds': 'gajim.gtk.manage_sounds',
-    'ServiceDiscoveryWindow': 'gajim.gtk.discovery',
-    'BlockingList': 'gajim.gtk.blocking',
-    'XMLConsoleWindow': 'gajim.gtk.xml_console',
-    'GroupchatJoin': 'gajim.gtk.groupchat_join',
-    'PEPConfig': 'gajim.gtk.pep_config',
+    'AccountsWindow': 'gajim.gui.accounts',
+    'HistorySyncAssistant': 'gajim.gui.history_sync',
+    'ServerInfo': 'gajim.gui.server_info',
+    'MamPreferences': 'gajim.gui.mam_preferences',
+    'Preferences': 'gajim.gui.preferences',
+    'CreateGroupchatWindow': 'gajim.gui.groupchat_creation',
+    'StartChatDialog': 'gajim.gui.start_chat',
+    'AddNewContactWindow': 'gajim.gui.add_contact',
+    'SingleMessageWindow': 'gajim.gui.single_message',
+    'Bookmarks': 'gajim.gui.bookmarks',
+    'AccountWizard': 'gajim.gui.account_wizard',
+    'HistoryWindow': 'gajim.gui.history',
+    'ManageProxies': 'gajim.gui.proxies',
+    'ManageSounds': 'gajim.gui.manage_sounds',
+    'ServiceDiscoveryWindow': 'gajim.gui.discovery',
+    'BlockingList': 'gajim.gui.blocking',
+    'XMLConsoleWindow': 'gajim.gui.xml_console',
+    'GroupchatJoin': 'gajim.gui.groupchat_join',
+    'PEPConfig': 'gajim.gui.pep_config',
     'HistoryManager': 'gajim.history_manager',
-    'GroupchatConfig': 'gajim.gtk.groupchat_config',
-    'ProfileWindow': 'gajim.gtk.profile',
-    'SSLErrorDialog': 'gajim.gtk.ssl_error_dialog',
-    'Themes': 'gajim.gtk.themes',
-    'AdvancedConfig': 'gajim.gtk.advanced_config',
-    'CertificateDialog': 'gajim.gtk.dialogs',
-    'SubscriptionRequest': 'gajim.gtk.subscription_request',
-    'RemoveAccount': 'gajim.gtk.remove_account',
-    'ChangePassword': 'gajim.gtk.change_password',
+    'GroupchatConfig': 'gajim.gui.groupchat_config',
+    'ProfileWindow': 'gajim.gui.profile',
+    'SSLErrorDialog': 'gajim.gui.ssl_error_dialog',
+    'Themes': 'gajim.gui.themes',
+    'AdvancedConfig': 'gajim.gui.advanced_config',
+    'CertificateDialog': 'gajim.gui.dialogs',
+    'SubscriptionRequest': 'gajim.gui.subscription_request',
+    'RemoveAccount': 'gajim.gui.remove_account',
+    'ChangePassword': 'gajim.gui.change_password',
     'PluginsWindow': 'gajim.plugins.gui',
-    'Features': 'gajim.gtk.features',
-    'StatusChange': 'gajim.gtk.status_change',
-    'GroupChatInvitation': 'gajim.gtk.groupchat_invitation',
+    'Features': 'gajim.gui.features',
+    'StatusChange': 'gajim.gui.status_change',
+    'GroupChatInvitation': 'gajim.gui.groupchat_invitation',
 }
diff --git a/gajim/gtk/css_config.py b/gajim/gtk/css_config.py
index 67223cb540..25f6507d96 100644
--- a/gajim/gtk/css_config.py
+++ b/gajim/gtk/css_config.py
@@ -27,9 +27,9 @@
 from gajim.common import configpaths
 from gajim.common.const import StyleAttr, CSSPriority
 
-from gajim.gtk.const import Theme
+from .const import Theme
 
-log = logging.getLogger('gajim.gtk.css')
+log = logging.getLogger('gajim.gui.css')
 settings = Gtk.Settings.get_default()
 
 
diff --git a/gajim/gtk/dataform.py b/gajim/gtk/dataform.py
index 1cc858aa10..a9da33d51b 100644
--- a/gajim/gtk/dataform.py
+++ b/gajim/gtk/dataform.py
@@ -25,8 +25,8 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import open_uri
 
-from gajim.gtk.util import MultiLineLabel
-from gajim.gtk.util import MaxWidthComboBoxText
+from .util import MultiLineLabel
+from .util import MaxWidthComboBoxText
 
 
 # Options
diff --git a/gajim/gtk/dialogs.py b/gajim/gtk/dialogs.py
index fdf1ca5054..1e521f93b8 100644
--- a/gajim/gtk/dialogs.py
+++ b/gajim/gtk/dialogs.py
@@ -26,8 +26,8 @@
 from gajim.common.const import ButtonAction
 from gajim.common.helpers import convert_gio_to_openssl_cert
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_thumbnail_size
+from .util import get_builder
+from .util import get_thumbnail_size
 
 
 class DialogButton(namedtuple('DialogButton', ('response text callback args '
diff --git a/gajim/gtk/discovery.py b/gajim/gtk/discovery.py
index d701a7cc20..af3fad3025 100644
--- a/gajim/gtk/discovery.py
+++ b/gajim/gtk/discovery.py
@@ -58,12 +58,12 @@
 from gajim.common.i18n import _
 from gajim.common.const import StyleAttr
 
-from gajim.gtk.adhoc import AdHocCommand
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.search import Search
-from gajim.gtk.service_registration import ServiceRegistration
-from gajim.gtk.util import icon_exists
-from gajim.gtk.util import get_builder
+from .adhoc import AdHocCommand
+from .dialogs import ErrorDialog
+from .search import Search
+from .service_registration import ServiceRegistration
+from .util import icon_exists
+from .util import get_builder
 
 LABELS = {
     1: _('This service has not yet responded with detailed information'),
diff --git a/gajim/gtk/emoji_chooser.py b/gajim/gtk/emoji_chooser.py
index a1d9adc600..ae3d2473ec 100644
--- a/gajim/gtk/emoji_chooser.py
+++ b/gajim/gtk/emoji_chooser.py
@@ -25,10 +25,10 @@
 from gajim.common import helpers
 from gajim.common import configpaths
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.emoji_data import emoji_data
-from gajim.gtk.emoji_data import emoji_pixbufs
-from gajim.gtk.emoji_data import Emoji
+from .util import get_builder
+from .emoji_data import emoji_data
+from .emoji_data import emoji_pixbufs
+from .emoji_data import Emoji
 
 MODIFIER_MAX_CHILDREN_PER_LINE = 6
 MAX_CHILDREN_PER_LINE = 10
diff --git a/gajim/gtk/exception.py b/gajim/gtk/exception.py
index c5270f14ca..2d4b1c4d77 100644
--- a/gajim/gtk/exception.py
+++ b/gajim/gtk/exception.py
@@ -34,7 +34,7 @@
 
 import gajim
 from gajim.common import configpaths
-from gajim.gtk.util import get_builder
+from .util import get_builder
 
 
 _exception_in_progress = threading.Lock()
diff --git a/gajim/gtk/filechoosers.py b/gajim/gtk/filechoosers.py
index e340f491e7..10038621ec 100644
--- a/gajim/gtk/filechoosers.py
+++ b/gajim/gtk/filechoosers.py
@@ -28,7 +28,7 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.const import Filter
+from .const import Filter
 
 
 def _require_native() -> bool:
diff --git a/gajim/gtk/filetransfer.py b/gajim/gtk/filetransfer.py
index e8a8f392f1..2390a19c59 100644
--- a/gajim/gtk/filetransfer.py
+++ b/gajim/gtk/filetransfer.py
@@ -41,17 +41,17 @@
                                              is_transfer_paused,
                                              is_transfer_stopped)
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import HigDialog
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.filechoosers import FileSaveDialog
-from gajim.gtk.filechoosers import FileChooserDialog
-from gajim.gtk.tooltips import FileTransfersTooltip
-from gajim.gtk.util import get_builder
-
-log = logging.getLogger('gajim.gtk.filetransfer')
+from .dialogs import DialogButton
+from .dialogs import ConfirmationDialog
+from .dialogs import HigDialog
+from .dialogs import InformationDialog
+from .dialogs import ErrorDialog
+from .filechoosers import FileSaveDialog
+from .filechoosers import FileChooserDialog
+from .tooltips import FileTransfersTooltip
+from .util import get_builder
+
+log = logging.getLogger('gajim.gui.filetransfer')
 
 
 @unique
diff --git a/gajim/gtk/filetransfer_progress.py b/gajim/gtk/filetransfer_progress.py
index dc9d76e4df..769782354e 100644
--- a/gajim/gtk/filetransfer_progress.py
+++ b/gajim/gtk/filetransfer_progress.py
@@ -20,8 +20,8 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
+from .util import get_builder
+from .util import EventHelper
 
 
 class FileTransferProgress(Gtk.ApplicationWindow, EventHelper):
diff --git a/gajim/gtk/groupchat_config.py b/gajim/gtk/groupchat_config.py
index f60fd65e96..a1c6fbc2c2 100644
--- a/gajim/gtk/groupchat_config.py
+++ b/gajim/gtk/groupchat_config.py
@@ -23,11 +23,11 @@
 from gajim.common.i18n import _
 from gajim.common.const import MUCUser
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.util import get_builder
+from .dialogs import ErrorDialog
+from .dataform import DataFormWidget
+from .util import get_builder
 
-log = logging.getLogger('gajim.gtk.groupchat_config')
+log = logging.getLogger('gajim.gui.groupchat_config')
 
 
 class GroupchatConfig(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/groupchat_creation.py b/gajim/gtk/groupchat_creation.py
index 33c0080811..63cb055ec5 100644
--- a/gajim/gtk/groupchat_creation.py
+++ b/gajim/gtk/groupchat_creation.py
@@ -27,11 +27,11 @@
 from gajim.common.helpers import validate_jid
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import ensure_not_destroyed
+from .dialogs import ErrorDialog
+from .util import get_builder
+from .util import ensure_not_destroyed
 
-log = logging.getLogger('gajim.gtk.groupchat_creation')
+log = logging.getLogger('gajim.gui.groupchat_creation')
 
 
 class CreateGroupchatWindow(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/groupchat_info.py b/gajim/gtk/groupchat_info.py
index f3dd5f5d91..55f3adb8db 100644
--- a/gajim/gtk/groupchat_info.py
+++ b/gajim/gtk/groupchat_info.py
@@ -28,8 +28,8 @@
 from gajim.common.const import RFC5646_LANGUAGE_TAGS
 from gajim.common.const import AvatarSize
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import make_href_markup
+from .util import get_builder
+from .util import make_href_markup
 
 
 MUC_FEATURES = {
diff --git a/gajim/gtk/groupchat_invitation.py b/gajim/gtk/groupchat_invitation.py
index 580bb31b5d..70dcb2f8fe 100644
--- a/gajim/gtk/groupchat_invitation.py
+++ b/gajim/gtk/groupchat_invitation.py
@@ -19,8 +19,8 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import get_group_chat_nick
 
-from gajim.gtk.groupchat_info import GroupChatInfoScrolled
-from gajim.gtk.groupchat_nick import NickChooser
+from .groupchat_info import GroupChatInfoScrolled
+from .groupchat_nick import NickChooser
 
 
 class GroupChatInvitation(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/groupchat_invite.py b/gajim/gtk/groupchat_invite.py
index 4e115e7872..cd7597787c 100644
--- a/gajim/gtk/groupchat_invite.py
+++ b/gajim/gtk/groupchat_invite.py
@@ -25,8 +25,8 @@
 from gajim.common.const import AvatarSize
 from gajim.common.helpers import validate_jid
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import generate_account_badge
+from .util import get_builder
+from .util import generate_account_badge
 
 
 class GroupChatInvite(Gtk.Box):
diff --git a/gajim/gtk/groupchat_join.py b/gajim/gtk/groupchat_join.py
index 9fa6b2a244..1cd52659dd 100644
--- a/gajim/gtk/groupchat_join.py
+++ b/gajim/gtk/groupchat_join.py
@@ -25,9 +25,9 @@
 from gajim.common.helpers import get_group_chat_nick
 from gajim.common.const import MUC_DISCO_ERRORS
 
-from gajim.gtk.groupchat_info import GroupChatInfoScrolled
-from gajim.gtk.groupchat_nick import NickChooser
-from gajim.gtk.util import ensure_not_destroyed
+from .groupchat_info import GroupChatInfoScrolled
+from .groupchat_nick import NickChooser
+from .util import ensure_not_destroyed
 
 
 class GroupchatJoin(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/groupchat_nick.py b/gajim/gtk/groupchat_nick.py
index de7f7d40a2..f9e0682ad7 100644
--- a/gajim/gtk/groupchat_nick.py
+++ b/gajim/gtk/groupchat_nick.py
@@ -17,7 +17,7 @@
 from nbxmpp.protocol import InvalidJid
 from nbxmpp.protocol import validate_resourcepart
 
-from gajim.gtk.util import get_builder
+from .util import get_builder
 
 
 class NickChooser(Gtk.MenuButton):
diff --git a/gajim/gtk/groupchat_roster.py b/gajim/gtk/groupchat_roster.py
index b8f670a882..1a50acfbd8 100644
--- a/gajim/gtk/groupchat_roster.py
+++ b/gajim/gtk/groupchat_roster.py
@@ -33,9 +33,9 @@
 from gajim.common.const import StyleAttr
 
 from gajim.gui_menu_builder import get_groupchat_roster_menu
-from gajim.gtk.tooltips import GCTooltip
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
+from .tooltips import GCTooltip
+from .util import get_builder
+from .util import EventHelper
 
 
 AffiliationRoleSortOrder = {
diff --git a/gajim/gtk/groupchat_settings.py b/gajim/gtk/groupchat_settings.py
index e120689e30..bf9f14f131 100644
--- a/gajim/gtk/groupchat_settings.py
+++ b/gajim/gtk/groupchat_settings.py
@@ -17,10 +17,10 @@
 from gajim.common.const import THRESHOLD_OPTIONS
 from gajim.common.i18n import _
 
-from gajim.gtk.const import Setting
-from gajim.gtk.const import SettingKind
-from gajim.gtk.const import SettingType
-from gajim.gtk.settings import SettingsBox
+from .const import Setting
+from .const import SettingKind
+from .const import SettingType
+from .settings import SettingsBox
 
 
 class GroupChatSettings(SettingsBox):
diff --git a/gajim/gtk/history.py b/gajim/gtk/history.py
index 67f6ce6d98..2f012b1b81 100644
--- a/gajim/gtk/history.py
+++ b/gajim/gtk/history.py
@@ -40,16 +40,16 @@
 
 from gajim import conversation_textview
 
-from gajim.gtk.util import python_month
-from gajim.gtk.util import gtk_month
-from gajim.gtk.util import resize_window
-from gajim.gtk.util import move_window
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import get_completion_liststore
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import scroll_to_end
-
-from gajim.gtk.dialogs import ErrorDialog
+from .util import python_month
+from .util import gtk_month
+from .util import resize_window
+from .util import move_window
+from .util import get_icon_name
+from .util import get_completion_liststore
+from .util import get_builder
+from .util import scroll_to_end
+
+from .dialogs import ErrorDialog
 
 @unique
 class InfoColumn(IntEnum):
diff --git a/gajim/gtk/history_sync.py b/gajim/gtk/history_sync.py
index 9902d810ec..926f2f8803 100644
--- a/gajim/gtk/history_sync.py
+++ b/gajim/gtk/history_sync.py
@@ -28,10 +28,10 @@
 from gajim.common.const import ArchiveState
 from gajim.common.helpers import event_filter
 
-from gajim.gtk.util import load_icon
-from gajim.gtk.util import EventHelper
+from .util import load_icon
+from .util import EventHelper
 
-log = logging.getLogger('gajim.gtk.history_sync')
+log = logging.getLogger('gajim.gui.history_sync')
 
 
 class Pages(IntEnum):
diff --git a/gajim/gtk/htmltextview.py b/gajim/gtk/htmltextview.py
index 4f4ee2a6c5..d876c116ba 100644
--- a/gajim/gtk/htmltextview.py
+++ b/gajim/gtk/htmltextview.py
@@ -47,10 +47,10 @@
 from gajim.common.const import StyleAttr
 from gajim.common.helpers import open_uri
 from gajim.common.helpers import parse_uri
-from gajim.gtk.util import get_cursor
-
 from gajim.gui_menu_builder import get_conv_context_menu
 
+from .util import get_cursor
+
 log = logging.getLogger('gajim.htmlview')
 
 whitespace_rx = re.compile('\\s+')
diff --git a/gajim/gtk/mam_preferences.py b/gajim/gtk/mam_preferences.py
index 7b4eb95003..428568ceab 100644
--- a/gajim/gtk/mam_preferences.py
+++ b/gajim/gtk/mam_preferences.py
@@ -23,13 +23,13 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import InformationDialog
+from .util import get_builder
+from .util import EventHelper
+from .dialogs import DialogButton
+from .dialogs import ConfirmationDialog
+from .dialogs import InformationDialog
 
-log = logging.getLogger('gajim.gtk.mam_preferences')
+log = logging.getLogger('gajim.gui.mam_preferences')
 
 
 class MamPreferences(Gtk.ApplicationWindow, EventHelper):
diff --git a/gajim/gtk/manage_sounds.py b/gajim/gtk/manage_sounds.py
index 42b0a540f7..1ef80e8950 100644
--- a/gajim/gtk/manage_sounds.py
+++ b/gajim/gtk/manage_sounds.py
@@ -23,7 +23,7 @@
 from gajim.common.helpers import strip_soundfile_path
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
+from .util import get_builder
 
 
 class ManageSounds(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/message_input.py b/gajim/gtk/message_input.py
index 001ba8151e..bf7a99305a 100644
--- a/gajim/gtk/message_input.py
+++ b/gajim/gtk/message_input.py
@@ -29,7 +29,7 @@
 from gajim.common.i18n import _
 from gajim.common.const import StyleAttr
 
-from gajim.gtk.util import scroll_to_end
+from .util import scroll_to_end
 
 if app.is_installed('GSPELL'):
     from gi.repository import Gspell  # pylint: disable=ungrouped-imports
diff --git a/gajim/gtk/notification.py b/gajim/gtk/notification.py
index e7db0c0e1c..1ce46a51da 100644
--- a/gajim/gtk/notification.py
+++ b/gajim/gtk/notification.py
@@ -40,12 +40,12 @@
 from gajim.common.i18n import _
 from gajim.common.nec import EventHelper
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import get_monitor_scale_factor
-from gajim.gtk.util import get_total_screen_geometry
+from .util import get_builder
+from .util import get_icon_name
+from .util import get_monitor_scale_factor
+from .util import get_total_screen_geometry
 
-log = logging.getLogger('gajim.gtk.notification')
+log = logging.getLogger('gajim.gui.notification')
 
 
 class Notification(EventHelper):
diff --git a/gajim/gtk/pep_config.py b/gajim/gtk/pep_config.py
index f464858326..daa1419b5c 100644
--- a/gajim/gtk/pep_config.py
+++ b/gajim/gtk/pep_config.py
@@ -22,13 +22,13 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import to_user_string
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import WarningDialog
-from gajim.gtk.dataform import DataFormDialog
-from gajim.gtk.util import get_builder
+from .dialogs import ErrorDialog
+from .dialogs import WarningDialog
+from .dataform import DataFormDialog
+from .util import get_builder
 
 
-log = logging.getLogger('gajim.gtk.pep')
+log = logging.getLogger('gajim.gui.pep')
 
 
 class PEPConfig(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/preferences.py b/gajim/gtk/preferences.py
index a46d734945..e0c2f5520c 100644
--- a/gajim/gtk/preferences.py
+++ b/gajim/gtk/preferences.py
@@ -31,24 +31,24 @@
 
 from gajim.chat_control_base import ChatControlBase
 
-from gajim.gtk.const import Setting
-from gajim.gtk.const import SettingKind
-from gajim.gtk.const import SettingType
-from gajim.gtk.const import ControlType
-from gajim.gtk.emoji_chooser import emoji_chooser
-from gajim.gtk.settings import SettingsBox
-from gajim.gtk.settings import SettingsDialog
-from gajim.gtk.sidebar_switcher import SideBarSwitcher
-from gajim.gtk.video_preview import VideoPreview
-from gajim.gtk.util import get_available_iconsets
-from gajim.gtk.util import open_window
-from gajim.gtk.util import get_app_window
-from gajim.gtk.util import get_builder
+from .const import Setting
+from .const import SettingKind
+from .const import SettingType
+from .const import ControlType
+from .emoji_chooser import emoji_chooser
+from .settings import SettingsBox
+from .settings import SettingsDialog
+from .sidebar_switcher import SideBarSwitcher
+from .video_preview import VideoPreview
+from .util import get_available_iconsets
+from .util import open_window
+from .util import get_app_window
+from .util import get_builder
 
 if app.is_installed('GSPELL'):
     from gi.repository import Gspell  # pylint: disable=ungrouped-imports
 
-log = logging.getLogger('gajim.gtk.preferences')
+log = logging.getLogger('gajim.gui.preferences')
 
 
 class Preferences(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/profile.py b/gajim/gtk/profile.py
index a29007e0bc..e7c8880a81 100644
--- a/gajim/gtk/profile.py
+++ b/gajim/gtk/profile.py
@@ -33,10 +33,10 @@
 
 from gajim import gtkgui_helpers
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.filechoosers import AvatarChooserDialog
+from .dialogs import ErrorDialog
+from .dialogs import InformationDialog
+from .util import get_builder
+from .filechoosers import AvatarChooserDialog
 
 
 log = logging.getLogger('gajim.profile')
diff --git a/gajim/gtk/proxies.py b/gajim/gtk/proxies.py
index ed930e3bb9..fa17b300be 100644
--- a/gajim/gtk/proxies.py
+++ b/gajim/gtk/proxies.py
@@ -18,8 +18,8 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_app_window
+from .util import get_builder
+from .util import get_app_window
 
 
 class ManageProxies(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/remove_account.py b/gajim/gtk/remove_account.py
index e30bf17dcc..ed0414b9b8 100644
--- a/gajim/gtk/remove_account.py
+++ b/gajim/gtk/remove_account.py
@@ -24,10 +24,10 @@
 from gajim.common.helpers import to_user_string
 from gajim.common.helpers import event_filter
 
-from gajim.gtk.assistant import Assistant
-from gajim.gtk.assistant import Page
+from .assistant import Assistant
+from .assistant import Page
 
-log = logging.getLogger('gajim.gtk.remove_account')
+log = logging.getLogger('gajim.gui.remove_account')
 
 
 class RemoveAccount(Assistant):
diff --git a/gajim/gtk/roster_item_exchange.py b/gajim/gtk/roster_item_exchange.py
index a200ac5f62..270e103e68 100644
--- a/gajim/gtk/roster_item_exchange.py
+++ b/gajim/gtk/roster_item_exchange.py
@@ -18,8 +18,8 @@
 from gajim.common import i18n
 from gajim.common.i18n import _
 
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.util import get_builder
+from .dialogs import InformationDialog
+from .util import get_builder
 
 
 class RosterItemExchangeWindow(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/search.py b/gajim/gtk/search.py
index 967ab3d165..5442cec697 100644
--- a/gajim/gtk/search.py
+++ b/gajim/gtk/search.py
@@ -28,12 +28,12 @@
 
 from gajim.gui_menu_builder import SearchMenu
 
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.util import ensure_not_destroyed
-from gajim.gtk.util import find_widget
-from gajim.gtk.util import EventHelper
+from .dataform import DataFormWidget
+from .util import ensure_not_destroyed
+from .util import find_widget
+from .util import EventHelper
 
-log = logging.getLogger('gajim.gtk.search')
+log = logging.getLogger('gajim.gui.search')
 
 
 class Page(IntEnum):
diff --git a/gajim/gtk/server_info.py b/gajim/gtk/server_info.py
index bc3b10057d..4d54f444fd 100644
--- a/gajim/gtk/server_info.py
+++ b/gajim/gtk/server_info.py
@@ -28,11 +28,11 @@
 from gajim.common.helpers import open_uri
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import EventHelper
-from gajim.gtk.util import open_window
+from .util import get_builder
+from .util import EventHelper
+from .util import open_window
 
-log = logging.getLogger('gajim.gtk.server_info')
+log = logging.getLogger('gajim.gui.server_info')
 
 
 class ServerInfo(Gtk.ApplicationWindow, EventHelper):
diff --git a/gajim/gtk/service_registration.py b/gajim/gtk/service_registration.py
index d45cef8f18..78d161bf20 100644
--- a/gajim/gtk/service_registration.py
+++ b/gajim/gtk/service_registration.py
@@ -22,10 +22,10 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.dataform import DataFormWidget
-from gajim.gtk.dataform import FakeDataFormWidget
+from .dataform import DataFormWidget
+from .dataform import FakeDataFormWidget
 
-log = logging.getLogger('gajim.gtk.registration')
+log = logging.getLogger('gajim.gui.registration')
 
 
 class Page(IntEnum):
diff --git a/gajim/gtk/settings.py b/gajim/gtk/settings.py
index 3e92f82fc6..2c24fdfe17 100644
--- a/gajim/gtk/settings.py
+++ b/gajim/gtk/settings.py
@@ -26,11 +26,11 @@
 
 from gajim import gtkgui_helpers
 
-from gajim.gtk.util import get_image_button
-from gajim.gtk.util import MaxWidthComboBoxText
-from gajim.gtk.util import open_window
-from gajim.gtk.const import SettingKind
-from gajim.gtk.const import SettingType
+from .util import get_image_button
+from .util import MaxWidthComboBoxText
+from .util import open_window
+from .const import SettingKind
+from .const import SettingType
 
 
 class SettingsDialog(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/single_message.py b/gajim/gtk/single_message.py
index 7a02071211..58229d622c 100644
--- a/gajim/gtk/single_message.py
+++ b/gajim/gtk/single_message.py
@@ -26,12 +26,12 @@
 
 from gajim.conversation_textview import ConversationTextview
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import get_completion_liststore
-from gajim.gtk.util import move_window
-from gajim.gtk.util import resize_window
+from .dialogs import ErrorDialog
+from .util import get_builder
+from .util import get_icon_name
+from .util import get_completion_liststore
+from .util import move_window
+from .util import resize_window
 
 if app.is_installed('GSPELL'):
     from gi.repository import Gspell  # pylint: disable=ungrouped-imports
diff --git a/gajim/gtk/ssl_error_dialog.py b/gajim/gtk/ssl_error_dialog.py
index 1141b2a1e5..833c8dd8fe 100644
--- a/gajim/gtk/ssl_error_dialog.py
+++ b/gajim/gtk/ssl_error_dialog.py
@@ -21,8 +21,8 @@
 from gajim.common.const import GIO_TLS_ERRORS
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import open_window
+from .util import get_builder
+from .util import open_window
 
 
 class SSLErrorDialog(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/start_chat.py b/gajim/gtk/start_chat.py
index d70365542d..d37ee299c2 100644
--- a/gajim/gtk/start_chat.py
+++ b/gajim/gtk/start_chat.py
@@ -35,11 +35,11 @@
 from gajim.common.const import MUC_DISCO_ERRORS
 from gajim.common.modules.util import as_task
 
-from gajim.gtk.groupchat_info import GroupChatInfoScrolled
-from gajim.gtk.groupchat_nick import NickChooser
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import generate_account_badge
+from .groupchat_info import GroupChatInfoScrolled
+from .groupchat_nick import NickChooser
+from .util import get_builder
+from .util import get_icon_name
+from .util import generate_account_badge
 
 
 class Search(IntEnum):
diff --git a/gajim/gtk/status_change.py b/gajim/gtk/status_change.py
index bba60aa48c..2d04e6dfdc 100644
--- a/gajim/gtk/status_change.py
+++ b/gajim/gtk/status_change.py
@@ -23,12 +23,12 @@
 from gajim.common.helpers import remove_invalid_xml_chars
 from gajim.common.i18n import _
 
-from gajim.gtk.dialogs import TimeoutWindow
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import InputDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_activity_icon_name
+from .dialogs import TimeoutWindow
+from .dialogs import DialogButton
+from .dialogs import ConfirmationDialog
+from .dialogs import InputDialog
+from .util import get_builder
+from .util import get_activity_icon_name
 
 if app.is_installed('GSPELL'):
     from gi.repository import Gspell  # pylint: disable=ungrouped-imports
diff --git a/gajim/gtk/status_selector.py b/gajim/gtk/status_selector.py
index e5deab6ea9..038f0a6247 100644
--- a/gajim/gtk/status_selector.py
+++ b/gajim/gtk/status_selector.py
@@ -21,7 +21,7 @@
 from gajim.common.helpers import statuses_unified
 from gajim.common.i18n import _
 
-from gajim.gtk.util import get_icon_name
+from .util import get_icon_name
 
 
 class StatusSelector(Gtk.MenuButton):
diff --git a/gajim/gtk/statusicon.py b/gajim/gtk/statusicon.py
index 916053150f..629979ff0e 100644
--- a/gajim/gtk/statusicon.py
+++ b/gajim/gtk/statusicon.py
@@ -29,12 +29,12 @@
 from gajim.common.i18n import _
 from gajim.common.helpers import save_roster_position
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import restore_roster_position
-from gajim.gtk.util import open_window
-from gajim.gtk.single_message import SingleMessageWindow
-from gajim.gtk.tooltips import NotificationAreaTooltip
+from .util import get_builder
+from .util import get_icon_name
+from .util import restore_roster_position
+from .util import open_window
+from .single_message import SingleMessageWindow
+from .tooltips import NotificationAreaTooltip
 
 
 class StatusIcon:
diff --git a/gajim/gtk/subscription_request.py b/gajim/gtk/subscription_request.py
index 258dbb09b4..40860db8c1 100644
--- a/gajim/gtk/subscription_request.py
+++ b/gajim/gtk/subscription_request.py
@@ -20,8 +20,8 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk.add_contact import AddNewContactWindow
-from gajim.gtk.util import get_builder
+from .add_contact import AddNewContactWindow
+from .util import get_builder
 
 
 class SubscriptionRequest(Gtk.ApplicationWindow):
diff --git a/gajim/gtk/themes.py b/gajim/gtk/themes.py
index cf8ca1e1c6..8b5d7a498b 100644
--- a/gajim/gtk/themes.py
+++ b/gajim/gtk/themes.py
@@ -25,11 +25,11 @@
 from gajim.common.i18n import _
 from gajim.common.const import StyleAttr
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_app_window
+from .dialogs import ErrorDialog
+from .dialogs import DialogButton
+from .dialogs import ConfirmationDialog
+from .util import get_builder
+from .util import get_app_window
 
 StyleOption = namedtuple('StyleOption', 'label selector attr')
 
diff --git a/gajim/gtk/tooltips.py b/gajim/gtk/tooltips.py
index edf4553855..a39b3c595f 100644
--- a/gajim/gtk/tooltips.py
+++ b/gajim/gtk/tooltips.py
@@ -42,16 +42,16 @@
 from gajim.common.i18n import _
 from gajim.gtkgui_helpers import add_css_class
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import format_mood
-from gajim.gtk.util import format_activity
-from gajim.gtk.util import format_tune
-from gajim.gtk.util import format_location
-from gajim.gtk.util import get_css_show_class
+from .util import get_builder
+from .util import get_icon_name
+from .util import format_mood
+from .util import format_activity
+from .util import format_tune
+from .util import format_location
+from .util import get_css_show_class
 
 
-log = logging.getLogger('gajim.gtk.tooltips')
+log = logging.getLogger('gajim.gui.tooltips')
 
 
 class StatusTable:
diff --git a/gajim/gtk/util.py b/gajim/gtk/util.py
index b618795873..ac1dd53929 100644
--- a/gajim/gtk/util.py
+++ b/gajim/gtk/util.py
@@ -57,14 +57,14 @@
 from gajim.common.const import StyleAttr
 from gajim.common.nec import EventHelper as CommonEventHelper
 
-from gajim.gtk.const import GajimIconSet
-from gajim.gtk.const import WINDOW_MODULES
+from .const import GajimIconSet
+from .const import WINDOW_MODULES
 
 _icon_theme = Gtk.IconTheme.get_default()
 if _icon_theme is not None:
     _icon_theme.append_search_path(str(configpaths.get('ICONS')))
 
-log = logging.getLogger('gajim.gtk.util')
+log = logging.getLogger('gajim.gui.util')
 
 
 class NickCompletionGenerator:
diff --git a/gajim/gtk/video_preview.py b/gajim/gtk/video_preview.py
index 412be43719..9d064316b3 100644
--- a/gajim/gtk/video_preview.py
+++ b/gajim/gtk/video_preview.py
@@ -19,8 +19,8 @@
 from gajim.common import app
 from gajim.common.i18n import _
 
-from gajim.gtk import gstreamer
-from gajim.gtk.util import get_builder
+from . import gstreamer
+from .util import get_builder
 
 try:
     from gi.repository import Gst  # pylint: disable=ungrouped-imports
@@ -28,7 +28,7 @@
     pass
 
 
-log = logging.getLogger('gajim.gtk.preview')
+log = logging.getLogger('gajim.gui.preview')
 
 
 class VideoPreview:
diff --git a/gajim/gtk/xml_console.py b/gajim/gtk/xml_console.py
index ad9e4a7d02..b22ea0e1b2 100644
--- a/gajim/gtk/xml_console.py
+++ b/gajim/gtk/xml_console.py
@@ -24,15 +24,15 @@
 from gajim.common.i18n import _
 from gajim.common.const import StyleAttr
 
-from gajim.gtk import util
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import MaxWidthComboBoxText
-from gajim.gtk.util import EventHelper
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.settings import SettingsDialog
-from gajim.gtk.const import Setting
-from gajim.gtk.const import SettingKind
-from gajim.gtk.const import SettingType
+from . import util
+from .util import get_builder
+from .util import MaxWidthComboBoxText
+from .util import EventHelper
+from .dialogs import ErrorDialog
+from .settings import SettingsDialog
+from .const import Setting
+from .const import SettingKind
+from .const import SettingType
 
 
 class XMLConsoleWindow(Gtk.ApplicationWindow, EventHelper):
diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py
index 1c0801fbdc..818cdca61b 100644
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -88,29 +88,29 @@
 from gajim import roster_window
 from gajim.common import ged
 
-from gajim.gtk.avatar import AvatarStorage
-from gajim.gtk.notification import Notification
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import WarningDialog
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import ConfirmationCheckDialog
-from gajim.gtk.dialogs import InputDialog
-from gajim.gtk.dialogs import PassphraseDialog
-from gajim.gtk.filechoosers import FileChooserDialog
-from gajim.gtk.emoji_data import emoji_data
-from gajim.gtk.emoji_data import emoji_ascii_data
-from gajim.gtk.filetransfer import FileTransfersWindow
-from gajim.gtk.filetransfer_progress import FileTransferProgress
-from gajim.gtk.roster_item_exchange import RosterItemExchangeWindow
-from gajim.gtk.util import get_show_in_roster
-from gajim.gtk.util import get_show_in_systray
-from gajim.gtk.util import open_window
-from gajim.gtk.util import get_app_window
-from gajim.gtk.util import get_app_windows
-from gajim.gtk.util import get_color_for_account
-from gajim.gtk.const import ControlType
+from gajim.gui.avatar import AvatarStorage
+from gajim.gui.notification import Notification
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.dialogs import WarningDialog
+from gajim.gui.dialogs import InformationDialog
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.dialogs import ConfirmationCheckDialog
+from gajim.gui.dialogs import InputDialog
+from gajim.gui.dialogs import PassphraseDialog
+from gajim.gui.filechoosers import FileChooserDialog
+from gajim.gui.emoji_data import emoji_data
+from gajim.gui.emoji_data import emoji_ascii_data
+from gajim.gui.filetransfer import FileTransfersWindow
+from gajim.gui.filetransfer_progress import FileTransferProgress
+from gajim.gui.roster_item_exchange import RosterItemExchangeWindow
+from gajim.gui.util import get_show_in_roster
+from gajim.gui.util import get_show_in_systray
+from gajim.gui.util import open_window
+from gajim.gui.util import get_app_window
+from gajim.gui.util import get_app_windows
+from gajim.gui.util import get_color_for_account
+from gajim.gui.const import ControlType
 
 
 log = logging.getLogger('gajim.interface')
@@ -2166,11 +2166,11 @@ def __init__(self):
         self.systray_enabled = False
 
         if not app.is_display(Display.WAYLAND):
-            from gajim.gtk import statusicon
+            from gajim.gui import statusicon
             self.systray = statusicon.StatusIcon()
 
         if sys.platform in ('win32', 'darwin'):
-            from gajim.gtk.emoji_chooser import emoji_chooser
+            from gajim.gui.emoji_chooser import emoji_chooser
             emoji_chooser.load()
 
         self.make_regexps()
diff --git a/gajim/gui_menu_builder.py b/gajim/gui_menu_builder.py
index 407b612578..8c9f487582 100644
--- a/gajim/gui_menu_builder.py
+++ b/gajim/gui_menu_builder.py
@@ -26,8 +26,8 @@
 from gajim.common.const import URIType
 from gajim.common.const import URIAction
 
-from gajim.gtk.util import get_builder
-from gajim.gtk.const import ControlType
+from gajim.gui.util import get_builder
+from gajim.gui.const import ControlType
 
 
 def build_resources_submenu(contacts, account, action, room_jid=None,
diff --git a/gajim/history_manager.py b/gajim/history_manager.py
index 7eeb385a1e..5e10b32b6a 100644
--- a/gajim/history_manager.py
+++ b/gajim/history_manager.py
@@ -89,13 +89,13 @@ def is_standalone():
     app.load_css_config()
 
 from gajim.common import helpers
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.filechoosers import FileSaveDialog
-from gajim.gtk.util import convert_rgb_to_hex
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import get_app_icon_list
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.filechoosers import FileSaveDialog
+from gajim.gui.util import convert_rgb_to_hex
+from gajim.gui.util import get_builder
+from gajim.gui.util import get_app_icon_list
 # pylint: enable=C0413
 
 @unique
diff --git a/gajim/message_window.py b/gajim/message_window.py
index 16b6a34c8d..d107317080 100644
--- a/gajim/message_window.py
+++ b/gajim/message_window.py
@@ -41,16 +41,16 @@
 from gajim.chat_control_base import ChatControlBase
 from gajim.chat_control import ChatControl
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationCheckDialog
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import resize_window
-from gajim.gtk.util import move_window
-from gajim.gtk.util import get_app_icon_list
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import set_urgency_hint
-from gajim.gtk.util import get_app_window
-from gajim.gtk.const import ControlType
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationCheckDialog
+from gajim.gui.util import get_icon_name
+from gajim.gui.util import resize_window
+from gajim.gui.util import move_window
+from gajim.gui.util import get_app_icon_list
+from gajim.gui.util import get_builder
+from gajim.gui.util import set_urgency_hint
+from gajim.gui.util import get_app_window
+from gajim.gui.const import ControlType
 
 
 log = logging.getLogger('gajim.message_window')
diff --git a/gajim/plugins/gui.py b/gajim/plugins/gui.py
index 60f4f38377..50de80421e 100644
--- a/gajim/plugins/gui.py
+++ b/gajim/plugins/gui.py
@@ -38,12 +38,12 @@
 from gajim.plugins.helpers import GajimPluginActivateException
 from gajim.plugins.plugins_i18n import _
 
-from gajim.gtk.dialogs import WarningDialog
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.filechoosers import ArchiveChooserDialog
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import load_icon
+from gajim.gui.dialogs import WarningDialog
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.filechoosers import ArchiveChooserDialog
+from gajim.gui.util import get_builder
+from gajim.gui.util import load_icon
 
 
 @unique
diff --git a/gajim/plugins/helpers.py b/gajim/plugins/helpers.py
index 58f015ac0a..a497136585 100644
--- a/gajim/plugins/helpers.py
+++ b/gajim/plugins/helpers.py
@@ -30,7 +30,7 @@
 
 from gajim.common import configpaths
 from gajim.plugins import plugins_i18n
-from gajim.gtk.util import Builder
+from gajim.gui.util import Builder
 
 log = logging.getLogger('gajim.plugin_system')
 '''
diff --git a/gajim/privatechat_control.py b/gajim/privatechat_control.py
index 7ab4d058e3..75c3229c51 100644
--- a/gajim/privatechat_control.py
+++ b/gajim/privatechat_control.py
@@ -34,8 +34,8 @@
 from gajim.chat_control import ChatControl
 from gajim.command_system.implementation.hosts import PrivateChatCommands
 
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.const import ControlType
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.const import ControlType
 
 
 class PrivateChatControl(ChatControl):
diff --git a/gajim/remote_control.py b/gajim/remote_control.py
index 360a7b696e..91d7da13b8 100644
--- a/gajim/remote_control.py
+++ b/gajim/remote_control.py
@@ -33,7 +33,7 @@
 from gajim.common import helpers
 from gajim.common.structs import OutgoingMessage
 
-from gajim.gtk.add_contact import AddNewContactWindow
+from gajim.gui.add_contact import AddNewContactWindow
 
 
 log = logging.getLogger('gajim.remote_control')
diff --git a/gajim/roster_window.py b/gajim/roster_window.py
index e6d091e69c..713232d217 100644
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -61,31 +61,31 @@
 from gajim.common import ged
 from gajim.message_window import MessageWindowMgr
 
-from gajim.gtk.dialogs import DialogButton
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import ConfirmationCheckDialog
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import InputDialog
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.single_message import SingleMessageWindow
-from gajim.gtk.add_contact import AddNewContactWindow
-from gajim.gtk.service_registration import ServiceRegistration
-from gajim.gtk.discovery import ServiceDiscoveryWindow
-from gajim.gtk.tooltips import RosterTooltip
-from gajim.gtk.adhoc import AdHocCommand
-from gajim.gtk.status_selector import StatusSelector
-from gajim.gtk.util import get_icon_name
-from gajim.gtk.util import resize_window
-from gajim.gtk.util import restore_roster_position
-from gajim.gtk.util import get_metacontact_surface
-from gajim.gtk.util import get_builder
-from gajim.gtk.util import set_urgency_hint
-from gajim.gtk.util import get_activity_icon_name
-from gajim.gtk.util import get_account_activity_icon_name
-from gajim.gtk.util import get_account_mood_icon_name
-from gajim.gtk.util import get_account_tune_icon_name
-from gajim.gtk.util import get_account_location_icon_name
-from gajim.gtk.util import open_window
+from gajim.gui.dialogs import DialogButton
+from gajim.gui.dialogs import ConfirmationDialog
+from gajim.gui.dialogs import ConfirmationCheckDialog
+from gajim.gui.dialogs import ErrorDialog
+from gajim.gui.dialogs import InputDialog
+from gajim.gui.dialogs import InformationDialog
+from gajim.gui.single_message import SingleMessageWindow
+from gajim.gui.add_contact import AddNewContactWindow
+from gajim.gui.service_registration import ServiceRegistration
+from gajim.gui.discovery import ServiceDiscoveryWindow
+from gajim.gui.tooltips import RosterTooltip
+from gajim.gui.adhoc import AdHocCommand
+from gajim.gui.status_selector import StatusSelector
+from gajim.gui.util import get_icon_name
+from gajim.gui.util import resize_window
+from gajim.gui.util import restore_roster_position
+from gajim.gui.util import get_metacontact_surface
+from gajim.gui.util import get_builder
+from gajim.gui.util import set_urgency_hint
+from gajim.gui.util import get_activity_icon_name
+from gajim.gui.util import get_account_activity_icon_name
+from gajim.gui.util import get_account_mood_icon_name
+from gajim.gui.util import get_account_tune_icon_name
+from gajim.gui.util import get_account_location_icon_name
+from gajim.gui.util import open_window
 
 
 log = logging.getLogger('gajim.roster')
diff --git a/gajim/session.py b/gajim/session.py
index 19e5df8e66..24c8287183 100644
--- a/gajim/session.py
+++ b/gajim/session.py
@@ -28,8 +28,8 @@
 from gajim.common import ged
 from gajim.common.helpers import AdditionalDataDict
 from gajim.common.const import KindConstant
-from gajim.gtk.util import get_show_in_roster
-from gajim.gtk.util import get_show_in_systray
+from gajim.gui.util import get_show_in_roster
+from gajim.gui.util import get_show_in_systray
 
 
 class ChatControlSession:
diff --git a/gajim/vcard.py b/gajim/vcard.py
index fb93b0e751..abab96c6d2 100644
--- a/gajim/vcard.py
+++ b/gajim/vcard.py
@@ -46,7 +46,7 @@
 from gajim.common.nec import EventHelper
 from gajim.common.modules.util import as_task
 
-from gajim.gtk.util import get_builder
+from gajim.gui.util import get_builder
 
 
 log = logging.getLogger('gajim.vcard')
diff --git a/mypy.ini b/mypy.ini
index bfa75b4a24..b5dca8c1d2 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -69,3 +69,6 @@ ignore_missing_imports = True
 
 [mypy-packaging.version.*]
 ignore_missing_imports = True
+
+[mypy-gajim.gui.*]
+ignore_missing_imports = True
diff --git a/pylintrc b/pylintrc
index 864d89df6e..f488568f2b 100644
--- a/pylintrc
+++ b/pylintrc
@@ -146,7 +146,7 @@ ignored-classes=optparse.Values,thread._local,_thread._local,gi.repository.GLib.
 # (useful for modules/projects where namespaces are manipulated during runtime
 # and thus existing member attributes cannot be deduced by static analysis. It
 # supports qualified module names, as well as Unix pattern matching.
-ignored-modules=gi.repository
+ignored-modules=gi.repository,gajim.gui
 
 # Show a hint with possible names when a member name was not found. The aspect
 # of finding the hint is based on edit distance.
diff --git a/test/gtk/assistant.py b/test/gtk/assistant.py
index a052bbed06..74402040dc 100644
--- a/test/gtk/assistant.py
+++ b/test/gtk/assistant.py
@@ -4,8 +4,8 @@
 
 from gajim.common.const import CSSPriority
 
-from gajim.gtk.assistant import Assistant
-from gajim.gtk.assistant import Page
+from gajim.gui.assistant import Assistant
+from gajim.gui.assistant import Page
 
 from test.gtk import util
 util.load_style('gajim.css', CSSPriority.APPLICATION)
diff --git a/test/gtk/certificate_dialog.py b/test/gtk/certificate_dialog.py
index 920bd95173..dc99115796 100644
--- a/test/gtk/certificate_dialog.py
+++ b/test/gtk/certificate_dialog.py
@@ -6,7 +6,7 @@
 
 from test.gtk import util
 from gajim.common.const import CSSPriority
-from gajim.gtk.dialogs import CertificateDialog
+from gajim.gui.dialogs import CertificateDialog
 
 util.load_style('gajim.css', CSSPriority.APPLICATION)
 
diff --git a/test/gtk/change_password.py b/test/gtk/change_password.py
index 6cabf9ae20..1c4c0484ca 100644
--- a/test/gtk/change_password.py
+++ b/test/gtk/change_password.py
@@ -9,7 +9,7 @@
 
 from gajim.common.const import CSSPriority
 
-from gajim.gtk.change_password import ChangePassword
+from gajim.gui.change_password import ChangePassword
 
 from test.gtk import util
 util.load_style('gajim.css', CSSPriority.APPLICATION)
diff --git a/test/gtk/dataform.py b/test/gtk/dataform.py
index 7433d687de..f135dabd0e 100644
--- a/test/gtk/dataform.py
+++ b/test/gtk/dataform.py
@@ -4,7 +4,7 @@
 import nbxmpp
 from nbxmpp.modules.dataforms import extend_form
 
-from gajim.gtk.dataform import DataFormWidget
+from gajim.gui.dataform import DataFormWidget
 from gajim.common.const import CSSPriority
 from gajim.common import app
 
diff --git a/test/gtk/fake_dataform.py b/test/gtk/fake_dataform.py
index 0efa3d92cb..be776a0baf 100644
--- a/test/gtk/fake_dataform.py
+++ b/test/gtk/fake_dataform.py
@@ -1,6 +1,6 @@
 from gi.repository import Gtk
 
-from gajim.gtk.dataform import FakeDataFormWidget
+from gajim.gui.dataform import FakeDataFormWidget
 from gajim.common.const import CSSPriority
 
 from test.gtk import util
diff --git a/test/gtk/groupchat_info.py b/test/gtk/groupchat_info.py
index 06319a97ab..689452dc14 100644
--- a/test/gtk/groupchat_info.py
+++ b/test/gtk/groupchat_info.py
@@ -10,7 +10,7 @@
 from gajim.common.const import CSSPriority
 
 from test.gtk import util
-from gajim.gtk.groupchat_info import GroupChatInfoScrolled
+from gajim.gui.groupchat_info import GroupChatInfoScrolled
 
 util.load_style('gajim.css', CSSPriority.APPLICATION)
 
diff --git a/test/gtk/ssl_error_dialog.py b/test/gtk/ssl_error_dialog.py
index 9a7508b2c7..10a5ca6589 100644
--- a/test/gtk/ssl_error_dialog.py
+++ b/test/gtk/ssl_error_dialog.py
@@ -6,7 +6,7 @@
 
 from test.gtk import util
 from gajim.common.const import CSSPriority
-from gajim.gtk.ssl_error_dialog import SSLErrorDialog
+from gajim.gui.ssl_error_dialog import SSLErrorDialog
 
 util.load_style('gajim.css', CSSPriority.APPLICATION)
 
diff --git a/test/no_gui/unit/test_nick_completion.py b/test/no_gui/unit/test_nick_completion.py
index 643a091375..0eb75ba43f 100644
--- a/test/no_gui/unit/test_nick_completion.py
+++ b/test/no_gui/unit/test_nick_completion.py
@@ -1,6 +1,6 @@
 import unittest
 
-from gajim.gtk.util import NickCompletionGenerator
+from gajim.gui.util import NickCompletionGenerator
 
 class Test(unittest.TestCase):
 
-- 
GitLab