Como ninguém parece ter uma resposta específica do Firefox (provavelmente porque -class
flag, não sendo documentado na página man, não está funcionando corretamente), vou postar meu hack feio como uma solução. Se alguém puder melhorar substancialmente, eu darei a eles o crédito da resposta.
Eu escrevi o seguinte script, chamado firefoxApp.sh, e coloquei em ~ / bin /. É um truque terrível e tenho vergonha disso. E também orgulhoso. Abandonei o perfil separado do Firefox e, em vez disso, usei apenas wmctrl, grep e xprop para alterar o WM_CLASS
da janela recém-criada, após um atraso (já que as janelas demoram bastante tempo para aparecer e ser intituladas). Se alguém pudesse me dizer uma maneira mais precisa e confiável de encontrar as janelas para reclassificar, isso não seria afetado pelas condições de tempo / corrida, esse script seria muito melhorado. Eu tentei e não consegui fazer isso com o PID do processo iniciado (presumivelmente porque todo o perfil do Firefox tem um PID raiz). Eu não vou postar aqui o código para essa tentativa, já que eu não tenho mais isso.
#!/bin/sh
targetclass=$1
url=$2
titlegrep=$3
if [ "$#" -ne 3 ]
then
echo "USAGE: $0 TARGETCLASS URL TITLEGREP" 1>&2
exit 1
fi
firefox -P default -new-window "$url" &
sleep 10
# Ensure only newlines split items in the upcoming for loop:
IFS='
'
for wid in 'wmctrl -l -x | grep $titlegrep | awk '{ print \ }''
do
xprop -id $wid -f WM_CLASS 8s -set WM_CLASS $targetclass
done
Este script eu chamo usando arquivos .desktop em ~ / .local / share / applications que se parecem com o seguinte.
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Calendar (Firefox)
Exec=firefoxApp.sh googlecalendar calendar.google.com Calendar
Icon=calendar
StartupWMClass=googlecalendar
Se eu escolher, posso usar um nome de ícone mais específico como google-calendar-firefox-app
e, em seguida, descartar um arquivo chamado google-calendar-firefox-app.svg
em ~ / .local / share / icons.