[Awesome] Question sur le focus du client.
[Awesome] Question sur le focus du client.
Bonjour,
je découvre Awesome depuis maintenant quelque temps, et suis enchanté par les possibilités de ce WM,
Néanmoins j'ai une question,
j'ai remarqué que lorsque j'utilise la souris sur la barre d'état (statusbar) pour changer de tag sans utiliser le clavier, je perd la possibilité d'utiliser la souris sur tous les clients, l'autofocus du client ne se fait plus.
Le clavier fonctionne, je peux continuer à travailler sans problème,
le WM reste fonctionnel et les clients ne crashent pas donc c'est pas bien méchant, mais ça m'oblige à redémarrer Awesome pour récupérer la souris.
Pensez-vous qu'il s'agit d'un comportement normal que l'on peut modifier dans le rc.lua ou s'agit-il d'un autre soucis.
merci
++
je découvre Awesome depuis maintenant quelque temps, et suis enchanté par les possibilités de ce WM,
Néanmoins j'ai une question,
j'ai remarqué que lorsque j'utilise la souris sur la barre d'état (statusbar) pour changer de tag sans utiliser le clavier, je perd la possibilité d'utiliser la souris sur tous les clients, l'autofocus du client ne se fait plus.
Le clavier fonctionne, je peux continuer à travailler sans problème,
le WM reste fonctionnel et les clients ne crashent pas donc c'est pas bien méchant, mais ça m'oblige à redémarrer Awesome pour récupérer la souris.
Pensez-vous qu'il s'agit d'un comportement normal que l'on peut modifier dans le rc.lua ou s'agit-il d'un autre soucis.
merci
++
Dernière modification par NoX le mer. 27 févr. 2013, 13:11, modifié 2 fois.
Re: [Awesome] Question sur le focus du client.
Salut,
Utilisant awesome depuis pas mal de temps maintenant et n'ayant jamais rencontré ce problème je dirai qu'il doit s'agir d'une erreur dans ton rc.lua. L'as-tu modifié avant que ce souci n'apparaisse? As-tu le souci avec le rc.lua de base?
Sinon quelle version de awesome utilises-tu?
Utilisant awesome depuis pas mal de temps maintenant et n'ayant jamais rencontré ce problème je dirai qu'il doit s'agir d'une erreur dans ton rc.lua. L'as-tu modifié avant que ce souci n'apparaisse? As-tu le souci avec le rc.lua de base?
Sinon quelle version de awesome utilises-tu?
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Re: [Awesome] Question sur le focus du client.
Bonsoir,
oui j'ai modifié mon rc.lua très légèrement (nom des tags, layouts, wallpaper...)du coup j'ai essayé de faire un backup du rc.lua d'origine en suivant ton conseil, et j'arrive à recréer le même problème immédiatement avec le rc.lua d'origine et chromium comme client.
La souris est toujours active, car je peux toujours masquer un client en cliquant sur son nom dans la bar de status, mais impossible d’interagir avec la souris et le client, je peux aussi toujours faire apparaître le menu Awesome avec un clic droit n'importe ou sur l'écran ou switcher d'un tag à l'autre par exemple.
J'utilise la version du dépot community, j’hésite à compiler la version git dispo sur le AUR et ajouter l'option indiquée sur la page "debugging" du wiki d'Awesome pour essayer d'avoir plus d'infos sur ce qu'il se passe exactement, surtout que je peux recréer le segfault immédiatement.
J'utilise également Awesome sur un petit notebook samsung et je n'ai jamais eu non plus ce genre de soucis, j'avais déjà à l'époque voulu installer la version 3.4 sur ma workstation, mais je m’étais frotté au même soucis et j'avais laisser tomber pour passer sur quelque chose de plus simple à débugger en cas de soucis (spectrwm).
Je vois maintenant que j'ai toujours exactement le même problème sur la version 3.5.2, je vais gratter un peu côté débugging pour voir ...
oui j'ai modifié mon rc.lua très légèrement (nom des tags, layouts, wallpaper...)du coup j'ai essayé de faire un backup du rc.lua d'origine en suivant ton conseil, et j'arrive à recréer le même problème immédiatement avec le rc.lua d'origine et chromium comme client.
La souris est toujours active, car je peux toujours masquer un client en cliquant sur son nom dans la bar de status, mais impossible d’interagir avec la souris et le client, je peux aussi toujours faire apparaître le menu Awesome avec un clic droit n'importe ou sur l'écran ou switcher d'un tag à l'autre par exemple.
J'utilise la version du dépot community, j’hésite à compiler la version git dispo sur le AUR et ajouter l'option indiquée sur la page "debugging" du wiki d'Awesome pour essayer d'avoir plus d'infos sur ce qu'il se passe exactement, surtout que je peux recréer le segfault immédiatement.
J'utilise également Awesome sur un petit notebook samsung et je n'ai jamais eu non plus ce genre de soucis, j'avais déjà à l'époque voulu installer la version 3.4 sur ma workstation, mais je m’étais frotté au même soucis et j'avais laisser tomber pour passer sur quelque chose de plus simple à débugger en cas de soucis (spectrwm).
Je vois maintenant que j'ai toujours exactement le même problème sur la version 3.5.2, je vais gratter un peu côté débugging pour voir ...
Re: [Awesome] Question sur le focus du client.
Lorsque tu changes de tag tu as les clients du tag demandé qui s'affiche ou tu restes bloqué avec le client du tag "buggé"? Juste pour savoir si on peut penser à une erreur d'affichage plutôt qu'à un souci de awesome pur.
Malheureusement je n'ai pas plus d'idées pour le moment.
PS: j'en profite pour te poser une question à mon tour
Quelle commande gère ton wallpaper sous awesome car je n'ai pas réussi en suivant le wiki et je me suis retourné sur un lancement via le .xinitrc
Malheureusement je n'ai pas plus d'idées pour le moment.
PS: j'en profite pour te poser une question à mon tour

[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Re: [Awesome] Question sur le focus du client.
Salut !
Bon choix pour Awesome
Sinon, il y a d'autres possibilités pour ton bug.
Personnellement j'ai désactive le "sloppy focus" qui buggait un peu (enfin quand je dis bug, c'est que je n'arrivais pas à me faire à son comportement et de mémoire, j'avais un peu la même sensation que toi). Si tu nous donnes ton rc.lua je peux te donner le diff qui te permettras de le désactiver.
A adapter avec le tool que tu souhaites utiliser pour afficher le fond d'écran.
Mais si tu n'as aucune idée : "feh" ça le fait
Bon choix pour Awesome

Tu as un segfault? Tu peux nous en dire plus?NoX a écrit : J'utilise la version du dépot community, j’hésite à compiler la version git dispo sur le AUR et ajouter l'option indiquée sur la page "debugging" du wiki d'Awesome pour essayer d'avoir plus d'infos sur ce qu'il se passe exactement, surtout que je peux recréer le segfault immédiatement.
Sinon, il y a d'autres possibilités pour ton bug.
Personnellement j'ai désactive le "sloppy focus" qui buggait un peu (enfin quand je dis bug, c'est que je n'arrivais pas à me faire à son comportement et de mémoire, j'avais un peu la même sensation que toi). Si tu nous donnes ton rc.lua je peux te donner le diff qui te permettras de le désactiver.
En début de rc.lua :GuilouV a écrit : PS: j'en profite pour te poser une question à mon tourQuelle commande gère ton wallpaper sous awesome car je n'ai pas réussi en suivant le wiki et je me suis retourné sur un lancement via le .xinitrc
Code : Tout sélectionner
awful.util.spawn_with_shell("feh --bg-center ~/Images/wallpaper/wall.jpg &")
Mais si tu n'as aucune idée : "feh" ça le fait

Re: [Awesome] Question sur le focus du client.
Merci vlamy. J'étais resté à l'utilisation d'une commande dans le fichier de conf du thème (qui ne fonctionne plus sur cette version), voilà qui est plus propre.
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Re: [Awesome] Question sur le focus du client.
L'avantage avec les logiciels très configurables, voir plutôt très scriptables, comme awesome, c'est qu'il y a souvent plusieurs façons de faire la même chose (comme lancer le gestionnaire de fond d'écran par exemple). Ca compense le fait que l'API évolue super rapidement on va direGuilouV a écrit :Merci vlamy. J'étais resté à l'utilisation d'une commande dans le fichier de conf du thème (qui ne fonctionne plus sur cette version), voilà qui est plus propre.

Re: [Awesome] Question sur le focus du client.
Je récupère bien le ou les clients du tag demandé, mais je ne toujours pas les piloter avec la souris, j'ai aussi toujours les effets de fondu de mon "compositeur" cairo en l'occurence lors de l'apparition du client, donc l'affichage me semblerait ok mais je peux me tromper.Lorsque tu changes de tag tu as les clients du tag demandé qui s'affiche ou tu restes bloqué avec le client du tag "buggé"?
Pour le papier peint j'ai créer un nouveau fichier de configuration de mon thème perso et j'ai changer le chemin du papier peint.
Non pas exactement j'ai parlé trop vite, mais comme je fait très peu d'actions pour obtenir le bug, lancement du WM avec xinit puis ouverture d'un client et enfin un clique dans la barre de status je me dis que je pourrais avoir une liste simple de ce qu'il se passe avec les possibilités de debugg aprés comme le WM ne crash pas vraiment je ne sais pas si ça fonctionnerais.Tu as un segfault? Tu peux nous en dire plus?
Voila mon rc.lua
Code : Tout sélectionner
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
awful.rules = require("awful.rules")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
-- launch the Cairo Composite Manager
awful.util.spawn_with_shell("cairo-compmgr &")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = err })
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/usr/share/awesome/themes/nox_theme/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "urxvt"
editor = os.getenv("vim") or "nano"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
local layouts =
{
awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
-- awful.layout.suit.max.fullscreen,
-- awful.layout.suit.magnifier
}
-- }}}
-- {{{ Wallpaper
if beautiful.wallpaper then
for s = 1, screen.count() do
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end
end
-- }}}
-- {{{ Tags
tags = {
names = { "www", "work", "code", "jabb", "vid", "torr", "music", "misc", },
layout = { layouts[10], layouts[2], layouts[2], layouts[10], layouts[1], layouts[10], layouts[10], layouts[1]
}}
for s = 1, screen.count() do
tags[s] = awful.tag(tags.names, s, tags.layout)
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = urxvt -- Set the terminal for applications that require it
-- }}}
-- {{{ Wibox
-- Create a textclock widget
mytextclock = awful.widget.textclock()
-- Create a wibox for each screen and add it
mywibox = {}
mypromptbox = {}
mylayoutbox = {}
mytaglist = {}
mytaglist.buttons = awful.util.table.join(
awful.button({ }, 1, awful.tag.viewonly),
awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
)
mytasklist = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
-- Without this, the following
-- :isvisible() makes no sense
c.minimized = false
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({ width=250 })
end
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end))
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the wibox
mywibox[s] = awful.wibox({ position = "top", screen = s })
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(mylauncher)
left_layout:add(mytaglist[s])
left_layout:add(mypromptbox[s])
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
if s == 1 then right_layout:add(wibox.widget.systray()) end
right_layout:add(mytextclock)
right_layout:add(mylayoutbox[s])
-- Now bring it all together (with the tasklist in the middle)
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
mywibox[s]:set_widget(layout)
end
-- }}}
-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "Left", awful.tag.viewprev ),
awful.key({ modkey, }, "Right", awful.tag.viewnext ),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "w", function () mymainmenu:show() end),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, "Control" }, "r", awesome.restart),
awful.key({ modkey, "Shift" }, "q", awesome.quit),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
awful.key({ modkey, "Control" }, "n", awful.client.restore),
-- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
awful.key({ modkey, "Shift" }, "r",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget,
awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval")
end),
-- Menubar
awful.key({ modkey }, "p", function() menubar.show() end)
)
clientkeys = awful.util.table.join(
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, }, "x", function (c) c:kill() end),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end),
awful.key({ modkey, }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical
end)
)
-- Compute the maximum number of digit we need, limited to 9
keynumber = 0
for s = 1, screen.count() do
keynumber = math.min(9, math.max(#tags[s], keynumber))
end
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, keynumber do
globalkeys = awful.util.table.join(globalkeys,
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end),
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i])
end
end),
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end),
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end))
end
clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize))
-- Set keys
root.keys(globalkeys)
-- }}}
Re: [Awesome] Question sur le focus du client.
A la fin de ton rc.lua il manque les lignes qui gèrent le sloppy focus comparé au mien.
Voici ce que j'ai si tu veux essayer de l'ajouter à ton fichier pour tester:
Voici ce que j'ai si tu veux essayer de l'ajouter à ton fichier pour tester:
Code : Tout sélectionner
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c, startup)
-- Enable sloppy focus
c:connect_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)
end
end
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Re: [Awesome] Question sur le focus du client.
Alors question bête, mais as tu essayé sans compositeur?NoX a écrit : Je récupère bien le ou les clients du tag demandé, mais je ne toujours pas les piloter avec la souris, j'ai aussi toujours les effets de fondu de mon "compositeur" cairo en l'occurence lors de l'apparition du client, donc l'affichage me semblerait ok mais je peux me tromper.
Sinon ton rc.lua est incomplet, il manque toute la partie qui gère les signaux (essentielle au bon fonctionnement du focus notamment). Est-ce un oubli de ta part ou est-ce que cette partie manque vraiment dans ta config?
J'ai une partie différente de celle de GuilouV (j'ai notamment rajouté une coloration des bordures pour reconnaître plus facilement le client qui a le focus), alors je te donnes la mienne (au cas où), dans laquelle le sloppy focus est désactivé. Il y a les commentaires qui vont bien, mais si tu veux plus d'infos, tu n'as qu'à demander.
Code : Tout sélectionner
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c, startup)
-- Enable sloppy focus
--c:connect_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)
end
end
local titlebars_enabled = false
if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(awful.titlebar.widget.iconwidget(c))
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
right_layout:add(awful.titlebar.widget.floatingbutton(c))
right_layout:add(awful.titlebar.widget.maximizedbutton(c))
right_layout:add(awful.titlebar.widget.stickybutton(c))
right_layout:add(awful.titlebar.widget.ontopbutton(c))
right_layout:add(awful.titlebar.widget.closebutton(c))
-- The title goes in the middle
local title = awful.titlebar.widget.titlewidget(c)
title:buttons(awful.util.table.join(
awful.button({ }, 1, function()
client.focus = c
c:raise()
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
client.focus = c
c:raise()
awful.mouse.client.resize(c)
end)
))
-- Now bring it all together
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_right(right_layout)
layout:set_middle(title)
awful.titlebar(c):set_widget(layout)
end
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
Re: [Awesome] Question sur le focus du client.
Bonjour,
j'ai essayer sans compositeur et toujours le même problème.
Je ne sais pas pourquoi la partie signal ne s'est pas copiée dans mon précédent post, j'avais pourtant fait attention à bien mettre mon rc.lua en entier
Bref j'ai essayer ce que vous m'avez dit, j'ai d'abord changer la partie signal avec le code de GuilouV, mais je n'arrivait pas à enlever une petite erreur de syntaxe qui pourtant n'apparaissait pas dans vim et qui gênait awesome. <
Du coup j'ai essayer le code Vlamy et la comme par magie le soucis semble avoir disparu (du moins je n'arrive plus à le faire apparaître immédiatement)
Je viens de faire une bonne minute de cliques divers et toujours rien.
Ça serait donc uniquement le sloppy focus qu'il faut désactiver ? C'est la seul différence que je trouve entre les parties signal de vos rc.lua et le mien.
J'ai essayer de chercher un peu plus d'info sur cette fonction sloppy focus, mais même dans la doc de l'API lua je n'arrive pas à trouver grand chose.
En tout cas un grand merci pour l'astuce, si j'avais su à l'époque j'aurais posté la question plus tôt et j'aurais gagner du temps au lieu de passer sur un autre WM
D’ailleurs ça m'a enlevé un autre soucis qui devait surement être imputable à cette fonction, même en ayant le contrôle de la souris dans le browser, je ne pouvais pas sélectionner une entrée dans un menu déroulant et j’étais obliger d'utilise le clavier aussi.
Bref un double merci
je met résolu dans le titre du topic
j'ai essayer sans compositeur et toujours le même problème.
Je ne sais pas pourquoi la partie signal ne s'est pas copiée dans mon précédent post, j'avais pourtant fait attention à bien mettre mon rc.lua en entier

Bref j'ai essayer ce que vous m'avez dit, j'ai d'abord changer la partie signal avec le code de GuilouV, mais je n'arrivait pas à enlever une petite erreur de syntaxe qui pourtant n'apparaissait pas dans vim et qui gênait awesome. <
Du coup j'ai essayer le code Vlamy et la comme par magie le soucis semble avoir disparu (du moins je n'arrive plus à le faire apparaître immédiatement)
Je viens de faire une bonne minute de cliques divers et toujours rien.

Ça serait donc uniquement le sloppy focus qu'il faut désactiver ? C'est la seul différence que je trouve entre les parties signal de vos rc.lua et le mien.
J'ai essayer de chercher un peu plus d'info sur cette fonction sloppy focus, mais même dans la doc de l'API lua je n'arrive pas à trouver grand chose.
En tout cas un grand merci pour l'astuce, si j'avais su à l'époque j'aurais posté la question plus tôt et j'aurais gagner du temps au lieu de passer sur un autre WM
D’ailleurs ça m'a enlevé un autre soucis qui devait surement être imputable à cette fonction, même en ayant le contrôle de la souris dans le browser, je ne pouvais pas sélectionner une entrée dans un menu déroulant et j’étais obliger d'utilise le clavier aussi.
Bref un double merci

je met résolu dans le titre du topic
Re: [Awesome] Question sur le focus du client. (résolu)
Ben en fait je n'ai pas lancé ça au hasard, le sloppy focus pose de vrais problèmes à certains et pas à d'autres (par exemple si je l'active je ne penses pas avoir le même bug que toi sur Chrome). A l'époque où j'avais modifié ça j'avais trouvé 2/3 explications. Et là, impossible de remettre la main dessus, c'est pour ça que je ne m'avançais que timidement, mais à priori cela confirme mon intuition. A creuser quand mêmeNoX a écrit : Ça serait donc uniquement le sloppy focus qu'il faut désactiver ? C'est la seul différence que je trouve entre les parties signal de vos rc.lua et le mien.
J'ai essayer de chercher un peu plus d'info sur cette fonction sloppy focus, mais même dans la doc de l'API lua je n'arrive pas à trouver grand chose.

Re: [Awesome] Question sur le focus du client. (résolu)
Bonsoir,
j'ai peut être parlé un peu vite car après quelques heures de bon fonctionnement le problème réapparaît parfois de manière aléatoire.
C'est étrange car il avait disparu directement après désactivé le paramètre en question.
j'ai peut être parlé un peu vite car après quelques heures de bon fonctionnement le problème réapparaît parfois de manière aléatoire.
C'est étrange car il avait disparu directement après désactivé le paramètre en question.
Re: [Awesome] Question sur le focus du client. (résolu)
Ha, ben intuitivement je dirais que ça doit être lié au focus quand même, si la désactivation du sloppy améliore.
Sinon une question supplémentaire : tu utilises un ou plusieurs écrans?
Dans le dernier cas, il peut y avoir quelques détails à ajuster. Dans le cas mono-écran, il faudrait que tu affines un peu ton diagnostic, afin qu'on essaie de reproduire le bug/comportement que tu décris. En particulier, je ne suis pas sûr de tout comprendre. Tu perds la souris (hors zone sticky (menu + barre supérieure)) lorsque tu passes d'un tag à un autre via la souris. Et récupères-tu la souris lorsque tu reviens sur le tag initial?
En fait on dirait que le focus de ta souris est associé à un tag spécifique (qui peut d'ailleurs ne pas être affiché). Bref, un peu plus de précision et ton rc.lua complet et on devrait pouvoir faire quelque chose
Sinon une question supplémentaire : tu utilises un ou plusieurs écrans?
Dans le dernier cas, il peut y avoir quelques détails à ajuster. Dans le cas mono-écran, il faudrait que tu affines un peu ton diagnostic, afin qu'on essaie de reproduire le bug/comportement que tu décris. En particulier, je ne suis pas sûr de tout comprendre. Tu perds la souris (hors zone sticky (menu + barre supérieure)) lorsque tu passes d'un tag à un autre via la souris. Et récupères-tu la souris lorsque tu reviens sur le tag initial?
En fait on dirait que le focus de ta souris est associé à un tag spécifique (qui peut d'ailleurs ne pas être affiché). Bref, un peu plus de précision et ton rc.lua complet et on devrait pouvoir faire quelque chose

Re: [Awesome] Question sur le focus du client. (résolu)
Salut,
J'utilise un seul écran.
Une définition précise du bug :
Je lance le WM avec xinit et j'ouvre un client sur le premier tag, chromium par exemple. Jusque là aucun problème, je peux utiliser le browser avec la souris.
Maintenant je clique sur la statusbar pour changer de tag, changer mon layout ou modifier une client dans la zone de notification, à ce moment la je perd la possibilité d'utiliser ma souris sur n'importe quel client de n'importe quel tag.
Les clients sont toujours contrôlables au clavier, la souris n'est active que sur la status bar, je peux toujours changer mon tag ou le layout.
Je suis obligé de redémarrer le WM pour récupérer la souris. Je ne la récupère jamais sinon, même en revenant sur le tag initial ou que je ferme et relance le client.
Voila mon rc.lua qui est normalement entier cette fois-ci
J'utilise un seul écran.
Une définition précise du bug :
Je lance le WM avec xinit et j'ouvre un client sur le premier tag, chromium par exemple. Jusque là aucun problème, je peux utiliser le browser avec la souris.
Maintenant je clique sur la statusbar pour changer de tag, changer mon layout ou modifier une client dans la zone de notification, à ce moment la je perd la possibilité d'utiliser ma souris sur n'importe quel client de n'importe quel tag.
Les clients sont toujours contrôlables au clavier, la souris n'est active que sur la status bar, je peux toujours changer mon tag ou le layout.
Je suis obligé de redémarrer le WM pour récupérer la souris. Je ne la récupère jamais sinon, même en revenant sur le tag initial ou que je ferme et relance le client.
Voila mon rc.lua qui est normalement entier cette fois-ci
Code : Tout sélectionner
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
awful.rules = require("awful.rules")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = err })
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/usr/share/awesome/themes/nox_theme/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "urxvt"
editor = os.getenv("vim") or "nano"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
local layouts =
{
awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
-- awful.layout.suit.max.fullscreen,
-- awful.layout.suit.magnifier
}
-- }}}
-- {{{ Wallpaper
if beautiful.wallpaper then
for s = 1, screen.count() do
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end
end
-- }}}
-- {{{ Tags
tags = {
names = { "www", "work", "code", "jabb", "vid", "torr", "music", "misc", },
layout = { layouts[10], layouts[2], layouts[2], layouts[10], layouts[1], layouts[10], layouts[10], layouts[1]
}}
for s = 1, screen.count() do
tags[s] = awful.tag(tags.names, s, tags.layout)
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = urxvt -- Set the terminal for applications that require it
-- }}}
-- {{{ Wibox
-- Create a textclock widget
mytextclock = awful.widget.textclock()
-- Create a wibox for each screen and add it
mywibox = {}
mypromptbox = {}
mylayoutbox = {}
mytaglist = {}
mytaglist.buttons = awful.util.table.join(
awful.button({ }, 1, awful.tag.viewonly),
awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
)
mytasklist = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
-- Without this, the following
-- :isvisible() makes no sense
c.minimized = false
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({ width=250 })
end
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end))
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the wibox
mywibox[s] = awful.wibox({ position = "top", screen = s })
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(mylauncher)
left_layout:add(mytaglist[s])
left_layout:add(mypromptbox[s])
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
if s == 1 then right_layout:add(wibox.widget.systray()) end
right_layout:add(mytextclock)
right_layout:add(mylayoutbox[s])
-- Now bring it all together (with the tasklist in the middle)
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
mywibox[s]:set_widget(layout)
end
-- }}}
-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "Left", awful.tag.viewprev ),
awful.key({ modkey, }, "Right", awful.tag.viewnext ),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "w", function () mymainmenu:show() end),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, "Control" }, "r", awesome.restart),
awful.key({ modkey, "Shift" }, "q", awesome.quit),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
awful.key({ modkey, "Control" }, "n", awful.client.restore),
-- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
awful.key({ modkey, "Shift" }, "r",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget,
awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval")
end),
-- Menubar
awful.key({ modkey }, "p", function() menubar.show() end)
)
clientkeys = awful.util.table.join(
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, }, "x", function (c) c:kill() end),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end),
awful.key({ modkey, }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical
end)
)
-- Compute the maximum number of digit we need, limited to 9
keynumber = 0
for s = 1, screen.count() do
keynumber = math.min(9, math.max(#tags[s], keynumber))
end
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, keynumber do
globalkeys = awful.util.table.join(globalkeys,
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end),
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i])
end
end),
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end),
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end))
end
clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize))
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
keys = clientkeys,
buttons = clientbuttons } },
{rule = {class = "URxvt"},
properties = {opacity = 0.8} }
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c, startup)
-- Enable sloppy focus
-- c:connect_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)
end
end
local titlebars_enabled = false
if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(awful.titlebar.widget.iconwidget(c))
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
right_layout:add(awful.titlebar.widget.floatingbutton(c))
right_layout:add(awful.titlebar.widget.maximizedbutton(c))
right_layout:add(awful.titlebar.widget.stickybutton(c))
right_layout:add(awful.titlebar.widget.ontopbutton(c))
right_layout:add(awful.titlebar.widget.closebutton(c))
-- The title goes in the middle
local title = awful.titlebar.widget.titlewidget(c)
title:buttons(awful.util.table.join(
awful.button({ }, 1, function()
client.focus = c
c:raise()
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
client.focus = c
c:raise()
awful.mouse.client.resize(c)
end)
))
-- Now bring it all together
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_right(right_layout)
layout:set_middle(title)
awful.titlebar(c):set_widget(layout)
end
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
Re: [Awesome] Question sur le focus du client.
Bonjour,
voila mon theme :
Penses-tu que le soucis puisse provenir du hardware ou des périphériques ? J'ai une souris Cyborg et je sais que la compatibilité Linux n'est pas sa première priorité.
voila mon theme :
Code : Tout sélectionner
---------------------------
-- Default awesome theme --
---------------------------
theme = {}
theme.font = "sans 8"
theme.bg_normal = "#222222"
theme.bg_focus = "#535d6c"
theme.bg_urgent = "#ff0000"
theme.bg_minimize = "#444444"
theme.bg_systray = theme.bg_normal
theme.fg_normal = "#aaaaaa"
theme.fg_focus = "#ffffff"
theme.fg_urgent = "#ffffff"
theme.fg_minimize = "#ffffff"
theme.border_width = 1
theme.border_normal = "#000000"
theme.border_focus = "#535d6c"
theme.border_marked = "#91231c"
-- There are other variable sets
-- overriding the default one when
-- defined, the sets are:
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
-- titlebar_[bg|fg]_[normal|focus]
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
-- Example:
--theme.taglist_bg_focus = "#ff0000"
-- Display the taglist squares
theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
-- Variables set for theming the menu:
-- menu_[bg|fg]_[normal|focus]
-- menu_[border_color|border_width]
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
theme.menu_height = 15
theme.menu_width = 100
-- You can add as many variables as
-- you wish and access them by using
-- beautiful.variable in your rc.lua
--theme.bg_widget = "#cc0000"
-- Define the image to load
theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
theme.wallpaper = "/usr/share/awesome/themes/nox_theme/wallpaper-26282.jpg"
-- You can use your own layout icons like this:
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
theme.awesome_icon = "/usr/share/awesome/icons/archlinux-icon256.png"
-- Define the icon theme for application icons. If not set then the icons
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
theme.icon_theme = nil
return theme
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80