diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS KIO I18n + CoreAddons Config Crash DBusAddons diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt --- a/host/CMakeLists.txt +++ b/host/CMakeLists.txt @@ -28,6 +28,7 @@ Qt5::Gui Qt5::Widgets KF5::Activities + KF5::CoreAddons KF5::Crash KF5::I18n KF5::KIOCore diff --git a/host/settings.cpp b/host/settings.cpp --- a/host/settings.cpp +++ b/host/settings.cpp @@ -23,10 +23,14 @@ #include "settings.h" +#include // getppid + #include #include #include +#include + #include "pluginmanager.h" #include "settingsadaptor.h" @@ -127,6 +131,16 @@ QProcess::startDetached(QStringLiteral("kcmshell5"), {QStringLiteral("kcm_plasmasearch")}); } else if (event == QLatin1String("setEnvironment")) { QString name = data[QStringLiteral("browserName")].toString(); + + // Most chromium-based browsers just impersonate Chromium nowadays to keep websites from locking them out + // so we'll need to make an educated guess from our parent process + if (name == QLatin1String("chromium")) { + const auto processInfo = KProcessList::processInfo(getppid()); + if (processInfo.name().contains(QLatin1String("vivaldi"))) { + name = QStringLiteral("vivaldi"); + } + } + m_environment = Settings::environmentNames.key(name, Settings::Environment::Unknown); m_currentEnvironment = Settings::environmentDescriptions.value(m_environment);