web-dev-qa-db-ja.com

素晴らしいWM:ウィンドウがマウスの下に浮かんでいるように見せるためのルールを書くにはどうすればよいですか?

クリップボードマネージャーを使用していますが、ショートカットキーを押したときにマウスのすぐ下に表示されるようにしたいと思います。

私は素晴らしいwmのためにさまざまなルールを書きました。良いクライアントに焦点を合わせる方法、それをフローティングにする方法、固定された位置に表示する方法を理解しています。

このエントリは Awesome FAQ で見つかりました。

ただし、このヒントを使用してルールを作成する方法がわかりません。

ヒントはありますか?

2
mperrin

キーワードによるグローバル使用

rc.luaの最後に関数client.add_signal(...があります。この関数内で、FAQの最後の行を設定して、特定のアプリケーションでのみ有効にする必要があります。rcの最初に新しい変数を含めました。ルア `

local undermouse = false

fAQの一部より:

client.add_signal("manage", function (c, startup)
    -- Add a titlebar
    -- awful.titlebar.add(c, { modkey = modkey })

    -- Enable sloppy focus
    c:add_signal("mouse::enter", function(c)
        if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
        and awful.client.focus.filter(c) then
            client.focus = c
        end
    end)

    if not startup then
        -- Set the windows at the slave,
        -- i.e. put it at the end of others instead of setting it master.
        -- awful.client.setslave(c)

        -- Put windows in a smart way, only if they does not set an initial position.
        if not c.size_hints.user_position and not c.size_hints.program_position then
            awful.placement.no_overlap(c)
            awful.placement.no_offscreen(c)
=>          if underMouse == true then
=>              awful.placement.under_mouse(c)
=>              underMouse = false
=>          end
        end
    end
end)

このオプションを使用するには、電卓キーの次のコードを作成しました。

globalkeys = awful.util.table.join(
    awful.key({                   }, "#148", function () 
        underMouse = true 
        awful.util.spawn(calculator) 
    end),
)

原則として1つのアプリケーション

私のソリューションをテストした後に自分で見つけたが、他の人が使用できるようにこの回答に追加した:

{ rule = { class = "Gnome-calculator",  },
    properties = { 
        floating = true,
        callback = function(c) awful.placement.under_mouse(c) end,
    },
},
3
Gert Pellin

あなたの答えとawful.placement.under_mouse(c)関数のハイライトに感謝します。

最後に、ルールの作成は本当に簡単でした:

 { rule = { class = "Gnome-calculator",  },
    properties = { 
        floating = true,
        callback = function(c) awful.placement.under_mouse(c) end,
    },
},
0
mperrin