Awesome wmから特定の画面に変更

Awesome wmから特定の画面に変更

Awesome wm(v4.0)でショートカットを使って特定の画面に切り替えることができますか?

画面があるとするとDP-1-2DP-2-2そしてeDP-1。今画面に切り替えたいDP-1-2現在どの画面にあるかは問題ではありません。
好ましくは、同じ技術を使用してアプリを特定の画面に移動することができる。

これは可能ですか?

答え1

私が知る限り、デフォルトのバインディングはありませんが、それを作成するために必要なメソッドは存在します。

  • 画面に直接焦点を合わせますawful.screen.focus。フォーカスを移動する画面オブジェクトを取得します。
  • モバイルクライアントclient:move_to_screen。これをグローバルバインディングテーブルではなくクライアントバインディングテーブルに追加する必要があることに注意してください。

randr 出力名に基づいてバインディングを生成するには、画面オブジェクトを使用できます。outputs財産。このテーブルの randr 出力名は次のとおりです。したがって、この目的に使用するのは少し複雑です。私は次のことを試してみます:

for s in screen do
  for out,_ in pairs(s.outputs) do
    if out == "eDP1" then
      globalkeys = awful.util.table.join(globalkeys,
        awful.key({modkey}, "F1", function() awful.screen.focus(s) end))
    elseif out == "DP-1-2" then
      -- ...
    end
  end
end

今はテストできません。ここには使用できる画面は複数ありません。

答え2

答えに基づいてクレーター 2150私は効果的な解決策を見つけました。もしかしたら同じ問題を経験している方がいらっしゃるかと思います。

-- set up keybindings based on existing monitors
for s in screen do
  for screen_name, _ in pairs(s.outputs) do
    if screen_name == "eDP-1" then
      globalkeys = awful.util.table.join(globalkeys,
          awful.key({modkey}, "F1", function() awful.screen.focus(s) end))
    elseif screen_name == "DP-2-2" then
      globalkeys = awful.util.table.join(globalkeys,
          awful.key({modkey}, "F2", function() awful.screen.focus(s) end))
    elseif screen_name == "DP-1-2" then
      globalkeys = awful.util.table.join(globalkeys,
          awful.key({modkey}, "F3", function() awful.screen.focus(s) end))
    end
  end
end

すべての画面を繰り返し、興味のある画面がある場合は、その画面に切り替えるキーバインディングを追加してください。

関連情報