Supponiamo, ad esempio, di avere una finestra di Chrome attiva con Gmail aperta da qualche parte tra le sue schede (ma non necessariamente la scheda attiva).
Domanda: C'è un modo per attivare la scheda Gmail dalla riga di comando?
Risposta accettata:
Sì. Attualmente lo faccio così:
1) dovrai installare jq per scherzare con i dati delle schede che verrai alimentato quando invochi lo script delle schede attualmente aperte in chromium.
dovrai inoltre installare chrome-remote-interface per svolgere il lavoro di attivando le schede da sfondo -> primo piano di cromo.
2) chromium deve essere in esecuzione con il debug remoto attivato. chiudi tutte le istanze di chromium ed esegui questo comando anziché solo chromium
nel terminale altrimenti questo processo non funzionerà:
/usr/bin/chromium --remote-debugging-port=9222 &
3) usa questo script di base come esempio e salvalo come act
, chmod +x
e inseriscilo nella directory bin del tuo utente. Uso lo script bash per esempio, può essere trasferito se sei un utente 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
vai a cnn.com e un paio di altre schede e mantieni cnn.com in background, passa al terminale e prova il comando in questo modo:
act cnn
Dovrebbe attivare la finestra chromium e passare alla scheda cnn. Sei libero di integrarlo ulteriormente con il tuo menu rofi o la variante fzf nel tuo flusso di lavoro e persino inserire l'elenco delle schede aperte nel pool globale di finestre attive.