Skip to content

Commit

Permalink
FEAT(client): Add --hidden cli option to start Mumble hidden in tray
Browse files Browse the repository at this point in the history
This commit introduces the "--hidden" cli option which prevents
Mumble and the ConnectDialog to show up on startup.
This is especially useful for users who want to automate the
startup process without human interaction.

Fixes mumble-voip#3879
  • Loading branch information
Hartmnt committed Jan 2, 2025
1 parent 5f92420 commit 8941467
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/mumble/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ int main(int argc, char **argv) {
bool customJackClientName = false;
bool bRpcMode = false;
bool printTranslationDirs = false;
bool startHiddenInTray = false;
QString rpcCommand;
QUrl url;
QDir qdCert(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
Expand Down Expand Up @@ -277,7 +278,9 @@ int main(int argc, char **argv) {
" locale that corresponds to the given locale string.\n"
" If the format is invalid, Mumble will error.\n"
" Otherwise the locale will be permanently saved to\n"
" Mumble's settings."
" Mumble's settings.\n"
" --hidden\n"
" Start Mumble hidden in the system tray."
"\n");
QString rpcHelpBanner = MainWindow::tr("Remote controlling Mumble:\n"
"\n");
Expand Down Expand Up @@ -404,6 +407,14 @@ int main(int argc, char **argv) {
qCritical("Missing argument for --locale!");
return 1;
}
} else if (args.at(i) == "--hidden") {
#ifndef Q_OS_MAC
startHiddenInTray = true;
qInfo("Starting hidden in system tray");
#else
// When Qt addresses hide() on macOS to use native hiding, this can be fixed.
qWarning("Can not start Mumble hidden in system tray on macOS");
#endif
} else if (args.at(i) == "--version") {
// Print version and exit (print to regular std::cout to avoid adding any useless meta-information from
// using e.g. qWarning
Expand Down Expand Up @@ -674,7 +685,9 @@ int main(int argc, char **argv) {

// Main Window
Global::get().mw = new MainWindow(nullptr);
Global::get().mw->show();
if (!startHiddenInTray) {
Global::get().mw->showRaiseWindow();
}

Global::get().talkingUI = new TalkingUI();

Expand Down Expand Up @@ -789,7 +802,7 @@ int main(int argc, char **argv) {
OpenURLEvent *oue = new OpenURLEvent(a.quLaunchURL);
qApp->postEvent(Global::get().mw, oue);
#endif
} else {
} else if (!startHiddenInTray || Global::get().s.bAutoConnect) {
Global::get().mw->on_qaServerConnect_triggered(true);
}

Expand Down

0 comments on commit 8941467

Please sign in to comment.