diff --git a/AppImage-Recipe.sh b/AppImage-Recipe.sh index 342dd084..96e7b409 100755 --- a/AppImage-Recipe.sh +++ b/AppImage-Recipe.sh @@ -88,6 +88,11 @@ unset XDG_DATA_DIRS if [ "\${1}" == "cli" ]; then shift exec keepassxc-cli "\$@" +elif [ "\${1}" == "proxy" ]; then + shift + exec keepassxc-proxy "\$@" +elif [ -v CHROME_WRAPPER ] || [ -v MOZ_LAUNCHED_CHILD ]; then + exec keepassxc-proxy "\$@" else exec keepassxc "\$@" fi diff --git a/src/browser/BrowserOptionDialog.cpp b/src/browser/BrowserOptionDialog.cpp index f6d634a8..39b514fd 100755 --- a/src/browser/BrowserOptionDialog.cpp +++ b/src/browser/BrowserOptionDialog.cpp @@ -19,6 +19,7 @@ #include "BrowserOptionDialog.h" #include "ui_BrowserOptionDialog.h" +#include "config-keepassx.h" #include "BrowserSettings.h" #include "core/FilePath.h" @@ -45,6 +46,11 @@ BrowserOptionDialog::BrowserOptionDialog(QWidget* parent) : connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocation, SLOT(setEnabled(bool))); connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocationBrowseButton, SLOT(setEnabled(bool))); connect(m_ui->customProxyLocationBrowseButton, SIGNAL(clicked()), this, SLOT(showProxyLocationFileDialog())); + +#ifdef KEEPASSXC_DIST_APPIMAGE + m_ui->supportBrowserProxy->setChecked(true); + m_ui->supportBrowserProxy->setEnabled(false); +#endif } BrowserOptionDialog::~BrowserOptionDialog() diff --git a/src/browser/HostInstaller.cpp b/src/browser/HostInstaller.cpp index 9271da69..9b27ab1c 100644 --- a/src/browser/HostInstaller.cpp +++ b/src/browser/HostInstaller.cpp @@ -17,12 +17,14 @@ */ #include "HostInstaller.h" +#include "config-keepassx.h" #include #include #include #include #include #include +#include #include const QString HostInstaller::HOST_NAME = "org.keepassxc.keepassxc_browser"; @@ -161,6 +163,13 @@ QString HostInstaller::getInstallDir(SupportedBrowsers browser) const QJsonObject HostInstaller::constructFile(SupportedBrowsers browser, const bool& proxy, const QString& location) { QString path; +#ifdef KEEPASSXC_DIST_APPIMAGE + if (proxy && !location.isEmpty()) { + path = location; + } else { + path = QProcessEnvironment::systemEnvironment().value("APPIMAGE"); + } +#else if (proxy) { if (!location.isEmpty()) { path = location; @@ -178,6 +187,8 @@ QJsonObject HostInstaller::constructFile(SupportedBrowsers browser, const bool& path.replace("/","\\"); #endif +#endif // #ifdef KEEPASSXC_DIST_APPIMAGE + QJsonObject script; script["name"] = HostInstaller::HOST_NAME; script["description"] = "KeePassXC integration with native messaging support";