最近の仕事には2番目のモニタがありますが、ウィンドウマネージャを使用してすべてのモニタを設定したいと思います。素晴らしいです。画面のタブに一部のアプリを配置する際に問題があります。たとえば、urxvtにこれを最初の画面のタブ1に配置するように指示するルールがあります。
{ rule = { class = "URxvt" },
properties = { tag = tags[1][1] }
}
私のマウスカーソルが最初のモニターにある限り、これはうまくいきます。カーソルを2番目の画面に移動してurxvtインスタンスを起動すると、2番目のモニタの実際のマーカーに配置されます。同様に、2番目の画面のラベルに対してアプリを設定しましたが、マウスカーソルが最初の画面にある場合、アプリは機能しません。
この問題をどのように解決できますか?
答え1
拡張パックを使用してこれを行うには非常に簡単な方法がありますawful
。一部のディストリビューションでは自動的にバンドルされ、他のディストリビューションではサブパッケージとして提供されます。それから組み込まれたawful.client.movetoscreen
。
awful.key({modkey}, "o", awful.client.movetoscreen)
つまり、キーを1回押すだけで現在アクティブなタブにウィンドウを送信できます(現在どの画面がオンになっていないかに関係なく)。画面が2つしかない場合は画面が切り替わり、画面が多い場合は画面が循環します。
答え2
これは、使用しているAwesomeのバージョンによって異なります。
すごい1.x
screen
ルールに変数を設定します。
{ rule =
{ class = "URxvt" },
properties = { tag = tags[1][1] },
screen = 1
}
すごい 2.x
関数でscreen
クライアントのプロパティを設定しますhook_manage
。
if c.class == "URxvt" then
awful.client.movetotag(tags[1][1], c)
c.screen = 1
end
コード例では、Awesome 1.xを使用しているようです。ところで、1.xは今かなり古いので、カスタム構成フォーマットの代わりにLuaを使用する2.xにアップグレードすることをお勧めします。
答え3
正確な答えではありませんが、フォローアップです。
これは間違いなく素晴らしいバグです。これにより、awesome-3.4.10
必要な方法で作業できます。あらかじめ定義されたタブでアプリケーションを開くには 現在の画面で次のように使用します。
{ rule = { instance = "urxb" },
callback = function(c)
c.screen = mouse.screen
c:tags({tags[c.screen][3]})
end }