端末エミュレーターとしてターミネーター0.96を使用しています。バックグラウンドで実行し、guake端末のように表示/非表示にするにはどうすればよいですか(つまり、ショートカットキーを使用して)。
私は同じことをしようとしていました(グアケとターミネーターの両方のファンになっています)。ここに私が思いついたものがあります(カスタマイズされたバージョンの desqua に対する this question ):
アプリケーションを起動するか、すでに起動されている場合はウィンドウを表示するか、フォーカスされている場合は最小化する
1)インストール wmctrl & xdotool 、または端末:Sudo apt-get install wmctrl xdotool
2)スクリプトを作成します。
これを貼り付けます:
#!/bin/bash
#
# This script does this:
# launch an app if it isn't launched yet,
# focus the app if it is launched but not focused,
# minimize the app if it is focused.
#
# by desgua - 2012/04/29
# modified by olds22 - 2012/09/16
# - customized to accept a parameter
# - made special exception to get it working with terminator
# First let's check if the needed tools are installed:
tool1=$(which xdotool)
tool2=$(which wmctrl)
if [ -z $tool1 ]; then
echo "Xdotool is needed, do you want to install it now? [Y/n]"
read a
if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
Sudo apt-get install xdotool
else
echo "Exiting then..."
exit 1
fi
fi
if [ -z $tool2 ]; then
echo "Wmctrl is needed, do you want to install it now? [Y/n]"
read a
if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
Sudo apt-get install wmctrl
else
echo "Exiting then..."
exit 1
fi
fi
# check if we're trying to use an app that needs a special process name
# (because it runs multiple processes and/or under a different name)
app=$1
if [[ $app == terminator ]]; then
process_name=usr/bin/terminator
else
process_name=$app
fi
# Check if the app is running (in this case $process_name)
#pid=$(pidof $process_name) # pidof didn't work for terminator
pid=$(pgrep -f $process_name)
# If it isn't launched, then launch
if [ -z $pid ]; then
$app
else
# If it is launched then check if it is focused
foc=$(xdotool getactivewindow getwindowpid)
if [[ $pid == $foc ]]; then
# if it is focused, then minimize
xdotool getactivewindow windowminimize
else
# if it isn't focused then get focus
wmctrl -x -R $app
fi
fi
exit 0
chmod +x ~/bin/launch_focus_min.sh
3)キーボードショートカットを作成します。
キーボード設定を開き、コマンド/home/<user>/bin/launch_focus_min.sh terminator
でカスタムショートカットを作成します(〜/ binは機能しません)
このコマンドをShift + Escape(またはguakeに使用したキーボードショートカット)に割り当てます。
これを行う最も簡単な方法は、xdotool
を使用し、windowunmap/windowmap
コマンドを使用して、目的のクラスのウィンドウを非表示/再表示することです。 (このアプローチは、xdotool
に言及している他の回答では言及されていません。)このソリューションは、使用しているウィンドウマネージャーに関係なく、すべてのデスクトップでうまく機能します。 manpage notes として、
X11の用語では、ウィンドウのマッピングとは、画面にウィンドウを表示することを意味します。
そのため、ウィンドウのマッピングを解除すると反対のことが行われ、ウィンドウが非表示になります。残念ながら、xdotool
でマップ/マップ解除状態を切り替えるために使用できるトグルはありませんが、必要な2つのコマンドは以下のとおりです。最初はウィンドウを隠します:
xdotool search --class terminator windowunmap %@
2番目は効果を逆にします。
xdotool search --class terminator windowmap %@
ウィンドウが既に最小化されている場合、windowunmap
コマンドは失敗することに注意してください。
詳細については、man xdotool
、 buntu manpages online 、および この関連する質問に対する私の回答 を参照してください。
ターミネーターで一連の設定を選択することで、Guakeとほぼ同様に機能させることができます。
詳細な説明については、次の記事を参照してください。
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html
目的の結果を得るには、記事のすべての手順に従うことをお勧めします。私はいくつかのステップをスキップしました。それらは必要ではないが、実際にはいくつかのバグを克服するために必要だったと思いました。
最も単純な解決策は、ターミネーターをランチャーにロックするで、Ubuntuが提供するショートカットを使用することです。
ランチャーショートカットを使用して、ランチャーにロックされているアプリケーションを起動できます。
スーパー+ 1から9
使用可能なショートカットの完全なリストを表示するには、Superキーを押します。
Kdeデスクトップ用にguakeと同じスタイルの端末であるyakuake
を使用することをお勧めします。
Sudo apt-get install yakuake
を実行してインストールできます。
Guakeには奇妙なコンソール出力の混乱があるので、Linuxミントのbyobuでgnome端末を上げて最小化するスクリプトを書きました。次に、管理者のキーボード->ショートカットセクションのショートカットに追加しました。
guake-toggling-for-gnome-terminal.sh:という名前のスクリプト
#!/usr/bin/env bash
if ! pgrep -x "gnome-terminal" > /dev/null
then
gnome-terminal --app-id us.kirkland.terminals.byobu -e byobu
fi
byobuVisible=$(xdotool search --onlyvisible byobu)
byobuNotVisible=$(xdotool search byobu)
xdotool windowminimize ${byobuVisible}
xdotool windowraise ${byobuNotVisible}
ここでは、o延は単なるウィンドウ名です。