Předpokládejme například, že mám aktivní okno chrome s gmailem otevřeným někde mezi jeho kartami (ale nemusí to být nutně aktivní karta).
Otázka: Existuje způsob, jak aktivovat kartu Gmail z příkazového řádku?
Přijatá odpověď:
Ano. Momentálně to dělám takto:
1) budete si muset nainstalovat jq, abyste si mohli pohrát s daty na kartách, které dostanete při vyvolání skriptu aktuálně otevřených karet v chromu.
také budete muset nainstalovat chrome-remote-interface, abyste mohli pracovat aktivace karet z pozadí -> popředí chromu.
2) Chromium musí běžet se zapnutým vzdáleným laděním. zavřete všechny instance chromium a spusťte tento příkaz namísto pouhého chromium
v terminálu, jinak tento proces nebude fungovat:
/usr/bin/chromium --remote-debugging-port=9222 &
3) použijte tento základní skript jako příklad a uložte jej jako act
, chmod +x
a umístěte jej do adresáře bin vašeho uživatele. Používám například bash skript, lze jej přenést, pokud jste uživatelem 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
přejděte na cnn.com a několik dalších karet a nechte cnn.com na pozadí, přepněte se na terminál a vyzkoušejte příkaz takto:
act cnn
Mělo by se aktivovat okno chromium a přepnout na kartu cnn. Můžete to dále integrovat s vaším rofi menu nebo variantou fzf ve vašem pracovním postupu a dokonce hodit seznam otevřených karet do globálního fondu aktivních oken.