diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 5d022f0e8ee28ce8289a4c377a471ca5e804e362..2b393c0c2517dc84edc2b157b5505458f08675e1 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -133,8 +133,8 @@ libqt_plugin_la_SOURCES = \
 	gui/qt/maininterface/compositor_dummy.cpp \
 	gui/qt/maininterface/interface_window_handler.cpp \
 	gui/qt/maininterface/interface_window_handler.hpp \
-	gui/qt/maininterface/main_interface.cpp \
-	gui/qt/maininterface/main_interface.hpp \
+	gui/qt/maininterface/mainctx.cpp \
+	gui/qt/maininterface/mainctx.hpp \
 	gui/qt/maininterface/mainui.cpp \
 	gui/qt/maininterface/mainui.hpp \
 	gui/qt/maininterface/videosurface.cpp \
@@ -276,8 +276,8 @@ libqt_plugin_la_SOURCES = \
 	gui/qt/widgets/native/searchlineedit.cpp gui/qt/widgets/native/searchlineedit.hpp
 if HAVE_WIN32
 libqt_plugin_la_SOURCES += \
-	gui/qt/maininterface/main_interface_win32.cpp \
-	gui/qt/maininterface/main_interface_win32.hpp \
+	gui/qt/maininterface/mainctx_win32.cpp \
+	gui/qt/maininterface/mainctx_win32.hpp \
 	gui/qt/maininterface/compositor_win7.cpp \
 	gui/qt/maininterface/compositor_win7.hpp
 
@@ -368,7 +368,7 @@ nodist_libqt_plugin_la_SOURCES = \
 	gui/qt/maininterface/compositor.moc.cpp \
 	gui/qt/maininterface/compositor_dummy.moc.cpp \
 	gui/qt/maininterface/interface_window_handler.moc.cpp \
-	gui/qt/maininterface/main_interface.moc.cpp \
+	gui/qt/maininterface/mainctx.moc.cpp \
 	gui/qt/maininterface/mainui.moc.cpp \
 	gui/qt/maininterface/videosurface.moc.cpp \
 	gui/qt/maininterface/video_window_handler.moc.cpp \
@@ -436,7 +436,7 @@ nodist_libqt_plugin_la_SOURCES = \
 	gui/qt/widgets/native/searchlineedit.moc.cpp
 
 if HAVE_WIN32
-nodist_libqt_plugin_la_SOURCES += gui/qt/maininterface/main_interface_win32.moc.cpp \
+nodist_libqt_plugin_la_SOURCES += gui/qt/maininterface/mainctx_win32.moc.cpp \
 	gui/qt/maininterface/compositor_win7.moc.cpp
 
 if HAVE_DCOMP
diff --git a/modules/gui/qt/dialogs/dialogs_provider.cpp b/modules/gui/qt/dialogs/dialogs_provider.cpp
index 062f68b97b303f4d7a7e3e5c49bbc5a0dd86b252..c0f57f633d2fa30e49683f75caf4a40308fe8d2c 100644
--- a/modules/gui/qt/dialogs/dialogs_provider.cpp
+++ b/modules/gui/qt/dialogs/dialogs_provider.cpp
@@ -34,7 +34,7 @@
 #include "menus/menus.hpp"
 #include "util/qt_dirs.hpp"
 #include "widgets/native/customwidgets.hpp" /* VLCKeyToString() */
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 
 /* The dialogs */
 #include "dialogs/bookmarks/bookmarks.hpp"
diff --git a/modules/gui/qt/dialogs/extended/extended_panels.cpp b/modules/gui/qt/dialogs/extended/extended_panels.cpp
index e9b7b13bddd6626ed41ff15719697c035921bdd0..e7932eaf417ff009c7db9d04e69083299d0c905e 100644
--- a/modules/gui/qt/dialogs/extended/extended_panels.cpp
+++ b/modules/gui/qt/dialogs/extended/extended_panels.cpp
@@ -47,7 +47,7 @@
 #include "extended_panels.hpp"
 #include "dialogs/preferences/preferences.hpp"
 #include "qt.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "player/player_controller.hpp"
 #include "util/qt_dirs.hpp"
 #include "widgets/native/customwidgets.hpp"
diff --git a/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp b/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
index d4728ca57f704a3af07f3f1f175558898da4037c..3f46597fa65c0b179fde338b67e2cfb55b0af39e 100644
--- a/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
+++ b/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
@@ -18,7 +18,7 @@
 
 #include "firstrunwizard.hpp"
 #include "util/color_scheme_model.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "dialogs/toolbar/controlbar_profile_model.hpp"
 
 #include <QPushButton>
diff --git a/modules/gui/qt/dialogs/open/open_panels.cpp b/modules/gui/qt/dialogs/open/open_panels.cpp
index df439e0dcbe5da64a3f989c7870597c1d78c7369..e638e19343f48e5c97f022f45171867fc43f689a 100644
--- a/modules/gui/qt/dialogs/open/open_panels.cpp
+++ b/modules/gui/qt/dialogs/open/open_panels.cpp
@@ -32,7 +32,7 @@
 #include <assert.h>
 
 #include "qt.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "open_panels.hpp"
 #include "dialogs/open/open.hpp"
 #include "dialogs/dialogs_provider.hpp" /* Open Subtitle file */
diff --git a/modules/gui/qt/dialogs/playlists/playlists.cpp b/modules/gui/qt/dialogs/playlists/playlists.cpp
index 28ac015d9906c7a1444242fbbac360cce93adecd..f08bd2f646ddba17965a650844cd3108de05eafb 100644
--- a/modules/gui/qt/dialogs/playlists/playlists.cpp
+++ b/modules/gui/qt/dialogs/playlists/playlists.cpp
@@ -28,7 +28,7 @@
 
 // VLC includes
 #include <vlc_media_library.h>
-#include <maininterface/main_interface.hpp>
+#include <maininterface/mainctx.hpp>
 #include <medialibrary/mlplaylistlistmodel.hpp>
 #include <medialibrary/mlqmltypes.hpp>
 
@@ -47,9 +47,9 @@
 
 PlaylistsDialog::PlaylistsDialog(qt_intf_t * _p_intf) : QVLCFrame(_p_intf)
 {
-    MainInterface * mainInterface = p_intf->p_mi;
+    MainCtx * mainCtx = p_intf->p_mi;
 
-    assert(mainInterface->hasMediaLibrary());
+    assert(mainCtx->hasMediaLibrary());
 
     setWindowFlags(Qt::Tool);
 
@@ -71,7 +71,7 @@ PlaylistsDialog::PlaylistsDialog(qt_intf_t * _p_intf) : QVLCFrame(_p_intf)
 
     m_model = new MLPlaylistListModel(vlc_ml_instance_get(_p_intf), m_playlists);
 
-    m_model->setMl(mainInterface->getMediaLibrary());
+    m_model->setMl(mainCtx->getMediaLibrary());
 
     m_playlists->setModel(m_model);
 
diff --git a/modules/gui/qt/dialogs/preferences/preferences.cpp b/modules/gui/qt/dialogs/preferences/preferences.cpp
index 3473e1b05e5d10cdb32dc15124bcdad3f7cbda55..6aea3671bb3836625a7aa0597f15f57abb0c7280 100644
--- a/modules/gui/qt/dialogs/preferences/preferences.cpp
+++ b/modules/gui/qt/dialogs/preferences/preferences.cpp
@@ -33,7 +33,7 @@
 #include "dialogs/preferences/simple_preferences.hpp"
 #include "widgets/native/searchlineedit.hpp"
 #include "widgets/native/qvlcframe.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 
 #include <QHBoxLayout>
 #include <QGroupBox>
diff --git a/modules/gui/qt/dialogs/preferences/simple_preferences.cpp b/modules/gui/qt/dialogs/preferences/simple_preferences.cpp
index 6f1a0b77d7bce9d66274889113bc2df944a1b433..10cbf6525629e3a8d156c37bf7c5750a59dd7fdd 100644
--- a/modules/gui/qt/dialogs/preferences/simple_preferences.cpp
+++ b/modules/gui/qt/dialogs/preferences/simple_preferences.cpp
@@ -28,7 +28,7 @@
 
 #include "simple_preferences.hpp"
 #include "preferences_widgets.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "util/color_scheme_model.hpp"
 #include "util/qvlcapp.hpp"
 #include "util/proxycolumnmodel.hpp"
@@ -850,7 +850,7 @@ SPrefsPanel::SPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
 
             ui.pinVideoControlsCheckbox->setChecked( p_intf->p_mi->pinVideoControls() );
             m_resetters.push_back(std::make_unique<PropertyResetter>(ui.pinVideoControlsCheckbox, "checked"));
-            QObject::connect( ui.pinVideoControlsCheckbox, &QCheckBox::stateChanged, p_intf->p_mi, &MainInterface::setPinVideoControls );
+            QObject::connect( ui.pinVideoControlsCheckbox, &QCheckBox::stateChanged, p_intf->p_mi, &MainCtx::setPinVideoControls );
 
             ui.colorSchemeComboBox->setModel( p_intf->p_mi->getColorScheme() );
             ui.colorSchemeComboBox->setCurrentText( p_intf->p_mi->getColorScheme()->currentText() );
diff --git a/modules/gui/qt/dialogs/sout/convert.cpp b/modules/gui/qt/dialogs/sout/convert.cpp
index 655116748059bb504a8f153e13f0d7764ac8b487..7f1616cbf9f441412bcd741279a905a323e7c1e6 100644
--- a/modules/gui/qt/dialogs/sout/convert.cpp
+++ b/modules/gui/qt/dialogs/sout/convert.cpp
@@ -27,7 +27,7 @@
 #include "dialogs/sout/sout.hpp"
 #include "dialogs/sout/convert.hpp"
 #include "dialogs/sout/sout_widgets.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 
 #include "util/qt_dirs.hpp"
 
diff --git a/modules/gui/qt/dialogs/sout/sout_widgets.cpp b/modules/gui/qt/dialogs/sout/sout_widgets.cpp
index dea970708f6a841cfb8ef2a55f9ab7122d724270..067cb68190467a78929e93e36ecf84fbda1749c7 100644
--- a/modules/gui/qt/dialogs/sout/sout_widgets.cpp
+++ b/modules/gui/qt/dialogs/sout/sout_widgets.cpp
@@ -25,7 +25,7 @@
 
 #include "dialogs/sout/sout_widgets.hpp"
 #include "dialogs/sout/sout.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "util/soutchain.hpp"
 #include "util/qt_dirs.hpp"
 #include <vlc_intf_strings.h>
diff --git a/modules/gui/qt/maininterface/compositor.cpp b/modules/gui/qt/maininterface/compositor.cpp
index 1425158779e229ad23b53569ce8367c7ef5a0a11..87a257af04a67023fe900234f77adcd8cc6ef30f 100644
--- a/modules/gui/qt/maininterface/compositor.cpp
+++ b/modules/gui/qt/maininterface/compositor.cpp
@@ -18,14 +18,14 @@
 
 #include "compositor.hpp"
 #include "compositor_dummy.hpp"
-#include "main_interface.hpp"
+#include "mainctx.hpp"
 #include "video_window_handler.hpp"
 #include "videosurface.hpp"
 #include "interface_window_handler.hpp"
 #include "mainui.hpp"
 
 #ifdef _WIN32
-#include "main_interface_win32.hpp"
+#include "mainctx_win32.hpp"
 #ifdef HAVE_DCOMP_H
 #  include "compositor_dcomp.hpp"
 #endif
@@ -237,13 +237,13 @@ void CompositorVideo::commonWindowDisable()
 
 bool CompositorVideo::commonGUICreateImpl(QWindow* window, CompositorVideo::Flags flags)
 {
-    assert(m_mainInterface);
+    assert(m_mainCtx);
 
     m_videoSurfaceProvider = std::make_unique<VideoSurfaceProvider>();
-    m_mainInterface->setVideoSurfaceProvider(m_videoSurfaceProvider.get());
+    m_mainCtx->setVideoSurfaceProvider(m_videoSurfaceProvider.get());
     if (flags & CompositorVideo::CAN_SHOW_PIP)
     {
-        m_mainInterface->setCanShowVideoPIP(true);
+        m_mainCtx->setCanShowVideoPIP(true);
         connect(m_videoSurfaceProvider.get(), &VideoSurfaceProvider::surfacePositionChanged,
                 this, &CompositorVideo::onSurfacePositionChanged);
         connect(m_videoSurfaceProvider.get(), &VideoSurfaceProvider::surfaceSizeChanged,
@@ -253,17 +253,17 @@ bool CompositorVideo::commonGUICreateImpl(QWindow* window, CompositorVideo::Flag
     m_videoWindowHandler->setWindow( window );
 
 #ifdef _WIN32
-    m_interfaceWindowHandler = std::make_unique<InterfaceWindowHandlerWin32>(m_intf, m_mainInterface, window);
+    m_interfaceWindowHandler = std::make_unique<InterfaceWindowHandlerWin32>(m_intf, m_mainCtx, window);
 #else
-    m_interfaceWindowHandler = std::make_unique<InterfaceWindowHandler>(m_intf, m_mainInterface, window);
+    m_interfaceWindowHandler = std::make_unique<InterfaceWindowHandler>(m_intf, m_mainCtx, window);
 #endif
-    m_mainInterface->setHasAcrylicSurface(flags & CompositorVideo::HAS_ACRYLIC);
+    m_mainCtx->setHasAcrylicSurface(flags & CompositorVideo::HAS_ACRYLIC);
 
 #ifdef _WIN32
     m_taskbarWidget = std::make_unique<WinTaskbarWidget>(m_intf, window);
     qApp->installNativeEventFilter(m_taskbarWidget.get());
 #endif
-    m_ui = std::make_unique<MainUI>(m_intf, m_mainInterface, window);
+    m_ui = std::make_unique<MainUI>(m_intf, m_mainCtx, window);
     return true;
 }
 
diff --git a/modules/gui/qt/maininterface/compositor.hpp b/modules/gui/qt/maininterface/compositor.hpp
index 9aaec41307f437ab3fe2e48c09846eafd07fac4f..16625924d8948be0e2172938c0801a9b7beb7607 100644
--- a/modules/gui/qt/maininterface/compositor.hpp
+++ b/modules/gui/qt/maininterface/compositor.hpp
@@ -34,7 +34,7 @@
 #include "qt.hpp"
 
 
-class MainInterface;
+class MainCtx;
 class VideoWindowHandler;
 class VideoSurfaceProvider;
 class InterfaceWindowHandler;
@@ -65,7 +65,7 @@ public:
 
     virtual bool init() = 0;
 
-    virtual bool makeMainInterface(MainInterface* intf) = 0;
+    virtual bool makeMainInterface(MainCtx* intf) = 0;
     virtual void destroyMainInterface() = 0;
 
     virtual void unloadGUI() = 0;
@@ -134,7 +134,7 @@ protected:
     qt_intf_t *m_intf = nullptr;
     vout_window_t* m_wnd = nullptr;
 
-    MainInterface* m_mainInterface = nullptr;
+    MainCtx* m_mainCtx = nullptr;
 
     VoutDestroyCb m_destroyCb = nullptr;
     std::unique_ptr<VideoWindowHandler> m_videoWindowHandler;
diff --git a/modules/gui/qt/maininterface/compositor_dcomp.cpp b/modules/gui/qt/maininterface/compositor_dcomp.cpp
index b6295d4ffd794a517f0ff7c24e7fd15433d60124..72e929fc998abb22ac882edfe204a43a2c5ddbb7 100644
--- a/modules/gui/qt/maininterface/compositor_dcomp.cpp
+++ b/modules/gui/qt/maininterface/compositor_dcomp.cpp
@@ -22,7 +22,7 @@
 
 #include "compositor_dcomp.hpp"
 
-#include "maininterface/main_interface_win32.hpp"
+#include "maininterface/mainctx_win32.hpp"
 
 #include <comdef.h>
 
@@ -245,12 +245,12 @@ bool CompositorDirectComposition::init()
     return true;
 }
 
-bool CompositorDirectComposition::makeMainInterface(MainInterface* mainInterface)
+bool CompositorDirectComposition::makeMainInterface(MainCtx* mainCtx)
 {
     try
     {
         bool ret;
-        m_mainInterface = mainInterface;
+        m_mainCtx = mainCtx;
 
         m_rootWindow = new QWindow();
 
@@ -279,7 +279,7 @@ bool CompositorDirectComposition::makeMainInterface(MainInterface* mainInterface
 
         auto resetAcrylicSurface = [this](QScreen * = nullptr)
         {
-            m_acrylicSurface.reset(new CompositorDCompositionAcrylicSurface(m_intf, this, m_mainInterface, m_d3d11Device.Get()));
+            m_acrylicSurface.reset(new CompositorDCompositionAcrylicSurface(m_intf, this, m_mainCtx, m_d3d11Device.Get()));
         };
 
         resetAcrylicSurface();
diff --git a/modules/gui/qt/maininterface/compositor_dcomp.hpp b/modules/gui/qt/maininterface/compositor_dcomp.hpp
index 88d65e4794edfddf1cb1a59294464b4a169e073f..800785b44230d10b6f70e4f36da981ed6ba900e7 100644
--- a/modules/gui/qt/maininterface/compositor_dcomp.hpp
+++ b/modules/gui/qt/maininterface/compositor_dcomp.hpp
@@ -31,7 +31,7 @@
 
 #include <QOpenGLContext>
 
-class MainInterface;
+class MainCtx;
 class WinTaskbarWidget;
 
 namespace vlc {
@@ -46,7 +46,7 @@ public:
     static bool preInit(qt_intf_t *);
     bool init() override;
 
-    bool makeMainInterface(MainInterface*) override;
+    bool makeMainInterface(MainCtx*) override;
     void destroyMainInterface() override;
     void unloadGUI() override;
 
diff --git a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
index e1d49eca39ada9eb6d6aff590e304729a5a567be..cb552b0fc4a2e7e0469c475a6d9cf9151976ffaa 100644
--- a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
+++ b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
@@ -78,27 +78,27 @@ bool isWinPreIron()
 namespace vlc
 {
 
-CompositorDCompositionAcrylicSurface::CompositorDCompositionAcrylicSurface(qt_intf_t *intf, CompositorDirectComposition *compositor, MainInterface *mainInterface, ID3D11Device *device, QObject *parent)
+CompositorDCompositionAcrylicSurface::CompositorDCompositionAcrylicSurface(qt_intf_t *intf, CompositorDirectComposition *compositor, MainCtx *mainCtx, ID3D11Device *device, QObject *parent)
     : QObject(parent)
     , m_intf {intf}
     , m_compositor {compositor}
-    , m_mainInterface {mainInterface}
+    , m_mainCtx {mainCtx}
 {
     if (!init(device))
         return;
 
     qApp->installNativeEventFilter(this);
 
-    setActive(m_transparencyEnabled && m_mainInterface->acrylicActive());
-    connect(m_mainInterface, &MainInterface::acrylicActiveChanged, this, [this]()
+    setActive(m_transparencyEnabled && m_mainCtx->acrylicActive());
+    connect(m_mainCtx, &MainCtx::acrylicActiveChanged, this, [this]()
     {
-        setActive(m_transparencyEnabled && m_mainInterface->acrylicActive());
+        setActive(m_transparencyEnabled && m_mainCtx->acrylicActive());
     });
 }
 
 CompositorDCompositionAcrylicSurface::~CompositorDCompositionAcrylicSurface()
 {
-    m_mainInterface->setHasAcrylicSurface(false);
+    m_mainCtx->setHasAcrylicSurface(false);
 
     if (m_dummyWindow)
         DestroyWindow(m_dummyWindow);
@@ -133,8 +133,8 @@ bool CompositorDCompositionAcrylicSurface::nativeEventFilter(const QByteArray &e
                 break;
 
             m_transparencyEnabled = transparencyEnabled;
-            m_mainInterface->setHasAcrylicSurface(m_transparencyEnabled);
-            setActive(m_transparencyEnabled && m_mainInterface->acrylicActive());
+            m_mainCtx->setHasAcrylicSurface(m_transparencyEnabled);
+            setActive(m_transparencyEnabled && m_mainCtx->acrylicActive());
         }
         break;
     }
@@ -168,7 +168,7 @@ bool CompositorDCompositionAcrylicSurface::init(ID3D11Device *device)
     }
 
     m_transparencyEnabled = isTransparencyEnabled();
-    m_mainInterface->setHasAcrylicSurface(m_transparencyEnabled);
+    m_mainCtx->setHasAcrylicSurface(m_transparencyEnabled);
 
     return true;
 }
@@ -342,7 +342,7 @@ void CompositorDCompositionAcrylicSurface::sync()
     int frameX = 0;
     int frameY = 0;
 
-    if (!m_mainInterface->useClientSideDecoration())
+    if (!m_mainCtx->useClientSideDecoration())
     {
         frameX = GetSystemMetrics(SM_CXFRAME) + GetSystemMetrics(SM_CXPADDEDBORDER);
         frameY = GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION)
diff --git a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.hpp b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.hpp
index 2f8fb4c0f5878b14bf6b91fbc2c7a860f6355dea..265d201e45b7d9e4d7aa626d8f179869cf2fd230 100644
--- a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.hpp
+++ b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.hpp
@@ -38,7 +38,7 @@
 #include <dwmapi.h>
 
 #include "compositor_dcomp_error.hpp"
-#include "main_interface.hpp"
+#include "mainctx.hpp"
 
 // Windows Private APIs, taken from https://blog.adeltax.com/dwm-thumbnails-but-with-idcompositionvisual/
 
@@ -170,7 +170,7 @@ class CompositorDCompositionAcrylicSurface
     Q_OBJECT
 
 public:
-    CompositorDCompositionAcrylicSurface(qt_intf_t * intf, CompositorDirectComposition *compositor, MainInterface *mainInterface, ID3D11Device *device, QObject *parent = nullptr);
+    CompositorDCompositionAcrylicSurface(qt_intf_t * intf, CompositorDirectComposition *compositor, MainCtx *mainctx, ID3D11Device *device, QObject *parent = nullptr);
 
     ~CompositorDCompositionAcrylicSurface();
 
@@ -225,7 +225,7 @@ private:
 
     qt_intf_t *m_intf = nullptr;
     CompositorDirectComposition *m_compositor = nullptr;
-    MainInterface *m_mainInterface = nullptr;
+    MainCtx *m_mainCtx = nullptr;
     QBasicTimer m_resetTimer;
     bool m_resetPending = false;
     bool m_active = false;
diff --git a/modules/gui/qt/maininterface/compositor_dummy.cpp b/modules/gui/qt/maininterface/compositor_dummy.cpp
index d19635f644ebe4dc2b7fb6dd06d31d08b15c6710..7b007ea064a544cb4c76729f7c3ac56d567d3de9 100644
--- a/modules/gui/qt/maininterface/compositor_dummy.cpp
+++ b/modules/gui/qt/maininterface/compositor_dummy.cpp
@@ -19,7 +19,7 @@
 
 #include <QQuickView>
 
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "maininterface/mainui.hpp"
 #include "maininterface/interface_window_handler.hpp"
 
@@ -45,18 +45,18 @@ bool CompositorDummy::init()
     return true;
 }
 
-bool CompositorDummy::makeMainInterface(MainInterface* mainInterface)
+bool CompositorDummy::makeMainInterface(MainCtx* mainCtx)
 {
-    m_mainInterface = mainInterface;
+    m_mainCtx = mainCtx;
 
     m_qmlWidget = std::make_unique<QQuickView>();
-    if (m_mainInterface->useClientSideDecoration())
+    if (m_mainCtx->useClientSideDecoration())
         m_qmlWidget->setFlag(Qt::FramelessWindowHint);
     m_qmlWidget->setResizeMode(QQuickView::SizeRootObjectToView);
 
-    m_intfWindowHandler = std::make_unique<InterfaceWindowHandler>(m_intf, m_mainInterface, m_qmlWidget.get());
+    m_intfWindowHandler = std::make_unique<InterfaceWindowHandler>(m_intf, m_mainCtx, m_qmlWidget.get());
 
-    MainUI* ui = new MainUI(m_intf, m_mainInterface, m_qmlWidget.get(), m_qmlWidget.get());
+    MainUI* ui = new MainUI(m_intf, m_mainCtx, m_qmlWidget.get(), m_qmlWidget.get());
     ui->setup(m_qmlWidget->engine());
     m_qmlWidget->setContent(QUrl(), ui->getComponent(), ui->createRootItem());
 
diff --git a/modules/gui/qt/maininterface/compositor_dummy.hpp b/modules/gui/qt/maininterface/compositor_dummy.hpp
index 5423158f532728d6db64187beca739d8f747ee72..2fcd913f7e9b228854f907c6dbde061f0f20aa62 100644
--- a/modules/gui/qt/maininterface/compositor_dummy.hpp
+++ b/modules/gui/qt/maininterface/compositor_dummy.hpp
@@ -25,7 +25,7 @@
 #include <memory>
 #include "compositor.hpp"
 
-class MainInterface;
+class MainCtx;
 class QQuickView;
 class InterfaceWindowHandler;
 
@@ -41,7 +41,7 @@ public:
     static bool preInit(qt_intf_t*);
     virtual bool init() override;
 
-    virtual bool makeMainInterface(MainInterface*) override;
+    virtual bool makeMainInterface(MainCtx*) override;
 
     /**
      * @brief release all resources used by the compositor.
@@ -65,7 +65,7 @@ protected:
     qt_intf_t *m_intf;
 
     std::unique_ptr<InterfaceWindowHandler> m_intfWindowHandler;
-    MainInterface* m_mainInterface;
+    MainCtx* m_mainCtx;
     std::unique_ptr<QQuickView> m_qmlWidget;
 };
 
diff --git a/modules/gui/qt/maininterface/compositor_win7.cpp b/modules/gui/qt/maininterface/compositor_win7.cpp
index d8e513b030c3cf8e5584cd0bf2def3f2cd260601..286ce30d7fec43a8f4c8e1d12ce8170d659fae44 100644
--- a/modules/gui/qt/maininterface/compositor_win7.cpp
+++ b/modules/gui/qt/maininterface/compositor_win7.cpp
@@ -16,7 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 #include "compositor_win7.hpp"
-#include "main_interface_win32.hpp"
+#include "mainctx_win32.hpp"
 #include "mainui.hpp"
 
 #include <d3d11.h>
@@ -97,12 +97,12 @@ bool CompositorWin7::init()
     return true;
 }
 
-bool CompositorWin7::makeMainInterface(MainInterface* mainInterface)
+bool CompositorWin7::makeMainInterface(MainCtx* mainCtx)
 {
-    m_mainInterface = mainInterface;
+    m_mainCtx = mainCtx;
 
     /*
-     * m_stable is not attached to the main interface because dialogs are attached to the mainInterface
+     * m_stable is not attached to the main interface because dialogs are attached to the mainCtx
      * and showing them would raise the video widget above the interface
      */
     m_videoWidget = new QWidget(nullptr, Qt::Tool | Qt::FramelessWindowHint);
diff --git a/modules/gui/qt/maininterface/compositor_win7.hpp b/modules/gui/qt/maininterface/compositor_win7.hpp
index 2e78c80a1809dcbbedf4fdf3000558f2549006e0..fab7e186879c5966555d3893a646fbbfd5f33dd6 100644
--- a/modules/gui/qt/maininterface/compositor_win7.hpp
+++ b/modules/gui/qt/maininterface/compositor_win7.hpp
@@ -50,7 +50,7 @@ public:
     static bool preInit(qt_intf_t *p_intf);
     virtual bool init() override;
 
-    virtual bool makeMainInterface(MainInterface*) override;
+    virtual bool makeMainInterface(MainCtx*) override;
     virtual void destroyMainInterface() override;
     virtual void unloadGUI() override;
     virtual bool setupVoutWindow(vout_window_t*, VoutDestroyCb destroyCb) override;
diff --git a/modules/gui/qt/maininterface/compositor_x11.cpp b/modules/gui/qt/maininterface/compositor_x11.cpp
index c6d86c0caef55bca6a30482b16a1a44c0c76f143..1049056f1ba3994578e4d168f6615e3d30a13c56 100644
--- a/modules/gui/qt/maininterface/compositor_x11.cpp
+++ b/modules/gui/qt/maininterface/compositor_x11.cpp
@@ -22,7 +22,7 @@
 #include "compositor_x11.hpp"
 #include "compositor_x11_renderwindow.hpp"
 #include "compositor_x11_uisurface.hpp"
-#include "main_interface.hpp"
+#include "mainctx.hpp"
 #include "interface_window_handler.hpp"
 #include "video_window_handler.hpp"
 #include "mainui.hpp"
@@ -142,9 +142,9 @@ bool CompositorX11::init()
     return true;
 }
 
-bool CompositorX11::makeMainInterface(MainInterface* mainInterface)
+bool CompositorX11::makeMainInterface(MainCtx* mainCtx)
 {
-    m_mainInterface = mainInterface;
+    m_mainCtx = mainCtx;
 
     m_videoWidget = std::make_unique<DummyNativeWidget>();
     m_videoWidget->setWindowFlag(Qt::WindowType::BypassWindowManagerHint);
@@ -152,7 +152,7 @@ bool CompositorX11::makeMainInterface(MainInterface* mainInterface)
     m_videoWidget->winId();
     m_videoWidget->show();
 
-    bool useCSD = m_mainInterface->useClientSideDecoration();
+    bool useCSD = m_mainCtx->useClientSideDecoration();
     m_renderWindow = std::make_unique<vlc::CompositorX11RenderWindow>(m_intf, m_conn, useCSD);
     if (!m_renderWindow->init())
         return false;
diff --git a/modules/gui/qt/maininterface/compositor_x11.hpp b/modules/gui/qt/maininterface/compositor_x11.hpp
index 3cc3166597394cb2565de0db54f614ba44407225..80f8d2056ce67e337316ff55fc77f3259c024796 100644
--- a/modules/gui/qt/maininterface/compositor_x11.hpp
+++ b/modules/gui/qt/maininterface/compositor_x11.hpp
@@ -45,7 +45,7 @@ public:
     static bool preInit(qt_intf_t *);
     bool init() override;
 
-    bool makeMainInterface(MainInterface*) override;
+    bool makeMainInterface(MainCtx*) override;
     void destroyMainInterface() override;
     void unloadGUI() override;
 
diff --git a/modules/gui/qt/maininterface/interface_window_handler.cpp b/modules/gui/qt/maininterface/interface_window_handler.cpp
index da59e80c72abc06f0758995c0f6b6a332662db2e..e8a5e2996fb2c5c51f87b71a0dd9616f155088ef 100644
--- a/modules/gui/qt/maininterface/interface_window_handler.cpp
+++ b/modules/gui/qt/maininterface/interface_window_handler.cpp
@@ -16,19 +16,19 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 #include "interface_window_handler.hpp"
-#include "main_interface.hpp"
+#include "mainctx.hpp"
 #include <player/player_controller.hpp>
 #include <playlist/playlist_controller.hpp>
 #include <QScreen>
 
-InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t *_p_intf, MainInterface* mainInterface, QWindow* window, QObject *parent)
+InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t *_p_intf, MainCtx* mainCtx, QWindow* window, QObject *parent)
     : QObject(parent)
     , p_intf(_p_intf)
     , m_window(window)
-    , m_mainInterface(mainInterface)
+    , m_mainCtx(mainCtx)
 {
     assert(m_window);
-    assert(m_mainInterface);
+    assert(m_mainCtx);
 
     /* */
     m_pauseOnMinimize = var_InheritBool( p_intf, "qt-pause-minimized" );
@@ -45,10 +45,10 @@ InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t *_p_intf, MainInterface
     {
         QVLCTools::restoreWindowPosition( getSettings(), m_window, QSize(600, 420) );
 
-        WindowStateHolder::holdOnTop( m_window,  WindowStateHolder::INTERFACE, m_mainInterface->isInterfaceAlwaysOnTop() );
+        WindowStateHolder::holdOnTop( m_window,  WindowStateHolder::INTERFACE, m_mainCtx->isInterfaceAlwaysOnTop() );
         WindowStateHolder::holdFullscreen( m_window,  WindowStateHolder::INTERFACE, m_window->visibility() == QWindow::FullScreen );
 
-        if (m_mainInterface->isHideAfterCreation())
+        if (m_mainCtx->isHideAfterCreation())
             m_window->hide();
     }, Qt::QueuedConnection, nullptr);
 
@@ -59,45 +59,45 @@ InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t *_p_intf, MainInterface
         connect( THEMIM, &PlayerController::nameChanged, m_window, &QWindow::setTitle );
     }
 
-    connect( m_window, &QWindow::screenChanged, m_mainInterface, &MainInterface::updateIntfScaleFactor);
-    m_mainInterface->updateIntfScaleFactor();
+    connect( m_window, &QWindow::screenChanged, m_mainCtx, &MainCtx::updateIntfScaleFactor);
+    m_mainCtx->updateIntfScaleFactor();
 
-    m_mainInterface->onWindowVisibilityChanged(m_window->visibility());
+    m_mainCtx->onWindowVisibilityChanged(m_window->visibility());
     connect( m_window, &QWindow::visibilityChanged,
-             m_mainInterface, &MainInterface::onWindowVisibilityChanged);
+             m_mainCtx, &MainCtx::onWindowVisibilityChanged);
 
-    connect( m_mainInterface, &MainInterface::askBoss,
+    connect( m_mainCtx, &MainCtx::askBoss,
              this, &InterfaceWindowHandler::setBoss, Qt::QueuedConnection  );
-    connect( m_mainInterface, &MainInterface::askRaise,
+    connect( m_mainCtx, &MainCtx::askRaise,
              this, &InterfaceWindowHandler::setRaise, Qt::QueuedConnection  );
 
-    connect( m_mainInterface, &MainInterface::interfaceAlwaysOnTopChanged,
+    connect( m_mainCtx, &MainCtx::interfaceAlwaysOnTopChanged,
              this, &InterfaceWindowHandler::setInterfaceAlwaysOnTop);
 
-    connect( m_mainInterface, &MainInterface::setInterfaceFullScreen,
+    connect( m_mainCtx, &MainCtx::setInterfaceFullScreen,
              this, &InterfaceWindowHandler::setInterfaceFullScreen);
 
-    connect( m_mainInterface, &MainInterface::toggleWindowVisibility,
+    connect( m_mainCtx, &MainCtx::toggleWindowVisibility,
              this, &InterfaceWindowHandler::toggleWindowVisiblity);
 
-    connect( m_mainInterface, &MainInterface::setInterfaceVisibible,
+    connect( m_mainCtx, &MainCtx::setInterfaceVisibible,
              this, &InterfaceWindowHandler::setInterfaceVisible);
 
     connect(this, &InterfaceWindowHandler::incrementIntfUserScaleFactor,
-            m_mainInterface, &MainInterface::incrementIntfUserScaleFactor);
+            m_mainCtx, &MainCtx::incrementIntfUserScaleFactor);
 
 #if QT_CLIENT_SIDE_DECORATION_AVAILABLE
-    connect( m_mainInterface, &MainInterface::useClientSideDecorationChanged,
+    connect( m_mainCtx, &MainCtx::useClientSideDecorationChanged,
              this, &InterfaceWindowHandler::updateCSDWindowSettings );
 #endif
 
-    connect(m_mainInterface, &MainInterface::requestInterfaceMaximized,
+    connect(m_mainCtx, &MainCtx::requestInterfaceMaximized,
             m_window, &QWindow::showMaximized);
 
-    connect(m_mainInterface, &MainInterface::requestInterfaceNormal,
+    connect(m_mainCtx, &MainCtx::requestInterfaceNormal,
             m_window, &QWindow::showNormal);
 
-    connect(m_mainInterface, &MainInterface::requestInterfaceMinimized,
+    connect(m_mainCtx, &MainCtx::requestInterfaceMinimized,
             m_window, [this]()
     {
         // taking OR with the current state, we preserve the current state
@@ -121,7 +121,7 @@ InterfaceWindowHandler::~InterfaceWindowHandler()
 void InterfaceWindowHandler::updateCSDWindowSettings()
 {
     m_window->hide(); // some window managers don't like to change frame window hint on visible window
-    m_window->setFlag(Qt::FramelessWindowHint, m_mainInterface->useClientSideDecoration());
+    m_window->setFlag(Qt::FramelessWindowHint, m_mainCtx->useClientSideDecoration());
     m_window->show();
 }
 #endif
@@ -213,12 +213,12 @@ bool InterfaceWindowHandler::eventFilter(QObject*, QEvent* event)
     case QEvent::Drop:
     {
         auto dropEvent = static_cast<QDropEvent*>(event);
-        m_mainInterface->dropEventPlay(dropEvent, true);
+        m_mainCtx->dropEventPlay(dropEvent, true);
         return true;
     }
     case QEvent::Close:
     {
-        bool ret = m_mainInterface->onWindowClose(m_window);
+        bool ret = m_mainCtx->onWindowClose(m_window);
         if (ret)
         {
             /* Accept session quit. Otherwise we break the desktop mamager. */
@@ -316,7 +316,7 @@ void InterfaceWindowHandler::setRaise()
 void InterfaceWindowHandler::setBoss()
 {
     THEMPL->pause();
-    if( m_mainInterface->getSysTray() )
+    if( m_mainCtx->getSysTray() )
     {
         m_window->hide();
     }
diff --git a/modules/gui/qt/maininterface/interface_window_handler.hpp b/modules/gui/qt/maininterface/interface_window_handler.hpp
index 381accb262462de0b3419ab32fb70e6525e5ff54..3c7fac93f20ae1c994512225c50ee55d92d5d6f9 100644
--- a/modules/gui/qt/maininterface/interface_window_handler.hpp
+++ b/modules/gui/qt/maininterface/interface_window_handler.hpp
@@ -23,12 +23,12 @@
 #include <QObject>
 #include <QWindow>
 
-class MainInterface;
+class MainCtx;
 class InterfaceWindowHandler : public QObject
 {
     Q_OBJECT
 public:
-    explicit InterfaceWindowHandler(qt_intf_t *_p_intf, MainInterface* mainInterface, QWindow* window, QObject *parent = nullptr);
+    explicit InterfaceWindowHandler(qt_intf_t *_p_intf, MainCtx* mainCtx, QWindow* window, QObject *parent = nullptr);
     virtual ~InterfaceWindowHandler();
 
 public slots:
@@ -62,7 +62,7 @@ private:
 protected:
     qt_intf_t* p_intf = nullptr;
     QWindow* m_window = nullptr;
-    MainInterface* m_mainInterface = nullptr;
+    MainCtx* m_mainCtx = nullptr;
 
     bool m_hasPausedWhenMinimized = false;
 
diff --git a/modules/gui/qt/maininterface/main_interface.cpp b/modules/gui/qt/maininterface/mainctx.cpp
similarity index 85%
rename from modules/gui/qt/maininterface/main_interface.cpp
rename to modules/gui/qt/maininterface/mainctx.cpp
index ebf310fd27e1180fdbb3eca5e396822367f611a9..16dffeb33a2c217ff933086e49d01eaad1741a7a 100644
--- a/modules/gui/qt/maininterface/main_interface.cpp
+++ b/modules/gui/qt/maininterface/mainctx.cpp
@@ -28,7 +28,7 @@
 
 #include "qt.hpp"
 
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "compositor.hpp"
 #include "player/player_controller.hpp"                    // Creation
 #include "util/renderer_manager.hpp"
@@ -95,7 +95,7 @@ static int IntfRaiseMainCB( vlc_object_t *p_this, const char *psz_variable,
                            vlc_value_t old_val, vlc_value_t new_val,
                            void *param );
 
-const QEvent::Type MainInterface::ToolbarsNeedRebuild =
+const QEvent::Type MainCtx::ToolbarsNeedRebuild =
         (QEvent::Type)QEvent::registerEventType();
 
 namespace
@@ -118,7 +118,7 @@ bool loadVLCOption<bool>(vlc_object_t *obj, const char *name)
 
 }
 
-MainInterface::MainInterface(qt_intf_t *_p_intf)
+MainCtx::MainCtx(qt_intf_t *_p_intf)
     : p_intf(_p_intf)
 {
     /**
@@ -156,7 +156,7 @@ MainInterface::MainInterface(qt_intf_t *_p_intf)
      * Create the Systray Management *
      *********************************/
     //postpone systray initialisation to speedup starting time
-    QMetaObject::invokeMethod(this, &MainInterface::initSystray, Qt::QueuedConnection);
+    QMetaObject::invokeMethod(this, &MainCtx::initSystray, Qt::QueuedConnection);
 
     /*************************************************************
      * Connect the input manager to the GUI elements it manages  *
@@ -168,14 +168,14 @@ MainInterface::MainInterface(qt_intf_t *_p_intf)
      **/
     /* Main Interface statusbar */
     /* and title of the Main Interface*/
-    connect( THEMIM, &PlayerController::inputChanged, this, &MainInterface::onInputChanged );
+    connect( THEMIM, &PlayerController::inputChanged, this, &MainCtx::onInputChanged );
 
     /* END CONNECTS ON IM */
 
     /* VideoWidget connects for asynchronous calls */
-    connect( this, &MainInterface::askToQuit, THEDP, &DialogsProvider::quit, Qt::QueuedConnection  );
+    connect( this, &MainCtx::askToQuit, THEDP, &DialogsProvider::quit, Qt::QueuedConnection  );
 
-    connect(this, &MainInterface::interfaceFullScreenChanged, this, &MainInterface::useClientSideDecorationChanged);
+    connect(this, &MainCtx::interfaceFullScreenChanged, this, &MainCtx::useClientSideDecorationChanged);
 
     /** END of CONNECTS**/
 
@@ -200,7 +200,7 @@ MainInterface::MainInterface(qt_intf_t *_p_intf)
     }
 }
 
-MainInterface::~MainInterface()
+MainCtx::~MainCtx()
 {
     RendererManager::killInstance();
 
@@ -236,7 +236,7 @@ MainInterface::~MainInterface()
     p_intf->p_mi = NULL;
 }
 
-bool MainInterface::hasVLM() const {
+bool MainCtx::hasVLM() const {
 #ifdef ENABLE_VLM
     return true;
 #else
@@ -244,13 +244,13 @@ bool MainInterface::hasVLM() const {
 #endif
 }
 
-bool MainInterface::useClientSideDecoration() const
+bool MainCtx::useClientSideDecoration() const
 {
     //don't show CSD when interface is fullscreen
     return !m_windowTitlebar && m_windowVisibility != QWindow::FullScreen;
 }
 
-bool MainInterface::hasFirstrun() const {
+bool MainCtx::hasFirstrun() const {
     return config_GetInt( "qt-privacy-ask" );
 }
 
@@ -258,10 +258,10 @@ bool MainInterface::hasFirstrun() const {
  *   Main UI handling        *
  *****************************/
 
-void MainInterface::loadPrefs(const bool callSignals)
+void MainCtx::loadPrefs(const bool callSignals)
 {
     const auto loadFromVLCOption = [this, callSignals](auto &variable, const char *name
-            , const std::function<void(MainInterface *)> signal)
+            , const std::function<void(MainCtx *)> signal)
     {
         using variableType = std::remove_reference_t<decltype(variable)>;
 
@@ -281,19 +281,19 @@ void MainInterface::loadPrefs(const bool callSignals)
     loadFromVLCOption(i_notificationSetting, "qt-notification", nullptr);
 
     /* Should the UI stays on top of other windows */
-    loadFromVLCOption(b_interfaceOnTop, "video-on-top", [this](MainInterface *)
+    loadFromVLCOption(b_interfaceOnTop, "video-on-top", [this](MainCtx *)
     {
         emit interfaceAlwaysOnTopChanged(b_interfaceOnTop);
     });
 
-    loadFromVLCOption(m_hasToolbarMenu, "qt-menubar", &MainInterface::hasToolbarMenuChanged);
+    loadFromVLCOption(m_hasToolbarMenu, "qt-menubar", &MainCtx::hasToolbarMenuChanged);
 
 #if QT_CLIENT_SIDE_DECORATION_AVAILABLE
-    loadFromVLCOption(m_windowTitlebar, "qt-titlebar" , &MainInterface::useClientSideDecorationChanged);
+    loadFromVLCOption(m_windowTitlebar, "qt-titlebar" , &MainCtx::useClientSideDecorationChanged);
 #endif
 }
 
-void MainInterface::loadFromSettingsImpl(const bool callSignals)
+void MainCtx::loadFromSettingsImpl(const bool callSignals)
 {
     const auto loadFromSettings = [this, callSignals](auto &variable, const char *name
             , const auto defaultValue, auto signal)
@@ -309,17 +309,17 @@ void MainInterface::loadFromSettingsImpl(const bool callSignals)
             (this->*signal)(variable);
     };
 
-    loadFromSettings(b_playlistDocked, "MainWindow/pl-dock-status", true, &MainInterface::playlistDockedChanged);
+    loadFromSettings(b_playlistDocked, "MainWindow/pl-dock-status", true, &MainCtx::playlistDockedChanged);
 
-    loadFromSettings(playlistVisible, "MainWindow/playlist-visible", false, &MainInterface::playlistVisibleChanged);
+    loadFromSettings(playlistVisible, "MainWindow/playlist-visible", false, &MainCtx::playlistVisibleChanged);
 
-    loadFromSettings(playlistWidthFactor, "MainWindow/playlist-width-factor", 4.0 , &MainInterface::playlistWidthFactorChanged);
+    loadFromSettings(playlistWidthFactor, "MainWindow/playlist-width-factor", 4.0 , &MainCtx::playlistWidthFactorChanged);
 
-    loadFromSettings(m_gridView, "MainWindow/grid-view", true, &MainInterface::gridViewChanged);
+    loadFromSettings(m_gridView, "MainWindow/grid-view", true, &MainCtx::gridViewChanged);
 
-    loadFromSettings(m_showRemainingTime, "MainWindow/ShowRemainingTime", false, &MainInterface::showRemainingTimeChanged);
+    loadFromSettings(m_showRemainingTime, "MainWindow/ShowRemainingTime", false, &MainCtx::showRemainingTimeChanged);
 
-    loadFromSettings(m_pinVideoControls, "MainWindow/pin-video-controls", false, &MainInterface::pinVideoControlsChanged);
+    loadFromSettings(m_pinVideoControls, "MainWindow/pin-video-controls", false, &MainCtx::pinVideoControlsChanged);
 
     const auto colorScheme = static_cast<ColorSchemeModel::ColorScheme>(getSettings()->value( "MainWindow/color-scheme", ColorSchemeModel::System ).toInt());
     if (m_colorScheme->currentScheme() != colorScheme)
@@ -336,24 +336,24 @@ void MainInterface::loadFromSettingsImpl(const bool callSignals)
     }
 }
 
-void MainInterface::reloadPrefs()
+void MainCtx::reloadPrefs()
 {
     loadPrefs(true);
 }
 
-void MainInterface::onInputChanged( bool hasInput )
+void MainCtx::onInputChanged( bool hasInput )
 {
     if( hasInput == false )
         return;
     int autoRaise = var_InheritInteger( p_intf, "qt-auto-raise" );
-    if ( autoRaise == MainInterface::RAISE_NEVER )
+    if ( autoRaise == MainCtx::RAISE_NEVER )
         return;
     if( THEMIM->hasVideoOutput() == true )
     {
-        if( ( autoRaise & MainInterface::RAISE_VIDEO ) == 0 )
+        if( ( autoRaise & MainCtx::RAISE_VIDEO ) == 0 )
             return;
     }
-    else if ( ( autoRaise & MainInterface::RAISE_AUDIO ) == 0 )
+    else if ( ( autoRaise & MainCtx::RAISE_AUDIO ) == 0 )
         return;
     emit askRaise();
 }
@@ -361,14 +361,14 @@ void MainInterface::onInputChanged( bool hasInput )
 #ifdef KeyPress
 #undef KeyPress
 #endif
-void MainInterface::sendHotkey(Qt::Key key , Qt::KeyboardModifiers modifiers)
+void MainCtx::sendHotkey(Qt::Key key , Qt::KeyboardModifiers modifiers)
 {
     QKeyEvent event(QEvent::KeyPress, key, modifiers );
     int vlckey = qtEventToVLCKey(&event);
     var_SetInteger(vlc_object_instance(p_intf), "key-pressed", vlckey);
 }
 
-void MainInterface::updateIntfScaleFactor()
+void MainCtx::updateIntfScaleFactor()
 {
     m_intfScaleFactor = m_intfUserScaleFactor;
     if (QWindow* window = p_intf->p_compositor ? p_intf->p_compositor->interfaceMainWindow() : nullptr)
@@ -383,12 +383,12 @@ void MainInterface::updateIntfScaleFactor()
     emit intfScaleFactorChanged();
 }
 
-void MainInterface::onWindowVisibilityChanged(QWindow::Visibility visibility)
+void MainCtx::onWindowVisibilityChanged(QWindow::Visibility visibility)
 {
     m_windowVisibility = visibility;
 }
 
-void MainInterface::setHasAcrylicSurface(const bool v)
+void MainCtx::setHasAcrylicSurface(const bool v)
 {
     if (m_hasAcrylicSurface == v)
         return;
@@ -397,7 +397,7 @@ void MainInterface::setHasAcrylicSurface(const bool v)
     emit hasAcrylicSurfaceChanged();
 }
 
-void MainInterface::incrementIntfUserScaleFactor(bool increment)
+void MainCtx::incrementIntfUserScaleFactor(bool increment)
 {
     if (increment)
         setIntfUserScaleFactor(m_intfUserScaleFactor + 0.1);
@@ -405,13 +405,13 @@ void MainInterface::incrementIntfUserScaleFactor(bool increment)
         setIntfUserScaleFactor(m_intfUserScaleFactor - 0.1);
 }
 
-void MainInterface::setIntfUserScaleFactor(double newValue)
+void MainCtx::setIntfUserScaleFactor(double newValue)
 {
     m_intfUserScaleFactor = qBound(getMinIntfUserScaleFactor(), newValue, getMaxIntfUserScaleFactor());
     updateIntfScaleFactor();
 }
 
-void MainInterface::setPinVideoControls(bool pinVideoControls)
+void MainCtx::setPinVideoControls(bool pinVideoControls)
 {
     if (m_pinVideoControls == pinVideoControls)
         return;
@@ -420,7 +420,7 @@ void MainInterface::setPinVideoControls(bool pinVideoControls)
     emit pinVideoControlsChanged(m_pinVideoControls);
 }
 
-inline void MainInterface::initSystray()
+inline void MainCtx::initSystray()
 {
     bool b_systrayAvailable = QSystemTrayIcon::isSystemTrayAvailable();
     bool b_systrayWanted = var_InheritBool( p_intf, "qt-system-tray" );
@@ -441,21 +441,21 @@ inline void MainInterface::initSystray()
 }
 
 
-void MainInterface::setPlaylistDocked( bool docked )
+void MainCtx::setPlaylistDocked( bool docked )
 {
     b_playlistDocked = docked;
 
     emit playlistDockedChanged(docked);
 }
 
-void MainInterface::setPlaylistVisible( bool visible )
+void MainCtx::setPlaylistVisible( bool visible )
 {
     playlistVisible = visible;
 
     emit playlistVisibleChanged(visible);
 }
 
-void MainInterface::setPlaylistWidthFactor( double factor )
+void MainCtx::setPlaylistWidthFactor( double factor )
 {
     if (factor > 0.0)
     {
@@ -464,42 +464,42 @@ void MainInterface::setPlaylistWidthFactor( double factor )
     }
 }
 
-void MainInterface::setShowRemainingTime( bool show )
+void MainCtx::setShowRemainingTime( bool show )
 {
     m_showRemainingTime = show;
     emit showRemainingTimeChanged(show);
 }
 
-void MainInterface::setGridView(bool asGrid)
+void MainCtx::setGridView(bool asGrid)
 {
     m_gridView = asGrid;
     emit gridViewChanged( asGrid );
 }
 
-void MainInterface::setInterfaceAlwaysOnTop( bool on_top )
+void MainCtx::setInterfaceAlwaysOnTop( bool on_top )
 {
     b_interfaceOnTop = on_top;
     emit interfaceAlwaysOnTopChanged(on_top);
 }
 
-bool MainInterface::hasEmbededVideo() const
+bool MainCtx::hasEmbededVideo() const
 {
     return m_videoSurfaceProvider && m_videoSurfaceProvider->hasVideoEmbed();
 }
 
-void MainInterface::setVideoSurfaceProvider(VideoSurfaceProvider* videoSurfaceProvider)
+void MainCtx::setVideoSurfaceProvider(VideoSurfaceProvider* videoSurfaceProvider)
 {
     if (m_videoSurfaceProvider)
-        disconnect(m_videoSurfaceProvider, &VideoSurfaceProvider::hasVideoEmbedChanged, this, &MainInterface::hasEmbededVideoChanged);
+        disconnect(m_videoSurfaceProvider, &VideoSurfaceProvider::hasVideoEmbedChanged, this, &MainCtx::hasEmbededVideoChanged);
     m_videoSurfaceProvider = videoSurfaceProvider;
     if (m_videoSurfaceProvider)
         connect(m_videoSurfaceProvider, &VideoSurfaceProvider::hasVideoEmbedChanged,
-                this, &MainInterface::hasEmbededVideoChanged,
+                this, &MainCtx::hasEmbededVideoChanged,
                 Qt::QueuedConnection);
     emit hasEmbededVideoChanged(m_videoSurfaceProvider && m_videoSurfaceProvider->hasVideoEmbed());
 }
 
-VideoSurfaceProvider* MainInterface::getVideoSurfaceProvider() const
+VideoSurfaceProvider* MainCtx::getVideoSurfaceProvider() const
 {
     return m_videoSurfaceProvider;
 }
@@ -511,7 +511,7 @@ VideoSurfaceProvider* MainInterface::getVideoSurfaceProvider() const
  * Create a SystemTray icon and a menu that would go with it.
  * Connects to a click handler on the icon.
  **/
-void MainInterface::createSystray()
+void MainCtx::createSystray()
 {
     QIcon iconVLC;
     if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY && var_InheritBool( p_intf, "qt-icon-change" ) )
@@ -528,20 +528,20 @@ void MainInterface::createSystray()
     sysTray->show();
 
     connect( sysTray, &QSystemTrayIcon::activated,
-             this, &MainInterface::handleSystrayClick );
+             this, &MainCtx::handleSystrayClick );
 
     /* Connects on nameChanged() */
     connect( THEMIM, &PlayerController::nameChanged,
-             this, &MainInterface::updateSystrayTooltipName );
+             this, &MainCtx::updateSystrayTooltipName );
     /* Connect PLAY_STATUS on the systray */
     connect( THEMIM, &PlayerController::playingStateChanged,
-             this, &MainInterface::updateSystrayTooltipStatus );
+             this, &MainCtx::updateSystrayTooltipStatus );
 }
 
 /**
  * Updates the Systray Icon's menu and toggle the main interface
  */
-void MainInterface::toggleUpdateSystrayMenu()
+void MainCtx::toggleUpdateSystrayMenu()
 {
     emit toggleWindowVisibility();
     if( sysTray )
@@ -549,21 +549,21 @@ void MainInterface::toggleUpdateSystrayMenu()
 }
 
 /* First Item of the systray menu */
-void MainInterface::showUpdateSystrayMenu()
+void MainCtx::showUpdateSystrayMenu()
 {
     emit setInterfaceVisibible(true);
     VLCMenuBar::updateSystrayMenu( this, p_intf );
 }
 
 /* First Item of the systray menu */
-void MainInterface::hideUpdateSystrayMenu()
+void MainCtx::hideUpdateSystrayMenu()
 {
     emit setInterfaceVisibible(false);
     VLCMenuBar::updateSystrayMenu( this, p_intf );
 }
 
 /* Click on systray Icon */
-void MainInterface::handleSystrayClick(
+void MainCtx::handleSystrayClick(
                                     QSystemTrayIcon::ActivationReason reason )
 {
     switch( reason )
@@ -590,7 +590,7 @@ void MainInterface::handleSystrayClick(
  * Updates the name of the systray Icon tooltip.
  * Doesn't check if the systray exists, check before you call it.
  **/
-void MainInterface::updateSystrayTooltipName( const QString& name )
+void MainCtx::updateSystrayTooltipName( const QString& name )
 {
     if( name.isEmpty() )
     {
@@ -614,7 +614,7 @@ void MainInterface::updateSystrayTooltipName( const QString& name )
  * Updates the status of the systray Icon tooltip.
  * Doesn't check if the systray exists, check before you call it.
  **/
-void MainInterface::updateSystrayTooltipStatus( PlayerController::PlayingState )
+void MainCtx::updateSystrayTooltipStatus( PlayerController::PlayingState )
 {
     VLCMenuBar::updateSystrayMenu( this, p_intf );
 }
@@ -632,7 +632,7 @@ void MainInterface::updateSystrayTooltipStatus( PlayerController::PlayingState )
  * \param b_play whether to play the file immediately
  * \return nothing
  */
-void MainInterface::dropEventPlay( QDropEvent *event, bool b_play )
+void MainCtx::dropEventPlay( QDropEvent *event, bool b_play )
 {
     if( event->possibleActions() & ( Qt::CopyAction | Qt::MoveAction | Qt::LinkAction ) )
        event->setDropAction( Qt::CopyAction );
@@ -697,7 +697,7 @@ void MainInterface::dropEventPlay( QDropEvent *event, bool b_play )
  * Events stuff
  ************************************************************************/
 
-bool MainInterface::onWindowClose( QWindow* )
+bool MainCtx::onWindowClose( QWindow* )
 {
     PlaylistControllerModel* playlistController = p_intf->p_mainPlaylistController;
     PlayerController* playerController = p_intf->p_mainPlayerController;
@@ -724,27 +724,27 @@ bool MainInterface::onWindowClose( QWindow* )
     }
 }
 
-void MainInterface::toggleInterfaceFullScreen()
+void MainCtx::toggleInterfaceFullScreen()
 {
     emit setInterfaceFullScreen( m_windowVisibility != QWindow::FullScreen );
 }
 
-void MainInterface::emitBoss()
+void MainCtx::emitBoss()
 {
     emit askBoss();
 }
 
-void MainInterface::emitShow()
+void MainCtx::emitShow()
 {
     emit askShow();
 }
 
-void MainInterface::emitRaise()
+void MainCtx::emitRaise()
 {
     emit askRaise();
 }
 
-VLCVarChoiceModel* MainInterface::getExtraInterfaces()
+VLCVarChoiceModel* MainCtx::getExtraInterfaces()
 {
     return m_extraInterfaces;
 }
@@ -804,12 +804,12 @@ static int IntfBossCB( vlc_object_t *, const char *,
     return VLC_SUCCESS;
 }
 
-bool MainInterface::acrylicActive() const
+bool MainCtx::acrylicActive() const
 {
     return m_acrylicActive;
 }
 
-void MainInterface::setAcrylicActive(bool newAcrylicActive)
+void MainCtx::setAcrylicActive(bool newAcrylicActive)
 {
     if (m_acrylicActive == newAcrylicActive)
         return;
diff --git a/modules/gui/qt/maininterface/main_interface.hpp b/modules/gui/qt/maininterface/mainctx.hpp
similarity index 99%
rename from modules/gui/qt/maininterface/main_interface.hpp
rename to modules/gui/qt/maininterface/mainctx.hpp
index e4e262b6686da97e0c3fbee1b621dfd388d7007d..6f1449b07f526c515c990b405c98e5d8df229cdc 100644
--- a/modules/gui/qt/maininterface/main_interface.hpp
+++ b/modules/gui/qt/maininterface/mainctx.hpp
@@ -144,7 +144,7 @@ public:
 
 };
 
-class MainInterface : public QObject
+class MainCtx : public QObject
 {
     Q_OBJECT
 
@@ -178,8 +178,8 @@ class MainInterface : public QObject
 
 public:
     /* tors */
-    MainInterface(qt_intf_t *);
-    virtual ~MainInterface();
+    MainCtx(qt_intf_t *);
+    virtual ~MainCtx();
 
     static const QEvent::Type ToolbarsNeedRebuild;
     static constexpr double MIN_INTF_USER_SCALE_FACTOR = 0.3;
diff --git a/modules/gui/qt/maininterface/main_interface_win32.cpp b/modules/gui/qt/maininterface/mainctx_win32.cpp
similarity index 97%
rename from modules/gui/qt/maininterface/main_interface_win32.cpp
rename to modules/gui/qt/maininterface/mainctx_win32.cpp
index 656a2856bdda854318a6c58862fe72606a922fb8..ee948738e0340156603af09cd73fcde109df85f7 100644
--- a/modules/gui/qt/maininterface/main_interface_win32.cpp
+++ b/modules/gui/qt/maininterface/mainctx_win32.cpp
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * main_interface_win32.cpp : Main interface
+ * mainctx_win32.cpp : Main interface
  ****************************************************************************
  * Copyright (C) 2006-2010 VideoLAN and AUTHORS
  *
@@ -25,7 +25,7 @@
 # include "config.h"
 #endif
 
-#include "main_interface_win32.hpp"
+#include "mainctx_win32.hpp"
 
 #include "maininterface/compositor.hpp"
 #include "player/player_controller.hpp"
@@ -490,26 +490,26 @@ void WinTaskbarWidget::changeThumbbarButtons( PlayerController::PlayingState i_s
 
 // MainInterface
 
-MainInterfaceWin32::MainInterfaceWin32(qt_intf_t * _p_intf )
-    : MainInterface( _p_intf )
+MainCtxWin32::MainCtxWin32(qt_intf_t * _p_intf )
+    : MainCtx( _p_intf )
 {
     /* Volume keys */
     p_intf->disable_volume_keys = var_InheritBool( _p_intf, "qt-disable-volume-keys" );
 }
 
-void MainInterfaceWin32::reloadPrefs()
+void MainCtxWin32::reloadPrefs()
 {
     p_intf->disable_volume_keys = var_InheritBool( p_intf, "qt-disable-volume-keys" );
-    MainInterface::reloadPrefs();
+    MainCtx::reloadPrefs();
 }
 
 // InterfaceWindowHandlerWin32
 
-InterfaceWindowHandlerWin32::InterfaceWindowHandlerWin32(qt_intf_t *_p_intf, MainInterface* mainInterface, QWindow* window, QObject *parent)
-    : InterfaceWindowHandler(_p_intf, mainInterface, window, parent)
+InterfaceWindowHandlerWin32::InterfaceWindowHandlerWin32(qt_intf_t *_p_intf, MainCtx* mainCtx, QWindow* window, QObject *parent)
+    : InterfaceWindowHandler(_p_intf, mainCtx, window, parent)
 
 #if QT_CLIENT_SIDE_DECORATION_AVAILABLE
-    , m_CSDWindowEventHandler(new CSDWin32EventHandler(mainInterface->useClientSideDecoration(),
+    , m_CSDWindowEventHandler(new CSDWin32EventHandler(mainCtx->useClientSideDecoration(),
                                                        _p_intf->p_compositor->type() == vlc::Compositor::Win7Compositor,
                                                        window, window))
 #endif
@@ -696,6 +696,6 @@ bool InterfaceWindowHandlerWin32::nativeEventFilter(const QByteArray &eventType,
 #if QT_CLIENT_SIDE_DECORATION_AVAILABLE
 void InterfaceWindowHandlerWin32::updateCSDWindowSettings()
 {
-    static_cast<CSDWin32EventHandler *>(m_CSDWindowEventHandler)->setUseClientSideDecoration(m_mainInterface->useClientSideDecoration());
+    static_cast<CSDWin32EventHandler *>(m_CSDWindowEventHandler)->setUseClientSideDecoration(m_mainCtx->useClientSideDecoration());
 }
 #endif
diff --git a/modules/gui/qt/maininterface/main_interface_win32.hpp b/modules/gui/qt/maininterface/mainctx_win32.hpp
similarity index 90%
rename from modules/gui/qt/maininterface/main_interface_win32.hpp
rename to modules/gui/qt/maininterface/mainctx_win32.hpp
index 70bd72f45791c14f46a1b74ea91565dfb096e973..fe5171f5822d3a1b88f90bc13b557be9ff72e8ec 100644
--- a/modules/gui/qt/maininterface/main_interface_win32.hpp
+++ b/modules/gui/qt/maininterface/mainctx_win32.hpp
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * main_interface_win32.cpp : Main interface
+ * mainctx_win32.cpp : Main interface
  ****************************************************************************
  * Copyright (C) 2006-2010 VideoLAN and AUTHORS
  *
@@ -24,7 +24,7 @@
 #ifndef MAIN_INTERFACE_WIN32_HPP
 #define MAIN_INTERFACE_WIN32_HPP
 
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "interface_window_handler.hpp"
 #include <QAbstractNativeEventFilter>
 
@@ -55,12 +55,12 @@ private:
 
 
 
-class MainInterfaceWin32 : public MainInterface
+class MainCtxWin32 : public MainCtx
 {
     Q_OBJECT
 public:
-    explicit MainInterfaceWin32(qt_intf_t *);
-    virtual ~MainInterfaceWin32() = default;
+    explicit MainCtxWin32(qt_intf_t *);
+    virtual ~MainCtxWin32() = default;
 
 public slots:
     virtual void reloadPrefs() override;
@@ -70,7 +70,7 @@ class InterfaceWindowHandlerWin32 : public InterfaceWindowHandler, public QAbstr
 {
     Q_OBJECT
 public:
-    explicit InterfaceWindowHandlerWin32(qt_intf_t *_p_intf, MainInterface* mainInterface, QWindow* window, QObject *parent = nullptr);
+    explicit InterfaceWindowHandlerWin32(qt_intf_t *_p_intf, MainCtx* mainCtx, QWindow* window, QObject *parent = nullptr);
     virtual ~InterfaceWindowHandlerWin32();
     virtual void toggleWindowVisiblity() override;
 
diff --git a/modules/gui/qt/maininterface/mainui.cpp b/modules/gui/qt/maininterface/mainui.cpp
index a8eb2d5b440191f8565f4521baf20505ed60e594..81f156f061491c51a06294f1855c1b90db80d45a 100644
--- a/modules/gui/qt/maininterface/mainui.cpp
+++ b/modules/gui/qt/maininterface/mainui.cpp
@@ -77,14 +77,14 @@ void registerAnonymousType( const char *uri, int versionMajor )
 } // anonymous namespace
 
 
-MainUI::MainUI(qt_intf_t *p_intf, MainInterface *mainInterface, QWindow* interfaceWindow,  QObject *parent)
+MainUI::MainUI(qt_intf_t *p_intf, MainCtx *mainCtx, QWindow* interfaceWindow,  QObject *parent)
     : QObject(parent)
     , m_intf(p_intf)
-    , m_mainInterface(mainInterface)
+    , m_mainCtx(mainCtx)
     , m_interfaceWindow(interfaceWindow)
 {
     assert(m_intf);
-    assert(m_mainInterface);
+    assert(m_mainCtx);
     assert(m_interfaceWindow);
 
     registerQMLTypes();
@@ -111,8 +111,8 @@ bool MainUI::setup(QQmlEngine* engine)
     rootCtx->setContextProperty( "systemPalette", new SystemPalette(this));
     rootCtx->setContextProperty( "dialogModel", new DialogModel(m_intf, this));
 
-    if (m_mainInterface->hasMediaLibrary())
-        rootCtx->setContextProperty( "medialib", m_mainInterface->getMediaLibrary() );
+    if (m_mainCtx->hasMediaLibrary())
+        rootCtx->setContextProperty( "medialib", m_mainCtx->getMediaLibrary() );
     else
         rootCtx->setContextProperty( "medialib", nullptr );
 
@@ -241,7 +241,7 @@ void MainUI::registerQMLTypes()
         qmlRegisterType<RoundImage>( uri, versionMajor, versionMinor, "RoundImage" );
     }
 
-    if (m_mainInterface->hasMediaLibrary())
+    if (m_mainCtx->hasMediaLibrary())
     {
         const char* uri = "org.videolan.medialib";
         const int versionMajor = 0;
diff --git a/modules/gui/qt/maininterface/mainui.hpp b/modules/gui/qt/maininterface/mainui.hpp
index e485140105cb81378d71d18ad8c01760a286d908..713e44d137696fb52da1226e925ccfedc9d5791d 100644
--- a/modules/gui/qt/maininterface/mainui.hpp
+++ b/modules/gui/qt/maininterface/mainui.hpp
@@ -19,7 +19,7 @@ class MainUI : public QObject
     Q_OBJECT
 
 public:
-    explicit MainUI(qt_intf_t *_p_intf, MainInterface* mainInterface, QWindow* interfaceWindow, QObject *parent = nullptr);
+    explicit MainUI(qt_intf_t *_p_intf, MainCtx* mainCtx, QWindow* interfaceWindow, QObject *parent = nullptr);
     ~MainUI();
 
     bool setup(QQmlEngine* engine);
@@ -35,7 +35,7 @@ private:
     void registerQMLTypes();
 
     qt_intf_t* m_intf = nullptr;
-    MainInterface* m_mainInterface = nullptr;
+    MainCtx* m_mainInterface = nullptr;
     QWindow*       m_interfaceWindow = nullptr;
 
     QQmlComponent* m_component = nullptr;
diff --git a/modules/gui/qt/maininterface/video_window_handler.cpp b/modules/gui/qt/maininterface/video_window_handler.cpp
index 2094473ddfd82695b5814ee9251205f20c2e535c..0693173e50c60dff39c14e506a8a8b88241c7244 100644
--- a/modules/gui/qt/maininterface/video_window_handler.cpp
+++ b/modules/gui/qt/maininterface/video_window_handler.cpp
@@ -16,7 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 #include "video_window_handler.hpp"
-#include "main_interface.hpp"
+#include "mainctx.hpp"
 
 #include <QApplication>
 #include <QScreen>
diff --git a/modules/gui/qt/maininterface/video_window_handler.hpp b/modules/gui/qt/maininterface/video_window_handler.hpp
index 8865401637fa92515cec4b3f2f9dfdef55060875..547c9983d8f97bd5510aff4249ad857f11ac3bd1 100644
--- a/modules/gui/qt/maininterface/video_window_handler.hpp
+++ b/modules/gui/qt/maininterface/video_window_handler.hpp
@@ -29,7 +29,7 @@
 
 #include "qt.hpp"
 
-class MainInterface;
+class MainCtx;
 
 class VideoWindowHandler : public QObject
 {
diff --git a/modules/gui/qt/maininterface/videosurface.cpp b/modules/gui/qt/maininterface/videosurface.cpp
index 07dbd08e35d2a559f6be996dde894c2aca9406f1..2707973b73298bc61b6f094ec314460f1ecef314 100644
--- a/modules/gui/qt/maininterface/videosurface.cpp
+++ b/modules/gui/qt/maininterface/videosurface.cpp
@@ -16,7 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 #include "videosurface.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 #include "widgets/native/customwidgets.hpp" //for qtEventToVLCKey
 #include <QSGRectangleNode>
 
@@ -139,12 +139,12 @@ VideoSurface::VideoSurface(QQuickItem* parent)
     connect(this, &VideoSurface::enabledChanged, this, &VideoSurface::updatePositionAndSize);
 }
 
-MainInterface* VideoSurface::getCtx()
+MainCtx* VideoSurface::getCtx()
 {
     return m_ctx;
 }
 
-void VideoSurface::setCtx(MainInterface* ctx)
+void VideoSurface::setCtx(MainCtx* ctx)
 {
     m_ctx = ctx;
     emit ctxChanged(ctx);
diff --git a/modules/gui/qt/maininterface/videosurface.hpp b/modules/gui/qt/maininterface/videosurface.hpp
index ca43cb90fd9e6102c67679c1eaf37ab98b79eadf..b2657d950272918b98e90e61fddd67cff7d28aa1 100644
--- a/modules/gui/qt/maininterface/videosurface.hpp
+++ b/modules/gui/qt/maininterface/videosurface.hpp
@@ -24,6 +24,7 @@
 #include "qt.hpp"
 #include "vlc_vout_window.h"
 
+class MainCtx;
 class VideoSurfaceProvider : public QObject
 {
     Q_OBJECT
@@ -39,7 +40,7 @@ public:
     bool hasVideoEmbed() const;
 
 signals:
-    void ctxChanged(MainInterface*);
+    void ctxChanged(MainCtx*);
     bool videoEnabledChanged(bool);
     bool hasVideoEmbedChanged(bool);
     void surfacePositionChanged(QPointF position);
@@ -65,15 +66,15 @@ protected:
 class VideoSurface : public QQuickItem
 {
     Q_OBJECT
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
     Q_PROPERTY(QSize sourceSize READ getSourceSize NOTIFY sourceSizeChanged FINAL)
     Q_PROPERTY(Qt::CursorShape cursorShape READ getCursorShape WRITE setCursorShape RESET unsetCursor FINAL)
 
 public:
     VideoSurface( QQuickItem* parent = nullptr );
 
-    MainInterface* getCtx();
-    void setCtx(MainInterface* ctx);
+    MainCtx* getCtx();
+    void setCtx(MainCtx* ctx);
 
     QSize getSourceSize() const;
 
@@ -99,7 +100,7 @@ protected:
     virtual QSGNode* updatePaintNode(QSGNode *, QQuickItem::UpdatePaintNodeData *) override;
 
 signals:
-    void ctxChanged(MainInterface*);
+    void ctxChanged(MainCtx*);
     void sourceSizeChanged(QSize);
     void surfaceSizeChanged(QSizeF);
     void surfacePositionChanged(QPointF);
@@ -118,7 +119,7 @@ protected slots:
     void updatePositionAndSize();
 
 private:
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
 
     bool m_sourceSizeChanged = false;
     QSize m_sourceSize;
diff --git a/modules/gui/qt/medialibrary/mlfoldersmodel.cpp b/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
index 37f909dfe72001094c4c4535c0077972b32604c0..03365085bd6b5213eecb6ba05996d871d63c2b8e 100644
--- a/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
+++ b/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
@@ -35,7 +35,7 @@ MLFoldersBaseModel::EntryPoint::EntryPoint( const vlc_ml_folder_t& entryPoint)
 {
 }
 
-void MLFoldersBaseModel::setCtx(MainInterface* ctx)
+void MLFoldersBaseModel::setCtx(MainCtx* ctx)
 {
     if (ctx)
     {
diff --git a/modules/gui/qt/medialibrary/mlfoldersmodel.hpp b/modules/gui/qt/medialibrary/mlfoldersmodel.hpp
index d916071903716ace75c227d3fb19549652917b5d..23743562faeebe7d95a168f66800a427ad4ca556 100644
--- a/modules/gui/qt/medialibrary/mlfoldersmodel.hpp
+++ b/modules/gui/qt/medialibrary/mlfoldersmodel.hpp
@@ -31,13 +31,13 @@
 #include <QList>
 #include "mlhelper.hpp"
 
-#include <maininterface/main_interface.hpp>
+#include <maininterface/mainctx.hpp>
 #include <vlc_media_library.h>
 
 class MLFoldersBaseModel : public QAbstractListModel
 {
     Q_OBJECT
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
 
 public:
     enum Roles
@@ -57,8 +57,8 @@ public:
 
     MLFoldersBaseModel( QObject *parent = nullptr );
 
-    void setCtx(MainInterface* ctx);
-    inline MainInterface* getCtx() { return m_ctx; }
+    void setCtx(MainCtx* ctx);
+    inline MainCtx* getCtx() { return m_ctx; }
 
     int rowCount( QModelIndex const &parent = {} ) const  override;
     QVariant data( QModelIndex const &index , const int role = Qt::DisplayRole ) const  override;
@@ -93,7 +93,7 @@ protected:
 
     std::vector<EntryPoint> m_mrls;
     MediaLib *m_mediaLib = nullptr;
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
     EventCallbackPtr m_ml_event_handle;
 };
 
diff --git a/modules/gui/qt/menus/menus.cpp b/modules/gui/qt/menus/menus.cpp
index 7b00013a67db47497602ca47056824ac93b8efc1..c598eac727c0a0343de3f869b9027a7cf50d0858 100644
--- a/modules/gui/qt/menus/menus.cpp
+++ b/modules/gui/qt/menus/menus.cpp
@@ -37,7 +37,7 @@
 
 #include "menus.hpp"
 
-#include "maininterface/main_interface.hpp"                     /* View modifications */
+#include "maininterface/mainctx.hpp"                     /* View modifications */
 #include "dialogs/dialogs_provider.hpp"                   /* Dialogs display */
 #include "player/player_controller.hpp"                      /* Input Management */
 #include "playlist/playlist_controller.hpp"
@@ -225,7 +225,7 @@ QMenu *VLCMenuBar::FileMenu(qt_intf_t *p_intf, QMenu *menu)
     if( mi && mi->getSysTray() )
     {
         action = menu->addAction( qtr( "Close to systray"), mi,
-                                 &MainInterface::toggleUpdateSystrayMenu );
+                                 &MainCtx::toggleUpdateSystrayMenu );
     }
 
     addDPStaticEntry( menu, qtr( "&Quit" ) ,
@@ -285,7 +285,7 @@ QMenu *VLCMenuBar::ViewMenu( qt_intf_t *p_intf, QMenu *current )
     QAction *action;
     QMenu *menu;
 
-    MainInterface *mi = p_intf->p_mi;
+    MainCtx *mi = p_intf->p_mi;
     assert( mi );
 
     if( !current )
@@ -315,13 +315,13 @@ QMenu *VLCMenuBar::ViewMenu( qt_intf_t *p_intf, QMenu *current )
             qtr( "Play&list" ));
     action->setShortcut(QString( "Ctrl+L" ));
     action->setCheckable( true );
-    connect( action, &QAction::triggered, mi, &MainInterface::setPlaylistVisible );
+    connect( action, &QAction::triggered, mi, &MainCtx::setPlaylistVisible );
     action->setChecked( mi->isPlaylistVisible() );
 
     /* Docked Playlist */
     action = menu->addAction( qtr( "Docked Playlist" ) );
     action->setCheckable( true );
-    connect( action, &QAction::triggered, mi, &MainInterface::setPlaylistDocked );
+    connect( action, &QAction::triggered, mi, &MainCtx::setPlaylistDocked );
     action->setChecked( mi->isPlaylistDocked() );
 
     menu->addSeparator();
@@ -329,18 +329,18 @@ QMenu *VLCMenuBar::ViewMenu( qt_intf_t *p_intf, QMenu *current )
     action = menu->addAction( qtr( "Always on &top" ) );
     action->setCheckable( true );
     action->setChecked( mi->isInterfaceAlwaysOnTop() );
-    connect( action, &QAction::triggered, mi, &MainInterface::setInterfaceAlwaysOnTop );
+    connect( action, &QAction::triggered, mi, &MainCtx::setInterfaceAlwaysOnTop );
 
     menu->addSeparator();
 
     /* FullScreen View */
     action = menu->addAction( qtr( "&Fullscreen Interface" ), mi,
-            &MainInterface::toggleInterfaceFullScreen, QString( "F11" ) );
+            &MainCtx::toggleInterfaceFullScreen, QString( "F11" ) );
     action->setCheckable( true );
     action->setChecked( mi->isInterfaceFullScreen() );
 
     action = menu->addAction( qtr( "&View Items as Grid" ), mi,
-            &MainInterface::setGridView );
+            &MainCtx::setGridView );
     action->setCheckable( true );
     action->setChecked( mi->hasGridView() );
 
@@ -756,7 +756,7 @@ QMenu* VLCMenuBar::PopupMenu( qt_intf_t *p_intf, bool show )
     input_item_t* p_input = THEMIM->getInput();
     QAction *action;
     bool b_isFullscreen = false;
-    MainInterface *mi = p_intf->p_mi;
+    MainCtx *mi = p_intf->p_mi;
 
     PopupMenuPlaylistEntries( menu, p_intf );
     menu->addSeparator();
@@ -885,7 +885,7 @@ QMenu* VLCMenuBar::PopupMenu( qt_intf_t *p_intf, bool show )
  * Systray Menu                                                         *
  ************************************************************************/
 
-void VLCMenuBar::updateSystrayMenu( MainInterface *mi,
+void VLCMenuBar::updateSystrayMenu( MainCtx *mi,
                                   qt_intf_t *p_intf,
                                   bool b_force_visible )
 {
@@ -899,13 +899,13 @@ void VLCMenuBar::updateSystrayMenu( MainInterface *mi,
     {
         sysMenu->addAction( QIcon( ":/logo/vlc16.png" ),
                             qtr( "&Hide VLC media player in taskbar" ), mi,
-                            &MainInterface::hideUpdateSystrayMenu);
+                            &MainCtx::hideUpdateSystrayMenu);
     }
     else
     {
         sysMenu->addAction( QIcon( ":/logo/vlc16.png" ),
                             qtr( "Sho&w VLC media player" ), mi,
-                            &MainInterface::showUpdateSystrayMenu);
+                            &MainCtx::showUpdateSystrayMenu);
     }
     sysMenu->addSeparator();
 #endif
diff --git a/modules/gui/qt/menus/menus.hpp b/modules/gui/qt/menus/menus.hpp
index 640ab445f13297b4ca973319ae1918f714ddffa5..99ff7e38568ca158250b0203902e5616e572dc08 100644
--- a/modules/gui/qt/menus/menus.hpp
+++ b/modules/gui/qt/menus/menus.hpp
@@ -49,7 +49,7 @@ public:
     static QMenu* MiscPopupMenu( qt_intf_t *, bool );
 
     /* Systray */
-    static void updateSystrayMenu( MainInterface *, qt_intf_t  *,
+    static void updateSystrayMenu( MainCtx *, qt_intf_t  *,
                                    bool b_force_visible = false);
 
     /* destructor for parentless Menus (kept in static variables) */
diff --git a/modules/gui/qt/menus/qml_menu_wrapper.cpp b/modules/gui/qt/menus/qml_menu_wrapper.cpp
index 280c60375b03f58337c7c78da360538f94f2a36f..06c34952c74ac894f3f219c3449f8a871e5f6685 100644
--- a/modules/gui/qt/menus/qml_menu_wrapper.cpp
+++ b/modules/gui/qt/menus/qml_menu_wrapper.cpp
@@ -32,7 +32,7 @@
 #include "playlist/playlist_controller.hpp"
 #include "playlist/playlist_model.hpp"
 #include "dialogs/dialogs_provider.hpp"
-#include "maininterface/main_interface.hpp"
+#include "maininterface/mainctx.hpp"
 
 
 #include <QSignalMapper>
diff --git a/modules/gui/qt/menus/qml_menu_wrapper.hpp b/modules/gui/qt/menus/qml_menu_wrapper.hpp
index 85d1daf98b8e7673db682224a5808860c1a01c7e..e8df7297d6d53994314717da6a09c5698b4d3236 100644
--- a/modules/gui/qt/menus/qml_menu_wrapper.hpp
+++ b/modules/gui/qt/menus/qml_menu_wrapper.hpp
@@ -38,7 +38,7 @@ class MLPlaylistListModel;
 class MLPlaylistModel;
 class NetworkDeviceModel;
 class NetworkMediaModel;
-class MainInterface;
+class MainCtx;
 namespace vlc {
 namespace playlist {
 class PlaylistControllerModel;
@@ -94,7 +94,7 @@ private:
 class QmlGlobalMenu : public VLCMenuBar
 {
     Q_OBJECT
-    SIMPLE_MENU_PROPERTY(MainInterface*, ctx, nullptr)
+    SIMPLE_MENU_PROPERTY(MainCtx*, ctx, nullptr)
 public:
     explicit QmlGlobalMenu(QObject *parent = nullptr);
     ~QmlGlobalMenu();
@@ -114,7 +114,7 @@ class QmlMenuBarMenu;
 class QmlMenuBar : public VLCMenuBar
 {
     Q_OBJECT
-    SIMPLE_MENU_PROPERTY(MainInterface*, ctx, nullptr)
+    SIMPLE_MENU_PROPERTY(MainCtx*, ctx, nullptr)
     SIMPLE_MENU_PROPERTY(QQuickItem*, menubar, nullptr)
     SIMPLE_MENU_PROPERTY(bool, openMenuOnHover, false)
 
diff --git a/modules/gui/qt/network/networkdevicemodel.cpp b/modules/gui/qt/network/networkdevicemodel.cpp
index 9bb1221c004f61c9e996e1851fb83ed0b9edc52f..836f23342fc29bc1c482191fdf77f357ef6d4143 100644
--- a/modules/gui/qt/network/networkdevicemodel.cpp
+++ b/modules/gui/qt/network/networkdevicemodel.cpp
@@ -21,6 +21,7 @@
 #include "playlist/media.hpp"
 #include "playlist/playlist_controller.hpp"
 #include "util/qmlinputitem.hpp"
+#include <maininterface/mainctx.hpp>
 
 NetworkDeviceModel::NetworkDeviceModel( QObject* parent )
     : QAbstractListModel( parent )
@@ -78,7 +79,7 @@ int NetworkDeviceModel::rowCount(const QModelIndex& parent) const
 }
 
 
-void NetworkDeviceModel::setCtx(MainInterface* ctx)
+void NetworkDeviceModel::setCtx(MainCtx* ctx)
 {
     if (ctx) {
         m_ctx = ctx;
diff --git a/modules/gui/qt/network/networkdevicemodel.hpp b/modules/gui/qt/network/networkdevicemodel.hpp
index f3502c89c632105e7be1f07372bc33b7eee77174..8e08fc310ae61d2cbe410fad1f2989f558c014d1 100644
--- a/modules/gui/qt/network/networkdevicemodel.hpp
+++ b/modules/gui/qt/network/networkdevicemodel.hpp
@@ -24,17 +24,18 @@
 #endif
 
 #include <QAbstractListModel>
+#include <QUrl>
 
 #include <vlc_media_library.h>
 #include <vlc_media_source.h>
 #include <vlc_threads.h>
 #include <vlc_cxx_helpers.hpp>
 
-#include <maininterface/main_interface.hpp>
 #include "networksourcelistener.hpp"
 
 #include <memory>
 
+class MainCtx;
 class NetworkDeviceModel : public QAbstractListModel, public NetworkSourceListener::SourceListenerCb
 {
     Q_OBJECT
@@ -74,7 +75,7 @@ public:
     Q_ENUM( SDCatType )
 
 
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
     Q_PROPERTY(SDCatType sd_source READ getSdSource WRITE setSdSource NOTIFY sdSourceChanged FINAL)
     Q_PROPERTY(QString name READ getName NOTIFY nameChanged FINAL)
     Q_PROPERTY(QString source_name READ getSourceName WRITE setSourceName NOTIFY sourceNameChanged FINAL)
@@ -87,11 +88,11 @@ public:
     QHash<int, QByteArray> roleNames() const override;
     int rowCount(const QModelIndex& parent = {}) const override;
 
-    void setCtx(MainInterface* ctx);
+    void setCtx(MainCtx* ctx);
     void setSdSource(SDCatType s);
     void setSourceName(const QString& sourceName);
 
-    inline MainInterface* getCtx() { return m_ctx; }
+    inline MainCtx* getCtx() { return m_ctx; }
     inline SDCatType getSdSource() { return m_sdSource; }
     inline QString getName() { return m_name; }
     inline QString getSourceName() { return m_sourceName; }
@@ -147,7 +148,7 @@ private:
 
 private:
     std::vector<Item> m_items;
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
     SDCatType m_sdSource = CAT_UNDEFINED;
     QString m_sourceName; // '*' -> all sources
     QString m_name; // source long name
diff --git a/modules/gui/qt/network/networkmediamodel.cpp b/modules/gui/qt/network/networkmediamodel.cpp
index ef9c18dccece4b5a7ae4541a3c0e96c49ac8549f..c1ead51ce0897bc1ac2b9349f82c5c8dbac0b50f 100644
--- a/modules/gui/qt/network/networkmediamodel.cpp
+++ b/modules/gui/qt/network/networkmediamodel.cpp
@@ -156,7 +156,7 @@ void NetworkMediaModel::setIndexed(bool indexed)
     }
 }
 
-void NetworkMediaModel::setCtx(MainInterface* ctx)
+void NetworkMediaModel::setCtx(MainCtx* ctx)
 {
     if (ctx) {
         m_ctx = ctx;
diff --git a/modules/gui/qt/network/networkmediamodel.hpp b/modules/gui/qt/network/networkmediamodel.hpp
index f1a8d4cdd2e37bd0cb3ce566d43b78a329f4dd9d..529ef0692f5d8aee7636dbf1b188343adf07dd31 100644
--- a/modules/gui/qt/network/networkmediamodel.hpp
+++ b/modules/gui/qt/network/networkmediamodel.hpp
@@ -31,7 +31,7 @@
 #include <vlc_cxx_helpers.hpp>
 
 #include "networksourcelistener.hpp"
-#include <maininterface/main_interface.hpp>
+#include <maininterface/mainctx.hpp>
 
 #include <QSemaphore>
 
@@ -131,7 +131,7 @@ public:
     };
     Q_ENUM( ItemType )
 
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged)
     Q_PROPERTY(QVariant tree READ getTree WRITE setTree NOTIFY treeChanged)
     Q_PROPERTY(QVariantList path READ getPath NOTIFY pathChanged)
 
@@ -154,10 +154,10 @@ public:
     bool setData( const QModelIndex& idx,const QVariant& value, int role ) override;
 
     void setIndexed(bool indexed);
-    void setCtx(MainInterface* ctx);
+    void setCtx(MainCtx* ctx);
     void setTree(QVariant tree);
 
-    inline MainInterface* getCtx() const { return m_ctx; }
+    inline MainCtx* getCtx() const { return m_ctx; }
     inline QVariant getTree() const { return QVariant::fromValue( m_treeItem); }
     inline QVariantList getPath() const { return m_path; }
 
@@ -233,7 +233,7 @@ private:
     QSemaphore m_preparseSem;
 
     std::vector<Item> m_items;
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
     MediaLib* m_mediaLib;
     bool m_hasTree = false;
     NetworkTreeItem m_treeItem;
diff --git a/modules/gui/qt/network/networksourcesmodel.cpp b/modules/gui/qt/network/networksourcesmodel.cpp
index e81c35995931187abab9aab3f8ed9536237b954f..73172b55c10a88c8fdbcc91aa123e04450f522a4 100644
--- a/modules/gui/qt/network/networksourcesmodel.cpp
+++ b/modules/gui/qt/network/networksourcesmodel.cpp
@@ -69,7 +69,7 @@ int NetworkSourcesModel::rowCount(const QModelIndex& parent) const
 }
 
 
-void NetworkSourcesModel::setCtx(MainInterface* ctx)
+void NetworkSourcesModel::setCtx(MainCtx* ctx)
 {
     if (ctx) {
         m_ctx = ctx;
diff --git a/modules/gui/qt/network/networksourcesmodel.hpp b/modules/gui/qt/network/networksourcesmodel.hpp
index 22a49ed9828a41f73c0dc8352784ef925b10c05b..1ebd36865142b34a66768cb19a649b60f588e93a 100644
--- a/modules/gui/qt/network/networksourcesmodel.hpp
+++ b/modules/gui/qt/network/networksourcesmodel.hpp
@@ -30,7 +30,7 @@
 #include <vlc_threads.h>
 #include <vlc_cxx_helpers.hpp>
 
-#include <maininterface/main_interface.hpp>
+#include <maininterface/mainctx.hpp>
 #include "networksourcelistener.hpp"
 
 #include <memory>
@@ -39,7 +39,7 @@ class NetworkSourcesModel : public QAbstractListModel
 {
     Q_OBJECT
 
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
     Q_PROPERTY(int count READ getCount NOTIFY countChanged FINAL)
 
 public:
@@ -63,9 +63,9 @@ public:
     QHash<int, QByteArray> roleNames() const override;
     int rowCount(const QModelIndex& parent = {}) const override;
 
-    void setCtx(MainInterface* ctx);
+    void setCtx(MainCtx* ctx);
 
-    inline MainInterface* getCtx() { return m_ctx; }
+    inline MainCtx* getCtx() { return m_ctx; }
 
     int getCount() const;
 
@@ -87,7 +87,7 @@ private:
 
 private:
     std::vector<Item> m_items;
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
     vlc_medialibrary_t* m_ml = nullptr;
     services_discovery_category_e m_sdSource = services_discovery_category_e::SD_CAT_INTERNET;
 };
diff --git a/modules/gui/qt/network/servicesdiscoverymodel.cpp b/modules/gui/qt/network/servicesdiscoverymodel.cpp
index 97077d2c65d6304396580d9f16fcb1150e1bfc30..0eb54fc07e9e11c542c1640860807237f60b6b62 100644
--- a/modules/gui/qt/network/servicesdiscoverymodel.cpp
+++ b/modules/gui/qt/network/servicesdiscoverymodel.cpp
@@ -127,7 +127,7 @@ int ServicesDiscoveryModel::getCount() const
     return static_cast<int>( m_items.size() );
 }
 
-void ServicesDiscoveryModel::setCtx(MainInterface* ctx)
+void ServicesDiscoveryModel::setCtx(MainCtx* ctx)
 {
     if (ctx) {
         m_ctx = ctx;
diff --git a/modules/gui/qt/network/servicesdiscoverymodel.hpp b/modules/gui/qt/network/servicesdiscoverymodel.hpp
index c6a00f99d140ac04e8221def674ebe262a7f01ec..1909f8f00447fe2acb9e8c9b4864a5d14502c6c9 100644
--- a/modules/gui/qt/network/servicesdiscoverymodel.hpp
+++ b/modules/gui/qt/network/servicesdiscoverymodel.hpp
@@ -31,7 +31,7 @@
 #include <vlc_addons.h>
 #include <vlc_cxx_helpers.hpp>
 
-#include <maininterface/main_interface.hpp>
+#include <maininterface/mainctx.hpp>
 
 #include <memory>
 
@@ -41,7 +41,7 @@ class ServicesDiscoveryModel : public QAbstractListModel
 
 public:
 
-    Q_PROPERTY(MainInterface* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
+    Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged FINAL)
     Q_PROPERTY(bool parsingPending READ getParsingPending NOTIFY parsingPendingChanged FINAL)
     Q_PROPERTY(int count READ getCount NOTIFY countChanged FINAL)
 
@@ -73,9 +73,9 @@ public:
     QHash<int, QByteArray> roleNames() const override;
     int rowCount(const QModelIndex& parent = {}) const override;
 
-    void setCtx(MainInterface* ctx);
+    void setCtx(MainCtx* ctx);
 
-    inline MainInterface* getCtx() const { return m_ctx; }
+    inline MainCtx* getCtx() const { return m_ctx; }
     inline bool getParsingPending() const { return m_parsingPending; }
     int getCount() const;
 
@@ -116,7 +116,7 @@ private:
     };
 
     std::vector<Item> m_items;
-    MainInterface* m_ctx = nullptr;
+    MainCtx* m_ctx = nullptr;
     addons_manager_t* m_manager = nullptr;
     bool m_parsingPending = false;
 };
diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
index c56dde8f94813e32919a8e1e36e33af6635390c7..1bcb2991bb2616e23ed54eaeaf3d2a5035f63df4 100644
--- a/modules/gui/qt/qt.cpp
+++ b/modules/gui/qt/qt.cpp
@@ -51,9 +51,9 @@ extern "C" char **environ;
 #include "playlist/playlist_controller.hpp" /* THEMPL creation */
 #include "dialogs/dialogs_provider.hpp" /* THEDP creation */
 #ifdef _WIN32
-# include "maininterface/main_interface_win32.hpp"
+# include "maininterface/mainctx_win32.hpp"
 #else
-# include "maininterface/main_interface.hpp"   /* MainInterface creation */
+# include "maininterface/mainctx.hpp"   /* MainCtx creation */
 #endif
 #include "dialogs/extensions/extensions_manager.hpp" /* Extensions manager */
 #include "dialogs/plugins/addons_manager.hpp" /* Addons manager */
@@ -253,8 +253,8 @@ static const char *const psz_notification_list_text[] =
     { N_("Never"), N_("When minimized"), N_("Always") };
 
 static const int i_raise_list[] =
-    { MainInterface::RAISE_NEVER, MainInterface::RAISE_VIDEO, \
-      MainInterface::RAISE_AUDIO, MainInterface::RAISE_AUDIOVIDEO,  };
+    { MainCtx::RAISE_NEVER, MainCtx::RAISE_VIDEO, \
+      MainCtx::RAISE_AUDIO, MainCtx::RAISE_AUDIOVIDEO,  };
 
 static const char *const psz_raise_list_text[] =
     { N_( "Never" ), N_( "Video" ), N_( "Audio" ), _( "Audio/Video" ) };
@@ -402,7 +402,7 @@ vlc_module_begin ()
     add_integer_with_range( "qt-fs-sensitivity", 3, 0, 4000, FULLSCREEN_CONTROL_PIXELS,
             nullptr)
 
-    add_integer( "qt-auto-raise", MainInterface::RAISE_VIDEO, AUTORAISE_ON_PLAYBACK_TEXT,
+    add_integer( "qt-auto-raise", MainCtx::RAISE_VIDEO, AUTORAISE_ON_PLAYBACK_TEXT,
                  AUTORAISE_ON_PLAYBACK_LONGTEXT )
             change_integer_list( i_raise_list, psz_raise_list_text )
 
@@ -764,9 +764,9 @@ static void *Thread( void *obj )
 
     /* Create the normal interface in non-DP mode */
 #ifdef _WIN32
-    p_intf->p_mi = new MainInterfaceWin32(p_intf);
+    p_intf->p_mi = new MainCtxWin32(p_intf);
 #else
-    p_intf->p_mi = new MainInterface(p_intf);
+    p_intf->p_mi = new MainCtx(p_intf);
 #endif
 
     if( !p_intf->b_isDialogProvider )
diff --git a/modules/gui/qt/qt.hpp b/modules/gui/qt/qt.hpp
index 88990c24ddc2dcb8db463146cc657a995ca011f0..b6e3951533ea47be8b3db76284e5bda969f53a4e 100644
--- a/modules/gui/qt/qt.hpp
+++ b/modules/gui/qt/qt.hpp
@@ -90,7 +90,7 @@ struct qt_intf_t
     vlc_thread_t thread;
 
     class QVLCApp *p_app;          /* Main Qt Application */
-    class MainInterface *p_mi;     /* Main Interface, NULL if DialogProvider Mode */
+    class MainCtx *p_mi;     /* Main Interface, NULL if DialogProvider Mode */
     class QSettings *mainSettings; /* Qt State settings not messing main VLC ones */
 
     unsigned voutWindowType; /* Type of vout_window_t provided */
diff --git a/modules/gui/qt/widgets/native/interface_widgets.hpp b/modules/gui/qt/widgets/native/interface_widgets.hpp
index a4a30afa578197759058b8c729585a4cea2539a0..f8b5a0dd97fa87021c3c1b0edae40d243fb28699 100644
--- a/modules/gui/qt/widgets/native/interface_widgets.hpp
+++ b/modules/gui/qt/widgets/native/interface_widgets.hpp
@@ -29,7 +29,7 @@
 # include "config.h"
 #endif
 
-#include "maininterface/main_interface.hpp" /* Interface integration */
+#include "maininterface/mainctx.hpp" /* Interface integration */
 #include "player/player_controller.hpp"  /* Speed control */
 
 #include "dialogs/dialogs_provider.hpp"
diff --git a/po/POTFILES.in b/po/POTFILES.in
index cd5eb89c58409e302740ad74718909f1c5a24939..35303343661424b3754c3acd1b1e4c79a02c81d7 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -763,10 +763,10 @@ modules/gui/qt/dialogs/playlists/playlists.cpp
 modules/gui/qt/dialogs/playlists/playlists.hpp
 modules/gui/qt/dialogs/toolbar/controlbar_profile_model.cpp
 modules/gui/qt/dialogs/toolbar/controlbar_profile_model.hpp
-modules/gui/qt/maininterface/main_interface.cpp
-modules/gui/qt/maininterface/main_interface.hpp
-modules/gui/qt/maininterface/main_interface_win32.cpp
-modules/gui/qt/maininterface/main_interface_win32.hpp
+modules/gui/qt/maininterface/mainctx.cpp
+modules/gui/qt/maininterface/mainctx.hpp
+modules/gui/qt/maininterface/mainctx_win32.cpp
+modules/gui/qt/maininterface/mainctx_win32.hpp
 modules/gui/qt/dialogs/plugins/addons_manager.cpp
 modules/gui/qt/dialogs/plugins/addons_manager.hpp
 modules/gui/qt/medialibrary/mlbookmarkmodel.cpp