From 46cf66c482b7d0e08584a6e42c26ec5bdd2695cf Mon Sep 17 00:00:00 2001 From: Ali Molaei Date: Sat, 25 Feb 2023 11:08:05 +0900 Subject: [PATCH] Make linux auto-run desktop file respect -appdata (#393) --------- Co-authored-by: arm64v8a <48624112+arm64v8a@users.noreply.github.com> --- sys/AutoRun.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/sys/AutoRun.cpp b/sys/AutoRun.cpp index d17b5e6..689e9e3 100644 --- a/sys/AutoRun.cpp +++ b/sys/AutoRun.cpp @@ -3,6 +3,8 @@ #include #include +#include "main/NekoRay.hpp" + // macOS headers (possibly OBJ-c) #if defined(Q_OS_MACOS) #include @@ -21,8 +23,8 @@ QString Windows_GenAutoRunString() { } void AutoRun_SetEnabled(bool enable) { - //以程序名称作为注册表中的键 - //根据键获取对应的值(程序路径) + // 以程序名称作为注册表中的键 + // 根据键获取对应的值(程序路径) auto appPath = QApplication::applicationFilePath(); QFileInfo fInfo(appPath); QString name = fInfo.baseName(); @@ -39,8 +41,8 @@ void AutoRun_SetEnabled(bool enable) { bool AutoRun_IsEnabled() { QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); - //以程序名称作为注册表中的键 - //根据键获取对应的值(程序路径) + // 以程序名称作为注册表中的键 + // 根据键获取对应的值(程序路径) auto appPath = QApplication::applicationFilePath(); QFileInfo fInfo(appPath); QString name = fInfo.baseName(); @@ -164,11 +166,20 @@ void AutoRun_SetEnabled(bool enable) { QString appName = QCoreApplication::applicationName(); QString userAutoStartPath = getUserAutostartDir_private(); QString desktopFileLocation = userAutoStartPath + appName + QLatin1String(".desktop"); - QStringList appCmdList = {QApplication::applicationFilePath(), "-tray"}; + QStringList appCmdList; // nekoray: launcher if (qEnvironmentVariable("NKR_FROM_LAUNCHER") == "1") { - appCmdList = QStringList{QApplication::applicationDirPath() + "/launcher", "--", "-tray"}; + appCmdList << QApplication::applicationDirPath() + "/launcher" + << "--"; + } else { + appCmdList << QApplication::applicationFilePath(); + } + + appCmdList << "-tray"; + + if (NekoRay::dataStore->flag_use_appdata) { + appCmdList << "-appdata"; } if (enable) {