web-dev-qa-db-ja.com

キーボードショートカットでgnomeのウィンドウをフォーカスまたは開く

ここで説明されているように(askubuntu.com/questions/234206/shortcut-to-switch-to-app/328842)wmctrlを使用すると、ウィンドウにアクセスできます。そのため、キーボードで切り替えることができます。しかし、まだ開いている場合は、1つのショートカットを開いてフォーカスするのが好きです。

そのためのツールはありますか?

3
LeMike

さらに別のソリューション。

Wmctrlがインストールされていることを確認してください:Sudo apt install wmctrl

次のコマンドでショートカットを作成します:bash -c "wmctrl -a chrome ; [ "$?" == "1" ] && google-chrome"

説明:最初にchrome(wmctrl -vxa chrome)に焦点を合わせ、次に「$?」が成功したかどうかを確認します==「0」または「$?」ではない== "1"。そうでない場合は、Google chrome([ "$?" == "1" ] && google-chrome")を起動します。

ショートカットbash -c "wmctrl -a chrome || google-chromeを作成することもできます

||は、最初のコマンドが失敗した場合に2番目のコマンドを実行することを意味します。

2
desgua

次の手順を試してください(テスト済み):

  • 最初にgetWM_CLASSアプリの名前xprop | grep WM_CLASS
  • 次に、ショートカットを作成しますbash -c "wmctrl -xa <WM_CLASS> || <WM_CLASS>"
  • 例:bash -c "wmctrl -xa google-chrome || google-chrome
1
Yedhrab

キーボードショートカットとして直接次のものがあります。

#                Focus Chrome if it's running,           start it otherwise.
sh -c "if test $(wmctrl -vxa chrome 2>&1 | wc -l) -eq 1; then google-chrome; fi"
1

OlivierBlanvillainのアプローチを使用しましたが、特定の結果に合わせて修正しました。

私は欲しかった F12 フォーカスした内容に応じて、Chromeまたは私のターミナルを切り替えます。 wmctrlに加えて xdotool を使用しています。

if [[ $(xdotool getwindowfocus getwindowname) == *Google\ Chrome ]]; then wmctrl -a terminal; else wmctrl -a chrome; fi
0
jared

ほとんど手に入れました。

次の行で/usr/local/bin/goSudo vim /usr/local/bin/go)を作成しました:

#!/bin/bash

if wmctrl -l | grep -i --quiet "${1}"; then
    wmctrl -a ${1}
else
    ${1}
fi

実行可能にしました:Sudo chmod ugo+x /usr/local/bin/go

そして、システムにいくつかのショートカットを追加しました:

名前:Firefoxコマンド:go firefox Super + F経由

しかし、firefoxは表示されません。コンソールを介して、本来の動作をします。

0
LeMike