From 0b4030dd9f7fb49c89de32cb8d2cc8e1752858ec Mon Sep 17 00:00:00 2001 From: "E. S" Date: Sun, 4 May 2025 01:18:17 +0300 Subject: [PATCH 1/2] linux: Use Qt 6.4 to support Debian 12 --- linux/CMakeLists.txt | 4 ++-- linux/ble/CMakeLists.txt | 4 ++-- linux/main.cpp | 14 +++++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 4d277d4..50363a6 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -4,9 +4,9 @@ project(linux VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(Qt6 6.5 REQUIRED COMPONENTS Quick Widgets Bluetooth DBus) +find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Widgets Bluetooth DBus) -qt_standard_project_setup(REQUIRES 6.5) +qt_standard_project_setup(REQUIRES 6.4) qt_add_executable(applinux main.cpp diff --git a/linux/ble/CMakeLists.txt b/linux/ble/CMakeLists.txt index 71f1998..43964b4 100644 --- a/linux/ble/CMakeLists.txt +++ b/linux/ble/CMakeLists.txt @@ -8,7 +8,7 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package(Qt6 6.5 REQUIRED COMPONENTS Core Bluetooth Widgets) +find_package(Qt6 6.4 REQUIRED COMPONENTS Core Bluetooth Widgets) qt_add_executable(ble_monitor main.cpp @@ -26,4 +26,4 @@ install(TARGETS ble_monitor BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) \ No newline at end of file +) diff --git a/linux/main.cpp b/linux/main.cpp index 280d5d3..92fb39f 100644 --- a/linux/main.cpp +++ b/linux/main.cpp @@ -367,7 +367,7 @@ private slots: } else { - parent->loadFromModule("linux", "Main"); + loadMainModule(); } } @@ -379,7 +379,7 @@ private slots: } else { - parent->loadFromModule("linux", "Main"); + loadMainModule(); } } @@ -908,6 +908,10 @@ private slots: connectToPhone(); } + void loadMainModule() { + parent->load(QUrl(QStringLiteral("qrc:/linux/Main.qml"))); + } + signals: void noiseControlModeChanged(NoiseControlMode mode); void earDetectionStatusChanged(const QString &status); @@ -995,7 +999,7 @@ int main(int argc, char *argv[]) { qmlRegisterType("me.kavishdevar.Battery", 1, 0, "Battery"); AirPodsTrayApp *trayApp = new AirPodsTrayApp(debugMode, hideOnStart, &engine); engine.rootContext()->setContextProperty("airPodsTrayApp", trayApp); - engine.loadFromModule("linux", "Main"); + trayApp->loadMainModule(); QLocalServer server; QLocalServer::removeServer("app_server"); @@ -1012,7 +1016,7 @@ int main(int argc, char *argv[]) { QObject::connect(&server, &QLocalServer::newConnection, [&]() { QLocalSocket* socket = server.nextPendingConnection(); // Handles Proper Connection - QObject::connect(socket, &QLocalSocket::readyRead, [socket, &engine]() { + QObject::connect(socket, &QLocalSocket::readyRead, [socket, &engine, &trayApp]() { QString msg = socket->readAll(); // Check if the message is "reopen", if so, trigger onOpenApp function if (msg == "reopen") { @@ -1023,7 +1027,7 @@ int main(int argc, char *argv[]) { } else { - engine.loadFromModule("linux", "Main"); + trayApp->loadMainModule(); } } else From 7f7b4397461b6619893c28b1ca24725d9f7b0f87 Mon Sep 17 00:00:00 2001 From: "E. S" Date: Sun, 4 May 2025 01:20:06 +0300 Subject: [PATCH 2/2] linux: Add Debian requirements to the README --- linux/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/linux/README.md b/linux/README.md index b40c796..f0e30db 100644 --- a/linux/README.md +++ b/linux/README.md @@ -14,7 +14,13 @@ A native Linux application to control your AirPods, with support for: 2. Qt6 packages ```bash - sudo pacman -S qt6-base qt6-connectivity qt6-multimedia-ffmpeg qt6-multimedia # Arch Linux / EndeavourOS + # For Arch Linux / EndeavourOS + sudo pacman -S qt6-base qt6-connectivity qt6-multimedia-ffmpeg qt6-multimedia + + # For Debian + sudo apt-get install qt6-base-dev qt6-declarative-dev qt6-connectivity-dev qt6-multimedia-dev \ + qml6-module-qtquick-controls qml6-module-qtqml-workerscript qml6-module-qtquick-templates \ + qml6-module-qtquick-window qml6-module-qtquick-layouts ``` ## Setup