Jawaban:
Skrip berikut berfungsi untuk saya, tetapi mengharuskan Anda hanya memiliki satu jendela Chrome, dan jendela itu harus aktif. Seharusnya mudah untuk men-tweak atau memperbaikinya.
WINID=$(xdotool search --name 'Google Chrome' | head -n 1)
WINID_HEX=$(printf "0x%x" $WINID)
while true
do
xwininfo -id $WINID_HEX | grep Gmail
if [ "$?" -ne 0 ]
then
xdotool key --window $WINID ctrl+Tab
else
break
fi
sleep 2
done
Mungkin ada banyak cara lain untuk melakukan ini:
Iya. Saat ini saya melakukannya seperti ini:
1) , Anda harus menginstal jq untuk dipusingkan dengan data tab yang akan Anda makan ketika menjalankan skrip yang akan mengaktifkan tab yang saat ini terbuka di kromium.
2)
kromium harus dijalankan dengan debugging jarak jauh dihidupkan. tutup semua instance chromium, dan jalankan perintah ini alih-alih hanya chromium
di terminal jika tidak proses ini tidak akan bekerja:
/usr/bin/chromium --remote-debugging-port=9222 &
3) gunakan skrip ini simpan sebagai "tindakan", chmod +x
dan letakkan di direktori bin pengguna Anda:
#!/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 $@ ]]; 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
arahkan ke cnn.com dan beberapa tab lainnya dan simpan cnn.com di latar belakang, beralih ke terminal dan coba perintah seperti ini:
act cnn
harus mengaktifkan jendela chromium dan beralih ke tab cnn. beri tahu saya jika itu berhasil!
Di linux (Debian) saya menggunakan google-chrome URL
(contoh:google-chrome google.com
:). Tab baru akan terbuka.
Ketik google-chrome --help
untuk deskripsi yang lebih detail.
Saya menemukan ini untuk mac (tetapi tidak mencoba): chrome-cli open <url> -n
perintah.
Itu tergantung dari https://github.com/prasmussen/chrome-cli
Kode perl ini berfungsi untuk saya: misalnya, findTab.pl Chrome Gmail
,. Itu membuat layar flip banyak dan dapat mengubah tab di jendela lain (ini memeriksa 12 kali pada teori bahwa ini harus meninggalkan jendela Anda pada tab asli jika tidak menemukan apa pun, asalkan Anda memiliki <5 tab di jendela).
Ini tidak berfungsi pada sistem Ubuntu saya jika Anda tidak menggunakannya windowactivate
sebelumnyakey
; ada hubungannya dengan protokol keamanan yang sangat lama.
Saya tidak berpikir ada jaminan apa yang akan ditemukan jika ada lebih dari satu hal untuk ditemukan; Saya menduga berdasarkan pengalaman xdotool lain bahwa ia cenderung menemukan hal-hal yang berbeda ketika digunakan berulang kali.
perl mungkin bukan pilihan yang baik untuk skrip ini, tapi saya tidak tahu bash.
#! /usr/bin/perl
## findTab.pl
## usage findTab appName tabName
use strict;
my $maxTabs=12;
my ($app, $tab) = @ARGV;
my @wins = split /\s+/, `xdotool search --desktop 0 --name $app`;
foreach my $win (@wins){
my $title;
for (my $i=0;$i<$maxTabs;$i++){
system ("xdotool windowactivate $win");
$title = `xwininfo -id $win | grep $tab`;
last if $title;
system("xdotool key --window $win ctrl+Page_Down");
}
last if $title;
}
Yah, tab gmail saya disematkan dan tetap pertama. Naskah kecil ini membantu saya
#!/bin/bash
wmctrl -a $1
xdotool search --onlyvisible --class $1 key Alt+1
./activate_mail.sh Chromium
./activate_mail.sh Firefox
Ini bekerja di lingkungan i3wm saya.
xwininfo
akan menerima desimal$WINID
.