Sorry for necrobumping this post, but you don’t have to update your settings on every activity switch, just make your own context-aware app:
Create a script ~/.local/bin/browser-per-activity:
#!/bin/bash
declare -A browsers
# Replace array keys below with your activity IDs, here's how to check it:
# qdbus org.kde.ActivityManager /ActivityManager/Activities ListActivities
# qdbus org.kde.ActivityManager /ActivityManager/Activities CurrentActivity
browsers['5c4ba153-6b6d-4eae-a806-ad93435199db']='/usr/bin/chromium'
browsers['977851c1-5d9c-41c0-8f20-3b4150caf05b']='/usr/bin/google-chrome-stable'
default="/usr/lib/librewolf/librewolf"
current=$(qdbus org.kde.ActivityManager /ActivityManager/Activities CurrentActivity)
if [[ -n ${browsers[$current]} ]]
then
${browsers[$current]} $1
else
$default $1
fi
Make it executable:
chmod +x ~/.local/bin/browser-per-activity
Create a desktop file ~/.local/share/applications/browser-per-activity.desktop:
[Desktop Entry] Categories=Network;WebBrowser; Comment=Web Browser Per Activity Exec=/home/user/.local/bin/browser-per-activity %U GenericName=Web Browser Icon=web-browser MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https; Name=Web Browser NoDisplay=false StartupNotify=true Terminal=false Type=Application Version=1.0
Update your desktop DB:
$ update-desktop-database ~/.local/share/applications
Now you have an app named “Web Browser”, you can set it as default web browser in your KDE System Settings. It would open links from non-browser apps depending on current activity.
Cheers!