Package: awesome
Version: 3.4.11-2
Severity: important
Weird bug that started appearing after the squeeze to wheezy
upgrade. First problem: the ssh-askpass window doesn't actually show
up in tiled layouts, but instead appears below all other windows. This
doesn't happen in a floating layout. I wonder if this may be due to my
rc.lua, but I am not sure.
The more serious bug, which I am reporting here, is that forcing that
window to show up on top completely crashes awesome, sending me back
to the gdm login screen.
My rc.lua has a meta-t key to toggle the above setting of a
window. Since the window doesn't actually show up on top, I figured
that setting that would make the window show up properly.
Instead, hitting that key spontaneously crashes the whole X session,
by destroying awesome, I suspect.
Here is my rc.lua:
-- Standard awesome library
require(awful)
require(awful.autofocus)
require(awful.rules)
-- Theme handling library
require(beautiful)
-- Notification library
require(naughty)
--require(revelation)
-- Load Debian menu entries
require(debian.menu)
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init(awful.util.getdir(config) .. /current_theme/theme.lua)
-- This is used later as the default terminal and editor to run.
terminal = uxterm
editor = os.getenv(EDITOR) or editor
editor_cmd = terminal .. -e .. editor
su_cmd = terminal .. -e su
mpd_host = os.getenv(MPD_HOST) or localhost
-- 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.
layouts =
{
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,
awful.layout.suit.floating
}
-- Define if we want to use titlebar on all applications.
use_titlebar = false
-- }}}
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s,
awful.layout.suit.tile.top)
awful.layout.set(awful.layout.suit.floating, tags[s][3])
awful.layout.set(awful.layout.suit.fair, tags[s][4])
awful.layout.set(awful.layout.suit.fair, tags[s][5])
end
-- }}}
mythememenu = {}
function theme_load(theme)
local cfg_path = awful.util.getdir(config)
-- Create a symlink from the given theme to
/home/user/.config/awesome/current_theme
awful.util.spawn(ln -sfn .. cfg_path .. /themes/ .. theme .. ..
cfg_path .. /current_theme)
awesome.restart()
end
function theme_menu()
-- List your theme files and feed the menu table
local cmd = ls -1 .. awful.util.getdir(config) .. /themes/
local f = io.popen(cmd)
for l in f:lines() do
local item = { l, function () theme_load(l) end }
table.insert(mythememenu, item)
end
f:close()
end
-- Generate your table at startup or restart
theme_menu()
-- {{{ Menu
-- Create a laucher widget and a main menu
-- Modify your awesome menu to add your theme sub-menu
myawesomemenu = {
{ manual, terminal .. -e man awesome },
{ edit config, editor_cmd .. .. awful.util.getdir(config) ..
/rc.lua },
{ themes, mythememenu },
{ restart, awesome.restart },
{ quit, awesome.quit }
}
mpdtoysmenu = {
{ Move state locally, mpmv localhost },
{ Move state remotely, mpmv localhost .. mpd_host },
{ Copy state locally, mpcp .. localhost },
{ Copy state remotely, mpcp localhost .. mpd_host },
}
audiomenu = {
{ MPD Toys, mpdtoysmenu },
{ Mixer, aumix }
}
mymainmenu = awful.menu({ items = { { awesome, myawesomemenu,
beautiful.awesome_icon },
{ Debian, debian.menu.Debian_menu.Debian
},
{ open terminal, terminal },
{ Audio, audiomenu }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- }}}
-- {{{ Wibox
-- Create a textclock widget
--mytextclock = awful.widget.textclock({ align = right })
mytextclock = awful.widget.textclock({ align = right }, %Y-%m-%d,
%H:%M:%S, 1 )
-- Create a systray
mysystray = widget({ type = systray })
require(vicious.contrib.batpmu)
require(vicious.contrib.batacpi)
require(vicious.contrib.batproc)
require(vicious)
-- Initialize widget
batwidget = widget({ type = textbox })
-- Register widget
vicious.register(batwidget, vicious.widgets.bat,