Ask Ubuntuに答えたgnome-terminal
コマンドですべてのインスタンスを終了します。しかし、皆さんが読むことができるように、この「オフ」イベントをシミュレートするために使用できる電話gnome-terminal
はありません。SIG
だから質問があります。 GNOME/KDE/LXDE/{ここにウィンドウ/デスクトップマネージャ/環境を入力してください}で「閉じるボタンをクリック」イベントをシミュレートする方法はありますか?私は持っています読む その他 質問 それこれと関連があるかもしれませんが、この質問には答えないでください。
私が探しているのはグローバルさまざまなシナリオでこれを実行するコマンド(存在する場合)。存在しない場合は、「閉じる」ボタンがどのように機能するかを説明してください。
利用可能な用途:
- 定義されたタスクのために一連のアプリを開いていて、アプリを非表示にせずに、単一のストローク/コマンドですべてのアプリを閉じたい(もう使用しないとき)。作業内容を保存しますか?アラーム。
- すべての
gnome-terminal
インスタンスを閉じますが、子プロセスがまだ実行されている場合は警告します。 - 今は他の考えが一つもありません...
答え1
関連するマニュアルページは次のとおりです。XKillClient。あなたはそれを使用することができますxdotool
以下のように端末で閉じるボタンクリックをシミュレートします。
はい
gnome-terminal
開いたファイルがあり、名前が「saml@grinchy:/home」であるとします。
ウィンドウIDの取得
$ xdotool search --name "saml@grinchy:/home" 96488188
Alt+送信F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \ --delay 100 alt+F4
2 番目のコマンドの中に最初のコマンドを挿入して、それらを 1 つにまとめることができます。
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
xdotool
次の2つの操作を同時に実行すると、自分自身を救うことができます。
$ xdotool search --name "saml@grinchy:~" key alt+f4
世界的に
私が提供した内容を変更して、Windowsで同じ名前で実行できます。
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
またはWindowsの他のプロパティを介して。xwininfo
特定のウィンドウに関する追加情報を見つけるために使用できます。起動して興味のあるウィンドウをクリックします。
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"
Absolute upper-left X: 14
Absolute upper-left Y: 74
Relative upper-left X: 14
Relative upper-left Y: 74
Width: 941
Height: 361
Depth: 32
Visual: 0x62
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5c00003 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +14+74 -485+74 -485-465 +14-465
-geometry 132x24+14+74
X11ウィンドウを操作するときの他の便利なツールはxdpyinfo
&ですxprop
。xdpyinfo
Xサーバーに関する情報を見つけるために使用できます。これにより、どのウィンドウに焦点が合っているかを確認できます。
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
そして、クリックせずに興味のあるウィンドウIDを提供できるトグルがxwininfo
あります。-id
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
引用する
答え2
私はxdotool
それがかなり不安定であるかバグがあることを知り、時々閉じなければならないウィンドウの代わりに前景ウィンドウを閉じたときもありました。これは、ウィンドウイベントを直接送信せず、ウィンドウを前景に取り込んだ後にキー押下を送信する方法によるものと思われますが、これは非常に面倒な問題です。使用することをお勧めしますwmctrl
、キーストロークを送信せずにウィンドウを直接閉じます。
名前を一致させてウィンドウを直接閉じることができます。たとえば、両方とも「タイトルなし文書1 - gedit」ウィンドウを閉じます。
wmctrl -c "gedit"
wmctrl -c "Untitled"
この-F
オプションを使用すると、正確な一致のみを考慮できます。
wmctrl -F -c "Untitled Document 1 - gedit"
または、IDを直接提供することもできます。
wmctrl -i -c "121634821"
より多くの使用例/文書を見つけることができます。ここ。
私が非常に便利だと思ったことの1つは、パラメータをxdotool
使用して--sync
結果を待つ機能です。 2つのコマンドを1つにまとめる方法は次のとおりです。
xdotool search --sync --name "gedit" | xargs wmctrl -i -c
Macを使用している場合は、次のパラメータが必要な場合が-I{}
あります。
xdotool search --sync --name "gedit" | xargs -I{} wmctrl -i -c {}
複数のウィンドウをサポートするには、呼び出しxargs
ごとにwmctrl
最大1つの引数を知らせる必要があります-n
。wmctrl
複数のウィンドウは引数として明示的にサポートされていません。
xdotool search --sync --name "gedit" | xargs -I{} -n 1 wmctrl -i -c {}
そのウィンドウが1つ以上表示されるのを待ってから、すべて閉じます。
答え3
pkill(1) が必要です。