web-dev-qa-db-ja.com

`Ctrl-Alt-T`ショートカットで既存のターミナルにフォーカスする

私は端末をよく使いますが、

だから私は作ることができる方法があるのだろうか Ctrl+Alt+T 既存の端末があればそれに焦点を合わせ、そうでなければ新しい端末を作成しますか?

16
Hailwood

GNOMEターミナルを起動する小さなスクリプトを作成します。

echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

または、ターミナルが既に実行されているかどうかを確認する場合は、次を使用します。

echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

これにより、次のコンテンツで〜/ raiseterminal.shスクリプトが作成されます。

if ps aux | grep "[g]nome-terminal" > /dev/null                                                                                                                                                                                
 then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)                                                                                                                                            
 else gnome-terminal&                                                                                                                                                                                                          
fi          

設定を開いて カスタムキーボードショートカット を設定し、コマンドを/home/$USER/raiseterminal.shに設定しますが、必ず$ USERを実際のユーザー名。

特定の画面またはデスクトップでのみ端末を上げる場合は、xdotool search --helpを参照して、これを行う方法の詳細を確認してください。

また、さまざまな 他のメソッド があり、これらは他のウィンドウマネージャーでより適切に動作します。

24
zerwas

tildaまたはguakeを試してみてください。どちらもUbuntuリポジトリで利用可能です。彼らはあなたが望んでいることを特にしていませんが、彼らはあなたが探していたものであると確信していますが、それが存在することを知りませんでした。 ;)

EDIT:OK、私は少しあいまいでしたが、詳細は以下のとおりです。

from wikipedia

TildaはGTK +端末エミュレーターです。そのデザインは、キー(通常はチルダ)が押されると画面の上部から下にスライドし、キーが再度押されると元に戻るスライドなどのコンピューターゲームのコンソールからインスピレーションを受けました。

Tildaの実行は、プログラムが既にメモリにロードされているため、キーボードショートカットを使用して新しいターミナルを起動するよりも高速です。奇妙なタスクのために端末を頻繁に開いたり閉じたりすることに気づく人にとって有用です。

guakeは本当に同じものですが、気づいた唯一の違いはctrl + clickでhttpリンクを開くことができなかったということです。

8
bartekbrak

私のバージョン(=

アプリを実行/レイズするスクリプト:

PID=$$
xdotool search --class $1 | while read line
do
  echo "$line"
  if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
    then
    kill $PID
    exit
  fi
done
## Launch the program if we reach here
$1 & disown

例えば.

sh ~/raise.sh chromium
1
Possum Gallo

試してみる

Sudo apt-get install wmctrl
wmctrl -xa 'gnome-terminal-server.Gnome-terminal'

システム設定-Keyboradに移動し、カスタムショートカットを追加して、そこにwmctrlコマンドを貼り付けます。できます。

gnome-terminal- *文字列は

wmctrl -xl
0
Jake

さらに別のオプション:起動または切り替え。スクリプトはwmctrlに依存して、ウィンドウが既に開いているかどうかを確認します。存在する場合、スクリプトは既存のものに切り替わり、現在のデスクトップ上の既存のウィンドウを優先します。そうでない場合、新しいウィンドウが起動されます。このスクリプトは Vaughn Dicksonにより公開 です。

#!/bin/sh

terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"

# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
    $terminal_exec &
else
    # search for existing terminals on current desktop
    current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
    term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
    if [ -n "$term_on_this_desk" ]; then
        wmctrl -i -a $term_on_this_desk
    else
        # no terminals on current desktop, so just open the first one we find
        wmctrl -x -a $terminal_wm_class
    fi;
fi;

このスクリプトをホームフォルダーのbinフォルダーに配置し、実行可能にします。次に、キーボードショートカット(設定-キーボード)で、[ランチャー]セクションの下にある[ターミナルの起動]の既存のホットキーを無効にします。クリックして、Backspaceを押して現在の割り当てを無効にします。次に、[カスタムショートカット]セクションで、[+]アイコンをクリックして新しいカスタムショートカットを作成します。 「コマンド」としてスクリプトの名前を入力し、それを割り当てます Ctrl+Alt+t ショートカット。

0
vanadium