You are not logged in.
Hi,
I haven't already seen this issue in the forum, so I post a new topic for it.
Since about 2 months (not sure of that), I've noticed that as said in the title the titlebar in awesome isn't refreshing as it should. When I switch desktop I still have the same titlebar unless :
- the title changes (change tab on chromium for instance)
- I click on my top left menu (shutdown,...)
- I minimize the window ; in this case, it changes, but not when I open it again
It is the same with the desktop icons : here's an example.
I'm on desktop 2, konsole open => titlebar "konsole", desktop 2 lightened on titlebar
Moving to desktop 1 with chromium => no changes
Changing tab (so changing window title) => comes back to normal
I've made a fresh install on another computer whith almost the same rc.lua, and it doesn't have this issue.
I've tried disabling widgets, commenting on my rc.lua... Unsuccessful.
So, does anyone have an idea ? I'm pretty sure I would the be the (almost) only one with this issue, but my problem is that I don't know how it appears ^^'
Here's my rc.lua :
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
awful.rules = require("awful.rules")
awful.autofocus = require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
beautiful.init(awful.util.getdir("config") .. "/themes/perso/theme.lua")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
--local vicious = require("vicious")
local wi = require("wi")
-- {{{ 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
-- }}}
-- This is used later as the default terminal and editor to run.
terminal = "konsole --hide-menubar"
--terminal = "urxvt"
editor = os.getenv("EDITOR") or "vim"
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.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
-- }}}
-- Menubar
menubar.utils.terminal = terminal
-- {{{ Startup Apps
function run_once(prg, args)
if not prg then
do return nil end
end
if not args then
args=""
end
awful.util.spawn_with_shell('pgrep -f -u $USER -x ' .. prg .. ' || (' .. prg .. ' ' .. args ..')')
end
---[[
run_once("konsole --hide-menubar")
run_once("chromium")
run_once("skype")
run_once("thunderbird")
run_once("ario")
run_once("mpd")
run_once("nm-applet")
--}}}
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {
names = { "Web" , "Term" , "Floating" ,"Office" , "Film" , "Misc" , "Music" , "Mail" , "IM" },
layout = { layouts[2] , layouts[2] , layouts[1] , layouts[2] , layouts[8] , layouts[2] , layouts[8] , layouts[2] , layouts[2] },
}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag(tags.names,s,tags.layout)
end
-- }}}
-- {{{ Naughty presets
naughty.config.defaults.timeout = 5
naughty.config.defaults.screen = 1
naughty.config.defaults.position = "top_right"
naughty.config.defaults.margin = 8
naughty.config.defaults.gap = 1
naughty.config.defaults.ontop = true
naughty.config.defaults.font = "Monaco 8"
naughty.config.defaults.icon = nil
naughty.config.defaults.icon_size = 32
naughty.config.defaults.fg = beautiful.fg_tooltip
naughty.config.defaults.bg = beautiful.bg_tooltip
naughty.config.defaults.border_color = beautiful.border_tooltip
naughty.config.defaults.border_width = 2
naughty.config.defaults.hover_timeout = nil
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
menubar.show_categories = true -- Change to false if you want only programs to appear in the menu
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "Manual", terminal .. " -e man awesome" },
{ "Edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
{ "Restart", awesome.restart },
{ "Quit", awesome.quit }
}
sysmenu = {
{ "Éteindre", function () awful.util.spawn_with_shell("mpc stop ; sleep 1 ; poweroff") end },
{ "Redémarrer", function () awful.util.spawn_with_shell("mpc stop ; sleep 1 ; reboot") end}
}
mymainmenu = awful.menu({ items = { { "Awesome", myawesomemenu, beautiful.awesome_icon },
--{ "Menu", applicationsmenu.applicationsmenu()},
{ "Système", sysmenu },
{ "Terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- }}}
-- Create a wibox for each screen and add it
mywibox = {}
mygraphbox = {}
mygraphbox2 = {}
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)
--Volume control
local spacers = require('widgets/spacers')
local vol = require('widgets/vol')
volume = vol:new(0, 'Master', { })
volume.widget = wibox.layout.fixed.horizontal()
volume.widget:add(spacers.lbracket)
volume.widget:add(volume.img)
volume.widget:add(volume.barm)
volume.widget:add(spacers.space)
volume.widget:add(spacers.rbracket)
volume:update()
volume.img:buttons(awful.util.table.join(
awful.button({ }, 1,function() volume:toggle() end),
awful.button({ }, 3, function () awful.util.spawn("urxvtc -e alsamixer", true) end),
awful.button({ }, 4, function () volume:up() end),
awful.button({ }, 5, function () volume:down() end)
))
volume.bar:buttons(awful.util.table.join(
awful.button({ }, 1, function () volume:toggle() end),
awful.button({ }, 3, function () awful.util.spawn("urxvtc -e alsamixer", true) end),
awful.button({ }, 4, function () volume:up() end),
awful.button({ }, 5, function () volume:down() end)
))
--local usb = require('widgets/usbmount')
local batwidget = require('widgets/battery')
-- Calendar widget
require('widgets/calendar2')
mytextclock = awful.widget.textclock()
mytextclock.border_width = 1
mytextclock.border_color = beautiful.fg_normal
calendar2.addCalendarToWidget(mytextclock, "<span color='blue'>%s</span>")
-- 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(usb.img)
right_layout:add(pacicon)
right_layout:add(pacwidget)
right_layout:add(space)
--right_layout:add(wifiicon)
--right_layout:add(wifiinfo)
--right_layout:add(volicon)
right_layout:add(volume.widget)
right_layout:add(baticon)
right_layout:add(batpct)
right_layout:add(space)
--right_layout:add(weather)
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)
-- Graphbox
mygraphbox[s] = awful.wibox({ position = "bottom", height = 12, screen = s, border_color = beautiful.border_widget, border_width = 1 })
mygraphbox2[s] = awful.wibox({ position = "bottom2", height = 12, screen = s, border_color = beautiful.border_widget, border_width = 1})
local left_graphbox = wibox.layout.fixed.horizontal()
left_graphbox:add(space)
left_graphbox:add(cpulabel)
left_graphbox:add(cpugraph0)
left_graphbox:add(cpupct0)
left_graphbox:add(space)
left_graphbox:add(cpugraph1)
left_graphbox:add(cpupct1)
left_graphbox:add(space)
left_graphbox:add(cpugraph2)
left_graphbox:add(cpupct2)
left_graphbox:add(space)
left_graphbox:add(cpugraph3)
left_graphbox:add(cpupct3)
left_graphbox:add(space)
left_graphbox:add(cpu0temp)
left_graphbox:add(space)
left_graphbox:add(cpu1temp)
left_graphbox:add(tab)
left_graphbox:add(pipe)
left_graphbox:add(tab)
left_graphbox:add(memused)
left_graphbox:add(membar)
left_graphbox:add(mempct)
left_graphbox:add(tab)
left_graphbox:add(pipe)
left_graphbox:add(tab)
left_graphbox:add(txwidget)
left_graphbox:add(upgraph)
left_graphbox:add(upwidget)
left_graphbox:add(space)
left_graphbox:add(rxwidget)
left_graphbox:add(downgraph)
left_graphbox:add(downwidget)
local left_graphbox2 = wibox.layout.fixed.horizontal()
left_graphbox2:add(space)
left_graphbox2:add(rootfsused)
left_graphbox2:add(rootfsbar)
left_graphbox2:add(rootfspct)
left_graphbox2:add(space)
left_graphbox2:add(winfsused)
left_graphbox2:add(winfsbar)
left_graphbox2:add(winfspct)
left_graphbox2:add(space)
left_graphbox2:add(ficfsused)
left_graphbox2:add(ficfsbar)
left_graphbox2:add(ficfspct)
left_graphbox2:add(tab)
left_graphbox2:add(pipe)
left_graphbox2:add(tab)
left_graphbox2:add(gputemp)
left_graphbox2:add(tab)
left_graphbox2:add(pipe)
left_graphbox2:add(tab)
left_graphbox2:add(hddtemp)
left_graphbox2:add(tab)
left_graphbox2:add(sda3io)
left_graphbox2:add(sda5io)
--local right_graphbox2 = wibox.layout.fixed.horizontal()
--right_graphbox2:add(weather)
local graphbox_layout = wibox.layout.align.horizontal()
graphbox_layout:set_left(left_graphbox)
local graphbox_layout2 = wibox.layout.align.horizontal()
graphbox_layout2:set_left(left_graphbox2)
--graphbox_layout2:set_right(right_graphbox2)
mygraphbox[s]:set_widget(graphbox_layout)
mygraphbox2[s]:set_widget(graphbox_layout2)
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, "Control" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Control" }, "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),
--Shutdown / reboot / suspend
awful.key({ }, "XF86PowerOff", function () awful.util.spawn_with_shell("poweroff") end),
awful.key({ modkey }, "XF86PowerOff", function () awful.util.spawn_with_shell("reboot") end),
--awful.key({ }, "XF86Sleep", function () awful.util.spawn_with_shell("sudo suspend") end),
--Multimedia keys
--awful.key({ }, 'XF86AudioRaiseVolume', function () awful.util.spawn_with_shell("ruby ~/volume.rb up") end),
--awful.key({ }, 'XF86AudioLowerVolume', function () awful.util.spawn_with_shell("ruby ~/volume.rb down") end),
--awful.key({ }, 'XF86AudioMute', function () awful.util.spawn_with_shell("ruby ~/volume.rb toggle") end),
awful.key({ }, 'XF86AudioRaiseVolume', function () volume:up() end),
awful.key({ }, 'XF86AudioLowerVolume', function () volume:down() end),
awful.key({ }, 'XF86AudioMute', function () volume:toggle() end),
awful.key({ }, 'XF86AudioPlay', function () awful.util.spawn_with_shell("mpc play") end),
awful.key({ }, 'XF86AudioStop', function () awful.util.spawn_with_shell("mpc stop") end),
awful.key({ }, 'XF86AudioNext', function () awful.util.spawn_with_shell("mpc next") end),
awful.key({ }, 'XF86AudioPrev', function () awful.util.spawn_with_shell("mpc prev") end),
--Screenshot
awful.key({ }, "Print", function() awful.util.spawn("ksnapshot") end),
--Raccourcis de lancement
awful.key({ modkey, "Shift"}, "g", function() awful.util.spawn("galculator") end),
--awful.key({ modkey, "Shift"}, "f", function() awful.util.spawn("firefox") end),
awful.key({ modkey, "Shift"}, "c", function() awful.util.spawn("chromium") end),
--awful.key({ modkey, "Shift"}, "d", function() awful.util.spawn("desmume") end),
awful.key({ modkey, "Shift"}, "n", function() awful.util.spawn("nautilus") end),
awful.key({ modkey, "Shift"}, "r", function() awful.util.spawn("grsync") end),
awful.key({ modkey, "Shift"}, "v", function() awful.util.spawn("virtualbox") end),
awful.key({ modkey, "Shift"}, "l", function() awful.util.spawn("libreoffice") end),
awful.key({ modkey, "Shift"}, "t", function() awful.util.spawn("nxclient") end),
--awful.key({ modkey, "Shift"}, "o", function() awful.util.spawn("korganizer") end),
awful.key({ modkey, "Shift"}, "s", function() awful.util.spawn("rapidsvn") end),
--awful.key({ modkey, "Shift"}, "x", function() awful.util.spawn("xchat") end),
awful.key({ modkey, "Shift"}, "a", function() awful.util.spawn("anki") end),
awful.key({ modkey, "Shift"}, "m", function() awful.util.spawn("mumble") end),
--awful.key({ modkey, "Shift"}, "d", function() awful.util.spawn("crawl-tiles") end),
--awful.key({ modkey, "Shift"}, "d", function() awful.util.spawn("wesnoth") end),
awful.key({ modkey, "Shift"}, "d", function() awful.util.spawn("dogecoin-qt") end),
awful.key({ modkey, "Shift"}, "p", function() awful.util.spawn("playonlinux") end),
awful.key({ modkey, "Shift"}, "p", function() awful.util.spawn("playonlinux") end),
awful.key({ modkey, "Shift"}, "i", function() awful.util.spawn("idea.sh") end),
--Gueux
awful.key({ }, 'XF86Launch4', function() awful.util.spawn_with_shell("libreoffice /media/Fichiers/Documents/Comptes.ods &") end),
--Slimlock
awful.key({ modkey, }, "F12", function() awful.util.spawn("xscreensaver-command --lock") end),
-- Menubar
awful.key({ modkey }, "r", function() menubar.show() end),
--- Prompt
awful.key({ modkey }, "F2", function() mypromptbox[mouse.screen]:run() end),
awful.key({ modkey }, "x",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget,
awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval")
end)
)
clientkeys = awful.util.table.join(
awful.key({ modkey, "Control" }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, }, "c", function (c) c:kill() end),
awful.key({ modkey, }, "f", 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, }, "s", function (c) c.sticky = not c.sticky 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 = {
-- Search for this rule,
keys = clientkeys,
-- add the following two:
maximized_vertical = false,
maximized_horizontal = false,
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = true,
keys = clientkeys,
buttons = clientbuttons } },
{ rule = { class = "MPlayer" },
properties = { floating = true } },
{ rule = { class = "pinentry" },
properties = { floating = true } },
{ rule = { class = "Gimp" },
properties = { floating = true } },
{ rule = { class = "Galculator" },
properties = { floating = true } },
{ rule = { instance = "plugin-container" },
properties = { floating = true } },
{ rule = { class = "Gnuplot" },
properties = { floating = true } },
{ rule = { class = "Rhythmbox" }, properties = { tag = tags[1][7] } },
{ rule = { class = "Ario" }, properties = { tag = tags[1][7] } },
{ rule = { class = "Sakura" }, properties = { tag = tags[1][2] } },
{ rule = { class = "Konsole" }, properties = { tag = tags[1][2] } },
{ rule = { class = "XTerm" }, properties = { tag = tags[1][2] } },
{ rule = { class = "URxvt" }, properties = { tag = tags[1][2] } },
{ rule = { class = "Evince" }, properties = { tag = tags[1][4] } },
{ rule = { class = "mupdf" }, properties = { tag = tags[1][4] } },
{ rule = { class = "Thunderbird" }, properties = { tag = tags[1][8] } },
{ rule = { class = "Vlc" }, properties = { tag = tags[1][5], switchtotag = true } },
{ rule = { class = "Nautilus" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Anki" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Skype" }, properties = { tag = tags[1][9] } },
{ rule = { class = "Firefox" }, properties = { tag = tags[1][1] } },
{ rule = { class = "Xchat" }, properties = { tag = tags[1][1] } },
{ rule = { class = "Chromium" }, properties = { tag = tags[1][1] }, floating = false },
{ rule = { class = "Grsync" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Rapidsvn" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Doge*" }, properties = { tag = tags[1][6] } },
{ rule = { class = "libre*" }, properties = { tag = tags[1][4] } },
{ rule = { class = "Libre*" }, properties = { tag = tags[1][4] } },
{ rule = { class = "Eclipse*" }, properties = { tag = tags[1][4] } },
{ rule = { class = "jetbrains*" }, properties = { tag = tags[1][4] } },
{ rule = { class = "Winff" }, properties = { tag = tags[1][6] } },
{ rule = { class = "VirtualBox" }, properties = { tag = tags[1][6] } },
{ rule = { class = "SWT" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Audacity" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Desmume" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Korganizer" }, properties = { tag = tags[1][6] } },
{ rule = { class = "Mumble" }, properties = { tag = tags[1][6] } },
{ rule = { class = "crawl-tiles" }, properties = { tag = tags[1][3] } },
{ rule = { class = "wesnoth" }, properties = { tag = tags[1][3] } },
{ rule = { name = "PlayOnLinux" }, properties = { tag = tags[1][3] } },
}
-- }}}
function titlebar_create(c)
-- 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)
return layout
end
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal('manage', function (c, startup)
-- Add a titlebar
-- awful.titlebar.add(c, { modkey = modkey })
-- 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)
c:connect_signal("property::floating", function(c) if awful.client.floating.get(c)
then
awful.titlebar(c):set_widget(titlebar_create(c))
else
awful.titlebar(c, {size = 0})
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 = true
if titlebars_enabled and c.type == "dialog" then --(c.type == "normal" or c.type == "dialog") then
layout = titlebar_create(c)
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)
-- }}}Thanks by advance
Last edited by nyddogghr (2014-07-10 20:41:57)
Offline
what are the differences between the 2 rc.lua's ?
what are the differences between the 2 awesome instalations ?
what happens if both are exactly the same in all ways ?
These questions will hold the answers.
Offline
You're totally right.
I've already tried to find the differences, but not accurately enough. I'll do it again.
Also, I've noticed another strange thing : even with my rc.lua broken, I have this issue. I think that with a broken rc.lua the default one is used, so it may not come from my configuration. if it doesn't, I have no idea...
I'll check again the other install and will tell you if I have something (but not before tuesday)
[Edit]
I've tried with the default rc.lua, and I indeed still have this issue.
For now, I have a workaround : I just add a small titlebar to every window, as if they were floating (cf very end of my rc.lua posted above).
But if someone has any idea to really fix it, I would be happy ![]()
Last edited by nyddogghr (2014-07-12 10:17:31)
Offline
Hi, I've found solution for this. It's not a fix, but it do work.
If you'll use composition manager everything gonna switch like a charm with animation (you can turn it off btw)
install cairo compositor from AUR, add this line to your rc.lua and simply restart the shell
awful.util.spawn_with_shell("cairo-compmgr &")wlc ![]()
I suggest you to use xcompmgr instead (launch is the same, no animations, -cF applies shadows to windows and it's more lightweight)
Last edited by tuule_ (2015-07-24 22:27:08)
Offline