3 votes

Awesome WM : Comment puis-je écrire une règle pour faire apparaître une fenêtre flottante sous la souris?

Je utilise un gestionnaire de presse-papiers et je voudrais le voir apparaître juste en dessous de la souris lorsque je appuie sur une touche de raccourci.

J'ai écrit différentes règles pour awesome wm, je vois comment mettre l'accent sur le bon client, comment le faire flotter, comment le faire apparaître à une position fixe..

J'ai trouvé cette entrée dans le FAQ Awesome.

Cependant, je ne vois pas comment utiliser ce conseil pour créer une règle.

Des conseils ?

3voto

Aaron Points 11

Pour une utilisation globale par mot-clé

à la fin de votre rc.lua vous avez la fonction client.add_signal(..., à l'intérieur de cette fonction vous devez définir la dernière ligne de la FAQ, pour l'activer uniquement pour des applications particulières j'ai inclus une nouvelle variable au début de rc.lua `

local undermouse = false

puis la partie de la FAQ:

client.add_signal("manage", function (c, startup)
    -- Ajouter une barre de titre
    -- awful.titlebar.add(c, { modkey = modkey })

    -- Activer le focus négligent
    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
        -- Placer les fenêtres en esclave,
        -- c'est-à-dire les mettre à la fin des autres au lieu de les définir en maître.
        -- awful.client.setslave(c)

        -- Placer les fenêtres de manière intelligente, seulement si elles ne définissent pas une position initiale.
        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)

pour utiliser cette option j'ai créé le code suivant pour ma touche calculatrice:

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

Comme règle pour 1 application

comme vous l'avez trouvé vous-même après avoir testé ma solution, mais ajouté à cette réponse pour une utilisation par d'autres personnes:

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

0voto

mperrin Points 616

Merci beaucoup pour votre réponse et la mise en lumière de la fonction awful.placement.under_mouse(c).

Enfin, écrire la règle a été vraiment facile :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X