Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions linux/Main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,18 @@ ApplicationWindow {
onCheckedChanged: airPodsTrayApp.autoStartManager.autoStartEnabled = checked
}

Switch {
text: qsTr("Start Hidden (Tray Only)")
checked: airPodsTrayApp.startHidden
onCheckedChanged: airPodsTrayApp.startHidden = checked

ToolTip {
visible: parent.hovered
text: qsTr("Launch without showing the main window.\nOpen it from the tray icon instead.\nUseful for tiling window managers.")
delay: 500
}
}

Switch {
text: qsTr("Enable System Notifications")
checked: airPodsTrayApp.notificationsEnabled
Expand Down
16 changes: 16 additions & 0 deletions linux/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class AirPodsTrayApp : public QObject {
Q_PROPERTY(bool notificationsEnabled READ notificationsEnabled WRITE setNotificationsEnabled NOTIFY notificationsEnabledChanged)
Q_PROPERTY(int retryAttempts READ retryAttempts WRITE setRetryAttempts NOTIFY retryAttemptsChanged)
Q_PROPERTY(bool hideOnStart READ hideOnStart CONSTANT)
Q_PROPERTY(bool startHidden READ startHidden WRITE setStartHidden NOTIFY startHiddenChanged)
Q_PROPERTY(DeviceInfo *deviceInfo READ deviceInfo CONSTANT)
Q_PROPERTY(QString phoneMacStatus READ phoneMacStatus NOTIFY phoneMacStatusChanged)
Q_PROPERTY(bool hearingAidEnabled READ hearingAidEnabled WRITE setHearingAidEnabled NOTIFY hearingAidEnabledChanged)
Expand Down Expand Up @@ -134,6 +135,12 @@ class AirPodsTrayApp : public QObject {
void setNotificationsEnabled(bool enabled) { trayManager->setNotificationsEnabled(enabled); }
int retryAttempts() const { return m_retryAttempts; }
bool hideOnStart() const { return m_hideOnStart; }
bool startHidden() const { return loadStartHidden(); }
void setStartHidden(bool enabled)
{
saveStartHidden(enabled);
emit startHiddenChanged(enabled);
}
DeviceInfo *deviceInfo() const { return m_deviceInfo; }
QString phoneMacStatus() const { return m_phoneMacStatus; }
bool hearingAidEnabled() const { return m_deviceInfo->hearingAidEnabled(); }
Expand Down Expand Up @@ -407,6 +414,9 @@ public slots:
bool loadNotificationsEnabled() const { return m_settings->value("notifications/enabled", true).toBool(); }
void saveNotificationsEnabled(bool enabled) { m_settings->setValue("notifications/enabled", enabled); }

bool loadStartHidden() const { return m_settings->value("window/startHidden", false).toBool(); }
void saveStartHidden(bool enabled) { m_settings->setValue("window/startHidden", enabled); }

int loadRetryAttempts() const { return m_settings->value("bluetooth/retryAttempts", 3).toInt(); }
void saveRetryAttempts(int attempts) { m_settings->setValue("bluetooth/retryAttempts", attempts); }

Expand Down Expand Up @@ -965,6 +975,7 @@ private slots:
void earDetectionBehaviorChanged(int behavior);
void crossDeviceEnabledChanged(bool enabled);
void notificationsEnabledChanged(bool enabled);
void startHiddenChanged(bool enabled);
void retryAttemptsChanged(int attempts);
void oneBudANCModeChanged(bool enabled);
void phoneMacStatusChanged();
Expand Down Expand Up @@ -1042,6 +1053,11 @@ int main(int argc, char *argv[]) {
hideOnStart = true;
}

{
QSettings settings("AirPodsTrayApp", "AirPodsTrayApp");
hideOnStart = hideOnStart || settings.value("window/startHidden", false).toBool();
}

QQmlApplicationEngine engine;
qmlRegisterType<Battery>("me.kavishdevar.Battery", 1, 0, "Battery");
qmlRegisterType<DeviceInfo>("me.kavishdevar.DeviceInfo", 1, 0, "DeviceInfo");
Expand Down