KDE Plasma Activities jsem vždycky považoval za zbytečnou a nudnou funkci -- takové vylepšené pracovní plochy s přidanou režií navíc. Nemohl jsem se ale víc mýlit!
Bohužel tato funkcionalita není pro běžného uživatele snadno viditelná, což je nevýhoda Activities.
Activities podporují spouštění skriptů pro čtyři akce:
Pro tuto funkcionalitu ale neexistuje žádné grafické rozhraní (GUI). Na KDE fóru sice existuje diskuze z června 2023, ale zdá se, že se na tom od té doby nepracuje.
Pojďme si tedy skripty nastavit ručně.
Nejprve musíte zjistit ID aktivit, které máte spuštěné. To uděláte následujícím příkazem:
kactivities-cli --list-activities
Tento příkaz vám vrátí tabulku obsahující Activity ID, Activity Name a Activity Icon. Potřebujete pouze Activity ID. Dále přejděte do složky .local/share/kactivitymanagerd/activities/ (vytvořte ji, pokud neexistuje). Uvnitř této složky vytvořte podsložku se stejným názvem jako Activity ID, pro které chcete skripty nastavit. Poté vytvořte podsložky pro jednotlivé akce: activated, deactivated, started nebo stopped. Můžete vytvořit složky pro všechny. Jakýkoli skript umístěný do některé z těchto složek se pak automaticky spustí.
S těmito skripty máte plně automatizované přepínání aktivit v Plasmě. Co dál? Například můžete přizpůsobit výchozí prohlížeč pro každou aktivitu.
K tomu využijeme skript utils.sh, který si můžete umístit kamkoli:
#!/bin/bash
function writeconf() {
kwriteconfig5 --file ~/.config/kdeglobals --group General --key BrowserApplication "$1"
xdg-settings set default-web-browser "$1"
xdg-mime default "$1" x-scheme-handler/https
xdg-mime default "$1" x-scheme-handler/http
xdg-mime default "$1" text/html
}
function readconf() {
kreadconfig5 --file ~/.config/kdeglobals --group General --key BrowserApplication
}
Poté vytvořte samostatné skripty pro aktivaci Chrome a Firefoxu:
activate-chrome.sh -- umístěte do activated:
#!/bin/bash
source ~/.bin/activities/utils.sh
service=org.kde.ActivityManager
interface=$service.Activities
path=/ActivityManager/Activities
signal=CurrentActivityChanged
curact=$(qdbus $service $path $interface.CurrentActivity)
name="$(qdbus $service $path $interface.ActivityName $curact)"
echo "Switched to activity $name"
echo "Previous browser: $(readconf)"
echo "Setting browser to Chrome"
writeconf google-chrome.desktop
echo "Current Browser: $(readconf)"
activate-firefox.sh -- umístěte do deactivated:
#!/bin/bash
source ~/.bin/activities/utils.sh
service=org.kde.ActivityManager
interface=$service.Activities
path=/ActivityManager/Activities
signal=CurrentActivityChanged
curact=$(qdbus $service $path $interface.CurrentActivity)
name="$(qdbus $service $path $interface.ActivityName $curact)"
echo "Switched to activity $name"
echo "Previous browser: $(readconf)"
echo "Setting browser to Firefox"
writeconf firefox.desktop
echo "Current Browser: $(readconf)"
Představte si, že tyto skripty aplikujete na aktivitu Work. Když přepnete na Personal, výchozí prohlížeč se automaticky přepne zpět na Firefox. Získáte tak přizpůsobené přepínání prohlížečů pro různé aktivity v Plasmě.
Pokud preferujete jiné prohlížeče než Firefox nebo Chrome, můžete skripty snadno upravit.
Často se mi hodí mít určité aplikace připnuté na liště across všech aktivit. Ve výchozím nastavení se aplikace zobrazují pouze v aktivitě, kde byly spuštěny. Můžete ale vytvořit KWin pravidlo okna s podmínkou "All activities", čímž zajistíte, že budou tyto aplikace vždy přístupné.
Toto nastavení pro mě bylo zásadní změna. Jako někdo, kdo intenzivně používá Slack pro pracovní i osobní komunikaci, mi automatické přepínání prohlížeče podle aktivit výrazně zefektivnilo workflow.
Dále plánuji ještě více přizpůsobit práci se Slackem oddělením pracovních workspace od ostatních, což umožní ještě větší efektivitu a organizaci.
Pokud vás zajímají alternativní metody pro přepínání aktivit a skriptování, podívejte se na Browsers -- intuitivní kontextové menu, které se zobrazí, když kliknete na odkaz v aplikaci mimo webový prohlížeč.