非表示にターミネーターに焦点を当てる方法は?

非表示にターミネーターに焦点を当てる方法は?

私はキーバインディングを使用してターミネータをドロップダウンターミナルとして使用してきましたhide_window。うまく動作しますが、1つの顕著な欠陥があります。終了者ウィンドウを非表示にするとフォーカスはありません。通常、私は終了キーを押してすぐに入力を開始します。そうすれば面白いことが起こります。ターミネーターにフォーカスを合わせるには?

  • GNOMEシェル
  • Arch Linux/Ubuntu 14.04(両方のシステムで同じ動作)
  • 特定の時間に1つの出口ウィンドウのみが実行されます。

時々非表示 - 非表示 - 非表示解除をすばやく連続的に実行すると、ターミネータが焦点を当てますが、これは非常に面倒で、やや信頼できません。

答え1

このパッチを試してください。私はここにいるエラーレポート@スパークホーク提供してユーザーはそれがうまくいくと言います。このコマンドの使用方法がわかっているとしますpatch。それは私にも効果があります。 (私は同じ問題を抱えています。)

包括的なパンフレットを見るにはここをクリックしてくださいpatch

=== modified file 'terminatorlib/window.py'
--- terminatorlib/window.py 2011-08-22 20:05:38 +0000
+++ terminatorlib/window.py 2012-03-30 21:02:28 +0000
@@ -273,6 +273,12 @@
             if self.position:
                 self.move(self.position[0], self.position[1])
             self.show()
+            self.grab_focus()
+            try:
+                t = gtk.gdk.x11_get_server_time(self.window)
+            except AttributeError:
+                t = 0
+            self.window.focus(t)
         else:
             self.position = self.get_position()
             self.hidefunc()

ターミネータ1.90の場合、他の変更が行われる必要があるようです。 ~から同じバグレポートへのコメント#18:

307-311行を次のように変更しました。

        try:
            from gi.repository import GdkX11
            t = GdkX11.x11_get_server_time(self.get_window())
        except AttributeError:
            t = 0
        self.get_window().focus(t)

関連情報