GNU/Linux >> Linux の 問題 >  >> Linux

Bashを介してChromeの特定のタブをアクティブ化する方法は?

たとえば、Gmailがタブのどこかで開いた状態でChromeウィンドウがアクティブになっているとします(ただし、必ずしもアクティブなタブである必要はありません)。

質問: Gmailタブを有効にする方法はありますか コマンドラインから?

承認された回答:

はい。私は現在このようにしています:

1) 現在開いているタブのスクリプトをクロムで呼び出すときにフィードされるタブデータをいじくり回すには、jqをインストールする必要があります。
また、次の作業を行うにはchrome-remote-interfaceをインストールする必要があります。背景->クロムの前景からタブをアクティブにします。

2) クロムは、リモートデバッグをオンにして実行する必要があります。クロムのすべてのインスタンスを閉じて、chromiumだけでなくこのコマンドを実行します ターミナルでは、それ以外の場合、このプロセスは機能しません:

/usr/bin/chromium --remote-debugging-port=9222 &

3) この基本スクリプトを例として使用し、actとして保存します 、chmod +x それをユーザーのbinディレクトリに配置します。たとえば、私はbashスクリプトを使用していますが、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

cnn.comと他のいくつかのタブに移動し、cnn.comをバックグラウンドで維持し、ターミナルに切り替えて、次のようなコマンドを試してください。

act cnn

クロムウィンドウをアクティブにして、cnnタブに切り替える必要があります。これをワークフローのrofiメニューまたはfzfバリアントとさらに統合することも、開いているタブのリストをアクティブなウィンドウのグローバルプールに投入することもできます。


Linux
  1. Ubuntu 20.04、20.10でPPAを介してChromiumブラウザをインストールする方法

  2. ソフトウェアがインストールされているかどうかを(スクリプトから)検出する最良の方法は?

  3. Xubuntu クロム NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED

  1. Chromiumの「新しいタブ」ページが読み込まれていませんか?

  2. bash で 2 つのファイルを交換する最短の方法

  3. sedにタブを挿入する正しい方法は何ですか?

  1. ps:親プロセスのみを取得するクリーンな方法は?

  2. BASH を介してスペースをアンダースコアに置き換えます

  3. 絶対パス経由でbashスクリプトを実行するには?