diff --git a/gajim/app_actions.py b/gajim/app_actions.py
index 6d26c42b488833c692aa56820ce47d84540eed3c..4c0abd85b418fcd16eb743875b0ec4c718d181a3 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 3f5ea743b528a842a557ace2afd9cb7dd06ff7d6..00a4963f57980ceb1320570964c5e6c11eeca412 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 b932135571a7eab5f7672abcdb711622e6ac92f1..67126557df0ee8298f084bdc0d4b56113c790bde 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 c4ff442b45422382baf32adef6a4d051f9026c18..51e9c92e8ce94f2f11438503d2fd9fda2e1acb98 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 ecd2b82cf0947acfd7a383fe7b22c719cc9d9c3b..97ced8a9f8662c9b718cfa33a641b4a0c5494892 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 de23e1c526ac875e498d24ee79e7e50a547144e3..58b68250489826e80940cd2e7e5e187c526be1d8 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 508b014d056912c34e8956152198b65eded2852d..a14c72c08aefc4c007092f12d455ad039da56885 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 9cf27ba91abe7715625cb5cc76bd8ae0f2f25783..bdcad6744b6d0abbdec9d14ad5142cb3f250c173 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 3e5af2b3390ffe257862e379f29214ba3b2f54c8..e9e12f165d071da629dcf118cc2701a813de12e6 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 13982396b1446266a440d07a3497b11a79f32cf6..34b53098404a8cdd9ed3c9745cf0cca9079f960a 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 9bd623cf502c1806fae42f9622245df78a1a0235..1022b84e2cc7dab7cdf64d1ba79a3d557895e86e 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 b7dd832bef7e3a7505fa2c850970554dbb552d9f..76bf8120b7fe0fca9f4b41d67aa9fc1c3d481cc8 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 c098a202a7cfae2dc1066f2eefcf7ba18afd9e3d..f193f06e0fcecdc41570a7197785cb13bff97907 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 593e9f096cf669230993200c5bfeecfecca4f8e3..9a8083c5363a60d56c2bffa71e086e8ea5a82a8e 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 c99d1e4a6025c5b2974787fffc9d40a3daf9fe05..651cd7134d84fda2d44698fea8846e7d18d17f0d 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 21ce51d79f76ef1249d678413e8ca3a24edf170b..b30e8f92cf1e9d42ca3170700c23cfb2e04d5425 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 e9ea430b6ccfd28292f4739e3337e6a20b47c017..f59bf8ac12432c3c101d07ad468b192d7a2aadcf 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 c16ce61b63f1512b84eda56230c50cda0212e4d5..b16ade8428b9de4c4e2dd08842b25dd7ad0064c2 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 ca1b8a5199c2e81bdbfad7cac151ffbc56e1b56d..0721f79e112f9a5afc99c4bdf87861f0d2357363 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 2f134d67ca8c0887c084e5a42b7867df1809086a..c07c073094074046ca115ed002993e993177fd49 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 bdfb4fc1a39ae1b0ee967cc5c43848376a52228d..6633bf2708c09d5777ddb4288d3cb249ceb1438c 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 ac04bb2c4a10ed1f74cce2be7ce6da157dc20e08..833ae64000882558014d80257dc8313e12d81f67 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 67223cb5404d069d060dfc6e349b474db84fc433..25f6507d9631e917aa7c37f73c62ce08c45d6b12 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 1cc858aa100c8f909dcbd76b550629176f68640f..a9da33d51b3928dde0f05b262a6cc1237d2785ec 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 fdf1ca505482c78479d95bdf7a5476c06b439cd3..1e521f93b823ff68e26c46bbeb25e76a8bc8d7a7 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 d701a7cc200c758395791c25a8d82c5656f23143..af3fad3025a21dbd966cd1d2d3ec557633b1bebb 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 a1d9adc600a363ec01c5d87af31a6c34ba2dbf1a..ae3d2473ec0ce924aeaf7fd5a139935503ad605a 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 c5270f14cae3507f7cf2b1d532e652eca6d2ae56..2d4b1c4d7738472a74343c7d544a69c430fda421 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 e340f491e7d7e9bf608149e3bb4ea07387c60f43..10038621ec6eca9f9e12590d82877393eafc628f 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 e8a8f392f10f5fae354259ebceeab68c1d95ebfc..2390a19c59c5758203ff2f8b72cfa078e3a83001 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 dc9d76e4dfabe5e018b6663df4984734ab3fa806..769782354e3d23927c735c7cde7e0816dc588f01 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 f60fd65e96c7f6b8e1824f50705a99b8d359c7d8..a1c6fbc2c219545544d599dd68fcf029f553e28e 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 33c008081135fe20fa507284d6790d4084a481fa..63cb055ec5e3dad8aefea6c6c6b0af8db924c743 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 f3dd5f5d910dd11d46708c271303a8cf0f431738..55f3adb8dbaf14b9ecd11186d428c6ccba8cd271 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 580bb31b5dfd24d9c0ca337c11ab3374ef669c9c..70dcb2f8fe375903bb8230f6b9ed5f3a6e2b5665 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 4e115e78729bcbe2fab03a7bc49bd86fa9135075..cd7597787c04be53fa95ac595e43b8e55f7efb25 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 9fa6b2a244c4586d141e86b028ff69d40870330a..1cd52659dd75c5992f2c1a7b2d62799fcacb854c 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 de7f7d40a2de691c99039ed92555120a8025ff4a..f9e0682ad701b6895e12e02ac19283bc7d5d3f80 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 b8f670a88248d4294daf097576e60ab79a7b702a..1a50acfbd8ff3baf6c537cf6920184d9df9d6a60 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 e120689e3037b86890cbf41cd36dd327af06a2b2..bf9f14f131dd52f480b78a16c2bf7ac6cfe8b2e3 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 67f6ce6d98f7ef1e34b0c2d3b8f56808c8918c22..2f012b1b814267ab6eab460392ed8b0c31b85c9a 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 9902d810eccd953d1c194d91a49990f4c8a88fb0..926f2f88037140924bdb4c58593e139690767459 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 4f4ee2a6c5aba6f56246c46c969b61e3ed3a9498..d876c116ba51e4dc60bb89e4eca0cafcdddce201 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 7b4eb9500330502ae6dd1bc5ab0ed597414eaf81..428568ceab561946dda1a322c8ceeab6f38182fb 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 42b0a540f7f2fd9b099515cbcead6d5751b9ac76..1ef80e8950586edcc9ad6d260b31ebb19cb8bbe8 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 001ba8151e0669f09a9395598a3841da9bbf4543..bf7a99305a9505242345487fdbb24a3eb2b23f49 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 e7db0c0e1c3bb2cecc553e0fba6b3f0d7157b994..1ce46a51dab39846491579a62eb02da615ae6693 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 f46485832679390cacbf11f160f128b016538f90..daa1419b5c84cd315dcb3a05cb559de8f29686e7 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 a46d734945d2058ea3b0d809ee17c105940aa241..e0c2f5520c03acc35c85885a3a7c9fd531fd79c8 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 a29007e0bce3491b5810dea9670f6d90f67ba99a..e7c8880a81dfc9c5e3b1d86c530a23c7c3f91f02 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 ed930e3bb9f45b2e95f7a24c99088b65576f9abd..fa17b300beced57ca2cfd66c8ce49d492d4aeafb 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 e30bf17dccfcff168843673f75174d123b06dc5a..ed0414b9b8cb91aab3507b59b37e8356c5a8b28d 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 a200ac5f623bed84744e815cef99b9dce19586fe..270e103e68e01f263faf7a556bc0698bc4d37ffa 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 967ab3d1653742444e3b9952c05b711360a9a5af..5442cec6972bfa3b7b921eb7a3f6291df355143f 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 bc3b10057dcafdde908dd80b50873036df4f94aa..4d54f444fd065a9354ba80acdab056693f12c3cb 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 d45cef8f1839dd0d3cada453bbd82645bf0661f4..78d161bf2081f5cbd966f5afb9eeefef7092a35e 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 3e92f82fc6333d6812661a05dc8b9443cf9e6af9..2c24fdfe17d9f8251b3696c336734a8981ea96d7 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 7a02071211c7675effcade5e3ae2ac79872a4111..58229d622ce90e393a0b4aa9f6bb2199487b2ce9 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 1141b2a1e50801493990a70e873c6b0d7908d33b..833c8dd8fe1eeee6775461e75841a15b837b410b 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 d70365542d89dc884174c01407d4e0a10d171609..d37ee299c2e8334e118bce27527e8545c0d8952a 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 bba60aa48c6429d8d4f3a5c0079c424401adabaf..2d04e6dfdc5a2d18231055ab14249ce91cf8c8c5 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 e5deab6ea90dcac9989bd6601c5e0502b04b2d31..038f0a6247b058323f479f7064483490e33eb597 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 916053150fbc553b6c22c03a82266ea78d88078e..629979ff0e4e6fa5fbe4fcea012dee37ba258590 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 258dbb09b464142f0d83d4e5fcb2b694161c1c07..40860db8c170b0037a6e0c5a89c7d9b837b9592e 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 cf8ca1e1c6c4e846d023e173ddca002e700fab32..8b5d7a498b81acec34adbd92a16dfac19000ba46 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 edf4553855ab7a75acb69c0a6c8eee955eecba73..a39b3c595f9c747e93c1ec6fd814fdfad2b1cf72 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 b6187958730c263e0b4043586363c2a6a536a9ff..ac1dd539295f01af08389e7a6fe42b1ade7b7e9f 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 412be43719e74a5eaf1d7634645569ffb3ab731d..9d064316b3abbf41dcb6c4835182d0edef786f84 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 ad9e4a7d02ff0da0c69b0a326cea1592a99e57c3..b22ea0e1b2e5684523e4e6f3a590cdab93d7e270 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 1c0801fbdc897ba1242036f86f3e6f94e2d08b93..818cdca61b972db39ccbb39ec736d679e1f0545c 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 407b612578ed35c7bb92c03c54765258c4ab9368..8c9f487582a7f916857e56eca95b27af058ad4fd 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 7eeb385a1e791c2f3793de2b8391323e26f830b1..5e10b32b6a13872a42965df2658457d3faff38a8 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 16b6a34c8d25ae6d37e30c24723d001450004b1f..d10731708006318e0f82cc8db9c2cfdde9dfbcf3 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 60f4f38377ea866c7ee34ed6ac26b44c07a493b1..50de80421ea532f83443dfd76f7811571b399fc2 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 58f015ac0a031bc364d373d6363fd4385d7a431b..a497136585a780cd1bad298966d38e245535caa2 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 7ab4d058e3cb4ad488809ea8e33c502be3dbfb08..75c3229c51f1a7d0c30969ef353d14c91d48877d 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 360a7b696e65d3824f3b2b474a958ac18e0315a2..91d7da13b8a64df77fe073ae5d6c8f7ee3db83c9 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 e6d091e69c2d7d3411cbf246fa17d689dc750904..713232d217b19242c02862395d486647be5b9f24 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 19e5df8e66fb306197550ce1567eb45c8e378b10..24c82871836de7a6774c4bb8d2403ad3309d691f 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 fb93b0e75126a926fd1c4b6e076a623a3a753ce8..abab96c6d2cabe855ee9f0176895325cbe1668fc 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 bfa75b4a242f2fd851c06fc2e58da61c5acbf65f..b5dca8c1d2d362ebec9c911ebd5af5d18f7393bd 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 864d89df6e5b9aae7aa181479be0ec21bb10c697..f488568f2b8e82c07ff3ffd5ecd11cf77983c24a 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 a052bbed0687a91645fff0319b86a54bc5b9b92f..74402040dc7dc2074de912fbe2b2d6b3aa760516 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 920bd95173d321448cda247bf79a8e0e742a6c65..dc991157965bc071bf5ed3d52beede6081d447f2 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 6cabf9ae20a763f17f090f8c83209f106a0cdad0..1c4c0484caaab9a8f517b92582d372d265938f63 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 7433d687de7fb477300c61d5e0ffa0578350da67..f135dabd0efa29264df37628d3b3d49d902c09c0 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 0efa3d92cb7bbba06b2799b5486673bc005a8370..be776a0baf2f5ca6354266659cc7340f0a112e16 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 06319a97abb3edfa5c0a3a048ddacbc44bda799e..689452dc145fefd0da9fd2d56a17cdd1b00d7d9f 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 9a7508b2c7fa072d0b7dd1650f11606980f537ab..10a5ca658950626394ce58351b7719808c7fded7 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 643a0913756eade7fc612cb151b5b8f699691feb..0eb75ba43f06dbde4aa504c51e1cbb751fa4b50b 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):