Supposons, par exemple, que j'ai une fenêtre Chrome active avec gmail ouvert quelque part parmi ses onglets (mais pas nécessairement l'onglet actif).
Question : Existe-t-il un moyen d'activer l'onglet gmail depuis la ligne de commande ?
Réponse acceptée :
Oui. Je le fais actuellement comme ceci :
1) vous devrez installer jq pour jouer avec les données d'onglet que vous obtiendrez lors de l'appel du script des onglets actuellement ouverts dans chromium.
vous devrez également installer chrome-remote-interface pour effectuer le travail de activation des onglets de fond -> premier plan de chrome.
2) chromium doit être en cours d'exécution avec le débogage à distance activé. fermez toutes les instances de chrome et exécutez cette commande au lieu de simplement chromium
dans le terminal sinon ce processus ne fonctionnera pas :
/usr/bin/chromium --remote-debugging-port=9222 &
3) utilisez ce script de base comme exemple et enregistrez-le sous act
, chmod +x
et placez-le dans le répertoire bin de votre utilisateur. J'utilise le script bash par exemple, il peut être porté si vous êtes un utilisateur zsh :
#!/usr/bin/env bash
TABS_JSON=$(chrome-remote-interface list | sed -e "s/^'//" -e "s/'$//" | jq -r 'map(select(.type == "page") | {id: .id, title: .title})')
if [[ -z [email protected] ]]; then
TAB_NAMES=$(echo "$TABS_JSON" | jq -r 'map(.title) | .[]')
echo "$TAB_NAMES"
else
TAB=$*
TAB_ID=$(echo "$TABS_JSON" | jq -r "map(select(.title | match("${TAB}";"i")) | .id) | .[]")
chrome-remote-interface activate "$TAB_ID" >/dev/null
#you might need wmctrl if window does not activate.
#wmctrl -a chromium
fi
accédez à cnn.com et à quelques autres onglets et gardez cnn.com en arrière-plan, passez au terminal et essayez la commande comme suit :
act cnn
Il devrait activer la fenêtre chrome et passer à l'onglet cnn. Vous êtes libre de l'intégrer davantage à votre menu rofi ou à votre variante fzf dans votre flux de travail, et même d'ajouter la liste des onglets ouverts dans le pool global de fenêtres actives.