Awesome WM: Как я могу написать правило, чтобы окно казалось плавающим под мышью?

1432
mperrin

Я использую менеджер буфера обмена и хотел бы, чтобы он появлялся под мышью при нажатии клавиши быстрого доступа.

Я написал разные правила для удивительного wm, я вижу, как сфокусировать хорошего клиента, как сделать его плавающим, как заставить его появляться в фиксированной позиции.

Я нашел эту запись в Awesome FAQ .

Однако я не вижу, как использовать этот совет для создания правила.

Есть намеки?

2

2 ответа на вопрос

3
Gert Pellin

Для глобального использования по ключевому слову

в конце вашего rc.lua у вас есть функция client.add_signal(..., внутри этой функции вы должны установить последнюю строку FAQ, чтобы включить ее только для определенных приложений. Я включил новую переменную в начале rc.lua `

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, }, }, 
@mperrin отрицательное голосование (не мной), вероятно, потому, что я дал решение, а вы даете решенное у себя за ответ, который должен быть комментарием к моему ответу. Gert Pellin 8 лет назад 0
Хорошо, извините за это, довольно новый здесь. Ваш ответ мне очень помог, но я подумал, что он не дает четкого ответа на вопрос «как написать правило ...», поэтому я не пометил ваш ответ как принятое решение, но дал его голосование против. mperrin 8 лет назад 1
0
mperrin

Большое спасибо за ваш ответ и основные awful.placement.under_mouse(c)функции.

Наконец, написать правило было действительно легко:

 { rule = { class = "Gnome-calculator", }, properties = {  floating = true, callback = function(c) awful.placement.under_mouse(c) end, }, }, 
Не понимаю, почему за это проголосовали. mperrin 8 лет назад 0

Похожие вопросы