Awesome

Just wanted to pop in here and share my experience thus far with BT Infinity 2. 
I live on a fairly new estate in Rugby (Bilton Estates) and we've been forced to use really slow ADSL (1 - 3mb). Finally after 5+ years of slow frustrating internet we have fiber!
Anyhow I ordered fiber back at the beginning of the month and it was activated and installed today. A contractor (not openreach, btw) came out and installed the new faceplate and hooked me up at the box. The whole install took less than 30 minutes and he did a great job.
I am however not using the HH5 wireless, I disabled that and locked down the modem and I use my own router off that for a local network and it works awesome.
Initial testing looks good. 74mb down, 10-20mb up.
http://www.speedtest.net/my-result/3383447362
Just figured I would post a good vibe post.
R

Yeah. Try labs.thinkbroadband.com/ispa if you like, for a 2nd opinion
To say thanks for a helpful answer, please click the white star

Similar Messages

  • Awesome systray is not showing all icons, perhaps overlapping widgets?

    I have a problem with my Awesome configuration that results in some of the icons being missing or partially missing from my systray. I suspect this is because of some overlapping, since they are partially hidden. You can see the problem in the top right corner.
    rc.lua:
    -- Standard awesome library
    require("awful")
    require("awful.autofocus")
    require("awful.rules")
    -- Theme handling library
    require("beautiful")
    -- Notification library
    require("naughty")
    --Wiget Library
    require("vicious")
    -- awesoMPD Widget
    --require("awesompd/awesompd")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/usr/share/awesome/themes/blind-alien/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "urxvt"
    editor = os.getenv("EDITOR") or "vim"
    editor_cmd = terminal .. " -e " .. editor
    -- Enable or disable widgets:
    -- You also have to edit the wiboxes!
    useSysInfo = true
    usePacman = true
    useMpd = true
    useWifi = false
    useNet = true
    useBat = false
    useCpu = true
    useMem = true
    useTemp = false
    -- Widget Settings
    cpuCores = 2 --Number of CPU Cores
    thermalZone = "coretemp.0" --Thermal Zone to read cpu temperature from (check vicious docu)
    thermalData = "core" --Data Source: "proc", "core" or "sys"
    netAdapter = "eth0" --Network adapter to monitor
    wifiAdapter = "wlan0" --Wifi adapter for wifi widget
    pacUpdate = "yaourt -Sy" --Command to update pacman cache
    pacUpgrade = "yaourt -Su" --Command to upgrade system
    networkManager = terminal .. " -e wicd-curses"
    battery = "BAT1" --Battery to monitor
    widthMpd = 420 --Width of MPD widget
    -- Widget update intervals in seconds
    updateCpu = 1
    updatePac = 1801
    updateMpd = 1
    updateWifi = 7
    updateNet = 1
    updateBat = 31
    updateMem = 7
    -- For Dual-Screen setups:
    -- Set "dualScreen" to "2" if you want a different, optimized widget layout for every screen.
    -- If you set it to "-1" it will copy the same widget layout to both screens. (default Awesome behavior)
    dualScreen = -1
    screencount = screen.count()
    -- 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.magnifier,
    awful.layout.suit.floating,
    awful.layout.suit.max
    -- {{{ Tags
    -- Define a tag table which will hold all screen tags.
    tags = {
    --names = { "1", "2", "3", "4", "5", "6"},
    --names = { "⌘", "♐", "⌥", "ℵ"},
    --names = { "⠪", "⠫", "⠬", "⠭", "⠮", "⠳"},
    names = { "⠐", "⠡", "⠪", "⠵", "⠻", "⠿" },
    --names = { " ∙", "⠡", "⠲", "⠵", "⠻", "⠿"},
    --names = { " ⠐ ", " ⠡ ", " ⠲ ", " ⠵ ", " ⠾ ", " ⠿ "},
    --names = { "⢷", "⣨", "⡪", "⣌", "⣪", "⡝"},
    layout = {
    layouts[8], layouts[8], layouts[8], layouts[5], layouts[8], layouts[8]
    for s = 1, screencount 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 .. " " .. awful.util.getdir("config") .. "/rc.lua" },
    { "restart WM", awesome.restart },
    { "logout", awesome.quit },
    { "shutdown" , "sudo /sbin/halt -p" },
    { "reboot" , "sudo /sbin/reboot" }
    myinternet = {
    { "Chromium", "chromium" },
    { "Firefox" , "firefox" },
    { "IM" , "pidgin" },
    { "IRC" , "xchat"}
    mymedia = {
    { "Spotify", "spotify" },
    { "Rhythmbox", "rhythmbox" },
    { "ncmpcpp", "urxvt -e ncmpcpp" },
    { "Gnome Mplayer", "gnome-mplayer" },
    { "VLC" , "vlc" }
    mygraphics = {
    { "GIMP" , "gimp" },
    { "Inkscape" , "inkscape" },
    { "Image viewer" , "eog" }
    myoffice = {
    { "Base" , "lobase" },
    { "Calc" , "localc" },
    { "Impress" , "loimpress" },
    { "LibreOffice" , "loffice" },
    { "Writer" , "lowriter" },
    { "Lyx" , "lyx" },
    { "Document viewer" , "evince" }
    mysystem = {
    { "htop" , "urxvt -e htop" },
    { "Partition" , "gksudo gparted" },
    { "Sys mon" , "gnome-system-monitor" }
    myutilities = {
    { "Gedit" , "gedit" },
    { "Virtualbox" , "VirtualBox" },
    { "File Manager" , "nautilus --no-desktop" }
    myplaces = {
    { "Home" , "nautilus --no-desktop /home/johan/" },
    { "Documents" , "nautilus --no-desktop /home/johan/Documents/" },
    { "Downloads" , "nautilus --no-desktop /home/johan/Downloads/" },
    { "Music" , "nautilus --no-desktop /home/johan/Music/" },
    { "Pictures" , "nautilus --no-desktop /home/johan/Pictures/" }
    myserverplaces = {
    { "Server root" , "nautilus --no-desktop /srv/" },
    { "Downloads" , "nautilus --no-desktop /srv/download/" },
    { "Movies" , "nautilus --no-desktop /srv/movies/" },
    { "Tv-Series" , "nautilus --no-desktop /srv/tv-series/" },
    { "Misc" , "nautilus --no-desktop /srv/misc/" }
    mymainmenu = awful.menu({ items = {
    { "Terminal", terminal },
    { "Places" , myplaces },
    { "Server" , myserverplaces },
    { "Internet" , myinternet },
    { "Media" , mymedia },
    { "Graphics" , mygraphics },
    { "Office" , myoffice },
    { "Utilities" , myutilities },
    { "Systools" , mysystem },
    { "Awesome", myawesomemenu }
    mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
    menu = mymainmenu })
    -- Separators
    bubble = widget({ type = "textbox" })
    spacer = widget({ type = "textbox" })
    space = widget({ type = "textbox" })
    separator = widget({ type = "textbox" })
    bracketl = widget({ type = "textbox" })
    bracketr = widget({ type = "textbox" })
    vertline = widget({ type = "textbox" })
    dash = widget({ type = "textbox" })
    bubble.text = " ∘ "
    spacer.text = " "
    space.text = " "
    --separator.text = "<span font_desc='ClearlyU'> ⡾ </span>"
    separator.text = "] ["
    vertline.text = "|"
    dash.text = "-"
    bracketl.text = "["
    bracketr.text = "]"
    -- Status Labels
    cpuLabel = {}
    for s = 1, cpuCores do
    cpuLabel[s] = widget({ type = "textbox" })
    cpuLabel[s].text = "Core " .. s
    end
    rlabel = widget({ type = "textbox" })
    rlabel.text = "Root:"
    hlabel = widget({ type = "textbox" })
    hlabel.text = "Home:"
    -- WIDGETS --
    -- OS info
    if useSysInfo == true then
    sys = widget({ type = "textbox" })
    vicious.register(sys, vicious.widgets.os, "$1 $2")
    end
    -- Pacman updates
    if usePacman == true then
    -- Widget
    pnoghosticon = widget({ type = "imagebox" })
    pnoghosticon.image = image(beautiful.widget_pacnoghost)
    pnoghosticon.visible = true
    pghosticon = awful.widget.launcher({
    image = beautiful.widget_pacghost,
    command = terminal .. " -e " .. pacUpgrade .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    pghosticon.visible = false
    -- Icon
    -- picon = widget({ type = "imagebox" })
    -- picon.image = image(beautiful.widget_pacnew)
    -- Use the Pacman icon as launcher to update the package list (change to fit your package-management system)
    picon = awful.widget.launcher({
    image = beautiful.widget_pacnew,
    command = pacUpdate .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    runpicon = awful.widget.launcher({
    image = beautiful.widget_pacman_run,
    command = pacUpdate .. " && echo -e 'vicious.force({ pacup, })' | awesome-client"
    runpicon.visible = false
    pacup = widget({ type = "textbox" })
    vicious.register(pacup, vicious.widgets.pkg,
    function(widget, args)
    local nr = tonumber(args[1])
    if nr ~= 0 then
    pnoghosticon.visible = false
    pghosticon.visible = true
    picon.visible = false
    runpicon.visible = true
    else
    pghosticon.visible = false
    pnoghosticon.visible = true
    runpicon.visible = false
    picon.visible = true
    end
    end, updatePac, "Arch")
    end
    -- MPD Widget
    if useMpd == true then
    -- PLAY, STOP, PREV/NEXT Buttons
    -- requires modification of /usr/share/awesome/lib/awful/widget/launcher.lua
    -- b = util.table.join(w:buttons(), button({}, 1, nil, function () util.spawn(args.command) end))
    -- to:
    -- b = util.table.join(w:buttons(), button({}, 1, nil, function () util.spawn_with_shell(args.command) end))
    music_play = awful.widget.launcher({
    image = beautiful.widget_play,
    command = "mpc toggle && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_pause = awful.widget.launcher({
    image = beautiful.widget_pause,
    command = "mpc toggle && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_pause.visible = false
    music_stop = awful.widget.launcher({
    image = beautiful.widget_stop,
    command = "mpc stop && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_prev = awful.widget.launcher({
    image = beautiful.widget_prev,
    command = "mpc prev && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    music_next = awful.widget.launcher({
    image = beautiful.widget_next,
    command = "mpc next && echo -e 'vicious.force({ mpdwidget, })' | awesome-client"
    mpdicon = widget({ type = "imagebox" })
    mpdicon.image = image(beautiful.widget_mpd)
    -- Initialize widget
    mpdwidget = widget({ type = "textbox" })
    --mpdwidget.wrap = "none"
    mpdwidget.width = widthMpd
    --mpdwidget.wrap = "word_char"
    -- Register Widget
    --vicious.register(mpdwidget, vicious.widgets.mpd, "(${state}) : ${Artist} - ${Title} ]", 13)
    -- Set the maximum width of the MPD widget inside the string.format function as "%.<length>s"
    vicious.register(mpdwidget, vicious.widgets.mpd,
    function(widget, args)
    --local maxlength = 85
    local font = beautiful.font
    local string = args["{Artist}"] .. " - " .. args["{Title}"]
    --local string = "[" .. args["{state}"] .. "]" .. " : " .. args["{Artist}"] .. " - " .. args["{Title}"]
    --[[ if maxlength < string.len(string) then
    return "<span font_desc='" .. font .. "'>" .. string.sub(string, 0, maxlength-6) .. "</span> ..."
    else
    return "<span font_desc='" .. font .. "'>" .. string .. "</span>"
    end]]
    if args["{state}"] == "Play" then
    music_play.visible = false
    music_pause.visible = true
    else
    music_play.visible = true
    music_pause.visible = false
    end
    return string
    end, updateMpd)
    end
    ---- WIFI Widget
    --if useWifi == true then
    -- wifiwidget = widget({ type = "textbox" })
    -- wifiwidget.width = 22
    -- wifiwidget.align = "right"
    -- --wifiimage = widget({ type = "imagebox" })
    -- wifiimage0 = awful.widget.launcher({
    -- image = beautiful.widget_wifi0,
    -- command = networkManager
    -- wifiimage0.image.visible = true
    -- wifiimage1 = awful.widget.launcher({
    -- image = beautiful.widget_wifi1,
    -- command = networkManager
    -- wifiimage1.image.visible = false
    -- wifiimage2 = awful.widget.launcher({
    -- image = beautiful.widget_wifi2,
    -- command = networkManager
    -- wifiimage2.image.visible = false
    -- wifiimage3 = awful.widget.launcher({
    -- image = beautiful.widget_wifi3,
    -- command = networkManager
    -- wifiimage3.image.visible = false
    -- wifiimage4 = awful.widget.launcher({
    -- image = beautiful.widget_wifi4,
    -- command = networkManager
    -- wifiimage4.image.visible = false
    -- -- Register Widget
    -- -- change to the desired network adapter if needed
    -- --vicious.register(wifiwidget, vicious.widgets.wifi, "~ ${link}%", 5, "wlan0")
    -- vicious.register(wifiwidget, vicious.widgets.wifi,
    -- function(widget, args)
    -- if tonumber(args["{link}"]) > 75 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = true
    -- elseif tonumber(args["{link}"]) > 50 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = true
    -- wifiimage4.visible = false
    -- elseif tonumber(args["{link}"]) > 25 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = false
    -- wifiimage2.visible = true
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- elseif tonumber(args["{link}"]) > 0 then
    -- wifiimage0.visible = false
    -- wifiimage1.visible = true
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- else
    -- wifiimage0.visible = true
    -- wifiimage1.visible = false
    -- wifiimage2.visible = false
    -- wifiimage3.visible = false
    -- wifiimage4.visible = false
    -- end
    -- return string.format("%02d%%", tonumber(args["{link}"]))
    -- end, updateWifi, wifiAdapter)
    --end
    -- NETWORK Widget
    if useNet == true then
    dnicon = widget({ type = "imagebox" })
    upicon = widget({ type = "imagebox" })
    dnicon.image = image(beautiful.widget_down)
    upicon.image = image(beautiful.widget_up)
    -- Initialize widget
    netdnwidget = widget({ type = "textbox" })
    netdnwidget.width = 55
    --netdnwidget.align = "right"
    netupwidget = widget({ type = "textbox" })
    netupwidget.width = 55
    --netupwidget.align = "right"
    -- Register widget
    -- change to the desired network adapter if needed
    --vicious.register(netdnwidget, vicious.widgets.net, "${eth0 down_kb} kB/s", 1)
    --vicious.register(netupwidget, vicious.widgets.net, "${eth0 up_kb} kB/s", 1)
    -- The following code formats the output to fill with zeroes at the beginning i.e. 013 kB/s instead of 13 kB/s.
    -- It also automatically switches to MB/s if there is more than 999 kB/s
    vicious.register(netdnwidget, vicious.widgets.net,
    function(widget, args)
    if tonumber(args["{" .. netAdapter .. " down_kb}"]) > 999 then
    return string.format("%04.1f MB/s", tonumber(args["{" .. netAdapter .. " down_mb}"]))
    else
    return string.format("%03d kB/s", tonumber(args["{" .. netAdapter .. " down_kb}"]))
    end
    end, updateNet)
    vicious.register(netupwidget, vicious.widgets.net,
    function(widget, args)
    if tonumber(args["{" .. netAdapter .. " up_kb}"]) > 999 then
    return string.format("%04.1f MB/s", tonumber(args["{" .. netAdapter .. " up_mb}"]))
    else
    return string.format("%03d kB/s", tonumber(args["{" .. netAdapter .. " up_kb}"]))
    end
    end, updateNet)
    end
    ---- BATTERY widget
    --if useBat == true then
    -- baticon = widget({ type = "imagebox" })
    -- --baticon.image = image(beautiful.widget_batfull)
    -- --Initialize widget
    -- batwidget = widget({ type = "textbox" })
    -- batwidget.width = 22
    -- batwidget.align = "right"
    -- --Register widget
    -- --vicious.register(batwidget, vicious.widgets.bat, "$1$2", 31, "BAT1")
    -- vicious.register(batwidget, vicious.widgets.bat,
    -- function(widget, args)
    -- if string.match(args[1], "[+↯]") then
    -- baticon.image = image(beautiful.widget_ac)
    -- elseif tonumber(args[2]) > 40 then
    -- baticon.image = image(beautiful.widget_batfull)
    -- elseif tonumber(args[2]) > 20 then
    -- baticon.image = image(beautiful.widget_batlow)
    -- else
    -- baticon.image = image(beautiful.widget_batempty)
    -- end
    -- if tonumber(args[2]) == 100 then
    -- return "Full"
    -- end
    -- return args[2] .. "%"
    -- end, updateBat, battery)
    --end
    -- {{{ CPU
    --if useTemp == true then
    -- -- Core Temp
    -- tempwidget = widget({ type = "textbox" })
    -- tempwidget.width = 26
    -- tempwidget.align = "right"
    -- vicious.register(tempwidget, vicious.widgets.thermal, "$1 C", updateCpu, { thermalZone, thermalData })
    -- --vicious.register(tempwidget, vicious.widgets.thermal, "$1°C", 5, { "thermal_zone0", "sys" })
    -- -- Icon
    -- tempicon = widget({ type = "imagebox" })
    -- tempicon.image = image(beautiful.widget_temp)
    --end
    -- Readout
    if useCpu == true then
    -- Icon
    cpuicon = widget({ type = "imagebox" })
    cpuicon.image = image(beautiful.widget_cpu)
    -- Core 1 Meter
    cpubar = {}
    freq = {}
    displayCores = {}
    displayCpu = {}
    for s = 1, cpuCores do
    cpubar[s] = awful.widget.progressbar()
    cpubar[s]:set_width(50)
    cpubar[s]:set_height(6)
    cpubar[s]:set_vertical(false)
    cpubar[s]:set_background_color("#434343")
    --cpubar:set_color(beautiful.fg_normal)
    cpubar[s]:set_gradient_colors({ beautiful.fg_normal, beautiful.fg_normal, beautiful.fg_normal, beautiful.bar })
    --Delete the following line if you want to put the widget on the left side of the wibox
    cpubar[s].layout = awful.widget.layout.horizontal.rightleft
    vicious.register(cpubar[s], vicious.widgets.cpu, "$" .. s, updateCpu)
    awful.widget.layout.margins[cpubar[s].widget] = { top = 6 }
    -- Frequency
    freq[s] = widget({ type = "textbox" })
    freq[s].width = 44
    freq[s].align = "right"
    --vicious.register(freq1, vicious.widgets.cpufreq, "$2 GHz", 9, "cpu0")
    vicious.register(freq[s], vicious.widgets.cpufreq,
    function(widget, args)
    return string.format("%03.1f GHz", args[2])
    end, updateCpu, "cpu" .. s - 1)
    -- Cache that shit
    vicious.cache(vicious.widgets.cpu)
    end
    end
    -- }}} CPU
    -- {{{ MEM
    if useMem == true then
    -- Icon
    memicon = widget({ type = "imagebox" })
    memicon.image = image(beautiful.widget_mem)
    -- Percentage
    --mem = widget({ type = "textbox" })
    --vicious.register(mem, vicious.widgets.mem, "$1%")
    -- Meter
    membar = awful.widget.progressbar()
    membar:set_width(50)
    membar:set_height(6)
    membar:set_vertical(false)
    membar:set_background_color("#434343")
    --membar:set_color(beautiful.fg_normal )
    membar:set_gradient_colors({ beautiful.fg_normal, beautiful.fg_normal, beautiful.fg_normal, beautiful.bar })
    --This bar should be placed on the right side of the wibox unless
    --it's a dual-screen config in which case the default (leftright)
    --layout is used... change that if you need!
    if screencount ~= dualScreen then
    membar.layout = awful.widget.layout.horizontal.rightleft
    end
    --Register the widget
    vicious.register(membar, vicious.widgets.mem, "$1", updateMem)
    -- Align progressbars
    awful.widget.layout.margins[membar.widget] = { top = 6 }
    -- MEM Usage
    --mem_total = widget({ type = "textbox" })
    --vicious.register(mem_total, vicious.widgets.mem, "$3 MB", 9)
    --mem_used = widget({ type = "textbox" })
    --vicious.register(mem_total, vicious.widgets.mem, "$2 MB", 9,)
    -- Cache that shit
    vicious.cache(vicious.widgets.mem)
    end
    -- }}} MEM
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" }, "%H:%M")
    awful.widget.layout.margins[mytextclock] = { top = -1 }
    -- Create a systray
    mysystray = widget({ type = "systray"})
    -- Create a wibox for each screen and add it
    mywibox = {}
    mybottomwibox = {}
    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, awful.tag.viewnext),
    awful.button({}, 5, awful.tag.viewprev))
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(awful.button({}, 1, function(c)
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    client.focus = c
    c:raise()
    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, screencount do
    -- Set a screen margin for borders
    awful.screen.padding(screen[s], { top = 0 })
    -- 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)))
    mylayoutbox[s].resize = false
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)
    awful.widget.layout.margins[mytaglist[s]] = { top = -2 }
    -- WARNING: In order to properly view the tasklist some lua files have been modified. For the
    -- tasklist_floating_icon icon to be placed on the left side of the task name instead of the
    -- right alignment, /usr/share/awesome/lib/awful/widget/tasklist.lua in function new(label, buttons) the
    -- variable widgets.textbox has to be modified like this:
    -- remove bg_align = "right" and
    -- modify the left margin from 2 to icon width + 2 (i.e.: 18).
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(function(c)
    return awful.widget.tasklist.label.currenttags(c, s,
    -- WARNING: Requires modified /usr/share/awesome/lib/awful/widget/tasklist.lua !!!
    -- This basically hides the application icons on the tasklist. If you don't want this or
    -- prefer not to change your tasklist.lua remove the following line!
    { hide_icon = true })
    end, mytasklist.buttons)
    awful.widget.layout.margins[mytasklist[s]] = { top = 2 }
    -- WIBOXES --
    -- Here we create the wiboxes if it's not a dual-screen layout
    if screencount ~= dualScreen then
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s, border_width = 0, height = 18 })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
    mytaglist[s],
    mypromptbox[s],
    displaySysInfo,
    layout = awful.widget.layout.horizontal.leftright
    mytextclock,
    mylayoutbox[s],
    s == 1 and mysystray or nil,
    mytasklist[s],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[s] = awful.wibox({ position = "bottom", screen = s, border_width = 0, height = 18 })
    mybottomwibox[s].widgets = {
    space, music_play, music_pause, music_stop, music_prev, music_next, space, mpdwidget,
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    bracketr,
    -- spacer, batwidget, spacer, baticon, spacer,
    -- separator,
    -- spacer, wifiwidget, spacer, wifiimage0, wifiimage1, wifiimage2, wifiimage3, wifiimage4, spacer,
    -- separator,
    -- spacer, tempwidget, spacer, tempicon, spacer,
    -- separator,
    spacer, freq[1], spacer, cpubar[1], spacer,
    --cpuLabel[1], spacer,
    cpuicon, spacer,
    separator,
    spacer, membar, spacer, memicon, spacer,
    separator,
    spacer, netupwidget, spacer, upicon, spacer, separator, spacer, netdnwidget, spacer, dnicon, spacer,
    separator,
    space, pghosticon, pnoghosticon, runpicon, picon, space,
    bracketl,
    layout = awful.widget.layout.horizontal.rightleft
    end
    end
    if screencount == dualScreen then
    -- Here we create the wiboxes if it is a dual screen configuration:
    mywibox[1] = awful.wibox({ position = "top", screen = 1, border_width = 0, height = 18 })
    -- Add widgets to the wibox - order matters
    mywibox[1].widgets = {
    mytaglist[1],
    spacer,
    mypromptbox[1],
    mytasklist[1],
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    mytextclock,
    -- spacer,
    mylayoutbox[1],
    -- spacer,
    -- mytasklist[1],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[1] = awful.wibox({ position = "bottom", screen = 1, border_width = 0, height = 18 })
    mybottomwibox[1].widgets = {
    space, music_play, music_pause, music_stop, music_prev, music_next, space, mpdwidget,
    layout = awful.widget.layout.horizontal.leftright
    space,
    s == 1 and mysystray or nil,
    layout = awful.widget.layout.horizontal.rightleft
    mywibox[2] = awful.wibox({ position = "top", screen = 2, border_width = 0, height = 18 })
    mywibox[2].widgets = {
    space,
    mytaglist[2],
    spacer,
    mypromptbox[2],
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    mytextclock,
    space,
    mylayoutbox[2],
    spacer,
    mytasklist[2],
    layout = awful.widget.layout.horizontal.rightleft
    mybottomwibox[2] = awful.wibox({ position = "bottom", screen = 2, border_width = 0, height = 18 })
    mybottomwibox[2].widgets = {
    spacer,
    bracketl,
    spacer, sys, spacer,
    separator,
    space, runpicon, picon, pghosticon, pnoghosticon, space,
    separator,
    spacer, dnicon, spacer, netdnwidget, spacer, separator, spacer, upicon, spacer, netupwidget, spacer,
    separator,
    spacer, memicon, spacer, membar, spacer,
    bracketr,
    layout = awful.widget.layout.horizontal.leftright
    spacer,
    bracketr,
    spacer, tempwidget, spacer, tempicon, spacer,
    separator,
    spacer, freq[2], spacer, cpubar[2], spacer,
    cpuLabel[2], spacer,
    cpuicon, spacer,
    separator,
    spacer, freq[1], spacer, cpubar[1], spacer,
    cpuLabel[1], spacer,
    cpuicon, spacer,
    bracketl,
    layout = awful.widget.layout.horizontal.rightleft
    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({ }, "Print", function () awful.util.spawn("gnome-screenshot") end),
    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({ keygrabber = true }) end),
    --Volume manipulation
    -- awful.key({}, "XF86AudioRaiseVolume", function() awful.util.spawn("amixer set Master 5+") end),
    -- awful.key({}, "XF86AudioLowerVolume", function() awful.util.spawn("amixer set Master 5-") 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),
    -- Prompt
    awful.key({ modkey }, "r", 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, }, "f", function(c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, }, "q", 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, "Shift" }, "m", function () awful.util.spawn("urxvt -T ncmpcpp -e 'ncmpcpp'") end),
    awful.key({ modkey, "Shift" }, "w", function () awful.util.spawn("chromium") end),
    awful.key({ modkey, }, "b", function () awful.util.spawn("nautilus --no-desktop") end),
    awful.key({ modkey, "Shift" }, "r", function(c) c:redraw() end),
    awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end),
    awful.key({ modkey, }, "n", function(c) c.minimized = not c.minimized 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, screencount 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,
    size_hints_honor = false,
    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 = "firefox" },
    properties = { tag = tags[1][2] } },
    { rule = { class = "Chromium" },
    properties = { tag = tags[1][2] } },
    { rule = { class = "Pidgin" },
    properties = { tag = tags[1][3] } },
    { rule = { class = "Xchat" },
    properties = {tag = tags[1][4] } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    -- properties = { tag = tags[1][2] } },
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    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)
    end
    end
    end)
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    -- {{{ Tag signal handler - selection
    -- - ASCII tags 1 [2] 3 4...
    -- - start with tag 1 named [1] in tag setup
    for s = 1, screencount do
    for t = 1, #tags[s] do
    tags[s][t]:add_signal("property::selected", function ()
    if tags[s][t].selected then
    tags[s][t].name = "[" .. tags[s][t].name .. "]"
    else--]]
    --tags[s][t].name = tags[s][t].name:gsub("[%[%]]", "")
    --[[ end
    end)
    end
    end
    I have tried to search around for a solution to this, but I am coming up short. Any idea on how to solve this?
    Last edited by kveras (2011-11-21 09:01:47)

    First of all, did you check the wiki and forums? We'll help you, but you have to try to fix it yourself first.
    You will need to provide more info if you want help.
    Did you set up Gnome to force fallback mode?
    Did you look at the Gnome wiki article? There's a few sections that sound like what your looking to do, but the examples are USING OTHER WM's. They still might be able to point you in the right direction.

  • Awesome WM text pointer disappears on tag switch

    Hi,
    I have the following problem. On one tag I keep Atom with some file open. If I use the mouse to click on some other tag and go back to Atom everything is ok. If I use modkey+<num> to switch to another tag and back while the mouse is over the task bar or over the widgets everything is ok. But when I switch the tag again with the keyboard shortcut and go back to Atom while the mouse is somewhere over the clients the text pointer in Atom disappears and I need to click somewhere in the text to make it reappear. And it's really annoying when coding to reach for the mouse every time you change to some other tag and back.
    Here's my rc.lua:
    Dremora Awesome WM config 2.0
    github.com/copycat-killer
    -- {{{ Required libraries
    local gears = require("gears")
    local awful = require("awful")
    awful.rules = require("awful.rules")
    require("awful.autofocus")
    local wibox = require("wibox")
    local beautiful = require("beautiful")
    local naughty = require("naughty")
    local drop = require("scratchdrop")
    local lain = require("lain")
    -- {{{ Error handling
    if awesome.startup_errors then
    naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, there were errors during startup!",
    text = awesome.startup_errors })
    end
    do
    local in_error = false
    awesome.connect_signal("debug::error", function (err)
    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
    -- {{{ Autostart applications
    function run_once(cmd)
    findme = cmd
    firstspace = cmd:find(" ")
    if firstspace then
    findme = cmd:sub(0, firstspace-1)
    end
    awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
    end
    run_once("urxvtd")
    run_once("unclutter")
    -- {{{ Variable definitions
    -- localization
    --os.setlocale(os.getenv("LANG"))
    -- beautiful init
    beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/dremora/theme.lua")
    -- common
    modkey = "Mod4"
    altkey = "Mod1"
    terminal = "xfce4-terminal" or "xterm"
    editor = os.getenv("EDITOR") or "nano" or "vi"
    editor_cmd = terminal .. " -e " .. editor
    -- user defined
    browser = "google-chrome"
    browser2 = "iron"
    gui_editor = "atom"
    -- graphics = "gimp"
    local layouts = {
    awful.layout.suit.floating,
    lain.layout.uselesstile,
    awful.layout.suit.fair,
    lain.layout.uselesstile.left,
    lain.layout.uselesstile.top
    -- {{{ Tags
    tags = {
    names = { "ƀ", "Ƅ", "Ɗ", "ƈ", "ƙ" },
    layout = { layouts[1], layouts[3], layouts[2], layouts[1], layouts[5] }
    for s = 1, screen.count() do
    tags[s] = awful.tag(tags.names, s, tags.layout)
    end
    -- {{{ Wallpaper
    if beautiful.wallpaper then
    for s = 1, screen.count() do
    gears.wallpaper.maximized(beautiful.wallpaper, s, true)
    end
    end
    -- {{{ Menu
    mymainmenu = awful.menu.new({ items = require("menugen").build_menu(),
    theme = { height = 16, width = 130 }})
    -- {{{ Wibox
    markup = lain.util.markup
    white = beautiful.fg_focus
    gray = "#858585"
    -- Textclock
    mytextclock = awful.widget.textclock(markup(gray, " %a")
    .. markup(white, " %d ") .. markup(gray, "%b ") .. markup(white, "%H:%M "))
    -- Calendar
    lain.widgets.calendar:attach(mytextclock, { fg = white })
    --[[ Mail IMAP check
    -- commented because it needs to be set before use
    mailwidget = lain.widgets.imap({
    timeout = 180,
    server = "server",
    mail = "mail",
    password = "keyring get mail",
    settings = function()
    mail_notification_preset.fg = white
    mail = ""
    count = ""
    if mailcount > 0 then
    mail = "Mail "
    count = mailcount .. " "
    end
    widget:set_markup(markup(gray, mail) .. markup(white, count))
    end
    -- MPD
    mpdwidget = lain.widgets.mpd({
    settings = function()
    mpd_notification_preset.fg = white
    artist = mpd_now.artist .. " "
    title = mpd_now.title .. " "
    file = mpd_now.file .. " "
    if mpd_now.state == "pause" then
    file = "mpd paused"
    elseif mpd_now.state == "stop" then
    file = ""
    end
    widget:set_markup(markup(gray, file))
    end
    -- /home fs
    fshome = lain.widgets.fs({
    partition = "/home",
    settings = function()
    fs_notification_preset.fg = white
    fs_header = ""
    fs_p = ""
    if fs_now.used >= 90 then
    fs_header = " Hdd "
    fs_p = fs_now.used
    end
    widget:set_markup(markup(gray, fs_header) .. markup(white, fs_p))
    end
    -- Battery
    batwidget = lain.widgets.bat({
    settings = function()
    bat_header = " Bat "
    bat_p = bat_now.perc .. " "
    if bat_now.status == "Not present" then
    bat_header = ""
    bat_p = ""
    end
    widget:set_markup(markup(gray, bat_header) .. markup(white, bat_p))
    end
    -- ALSA volume
    volumewidget = lain.widgets.alsa({
    settings = function()
    header = " Vol "
    vlevel = volume_now.level
    if volume_now.status == "off" then
    vlevel = vlevel .. "M "
    else
    vlevel = vlevel .. " "
    end
    widget:set_markup(markup(gray, header) .. markup(white, vlevel))
    end
    -- Weather
    yawn = lain.widgets.yawn(123456,
    settings = function()
    yawn_notification_preset.fg = white
    end
    -- Separators
    first = wibox.widget.textbox('<span font="Tamsyn 4"> </span>')
    arrl_pre = wibox.widget.imagebox()
    arrl_pre:set_image(beautiful.arrl_lr_pre)
    arrl_post = wibox.widget.imagebox()
    arrl_post:set_image(beautiful.arrl_lr_post)
    -- 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, height = 18 })
    -- Widgets that are aligned to the left
    local left_layout = wibox.layout.fixed.horizontal()
    left_layout:add(first)
    left_layout:add(mytaglist[s])
    left_layout:add(arrl_pre)
    left_layout:add(mylayoutbox[s])
    left_layout:add(arrl_post)
    left_layout:add(mypromptbox[s])
    left_layout:add(first)
    -- 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(first)
    right_layout:add(mpdwidget)
    --right_layout:add(mailwidget)
    right_layout:add(fshome)
    right_layout:add(batwidget)
    right_layout:add(volumewidget)
    right_layout:add(mytextclock)
    -- 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(
    -- Take a screenshot
    -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
    awful.key({ altkey }, "p", function() os.execute("screenshot") end),
    -- Tag browsing
    awful.key({ modkey }, "Left", awful.tag.viewprev ),
    awful.key({ modkey }, "Right", awful.tag.viewnext ),
    awful.key({ modkey }, "Escape", awful.tag.history.restore),
    -- Non-empty tag browsing
    awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
    awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
    -- Default client focus
    awful.key({ altkey }, "k",
    function ()
    awful.client.focus.byidx( 1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ altkey }, "j",
    function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end),
    -- By direction client focus
    awful.key({ modkey }, "j",
    function()
    awful.client.focus.bydirection("down")
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey }, "k",
    function()
    awful.client.focus.bydirection("up")
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey }, "h",
    function()
    awful.client.focus.bydirection("left")
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey }, "l",
    function()
    awful.client.focus.bydirection("right")
    if client.focus then client.focus:raise() end
    end),
    -- Show Menu
    -- awful.key({ modkey }, "w",
    -- function ()
    -- mymainmenu:show({ keygrabber = true })
    -- end),
    -- Show/Hide Wibox
    -- awful.key({ modkey }, "b", function ()
    -- mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
    -- end),
    -- On the fly useless gaps change
    awful.key({ altkey, "Control" }, "=", function () lain.util.useless_gaps_resize(1) end),
    awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) 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),
    awful.key({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
    awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
    awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
    awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
    awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
    awful.key({ modkey, "Control" }, "h", 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),
    -- 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),
    -- Dropdown terminal
    awful.key({ modkey, }, "z", function () drop(terminal) end),
    -- Widgets popups
    awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
    awful.key({ altkey, }, "h", function () fshome.show(7) end),
    awful.key({ altkey, }, "w", function () yawn.show(7) end),
    -- ALSA volume control
    awful.key({ }, "XF86AudioRaiseVolume",
    function ()
    awful.util.spawn(string.format("amixer -c %s set %s 1+", volumewidget.card, volumewidget.channel))
    volumewidget.update()
    end),
    awful.key({ }, "XF86AudioLowerVolume",
    function ()
    awful.util.spawn(string.format("amixer -c %s set %s 1-", volumewidget.card, volumewidget.channel))
    volumewidget.update()
    end),
    awful.key({ }, "XF86AudioMute",
    function ()
    awful.util.spawn(string.format("amixer -c %s set %s toggle", volumewidget.card, volumewidget.channel))
    --awful.util.spawn(string.format("amixer set %s toggle", volumewidget.channel))
    volumewidget.update()
    end),
    awful.key({ altkey, "Control" }, "m",
    function ()
    awful.util.spawn(string.format("amixer -c %s set %s 100%%", volumewidget.card, volumewidget.channel))
    volumewidget.update()
    end),
    -- MPD control
    awful.key({ }, "XF86AudioPlay",
    function ()
    awful.util.spawn_with_shell("mpc toggle || ncmpc toggle || pms toggle")
    mpdwidget.update()
    end),
    awful.key({ }, "XF86AudioStop",
    function ()
    awful.util.spawn_with_shell("mpc stop || ncmpc stop || pms stop")
    mpdwidget.update()
    end),
    awful.key({ }, "XF86AudioPrev",
    function ()
    awful.util.spawn_with_shell("mpc prev || ncmpc prev || pms prev")
    mpdwidget.update()
    end),
    awful.key({ }, "XF86AudioNext",
    function ()
    awful.util.spawn_with_shell("mpc next || ncmpc next || pms next")
    mpdwidget.update()
    end),
    -- Copy to clipboard
    awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
    -- User programs
    awful.key({ modkey }, "w", function () awful.util.spawn(browser) end),
    awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
    awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
    awful.key({ modkey }, "e", function () awful.util.spawn("thunar") end),
    -- Prompt
    awful.key({ modkey }, "r", 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),
    -- {{ Configures Keymap }} --
    awful.key({ "Control", "Shift" }, "k",
    function()
    awful.util.spawn("xmodmap /home/peio/.Xmodmap_Internal")
    naughty.notify({ timeout = 8, text = "Keyboard configured for internal." })
    end),
    awful.key({ "Control", "Shift" }, "l",
    function()
    awful.util.spawn("xmodmap /home/peio/.Xmodmap_External")
    naughty.notify({ timeout = 8, text = "Keyboard configured for external." })
    end)
    clientkeys = awful.util.table.join(
    awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, }, "q", 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)
    -- 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, 9 do
    globalkeys = awful.util.table.join(globalkeys,
    awful.key({ modkey }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    local tag = awful.tag.gettags(screen)[i]
    if tag then
    awful.tag.viewonly(tag)
    end
    end),
    awful.key({ modkey, "Control" }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    local tag = awful.tag.gettags(screen)[i]
    if tag then
    awful.tag.viewtoggle(tag)
    end
    end),
    awful.key({ modkey, "Shift" }, "#" .. i + 9,
    function ()
    local tag = awful.tag.gettags(client.focus.screen)[i]
    if client.focus and tag then
    awful.client.movetotag(tag)
    end
    end),
    awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
    function ()
    local tag = awful.tag.gettags(client.focus.screen)[i]
    if client.focus and tag then
    awful.client.toggletag(tag)
    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,
    size_hints_honor = false } },
    { rule = { class = "URxvt" },
    properties = { opacity = 0.99 } },
    { rule = { class = "MPlayer" },
    properties = { floating = true } },
    { rule = { class = "Dwb" },
    properties = { tag = tags[1][1] } },
    { rule = { class = "Iron" },
    properties = { tag = tags[1][1] } },
    { rule = { instance = "plugin-container" },
    properties = { tag = tags[1][1] } },
    { rule = { class = "Gimp" },
    properties = { tag = tags[1][4] } },
    { rule = { class = "Gimp", role = "gimp-image-window" },
    properties = { maximized_horizontal = true,
    maximized_vertical = true } },
    -- {{{ 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 and 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
    local titlebars_enabled = false
    if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
    -- buttons for the titlebar
    local 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)
    -- Title in the middle
    local middle_layout = wibox.layout.flex.horizontal()
    local title = awful.titlebar.widget.titlewidget(c)
    title:set_align("center")
    middle_layout:add(title)
    middle_layout:buttons(buttons)
    local layout = wibox.layout.align.horizontal()
    layout:set_middle(middle_layout)
    awful.titlebar(c,{size=18}):set_widget(layout)
    end
    end)
    -- No border for maximized clients
    client.connect_signal("focus",
    function(c)
    if c.maximized_horizontal == true and c.maximized_vertical == true then
    c.border_color = beautiful.border_normal
    else
    c.border_color = beautiful.border_focus
    end
    end)
    client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    -- {{{ Arrange signal handler
    for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
    local clients = awful.client.visible(s)
    local layout = awful.layout.getname(awful.layout.get(s))
    if #clients > 0 then -- Fine grained borders and floaters control
    for _, c in pairs(clients) do -- Floaters always have borders
    if awful.client.floating.get(c) or layout == "floating" then
    c.border_width = beautiful.border_width
    -- No borders with only one visible client
    elseif #clients == 1 or layout == "max" then
    clients[1].border_width = 0
    else
    c.border_width = beautiful.border_width
    end
    end
    end
    end)
    end
    function run_once(cmd)
    findme = cmd
    firstspace = cmd:find(" ")
    if firstspace then
    findme = cmd:sub(0, firstspace-1)
    end
    awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
    end
    run_once("nm-applet")
    If someone can help me I'll be really thankful.
    Best regards,
    Georgi

    This is weird behavior that I don't experience with Awesome and Atom. Does this happen only with Atom, or with anything? One aspect of your rc.lua that might cause something like this is the sloppy focusing, this bit here:
    -- 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)
    Try disabling that, by commenting it out entirely, and see if the problem persists.
    If it only happens with Atom, then maybe Atom conflicts for some reason with this sloppy focusing.

  • How do I get more tagged/bookmarked results to show up in awesome bar? Currently it will only show 4.

    When I type a word into the address/url/awesome bar that is a word I know I have used as a tag on several bookmarked pages, only 4 of the results in the drop down are bookmarked pages. The rest of the pages in the drop down are other pages suggested from the web. Because only 4 of the results are pages I've tagged, the page I want (and have tagged) often doesn't show up. Is there a setting I can change to make it show more tagged results? Or is there a way after I get the original results to have it add additional tagged/bookmarked items?

    That can be a problem with the Fastestfox extension.
    See [[Troubleshooting extensions and themes]]
    In the FastestFox Options, uncheck "Enhance Awesomebar"
    See image 10 in the image gallery: https://addons.mozilla.org/firefox/addon/9825
    https://addons.mozilla.org/img/uploads/previews/thumbs/37/37975.png

  • [SOLVED] Error when starting awesome WM.

    I'm not sure if this should go here or in Workstation User, so sorry if I got it wrong. When I try to startx with "exec awesome &" in my .xinitrc I get an "expected keysym, got XF86Info: line 914 of inet" error. Someone suggested that it could be my keybindings in my rc.lua for awesome but I tried someone else's rc.lua and still got it.
    Error Log
    xauth: creating new authority file /home/tim/.serverauth.27451
    X.Org X Server 1.5.0
    Release Date:
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.26-ARCH i686
    Current Operating System: Linux tim-laptop 2.6.26-ARCH #1 SMP PREEMPT Tue Sep 9 10:15:21 UTC 2008 i686
    Build Date: 06 September 2008 05:03:06PM
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Module Loader present
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Sat Sep 20 11:49:21 2008
    (==) Using config file: "/etc/X11/xorg.conf"
    expected keysym, got XF86Info: line 914 of inet
    expected keysym, got XF86Info: line 914 of inet
    expected keysym, got XF86Info: line 914 of inet
    waiting for X server to shut down .
    Xorg.log
    X.Org X Server 1.5.0
    Release Date:
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.26-ARCH i686
    Current Operating System: Linux tim-laptop 2.6.26-ARCH #1 SMP PREEMPT Tue Sep 9 10:15:21 UTC 2008 i686
    Build Date: 06 September 2008 05:03:06PM
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Module Loader present
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Sat Sep 20 11:49:21 2008
    (==) Using config file: "/etc/X11/xorg.conf"
    (==) ServerLayout "X.org Configured"
    (**) |-->Screen "Screen0" (0)
    (**) | |-->Monitor "Monitor0"
    (**) | |-->Device "Card0"
    (**) |-->Input Device "Mouse0"
    (**) |-->Input Device "Keyboard0"
    (==) Automatically adding devices
    (==) Automatically enabling devices
    (==) Including the default font path /usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1.
    (**) FontPath set to:
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1,
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1
    (**) ModulePath set to "/usr/lib/xorg/modules"
    (II) Open ACPI successful (/var/run/acpid.socket)
    (II) Loader magic: 0x81d5660
    (II) Module ABI versions:
    X.Org ANSI C Emulation: 0.4
    X.Org Video Driver: 4.1
    X.Org XInput driver : 2.1
    X.Org Server Extension : 1.1
    X.Org Font Renderer : 0.6
    (II) Loader running on linux
    (--) using VT number 7
    (--) PCI:*(0@0:2:0) Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller rev 3, Mem @ 0xd0300000/0, 0xc0000000/0, 0xd0400000/0, I/O @ 0x00001800/0
    (--) PCI: (0@0:2:1) Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller rev 3, Mem @ 0xd0380000/0
    (II) System resource ranges:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [5] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    (II) "extmod" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dbe" will be loaded. This was enabled by default and also specified in the config file.
    (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
    (II) "freetype" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri" will be loaded. This was enabled by default and also specified in the config file.
    (II) LoadModule: "dri"
    (II) Loading /usr/lib/xorg/modules/extensions//libdri.so
    (II) Module dri: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension XFree86-DRI
    (II) LoadModule: "glx"
    (II) Loading /usr/lib/xorg/modules/extensions//libglx.so
    (II) Module glx: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Server Extension, version 1.1
    (==) AIGLX enabled
    (==) Exporting typical set of GLX visuals
    (II) Loading extension GLX
    (II) LoadModule: "dbe"
    (II) Loading /usr/lib/xorg/modules/extensions//libdbe.so
    (II) Module dbe: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension DOUBLE-BUFFER
    (II) LoadModule: "extmod"
    (II) Loading /usr/lib/xorg/modules/extensions//libextmod.so
    (II) Module extmod: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension SHAPE
    (II) Loading extension MIT-SUNDRY-NONSTANDARD
    (II) Loading extension BIG-REQUESTS
    (II) Loading extension SYNC
    (II) Loading extension MIT-SCREEN-SAVER
    (II) Loading extension XC-MISC
    (II) Loading extension XFree86-VidModeExtension
    (II) Loading extension XFree86-Misc
    (II) Loading extension XFree86-DGA
    (II) Loading extension DPMS
    (II) Loading extension TOG-CUP
    (II) Loading extension Extended-Visual-Information
    (II) Loading extension XVideo
    (II) Loading extension XVideo-MotionCompensation
    (II) Loading extension X-Resource
    (II) LoadModule: "synaptics"
    (II) Loading /usr/lib/xorg/modules/input//synaptics_drv.so
    (II) Module synaptics: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 0.15.2
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.1
    (II) LoadModule: "xtrap"
    (II) Loading /usr/lib/xorg/modules/extensions//libxtrap.so
    (II) Module xtrap: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 1.1
    (II) Loading extension DEC-XTRAP
    (II) LoadModule: "freetype"
    (II) Loading /usr/lib/xorg/modules/fonts//libfreetype.so
    (II) Module freetype: vendor="X.Org Foundation & the After X-TT Project"
    compiled for 1.5.0, module version = 2.1.0
    Module class: X.Org Font Renderer
    ABI class: X.Org Font Renderer, version 0.6
    (II) Loading font FreeType
    (II) LoadModule: "evdev"
    (II) Loading /usr/lib/xorg/modules/input//evdev_drv.so
    (II) Module evdev: vendor="X.Org Foundation"
    compiled for 1.4.99.906, module version = 2.0.4
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.1
    (II) LoadModule: "intel"
    (II) Loading /usr/lib/xorg/modules/drivers//intel_drv.so
    (II) Module intel: vendor="X.Org Foundation"
    compiled for 1.4.99.906, module version = 2.4.2
    Module class: X.Org Video Driver
    ABI class: X.Org Video Driver, version 4.1
    (II) LoadModule: "synaptics"
    (II) Reloading /usr/lib/xorg/modules/input//synaptics_drv.so
    (II) LoadModule: "kbd"
    (II) Loading /usr/lib/xorg/modules/input//kbd_drv.so
    (II) Module kbd: vendor="X.Org Foundation"
    compiled for 1.4.2, module version = 1.3.1
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 2.0
    (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
    i810-dc100, i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G,
    E7221 (i915), 915GM, 945G, 945GM, 945GME, 965G, G35, 965Q, 946GZ,
    965GM, 965GME/GLE, G33, Q35, Q33,
    Mobile Intel® GM45 Express Chipset,
    Intel Integrated Graphics Device, G45/G43, Q45/Q43
    (II) Primary Device is: PCI 00@00:02:0
    (II) resource ranges after xf86ClaimFixedResources() call:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [5] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    (II) resource ranges after probing:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] 0 0 0x000a0000 - 0x000affff (0x10000) MS[b]
    [5] 0 0 0x000b0000 - 0x000b7fff (0x8000) MS[b]
    [6] 0 0 0x000b8000 - 0x000bffff (0x8000) MS[b]
    [7] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [8] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    [9] 0 0 0x000003b0 - 0x000003bb (0xc) IS[b]
    [10] 0 0 0x000003c0 - 0x000003df (0x20) IS[b]
    (II) Loading sub module "int10"
    (II) LoadModule: "int10"
    (II) Loading /usr/lib/xorg/modules//libint10.so
    (II) Module int10: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "vbe"
    (II) LoadModule: "vbe"
    (II) Loading /usr/lib/xorg/modules//libvbe.so
    (II) Module vbe: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.1.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "vgahw"
    (II) LoadModule: "vgahw"
    (II) Loading /usr/lib/xorg/modules//libvgahw.so
    (II) Module vgahw: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 0.1.0
    ABI class: X.Org Video Driver, version 4.1
    (==) intel(0): Depth 24, (==) framebuffer bpp 32
    (==) intel(0): RGB weight 888
    (==) intel(0): Default visual is TrueColor
    (**) intel(0): Option "AccelMethod" "exa"
    (II) intel(0): Integrated Graphics Chipset: Intel(R) 945GM
    (--) intel(0): Chipset: "945GM"
    (--) intel(0): Linear framebuffer at 0xC0000000
    (--) intel(0): IO registers at addr 0xD0300000
    (II) intel(0): 2 display pipes available.
    (**) intel(0): Using EXA for acceleration
    (II) Loading sub module "int10"
    (II) LoadModule: "int10"
    (II) Reloading /usr/lib/xorg/modules//libint10.so
    (II) intel(0): initializing int10
    (WW) intel(0): Bad V_BIOS checksum
    (II) intel(0): Primary V_BIOS segment is: 0xc000
    (II) intel(0): VESA BIOS detected
    (II) intel(0): VESA VBE Version 3.0
    (II) intel(0): VESA VBE Total Mem: 7872 kB
    (II) intel(0): VESA VBE OEM: Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS
    (II) intel(0): VESA VBE OEM Software Rev: 1.0
    (II) intel(0): VESA VBE OEM Vendor: Intel Corporation
    (II) intel(0): VESA VBE OEM Product: Intel(r) 82945GM Chipset Family Graphics Controller
    (II) intel(0): VESA VBE OEM Product Rev: Hardware Version 0.0
    (II) Loading sub module "ddc"
    (II) LoadModule: "ddc"
    (II) Module "ddc" already built-in
    (II) Loading sub module "i2c"
    (II) LoadModule: "i2c"
    (II) Module "i2c" already built-in
    (II) intel(0): Output VGA using monitor section Monitor0
    (II) intel(0): I2C bus "CRTDDC_A" initialized.
    (II) intel(0): Output LVDS has no monitor section
    (II) intel(0): I2C bus "LVDSDDC_C" initialized.
    (II) intel(0): Attempting to determine panel fixed mode.
    (II) intel(0): I2C device "LVDSDDC_C:ddc2" registered at address 0xA0.
    (II) intel(0): EDID vendor "LPL", prod id 49152
    (II) intel(0): found backlight control method /sys/class/backlight/acpi_video1
    (II) intel(0): Output TV has no monitor section
    (II) intel(0): EDID vendor "LPL", prod id 49152
    (II) intel(0): Output VGA disconnected
    (II) intel(0): Output LVDS connected
    (II) intel(0): Output TV disconnected
    (II) intel(0): Using exact sizes for initial modes
    (II) intel(0): Output LVDS using initial mode 1280x800
    (II) intel(0): Monitoring connected displays enabled
    (II) intel(0): detected 256 kB GTT.
    (II) intel(0): detected 7932 kB stolen memory.
    (==) intel(0): video overlay key set to 0x101fe
    (==) intel(0): Will not try to enable page flipping
    (==) intel(0): Triple buffering disabled
    (==) intel(0): Intel XvMC decoder disabled
    (==) intel(0): Using gamma correction (1.0, 1.0, 1.0)
    (==) intel(0): DPI set to (96, 96)
    (II) Loading sub module "fb"
    (II) LoadModule: "fb"
    (II) Loading /usr/lib/xorg/modules//libfb.so
    (II) Module fb: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "exa"
    (II) LoadModule: "exa"
    (II) Loading /usr/lib/xorg/modules//libexa.so
    (II) Module exa: vendor="X.Org Foundation"
    compiled for 1.5.0, module version = 2.4.0
    ABI class: X.Org Video Driver, version 4.1
    (II) Loading sub module "ramdac"
    (II) LoadModule: "ramdac"
    (II) Module "ramdac" already built-in
    (II) intel(0): Comparing regs from server start up to After PreInit
    (WW) intel(0): Register 0x61200 (PP_STATUS) changed from 0xc0000008 to 0xd000000a
    (WW) intel(0): PP_STATUS before: on, ready, sequencing idle
    (WW) intel(0): PP_STATUS after: on, ready, sequencing on
    (WW) intel(0): Register 0x71024 (PIPEBSTAT) changed from 0x00000202 to 0x80000202
    (WW) intel(0): PIPEBSTAT before: status: VSYNC_INT_STATUS VBLANK_INT_STATUS
    (WW) intel(0): PIPEBSTAT after: status: FIFO_UNDERRUN VSYNC_INT_STATUS VBLANK_INT_STATUS
    (==) Depth 24 pixmap format is 32 bpp
    (II) do I need RAC? No, I don't.
    (II) resource ranges after preInit:
    [0] -1 0 0xffffffff - 0xffffffff (0x1) MX[b]
    [1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[b]
    [2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[b]
    [3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[b]
    [4] 0 0 0x000a0000 - 0x000affff (0x10000) MS[b](OprD)
    [5] 0 0 0x000b0000 - 0x000b7fff (0x8000) MS[b](OprD)
    [6] 0 0 0x000b8000 - 0x000bffff (0x8000) MS[b](OprD)
    [7] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[b]
    [8] -1 0 0x00000000 - 0x00000000 (0x1) IX[b]
    [9] 0 0 0x000003b0 - 0x000003bb (0xc) IS[b](OprU)
    [10] 0 0 0x000003c0 - 0x000003df (0x20) IS[b](OprU)
    (II) intel(0): Kernel reported 238592 total, 1 used
    (II) intel(0): I830CheckAvailableMemory: 954364 kB available
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenByBusid: Searching for BusID pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 11, (OK)
    drmOpenByBusid: drmOpenMinor returns 11
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    (II) [drm] DRM interface version 1.3
    (II) [drm] DRM open master succeeded.
    (II) intel(0): [drm] Using the DRM lock SAREA also for drawables.
    (II) intel(0): [drm] framebuffer mapped by ddx driver
    (II) intel(0): [drm] added 1 reserved context for kernel
    (II) intel(0): X context handle = 0x1
    (II) intel(0): [drm] installed DRM signal handler
    (**) intel(0): Framebuffer compression enabled
    (**) intel(0): Tiling enabled
    (==) intel(0): VideoRam: 262144 KB
    (II) intel(0): Attempting memory allocation with tiled buffers.
    (II) intel(0): Tiled allocation successful.
    (II) intel(0): [drm] Registers = 0xd0300000
    (II) intel(0): [drm] ring buffer = 0xc0000000
    (II) intel(0): [drm] mapped front buffer at 0xc1000000, handle = 0xc1000000
    (II) intel(0): [drm] mapped back buffer at 0xc4000000, handle = 0xc4000000
    (II) intel(0): [drm] mapped depth buffer at 0xc5000000, handle = 0xc5000000
    (II) intel(0): [drm] mapped classic textures at 0xc6000000, handle = 0xc6000000
    (II) intel(0): [drm] Initialized kernel agp heap manager, 33554432
    (II) intel(0): [dri] visual configs initialized
    (II) intel(0): Page Flipping disabled
    (II) intel(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
    (II) EXA(0): Offscreen pixmap area of 31457280 bytes
    (II) EXA(0): Driver registered support for the following operations:
    (II) Solid
    (II) Copy
    (II) Composite (RENDER acceleration)
    (==) intel(0): Backing store disabled
    (==) intel(0): Silken mouse enabled
    (II) intel(0): Initializing HW Cursor
    (II) intel(0): [DRI] installation complete
    (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x01000000 (pgoffset 4096)
    (II) intel(0): xf86BindGARTMemory: bind key 1 at 0x02000000 (pgoffset 8192)
    (II) intel(0): xf86BindGARTMemory: bind key 2 at 0x04000000 (pgoffset 16384)
    (II) intel(0): xf86BindGARTMemory: bind key 3 at 0x05000000 (pgoffset 20480)
    (II) intel(0): xf86BindGARTMemory: bind key 4 at 0x06000000 (pgoffset 24576)
    (II) intel(0): Fixed memory allocation layout:
    (II) intel(0): 0x00000000-0x0001ffff: ring buffer (128 kB)
    (II) intel(0): 0x00020000-0x0061ffff: compressed frame buffer (6144 kB, 0x000000003f820000 physical
    (II) intel(0): 0x00620000-0x00620fff: compressed ll buffer (4 kB, 0x000000003fe20000 physical
    (II) intel(0): 0x00621000-0x0062afff: HW cursors (40 kB, 0x000000003fe21000 physical
    (II) intel(0): 0x0062b000-0x00632fff: logical 3D context (32 kB)
    (II) intel(0): 0x00633000-0x00633fff: overlay registers (4 kB, 0x000000003fe33000 physical
    (II) intel(0): 0x007bf000: end of stolen memory
    (II) intel(0): 0x01000000-0x01ffffff: front buffer (10240 kB) X tiled
    (II) intel(0): 0x02000000-0x03dfffff: exa offscreen (30720 kB)
    (II) intel(0): 0x04000000-0x04ffffff: back buffer (10240 kB) X tiled
    (II) intel(0): 0x05000000-0x05ffffff: depth buffer (10240 kB) X tiled
    (II) intel(0): 0x06000000-0x07ffffff: classic textures (32768 kB)
    (II) intel(0): 0x10000000: end of aperture
    (II) intel(0): Selecting standard 18 bit TMDS pixel format.
    (II) intel(0): Output configuration:
    (II) intel(0): Pipe A is off
    (II) intel(0): Display plane A is now disabled and connected to pipe A.
    (II) intel(0): Pipe B is on
    (II) intel(0): Display plane B is now enabled and connected to pipe B.
    (II) intel(0): Output VGA is connected to pipe none
    (II) intel(0): Output LVDS is connected to pipe B
    (II) intel(0): Output TV is connected to pipe none
    (II) intel(0): [drm] dma control initialized, using IRQ 16
    (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
    (II) intel(0): Selecting standard 18 bit TMDS pixel format.
    (II) intel(0): DPMS enabled
    (II) intel(0): Set up textured video
    (II) intel(0): Set up overlay video
    (II) intel(0): direct rendering: Enabled
    (--) RandR disabled
    (II) Initializing built-in extension MIT-SHM
    (II) Initializing built-in extension XInputExtension
    (II) Initializing built-in extension XTEST
    (II) Initializing built-in extension XKEYBOARD
    (II) Initializing built-in extension XC-APPGROUP
    (II) Initializing built-in extension SECURITY
    (II) Initializing built-in extension XINERAMA
    (II) Initializing built-in extension XFIXES
    (II) Initializing built-in extension RENDER
    (II) Initializing built-in extension RANDR
    (II) Initializing built-in extension COMPOSITE
    (II) Initializing built-in extension DAMAGE
    (II) Initializing built-in extension XEVIE
    (II) AIGLX: Screen 0 is not DRI2 capable
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 12, (OK)
    drmOpenByBusid: Searching for BusID pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 12, (OK)
    drmOpenByBusid: drmOpenMinor returns 12
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
    (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
    (II) AIGLX: enabled GLX_texture_from_pixmap with driver support
    (II) AIGLX: Loaded and initialized /usr/lib/xorg/modules/dri/i915_dri.so
    (II) GLX: Initialized DRI GL provider for screen 0
    (II) intel(0): Setting screen physical size to 304 x 190
    (II) Synaptics touchpad driver version 0.15.2
    (--) Mouse0 auto-dev sets device to /dev/input/event8
    (II) Mouse0: x-axis range 1472 - 5472
    (II) Mouse0: y-axis range 1408 - 4448
    (**) Option "Device" "/dev/input/event8"
    (**) Option "SHMConfig" "true"
    (**) Option "LeftEdge" "1700"
    (**) Option "RightEdge" "5300"
    (**) Option "TopEdge" "1700"
    (**) Option "BottomEdge" "4200"
    (**) Option "FingerLow" "25"
    (**) Option "FingerHigh" "30"
    (**) Option "MaxTapTime" "180"
    (**) Option "MaxTapMove" "220"
    (**) Option "VertScrollDelta" "100"
    (--) Mouse0 touchpad found
    (**) Option "CorePointer"
    (**) Mouse0: always reports core events
    (**) Option "CoreKeyboard"
    (**) Keyboard0: always reports core events
    (**) Option "Protocol" "standard"
    (**) Keyboard0: Protocol: standard
    (**) Option "AutoRepeat" "500 30"
    (**) Option "XkbRules" "xorg"
    (**) Keyboard0: XkbRules: "xorg"
    (**) Option "XkbModel" "pc105"
    (**) Keyboard0: XkbModel: "pc105"
    (**) Option "XkbLayout" "us"
    (**) Keyboard0: XkbLayout: "us"
    (**) Option "CustomKeycodes" "off"
    (**) Keyboard0: CustomKeycodes disabled
    (II) evaluating device (Mouse0)
    (II) XINPUT: Adding extended input device "Mouse0" (type: TOUCHPAD)
    (II) evaluating device (Keyboard0)
    (II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
    (II) Mouse0: x-axis range 1472 - 5472
    (II) Mouse0: y-axis range 1408 - 4448
    (--) Mouse0 touchpad found
    (II) config/hal: Adding input device SynPS/2 Synaptics TouchPad
    (II) Synaptics touchpad driver version 0.15.2
    (II) SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472
    (II) SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448
    (**) Option "Device" "/dev/input/event8"
    (--) SynPS/2 Synaptics TouchPad touchpad found
    (**) SynPS/2 Synaptics TouchPad: always reports core events
    (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD)
    (II) SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472
    (II) SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448
    (WW) SynPS/2 Synaptics TouchPad can't grab event device, errno=16
    (--) SynPS/2 Synaptics TouchPad touchpad found
    (II) config/hal: Adding input device Video Bus
    (**) Video Bus: always reports core events
    (**) Video Bus: Device: "/dev/input/event6"
    (II) Video Bus: Found keys
    (II) Video Bus: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) Video Bus: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) Video Bus: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) Video Bus: xkb_layout: "us"
    (II) config/hal: Adding input device Video Bus
    (**) Video Bus: always reports core events
    (**) Video Bus: Device: "/dev/input/event5"
    (II) Video Bus: Found keys
    (II) Video Bus: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) Video Bus: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) Video Bus: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) Video Bus: xkb_layout: "us"
    (II) config/hal: Adding input device AT Translated Set 2 keyboard
    (**) AT Translated Set 2 keyboard: always reports core events
    (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
    (II) AT Translated Set 2 keyboard: Found keys
    (II) AT Translated Set 2 keyboard: Configuring as keyboard
    (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
    (**) Option "xkb_rules" "base"
    (**) AT Translated Set 2 keyboard: xkb_rules: "base"
    (**) Option "xkb_model" "evdev"
    (**) AT Translated Set 2 keyboard: xkb_model: "evdev"
    (**) Option "xkb_layout" "us"
    (**) AT Translated Set 2 keyboard: xkb_layout: "us"
    (II) config/hal: Adding input device Macintosh mouse button emulation
    (**) Macintosh mouse button emulation: always reports core events
    (**) Macintosh mouse button emulation: Device: "/dev/input/event0"
    (II) Macintosh mouse button emulation: Found x and y relative axes
    (II) Macintosh mouse button emulation: Found mouse buttons
    (II) Macintosh mouse button emulation: Configuring as mouse
    (II) XINPUT: Adding extended input device "Macintosh mouse button emulation" (type: MOUSE)
    (II) UnloadModule: "synaptics"
    (II) UnloadModule: "kbd"
    (II) UnloadModule: "synaptics"
    (II) Video Bus: Close
    (II) UnloadModule: "evdev"
    (II) Video Bus: Close
    (II) UnloadModule: "evdev"
    (II) AT Translated Set 2 keyboard: Close
    (II) UnloadModule: "evdev"
    (II) Macintosh mouse button emulation: Close
    (II) UnloadModule: "evdev"
    (II) intel(0): xf86UnbindGARTMemory: unbind key 0
    (II) intel(0): xf86UnbindGARTMemory: unbind key 1
    (II) intel(0): xf86UnbindGARTMemory: unbind key 2
    (II) intel(0): xf86UnbindGARTMemory: unbind key 3
    (II) intel(0): xf86UnbindGARTMemory: unbind key 4
    (II) intel(0): [drm] removed 1 reserved context for kernel
    (II) intel(0): [drm] unmapping 8192 bytes of SAREA 0xf8acb000 at 0xb7a29000
    (II) intel(0): [drm] Closed DRM master.
    xorg.conf
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection
    Section "Files"
    # RgbPath "/usr/share/X11/rgb"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "dri"
    Load "glx"
    # Load "record"
    Load "GLcore"
    Load "dbe"
    Load "extmod"
    Load "synaptics"
    Load "xtrap"
    Load "freetype"
    Load "evdev"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Driver "synaptics"
    Identifier "Mouse0"
    Option "Device" "/dev/mouse0"
    Option "Protocol" "auto-dev"
    Option "LeftEdge" "1700"
    Option "RightEdge" "5300"
    Option "TopEdge" "1700"
    Option "BottomEdge" "4200"
    Option "FingerLow" "25"
    Option "FingerHigh" "30"
    Option "MaxTapTime" "180"
    Option "MaxTapMove" "220"
    Option "VertScrollDelta" "100"
    Option "MinSpeed" "0.06"
    Option "MaxSpeed" "0.12"
    Option "AccelFactor" "0.0030"
    Option "SHMConfig" "true"
    # Option "Repeater" "/dev/ps2mouse"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    #DisplaySize 1280 800 # mm
    Identifier "Monitor0"
    VendorName "LPL"
    ModelName "c000"
    EndSection
    Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
    ### [arg]: arg optional
    #Option "NoAccel" # [<bool>]
    #Option "SWcursor" # [<bool>]
    #Option "ColorKey" # <i>
    #Option "CacheLines" # <i>
    #Option "Dac6Bit" # [<bool>]
    #Option "DRI" # [<bool>]
    #Option "NoDDC" # [<bool>]
    #Option "ShowCache" # [<bool>]
    #Option "XvMCSurfaces" # <i>
    #Option "PageFlip" # [<bool>]
    Identifier "Card0"
    Driver "intel"
    VendorName "Intel Corporation"
    BoardName "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
    BusID "PCI:0:2:0"
    Option "AccelMethod" "exa"
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    EndSection
    .xinitrc
    #!/bin/sh
    exec openbox-session
    #ivman &
    #exec awesome &
    #/usr/lib/wicd/wicd-client.py &
    #xterm -bg black -fg white
    rc.lua
    -- GGLucas' Awesome-3 Lua Config :D
    -- Version 2
    -- This config is for use with awesome 3.0.
    -- If you have any suggestions or questions, feel free
    -- to pass me a message, find me in #awesome on OFTC, or
    -- email me at <lucas[at]glacicle.com>
    -- I use both wicked and eminent, so to use it,
    -- you'll need to get both those helper libraries too.
    -- Note that I use all-custom keybindings, so you might
    -- want to copy the default rc.lua's keybindings
    -- into here if you wish to use those, although you might
    -- find you like mine better :P
    ---- {{{ Require lua libraries
    -- Shipped with awesome
    require("awful")
    require("beautiful")
    -- External
    require("wicked") -- Widgets
    require("eminent") -- Dynamic tagging
    ---- {{{ 'Beautiful' theme settings
    -- Font
    beautiful.font = "Terminus 8"
    -- Background
    beautiful.bg_normal = '#22222222'
    beautiful.bg_focus = '#285577'
    beautiful.bg_sbfocus = '#11335565'
    beautiful.bg_urgent = '#A10000'
    -- Foreground
    beautiful.fg_normal = '#999999'
    beautiful.fg_focus = '#ffffff'
    beautiful.fg_urgent = '#ffffff'
    -- Border
    beautiful.border_width = 2
    beautiful.border_normal = '#333333'
    beautiful.border_focus = '#4C7899'
    beautiful.border_marked = '#91231c'
    ---- {{{ Modkeys
    key = {}
    key.none = {}
    key.alt = {"Mod1"}
    key.super = {"Mod4"}
    key.shift = {"Shift"}
    key.control = {"Control"}
    key.super_alt = {key.super[1], key.alt[1]}
    key.super_shift = {key.super[1], key.shift[1]}
    key.super_control = {key.super[1], key.control[1]}
    key.control_alt = {key.control[1], key.alt[1]}
    key.shift_alt = {key.shift[1], key.alt[1]}
    ---- {{{ Settings
    -- Initialise tables
    settings = {}
    settings.widget = {}
    settings.apps = {}
    settings.tag = {}
    settings.bindings = {}
    -- {{{ General
    -- Widget spacer and separator
    settings.widget_spacer = " "
    settings.widget_separator = " "
    -- Warp mouse
    settings.warp_mouse = true
    -- New become master
    settings.new_become_master = false
    -- Tag mwfact
    settings.tag.mwfact = 0.618033988769
    -- {{{ Applications
    -- Terminal application
    settings.apps.terminal = 'xterm'
    -- Terminal with gnu screen
    settings.apps.gnu_screen = settings.apps.terminal..' -e zsh -c "exec screen -x main"'
    -- Terminal with gnu screen over ssh to my main machine
    settings.apps.gnu_screen_ssh_desktop = settings.apps.terminal..' -e zsh -c "ssh -t me.glacicle.com screen -x main"'
    -- Terminal with gnu screen over ssh to my vps server
    settings.apps.gnu_screen_ssh_server = settings.apps.terminal..' -e zsh -c "ssh -t glacicle.com screen -x"'
    -- Command to lock the screen
    settings.apps.lock_screen = 'xscreensaver-command -lock'
    -- Command to turn screen off with DPMS
    settings.apps.screen_off = 'sleep 1; xset dpms force off'
    -- File manager application
    settings.apps.filemanager = settings.apps.terminal..' -e zsh -c "vifm %s"'
    -- Toggle music
    -- Note: mpdtoggle is my own script for finding out if
    -- I want to toggle or play/stop, replace it with mpc if
    -- you wish to use it.
    settings.apps.music_toggle = "mpdtoggle toggle"
    -- {{{ Floating windows
    settings.floating = {
    ["gimp"] = true,
    ["urxvtcnotify"] = true,
    -- {{{ Other
    -- Check what widget mode to use
    if io.open(os.getenv("HOME").."/.laptop_mode") then
    -- Special file exists, display widgets I want
    -- on my laptop
    settings.widget_mode = 'laptop'
    else
    settings.widget_mode = 'desktop'
    end
    -- Highlight statusbar of focussed screen on multiple-monitor setups
    if screen.count() > 1 then
    settings.statusbar_highlight_focus = {true, 1}
    end
    ---- {{{ Keybindings
    -- Initialise table
    settings.bindings.wm = {}
    settings.bindings.mouse = {}
    -- {{{ Open the filemanager at specific locations
    settings.bindings.filemanager = {
    -- Data partition
    ["/data"] = {key.alt, "d"},
    -- Data partition on desktop pc from laptop (sshfs mount)
    ["/desktop/data"] = {key.shift_alt, "d"},
    -- Home Directory
    [os.getenv("HOME")] = {key.alt, "a"},
    -- {{{ Run specific commands
    settings.bindings.commands = {
    -- Open Terminal
    [settings.apps.terminal] = {key.alt, "q"},
    -- GNU Screen
    [settings.apps.gnu_screen] = {key.super, "k"},
    -- GNU Screen over SSH to Desktop
    [settings.apps.gnu_screen_ssh_desktop] = {key.super_shift, "k"},
    -- GNU Screen over SSH to VPS
    [settings.apps.gnu_screen_ssh_server] = {key.super_alt, "k"},
    -- Lock screen
    [settings.apps.lock_screen] = {key.super, "l"},
    -- Screen off with DPMS
    [settings.apps.screen_off] = {key.super, "o"},
    -- Toggle music
    [settings.apps.music_toggle] = {key.alt, "e"},
    -- {{{ Client keybindings
    settings.bindings.wm.client = {
    -- Alt+`: Close window
    [function() client.focus:kill() end] = {key.alt, "#49"},
    -- Mod+q: Focus previous window
    [function() awful.client.focusbyidx(-1) end] = {key.super, "q"},
    -- Mod+w: Focus next window
    [function() awful.client.focusbyidx(1) end] = {key.super, "w"},
    -- Mod+Shift+q: Swap with previous window
    [function() awful.client.swap(-1) end] = {key.super_shift, "q"},
    -- Mod+Shift+w: Swap with previous window
    [function() awful.client.swap(1) end] = {key.super_shift, "w"},
    -- Mod+c: Toggle floating
    [awful.client.togglefloating] = {key.super, "c"},
    -- Mod+\: Make window master
    [function() local c = awful.client.master(); if c ~= client.focus then c:swap(client.focus) end end] =
    {key.super, "#51"},
    -- Mod+Shift+a: Move window to previous tag
    [function () awful.client.movetotag(eminent.tag.getprev(mouse.screen)) end] =
    {key.super_shift, "a"},
    -- Mod+Shift+s: Move window to next tag
    [function () awful.client.movetotag(eminent.tag.getnext(mouse.screen)) end] =
    {key.super_shift, "s"},
    -- Mod+Shift+e: Move window to next screen
    [function () s = client.focus.screen+1; if s > screen.count() then s = 1 end; client.focus.screen = s end] =
    {key.super_shift, "e"},
    -- Mod+Shift+d: Move window to previous screen
    [function () s = client.focus.screen-1; if s < 1 then s = screen.count() end; client.focus.screen = s end] =
    {key.super_shift, "d"},
    -- {{{ Tag bindings
    settings.bindings.wm.tag = {
    -- Mod+a: Switch to previous tag
    [function() eminent.tag.prev(mouse.screen) end] = {key.super, "a"},
    -- Mod+s: Switch to next tag
    [function() eminent.tag.next(mouse.screen) end] = {key.super, "s"},
    -- Alt+\: Switch to float layout
    [function() awful.layout.set('floating') end] = {key.alt, "#51"},
    -- Alt+z: Switch to max layout
    [function() awful.layout.set('max') end] = {key.alt, "z"},
    -- Alt+x: Switch to tile layout
    [function() awful.layout.set('tile') end] = {key.alt, "x"},
    -- {{{ Prompt bindings
    settings.bindings.prompt = {
    -- Alt+w: Run prompt
    [{awful.spawn, " Run: "}] = {key.alt, "w"},
    -- Mod+Alt+w: Lua eval prompt
    [{awful.eval, " Run Lua: "}] = {key.super_alt, "w"},
    -- {{{ Miscellaneous bindings
    settings.bindings.wm.misc = {
    -- Mod+Alt+r: Restart awesome
    [awesome.restart] = {key.super_alt, "r"},
    -- Mod+e: Switch focus to next screen
    [function() awful.screen.focus(1) end] = {key.super, "e"},
    -- Mod+d: Switch focus to previous screen
    [function() awful.screen.focus(-1) end] = {key.super, "d"},
    -- {{{ Keyboard digit bindings
    settings.bindings.digits = {
    -- Mod+##: View tag
    [awful.tag.viewonly] = key.super,
    -- Mod+Shift+##: Toggle tag view
    [function(t) t.selected = not t.selected end] = key.super_shift,
    -- Mod+Control+##: Move window to tag
    [awful.client.movetotag] = key.super_control,
    -- Mod+Alt+##: Toggle window on tag
    [awful.client.toggletag] = key.super_alt,
    -- {{{ Mouse bindings
    settings.bindings.mouse.desktop = {
    -- Right click on desktop: Open terminal
    [function() awful.spawn(settings.apps.terminal) end] = {key.none, 3},
    settings.bindings.mouse.client = {
    -- Alt+Left: Move window
    [function(c) c:mouse_move() end] = {key.alt, 1},
    -- Alt+Right: Resize window
    [function(c) c:mouse_resize({corner="bottomright"}) end] = {key.alt, 3},
    ---- {{{ Markup helper functions
    -- Inline markup is a tad ugly, so use these functions
    -- to dynamically create markup, we hook them into
    -- the beautiful namespace for clarity.
    beautiful.markup = {}
    function beautiful.markup.bg(color, text)
    return '<bg color="'..color..'" />'..text
    end
    function beautiful.markup.fg(color, text)
    return '<span color="'..color..'">'..text..'</span>'
    end
    function beautiful.markup.font(font, text)
    return '<span font_desc="'..font..'">'..text..'</span>'
    end
    function beautiful.markup.title(t)
    return t
    end
    function beautiful.markup.title_normal(t)
    return beautiful.title(t)
    end
    function beautiful.markup.title_focus(t)
    return beautiful.markup.bg(beautiful.bg_focus, beautiful.markup.fg(beautiful.fg_focus, beautiful.markup.title(t)))
    end
    function beautiful.markup.title_urgent(t)
    return beautiful.markup.bg(beautiful.bg_urgent, beautiful.markup.fg(beautiful.fg_urgent, beautiful.markup.title(t)))
    end
    function beautiful.markup.bold(text)
    return '<b>'..text..'</b>'
    end
    function beautiful.markup.heading(text)
    return beautiful.markup.fg(beautiful.fg_focus, beautiful.markup.bold(text))
    end
    ---- {{{ Widgets
    settings.statusbars = {}
    settings.widgets = {}
    settings.statusbars[1] = {{
    position = "top",
    height = 18,
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal,
    name = "mainstatusbar",
    }, "all"}
    settings.promptbar = {
    position = "top",
    height = 18,
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal,
    name = "promptbar",
    -- {{{ Taglist
    maintaglist = widget({
    type = 'taglist',
    name = 'maintaglist'
    function maintaglist.label(t)
    return awful.widget.taglist.label.noempty(t)
    end
    maintaglist:mouse_add(mouse(key.none, 1, function (o, t) awful.tag.viewonly(t) end))
    table.insert(settings.widgets, {1, maintaglist})
    if settings.widget_mode == 'laptop' or settings.widget_mode == 'all' then
    -- {{{ Battery Widget
    batterywidget = widget({
    type = 'textbox',
    name = 'batterywidget',
    align = 'right'
    function read_battery_temp(format)
    local f = io.open('/tmp/battery-temp')
    if f == nil then
    return {'n/a'}
    end
    local n = f:read()
    if n == nil then
    f:close()
    return {'n/a'}
    end
    return {awful.escape(n)}
    end
    wicked.register(batterywidget, read_battery_temp,
    settings.widget_spacer..beautiful.markup.heading('Battery')..': $1'..settings.widget_spacer..settings.widget_separator,
    30)
    -- Start timer to read the temp file
    awful.hooks.timer.register(28, function ()
    -- Call battery script to get batt%
    command = "battery"
    os.execute(command..' > /tmp/battery-temp &')
    end, true)
    table.insert(settings.widgets, {1, batterywidget})
    end
    if settings.widget_mode ~= 'none' then
    -- {{{ MPD Widget
    mpdwidget = widget({
    type = 'textbox',
    name = 'mpdwidget',
    align = 'right'
    wicked.register(mpdwidget, wicked.widgets.mpd, function (widget, args)
    -- I don't want the stream name on my statusbar, so I gsub it out,
    -- feel free to remove this bit
    return settings.widget_spacer..beautiful.markup.heading('MPD')..': '
    ..args[1]:gsub('AnimeNfo Radio | Serving you the best Anime music!: ','')
    ..settings.widget_spacer..settings.widget_separator end)
    table.insert(settings.widgets, {1, mpdwidget})
    -- {{{ GMail Widget
    gmailwidget = widget({
    type = 'textbox',
    name = 'gmailwidget',
    align = 'right'
    gmailwidget:mouse_add(mouse(key.none, 1, function () wicked.update(gmailwidget) end))
    function read_gmail_temp(format)
    local f = io.open('/tmp/gmail-temp')
    if f == nil then
    return {'n/a'}
    end
    local n = f:read()
    if n == nil or f == ' ' or f == '' then
    f:close()
    return {'n/a'}
    end
    return {n}
    end
    wicked.register(gmailwidget, read_gmail_temp, function (widget, args)
    local n = args[1]
    local out = settings.widget_spacer..beautiful.markup.heading('GMail')..': '
    if n ~= "n/a" and tonumber(n) > 0 then
    out = out..beautiful.markup.bg(beautiful.bg_urgent, beautiful.markup.fg(beautiful.fg_urgent, tostring(n)))
    else
    out = out..tostring(n)
    end
    out = out..settings.widget_spacer..settings.widget_separator
    return out
    end, 120)
    -- Start timer to fill the temp file
    awful.hooks.timer.register(110, function ()
    -- Call GMail check script to check for new email
    os.execute(os.getenv("HOME")..'/other/.gmail.py > /tmp/gmail-temp &')
    end, true)
    wicked.update(gmailwidget)
    table.insert(settings.widgets, {1, gmailwidget})
    -- {{{ Load Averages Widget
    loadwidget = widget({
    type = 'textbox',
    name = 'loadwidget',
    align = 'right'
    function widget_loadavg(format)
    -- Use /proc/loadavg to get the average system load on 1, 5 and 15 minute intervals
    local f = io.open('/proc/loadavg')
    local n = f:read()
    f:close()
    -- Find the third space
    local pos = n:find(' ', n:find(' ', n:find(' ')+1)+1)
    return {n:sub(1,pos-1)}
    end
    wicked.register(loadwidget, widget_loadavg,
    settings.widget_spacer..beautiful.markup.heading('Load')..': $1'..settings.widget_spacer..settings.widget_separator, 2)
    table.insert(settings.widgets, {1, loadwidget})
    -- {{{ CPU Usage Widget
    cputextwidget = widget({
    type = 'textbox',
    name = 'cputextwidget',
    align = 'right'
    wicked.register(cputextwidget, wicked.widgets.cpu,
    settings.widget_spacer..beautiful.markup.heading('CPU')..': $1%'..settings.widget_spacer..settings.widget_separator,
    nil, nil, 2)
    table.insert(settings.widgets, {1, cputextwidget})
    -- {{{ CPU Graph Widget
    cpugraphwidget = widget({
    type = 'graph',
    name = 'cpugraphwidget',
    align = 'right'
    cpugraphwidget.height = 0.85
    cpugraphwidget.width = 45
    cpugraphwidget.bg = '#333333'
    cpugraphwidget.border_color = '#0a0a0a'
    cpugraphwidget.grow = 'left'
    cpugraphwidget:plot_properties_set('cpu', {
    fg = '#AEC6D8',
    fg_center = '#285577',
    fg_end = '#285577',
    vertical_gradient = false
    wicked.register(cpugraphwidget, wicked.widgets.cpu, '$1', 1, 'cpu')
    table.insert(settings.widgets, {1, cpugraphwidget})
    -- {{{ Memory Usage Widget
    memtextwidget = widget({
    type = 'textbox',
    name = 'memtextwidget',
    align = 'right'
    wicked.register(memtextwidget, wicked.widgets.mem,
    settings.widget_spacer..beautiful.markup.heading('MEM')..': '..
    '$1% ($2/$3)'..settings.widget_spacer..settings.widget_separator,
    3, nil, {2, 4, 4})
    table.insert(settings.widgets, {1, memtextwidget})
    -- {{{ Memory Graph Widget
    memgraphwidget = widget({
    type = 'graph',
    name = 'memgraphwidget',
    align = 'right'
    memgraphwidget.height = 0.85
    memgraphwidget.width = 45
    memgraphwidget.bg = '#333333'
    memgraphwidget.border_color = '#0a0a0a'
    memgraphwidget.grow = 'left'
    memgraphwidget:plot_properties_set('mem', {
    fg = '#AEC6D8',
    fg_center = '#285577',
    fg_end = '#285577',
    vertical_gradient = false
    wicked.register(memgraphwidget, wicked.widgets.mem, '$1', 1, 'mem')
    table.insert(settings.widgets, {1, memgraphwidget})
    -- {{{ Other Widget
    settings.widget_spacerwidget = widget({ type = 'textbox', name = 'settings.widget_spacerwidget', align = 'right' })
    settings.widget_spacerwidget.text = settings.widget_spacer..settings.widget_separator
    table.insert(settings.widgets, {1, settings.widget_spacerwidget})
    end
    -- You shouldn't have to edit the code after this,
    -- it takes care of applying the settings above.
    ---- {{{ Initialisations
    -- Register beautiful with awful
    awful.beautiful.register(beautiful)
    -- Set default colors
    awesome.colors_set({
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal })
    -- Set default font
    awesome.font_set(beautiful.font)
    -- Pre-create new tags with eminent
    for s=1, screen.count() do
    eminent.newtag(s, 5)
    end
    ---- {{{ Create statusbars
    local mainstatusbar = {}
    for i, b in pairs(settings.statusbars) do
    mainstatusbar[i] = {}
    for s=1,screen.count() do
    this_screen = false
    if b[2] ~= "all" then
    for sc in pairs(b[2]) do
    if sc == s then
    this_screen = true
    break
    end
    end
    end
    if b[2] == "all" or this_screen then
    mainstatusbar[i][s] = statusbar(b[1])
    local widgets = {}
    for ii, w in pairs(settings.widgets) do
    if w[1] == i then
    table.insert(widgets, w[2])
    end
    end
    mainstatusbar[i][s]:widgets(widgets)
    mainstatusbar[i][s].screen = s
    end
    end
    end
    ---- {{{ Create prompt statusbar
    local mainpromptbar = statusbar(settings.promptbar)
    local mainpromptbox = widget({type = "textbox", align = "left", name = "mainpromptbox"})
    mainpromptbar:widgets({mainpromptbox})
    mainpromptbar.screen = nil
    ---- {{{ Useful functions
    -- {{{ Mouse warp function
    function mouse_warp(c, force)
    -- Allow skipping a warp
    if warp_skip then
    warp_skip = false
    return
    end
    -- Get vars
    local sel = c or client.focus
    if sel == nil then return end
    local coords = sel:coords()
    local m = mouse.coords()
    -- Settings
    mouse_padd = 6
    border_area = 5
    -- Check if mouse is not already inside the window
    if (( m.x < coords.x-border_area or
    m.y < coords.y-border_area or
    m.x > coords.x+coords.width+border_area or
    m.y > coords.y+coords.height+border_area
    ) and (
    table.maxn(m.buttons) == 0
    )) or force
    then
    mouse.coords({ x=coords.x+mouse_padd, y=coords.y+mouse_padd})
    end
    end
    -- {{{ Prompt with statusbar
    function prompt_statusbar(s, callback, prompt)
    if not callback then callback = awful.spawn end
    if not prompt then prompt = " Run: " end
    for i, b in pairs(mainstatusbar) do
    for ii, bb in pairs(b) do
    if bb.screen == s then
    bb.screen = nil
    end
    end
    end
    mainpromptbar.screen = s
    awful.prompt.run({prompt = prompt}, mainpromptbox, callback,
    awful.completion.bash, os.getenv("HOME") .. "/.cache/awesome_history", 50, function ()
    mainpromptbar.screen = nil
    for i, b in pairs(mainstatusbar) do
    for ii, bb in pairs(b) do
    if ii == s then
    bb.screen = ii
    end
    end
    end
    end)
    end
    ---- {{{ Create bindings
    --- This reads the binding tables and turns them into actual keybindings
    -- WM Bindings
    for i,table in pairs(settings.bindings.wm) do
    for f, keys in pairs(table) do
    keybinding(keys[1], keys[2], f):add()
    end
    end
    -- Keyboard digit bindings
    for i=1,9 do
    for f, mod in pairs(settings.bindings.digits) do
    keybinding(mod, i, function()
    t = eminent.tag.getn(i, nil, true)
    if not t then return end
    f(t)
    end):add()
    end
    end
    -- Prompt Bindings
    for prompt, keys in pairs(settings.bindings.prompt) do
    keybinding(keys[1], keys[2], function() prompt_statusbar(mouse.screen, unpack(prompt)) end):add()
    end
    -- Filemanager bindings
    for loc, keys in pairs(settings.bindings.filemanager) do
    keybinding(keys[1], keys[2], function() awful.spawn(string.format(settings.apps.filemanager, loc)) end):add()
    end
    -- Custom command bindings
    for command, keys in pairs(settings.bindings.commands) do
    keybinding(keys[1], keys[2], function() awful.spawn(command) end):add()
    end
    -- Desktop mouse bindings
    for f, keys in pairs(settings.bindings.mouse.desktop) do
    awesome.mouse_add(mouse(keys[1], keys[2], f))
    end
    ---- {{{ Set hooks
    -- {{{ Focus hook
    awful.hooks.focus.register(function (c)
    -- Skip over my urxvtcnotify
    if c.name and c.name:lower():find('urxvtcnotify') and awful.client.next(1) ~= c then
    awful.client.focusbyidx(1)
    return
    end
    -- Set border
    c.border_color = beautiful.border_focus
    -- Raise the client
    c:raise()
    -- Set statusbar color
    if settings.statusbar_highlight_focus and settings.statusbar_highlight_focus[1] then
    if last_screen == nil or last_screen ~= c.screen then
    mainstatusbar[settings.statusbar_highlight_focus[2]][c.screen].bg = beautiful.bg_sbfocus
    if last_screen then
    mainstatusbar[settings.statusbar_highlight_focus[2]][last_screen].bg = beautiful.bg_normal
    end
    end
    last_screen = c.screen
    end
    end)
    -- {{{ Unfocus hook
    awful.hooks.unfocus.register(function (c)
    -- Set border
    c.border_color = beautiful.border_normal
    end)
    -- {{{ Mouseover hook
    awful.hooks.mouseover.register(function (c)
    -- Set focus for sloppy focus
    client.focus = c
    end)
    -- {{{ Manage hook
    awful.hooks.manage.register(function (c)
    local class = ""
    local name = ""
    if c.class then
    class = c.class:lower()
    end
    if c.name then
    name = c.name:lower()
    end
    -- Create border
    c.border_width = beautiful.border_width
    c.border_color = beautiful.border_normal
    -- Add mouse bindings
    for f, keys in pairs(settings.bindings.mouse.client) do
    c:mouse_add(mouse(keys[1], keys[2], f))
    end
    -- Check if floating
    for app, i in pairs(settings.floating) do
    if class:find(app) or name:find(app) then
    c.floating = i
    break
    end
    end
    if name:find('urxvtcnotify') then
    -- I got sick of libnotify/notification-daemon
    -- and their dependencies, so I'm using a little
    -- urxvtc window with some text in it as notifications :P
    -- This makes it appear at the correct place,
    -- feel free to remove the whole section, you probably
    -- won't need it.
    c.screen = 3
    c:coords({
    x = 1680*2+1400,
    y = 18,
    width = 276,
    height = 106
    c.border_color = beautiful.border_normal
    local tags = {}
    for i,t in pairs(eminent.tags[3]) do
    if eminent.tag.isoccupied(3, t) then
    table.insert(tags, t)
    end
    end
    c:tags(tags)
    return 0
    end
    -- Focus new clients
    client.focus = c
    -- Prevent new windows from becoming master
    if not settings.new_become_master then
    awful.client.swap(1, c)
    end
    -- Don't honor size hints
    c.honorsizehints = false
    end)
    -- {{{ Arrange hook
    awful.hooks.arrange.register(function(s)
    -- Warp the mouse
    if settings.warp_mouse then
    mouse_warp()
    end
    -- Check focus
    if not client.focus then
    local c = awful.client.focus.history.get(s, 0)
    if c then client.focus = c end
    end
    end)
    -- vim: set filetype=lua fdm=marker tabstop=4 shiftwidth=4 expandtab smarttab autoindent smartindent nu:
    Last edited by Tim Fox (2008-09-20 18:15:15)

    andre.ramaciotti wrote:And I'm not sure if you should put that & after exec awesome. It works fine here without it.
    No & after entries in .xinitrc . You've commented out the awesome entry.

  • Flickering - radeon, awesome, xterm

    Hi!
    I'm setting up Arch on my notebook and I have problems with flickering.
    The config is very basic - just Xorg, open source Radeon driver and awesome wm. When rearranging xterm windows using awesome they flicker and they are redrawn slowly. It takes few seconds for xterm running top to settle down and not flicker. It looks like video driver is not working properly or Xorg setup is wrong. I've checked similar config under VirtualBox on my PC and there were no similar issues.
    Looking into dmesg and Xorg logs I could not find anything obvious for me. I tried adding Xorg config files with more specific settings of Monitor, Display etc, including DPI, display size, etc but with no luck. I'm not sure what should I check next and what could be the problem.
    I'm posting both dmesg and Xorg logs below.
    dmesg
    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Linux version 3.6.11-1-ARCH (tobias@testing) (gcc version 4.7.2 (GCC) ) #1 SMP PREEMPT Tue Dec 18 12:58:46 CET 2012
    [ 0.000000] e820: BIOS-provided physical RAM map:
    [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009f7ff] usable
    [ 0.000000] BIOS-e820: [mem 0x000000000009f800-0x000000000009ffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000000d0000-0x00000000000fffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001beeffff] usable
    [ 0.000000] BIOS-e820: [mem 0x000000001bef0000-0x000000001befefff] ACPI data
    [ 0.000000] BIOS-e820: [mem 0x000000001beff000-0x000000001befffff] ACPI NVS
    [ 0.000000] BIOS-e820: [mem 0x000000001bf00000-0x000000001bffffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
    [ 0.000000] Notice: NX (Execute Disable) protection missing in CPU!
    [ 0.000000] DMI 2.3 present.
    [ 0.000000] DMI: Hewlett-Packard Presario 2100 (PF180UA) /0024 , BIOS KAM1.59 04/19/2004
    [ 0.000000] e820: update [mem 0x00000000-0x0000ffff] usable ==> reserved
    [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
    [ 0.000000] e820: last_pfn = 0x1bef0 max_arch_pfn = 0x100000
    [ 0.000000] MTRR default type: uncachable
    [ 0.000000] MTRR fixed ranges enabled:
    [ 0.000000] 00000-9FFFF write-back
    [ 0.000000] A0000-BFFFF uncachable
    [ 0.000000] C0000-CFFFF write-protect
    [ 0.000000] D0000-DAFFF uncachable
    [ 0.000000] DB000-DBFFF write-protect
    [ 0.000000] DC000-DFFFF write-back
    [ 0.000000] E0000-E3FFF uncachable
    [ 0.000000] E4000-FFFFF write-protect
    [ 0.000000] MTRR variable ranges enabled:
    [ 0.000000] 0 base 000000000 mask FF0000000 write-back
    [ 0.000000] 1 base 010000000 mask FF8000000 write-back
    [ 0.000000] 2 base 018000000 mask FFC000000 write-back
    [ 0.000000] 3 disabled
    [ 0.000000] 4 disabled
    [ 0.000000] 5 disabled
    [ 0.000000] 6 disabled
    [ 0.000000] 7 disabled
    [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
    [ 0.000000] initial memory mapped: [mem 0x00000000-0x00bfffff]
    [ 0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
    [ 0.000000] init_memory_mapping: [mem 0x00000000-0x1beeffff]
    [ 0.000000] [mem 0x00000000-0x003fffff] page 4k
    [ 0.000000] [mem 0x00400000-0x1bbfffff] page 2M
    [ 0.000000] [mem 0x1bc00000-0x1beeffff] page 4k
    [ 0.000000] kernel direct mapping tables up to 0x1beeffff @ [mem 0x00bfa000-0x00bfffff]
    [ 0.000000] RAMDISK: [mem 0x1bc37000-0x1beeefff]
    [ 0.000000] ACPI: RSDP 000f7290 00014 (v00 PTLTD )
    [ 0.000000] ACPI: RSDT 1bef8b67 00030 (v01 PTLTD RSDT 06040000 LTP 00000000)
    [ 0.000000] ACPI: FACP 1befee2b 00074 (v01 ATI Raptor 06040000 ATI 000F4240)
    [ 0.000000] ACPI: DSDT 1bef8b97 06294 (v01 ATI U1_M1535 06040000 MSFT 0100000D)
    [ 0.000000] ACPI: FACS 1befffc0 00040
    [ 0.000000] ACPI: BOOT 1befee9f 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP 00000001)
    [ 0.000000] ACPI: SSDT 1befeec7 00139 (v01 PTLTD POWERNOW 06040000 LTP 00000001)
    [ 0.000000] 0MB HIGHMEM available.
    [ 0.000000] 446MB LOWMEM available.
    [ 0.000000] mapped low ram: 0 - 1bef0000
    [ 0.000000] low ram: 0 - 1bef0000
    [ 0.000000] Zone ranges:
    [ 0.000000] DMA [mem 0x00010000-0x00ffffff]
    [ 0.000000] Normal [mem 0x01000000-0x1beeffff]
    [ 0.000000] HighMem empty
    [ 0.000000] Movable zone start for each node
    [ 0.000000] Early memory node ranges
    [ 0.000000] node 0: [mem 0x00010000-0x0009efff]
    [ 0.000000] node 0: [mem 0x00100000-0x1beeffff]
    [ 0.000000] On node 0 totalpages: 114303
    [ 0.000000] free_area_init_node: node 0, pgdat c065acc0, node_mem_map db8b7200
    [ 0.000000] DMA zone: 32 pages used for memmap
    [ 0.000000] DMA zone: 0 pages reserved
    [ 0.000000] DMA zone: 3951 pages, LIFO batch:0
    [ 0.000000] Normal zone: 862 pages used for memmap
    [ 0.000000] Normal zone: 109458 pages, LIFO batch:31
    [ 0.000000] Using APIC driver default
    [ 0.000000] ACPI: PM-Timer IO Port: 0x8008
    [ 0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
    [ 0.000000] Local APIC disabled by BIOS -- you can enable it with "lapic"
    [ 0.000000] APIC: disable apic facility
    [ 0.000000] APIC: switched to apic NOOP
    [ 0.000000] nr_irqs_gsi: 16
    [ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
    [ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000d0000
    [ 0.000000] PM: Registered nosave memory: 00000000000d0000 - 0000000000100000
    [ 0.000000] e820: [mem 0x1c000000-0xfffbffff] available for PCI devices
    [ 0.000000] Booting paravirtualized kernel on bare hardware
    [ 0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:1 nr_node_ids:1
    [ 0.000000] PERCPU: Embedded 13 pages/cpu @db8a6000 s32384 r0 d20864 u53248
    [ 0.000000] pcpu-alloc: s32384 r0 d20864 u53248 alloc=13*4096
    [ 0.000000] pcpu-alloc: [0] 0
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 113409
    [ 0.000000] Kernel command line: root=/dev/sda1 ro initrd=../initramfs-linux.img BOOT_IMAGE=../vmlinuz-linux
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] __ex_table already sorted, skipping sort
    [ 0.000000] Initializing CPU#0
    [ 0.000000] allocated 915200 bytes of page_cgroup
    [ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
    [ 0.000000] Initializing HighMem for node 0 (00000000:00000000)
    [ 0.000000] Memory: 442468k/457664k available (3974k kernel code, 14744k reserved, 1545k data, 536k init, 0k highmem)
    [ 0.000000] virtual kernel memory layout:
    fixmap : 0xfff16000 - 0xfffff000 ( 932 kB)
    pkmap : 0xff800000 - 0xffc00000 (4096 kB)
    vmalloc : 0xdc6f0000 - 0xff7fe000 ( 561 MB)
    lowmem : 0xc0000000 - 0xdbef0000 ( 446 MB)
    .init : 0xc0664000 - 0xc06ea000 ( 536 kB)
    .data : 0xc04e18b2 - 0xc0663fc0 (1545 kB)
    .text : 0xc0100000 - 0xc04e18b2 (3974 kB)
    [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
    [ 0.000000] SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] Preemptible hierarchical RCU implementation.
    [ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
    [ 0.000000] Dump stacks of tasks blocking RCU-preempt GP.
    [ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
    [ 0.000000] NR_IRQS:2304 nr_irqs:256 16
    [ 0.000000] CPU 0 irqstacks, hard=db008000 soft=db00a000
    [ 0.000000] Console: colour VGA+ 80x25
    [ 0.000000] console [tty0] enabled
    [ 0.000000] tsc: Fast TSC calibration using PIT
    [ 0.000000] tsc: Detected 2120.375 MHz processor
    [ 0.006670] Calibrating delay loop (skipped), value calculated using timer frequency.. 4242.44 BogoMIPS (lpj=7067916)
    [ 0.006676] pid_max: default: 32768 minimum: 301
    [ 0.006732] Security Framework initialized
    [ 0.006745] AppArmor: AppArmor disabled by boot time parameter
    [ 0.006781] Mount-cache hash table entries: 512
    [ 0.007214] Initializing cgroup subsys cpuacct
    [ 0.007219] Initializing cgroup subsys memory
    [ 0.007239] Initializing cgroup subsys devices
    [ 0.007243] Initializing cgroup subsys freezer
    [ 0.007246] Initializing cgroup subsys net_cls
    [ 0.007248] Initializing cgroup subsys blkio
    [ 0.007307] mce: CPU supports 4 MCE banks
    [ 0.007377] SMP alternatives: switching to UP code
    [ 0.014617] Freeing SMP alternatives: 16k freed
    [ 0.014639] ACPI: Core revision 20120711
    [ 0.018909] ACPI: setting ELCR to 0200 (from 0e28)
    [ 0.020105] ftrace: allocating 17427 entries in 35 pages
    [ 0.026857] smpboot: weird, boot CPU (#0) not listed by the BIOS
    [ 0.026864] smpboot: SMP motherboard not detected
    [ 0.026868] smpboot: Local APIC not detected. Using dummy APIC emulation.
    [ 0.026870] smpboot: SMP disabled
    [ 0.026875] Performance Events:
    [ 0.026882] no APIC, boot with the "lapic" boot parameter to force-enable it.
    [ 0.026884] no hardware sampling interrupt available.
    [ 0.026888] AMD PMU driver.
    [ 0.026892] ... version: 0
    [ 0.026894] ... bit width: 48
    [ 0.026895] ... generic registers: 4
    [ 0.026897] ... value mask: 0000ffffffffffff
    [ 0.026899] ... max period: 00007fffffffffff
    [ 0.026900] ... fixed-purpose events: 0
    [ 0.026901] ... event mask: 000000000000000f
    [ 0.053684] NMI watchdog: disabled (cpu0): not supported (no LAPIC?)
    [ 0.053741] Brought up 1 CPUs
    [ 0.053745] smpboot: Total of 1 processors activated (4242.44 BogoMIPS)
    [ 0.054101] devtmpfs: initialized
    [ 0.054434] PM: Registering ACPI NVS region [mem 0x1beff000-0x1befffff] (4096 bytes)
    [ 0.055886] NET: Registered protocol family 16
    [ 0.056191] ACPI: bus type pci registered
    [ 0.068640] PCI: PCI BIOS revision 2.10 entry at 0xfd87b, last bus=2
    [ 0.068643] PCI: Using configuration type 1 for base access
    [ 0.069449] bio: create slab <bio-0> at 0
    [ 0.069568] ACPI: Added _OSI(Module Device)
    [ 0.069572] ACPI: Added _OSI(Processor Device)
    [ 0.069574] ACPI: Added _OSI(3.0 _SCP Extensions)
    [ 0.069576] ACPI: Added _OSI(Processor Aggregator Device)
    [ 0.070519] ACPI: EC: Look up EC in DSDT
    [ 0.077150] ACPI: Interpreter enabled
    [ 0.077166] ACPI: (supports S0 S3 S4 S5)
    [ 0.077190] ACPI: Using PIC for interrupt routing
    [ 0.083736] ACPI: EC: GPE = 0x18, I/O: command/status = 0x66, data = 0x62
    [ 0.086778] ACPI: No dock devices found.
    [ 0.086788] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
    [ 0.086934] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
    [ 0.087145] pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
    [ 0.087149] pci_root PNP0A03:00: host bridge window [mem 0x000c0000-0x000c3fff] (ignored)
    [ 0.087152] pci_root PNP0A03:00: host bridge window [mem 0x000c4000-0x000c7fff] (ignored)
    [ 0.087156] pci_root PNP0A03:00: host bridge window [mem 0x000c8000-0x000cbfff] (ignored)
    [ 0.087159] pci_root PNP0A03:00: host bridge window [mem 0x000cc000-0x000cffff] (ignored)
    [ 0.087162] pci_root PNP0A03:00: host bridge window [mem 0x000d0000-0x000d7fff] (ignored)
    [ 0.087165] pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000cefff] (ignored)
    [ 0.087168] pci_root PNP0A03:00: host bridge window [mem 0x1c000000-0xfff7ffff] (ignored)
    [ 0.087171] pci_root PNP0A03:00: host bridge window [io 0x0000-0x0cf7] (ignored)
    [ 0.087174] pci_root PNP0A03:00: host bridge window [io 0x0d00-0xffff] (ignored)
    [ 0.087178] PCI: root bus 00: using default resources
    [ 0.087185] pci_root PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.
    [ 0.087244] PCI host bridge to bus 0000:00
    [ 0.087252] pci_bus 0000:00: busn_res: [bus 00-ff] is inserted under domain [bus 00-ff]
    [ 0.087256] pci_bus 0000:00: root bus resource [bus 00-ff]
    [ 0.087259] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
    [ 0.087263] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
    [ 0.087287] pci 0000:00:00.0: [1002:cab0] type 00 class 0x060000
    [ 0.087302] pci 0000:00:00.0: reg 10: [mem 0xd4000000-0xd7ffffff pref]
    [ 0.087308] pci 0000:00:00.0: reg 14: [mem 0xd0400000-0xd0400fff pref]
    [ 0.087313] pci 0000:00:00.0: reg 18: [io 0x8090-0x8093]
    [ 0.087367] pci 0000:00:01.0: [1002:700f] type 01 class 0x060400
    [ 0.087404] pci 0000:00:02.0: [10b9:5237] type 00 class 0x0c0310
    [ 0.087416] pci 0000:00:02.0: reg 10: [mem 0xd0002000-0xd0002fff]
    [ 0.087467] pci 0000:00:02.0: PME# supported from D3cold
    [ 0.087490] pci 0000:00:06.0: [10b9:5451] type 00 class 0x040100
    [ 0.087503] pci 0000:00:06.0: reg 10: [io 0x8400-0x84ff]
    [ 0.087512] pci 0000:00:06.0: reg 14: [mem 0xd0003000-0xd0003fff]
    [ 0.087557] pci 0000:00:06.0: supports D1 D2
    [ 0.087559] pci 0000:00:06.0: PME# supported from D2 D3hot D3cold
    [ 0.087582] pci 0000:00:07.0: [10b9:1533] type 00 class 0x060100
    [ 0.087664] pci 0000:00:08.0: [10b9:5457] type 00 class 0x070300
    [ 0.087677] pci 0000:00:08.0: reg 10: [mem 0xd0004000-0xd0004fff]
    [ 0.087685] pci 0000:00:08.0: reg 14: [io 0x8800-0x88ff]
    [ 0.087728] pci 0000:00:08.0: PME# supported from D3hot D3cold
    [ 0.087747] pci 0000:00:09.0: [14e4:4320] type 00 class 0x028000
    [ 0.087760] pci 0000:00:09.0: reg 10: [mem 0xd0000000-0xd0001fff]
    [ 0.087807] pci 0000:00:09.0: supports D1 D2
    [ 0.087810] pci 0000:00:09.0: PME# supported from D0 D1 D2 D3hot D3cold
    [ 0.087830] pci 0000:00:0a.0: [104c:ac50] type 02 class 0x060700
    [ 0.087844] pci 0000:00:0a.0: reg 10: [mem 0x00000000-0x00000fff]
    [ 0.087866] pci 0000:00:0a.0: supports D1 D2
    [ 0.087869] pci 0000:00:0a.0: PME# supported from D0 D1 D2 D3hot D3cold
    [ 0.087892] pci 0000:00:10.0: [10b9:5229] type 00 class 0x0101b0
    [ 0.087924] pci 0000:00:10.0: reg 20: [io 0x8080-0x808f]
    [ 0.087967] pci 0000:00:11.0: [10b9:7101] type 00 class 0x068000
    [ 0.088020] pci 0000:00:11.0: quirk: [io 0x8000-0x803f] claimed by ali7101 ACPI
    [ 0.088025] pci 0000:00:11.0: quirk: [io 0x8040-0x805f] claimed by ali7101 SMB
    [ 0.088046] pci 0000:00:12.0: [100b:0020] type 00 class 0x020000
    [ 0.088059] pci 0000:00:12.0: reg 10: [io 0x8c00-0x8cff]
    [ 0.088067] pci 0000:00:12.0: reg 14: [mem 0xd0005000-0xd0005fff]
    [ 0.088097] pci 0000:00:12.0: reg 30: [mem 0x00000000-0x0000ffff pref]
    [ 0.088117] pci 0000:00:12.0: supports D1 D2
    [ 0.088120] pci 0000:00:12.0: PME# supported from D0 D1 D2 D3hot D3cold
    [ 0.088150] pci_bus 0000:01: busn_res: [bus 01] is inserted under [bus 00-ff]
    [ 0.088169] pci 0000:01:05.0: [1002:4336] type 00 class 0x030000
    [ 0.088183] pci 0000:01:05.0: reg 10: [mem 0xe0000000-0xefffffff pref]
    [ 0.088190] pci 0000:01:05.0: reg 14: [io 0x9000-0x90ff]
    [ 0.088198] pci 0000:01:05.0: reg 18: [mem 0xd0100000-0xd010ffff]
    [ 0.088220] pci 0000:01:05.0: reg 30: [mem 0x00000000-0x0001ffff pref]
    [ 0.088245] pci 0000:01:05.0: supports D1 D2
    [ 0.088271] pci 0000:00:01.0: PCI bridge to [bus 01]
    [ 0.088278] pci 0000:00:01.0: bridge window [io 0x9000-0x9fff]
    [ 0.088282] pci 0000:00:01.0: bridge window [mem 0xd0100000-0xd01fffff]
    [ 0.088287] pci 0000:00:01.0: bridge window [mem 0xe0000000-0xefffffff pref]
    [ 0.088318] pci_bus 0000:02: busn_res: [bus 02-ff] is inserted under [bus 00-ff]
    [ 0.088325] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 05
    [ 0.088330] pci_bus 0000:00: on NUMA node 0
    [ 0.088334] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
    [ 0.088406] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
    [ 0.088461] pci0000:00: ACPI _OSC support notification failed, disabling PCIe ASPM
    [ 0.088465] pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)
    [ 0.090540] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 6 *10)
    [ 0.090629] ACPI: PCI Interrupt Link [LNKB] (IRQs 7 *11)
    [ 0.090715] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 10) *0, disabled.
    [ 0.090802] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 6 10) *9
    [ 0.090887] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 6 10) *0, disabled.
    [ 0.090973] ACPI: PCI Interrupt Link [LNKF] (IRQs 7 11) *0, disabled.
    [ 0.091057] ACPI: PCI Interrupt Link [LNKG] (IRQs *3 4 6 10)
    [ 0.091142] ACPI: PCI Interrupt Link [LNKH] (IRQs *5 7)
    [ 0.091226] ACPI: PCI Interrupt Link [LNKU] (IRQs 3 4 6 10) *9
    [ 0.091380] vgaarb: device added: PCI:0000:01:05.0,decodes=io+mem,owns=io+mem,locks=none
    [ 0.091382] vgaarb: loaded
    [ 0.091384] vgaarb: bridge control possible 0000:01:05.0
    [ 0.091473] PCI: Using ACPI for IRQ routing
    [ 0.091478] PCI: pci_cache_line_size set to 32 bytes
    [ 0.091517] e820: reserve RAM buffer [mem 0x0009f800-0x0009ffff]
    [ 0.091521] e820: reserve RAM buffer [mem 0x1bef0000-0x1bffffff]
    [ 0.091751] NetLabel: Initializing
    [ 0.091754] NetLabel: domain hash size = 128
    [ 0.091755] NetLabel: protocols = UNLABELED CIPSOv4
    [ 0.091784] NetLabel: unlabeled traffic allowed by default
    [ 0.091827] Switching to clocksource pit
    [ 0.102224] pnp: PnP ACPI init
    [ 0.102270] ACPI: bus type pnp registered
    [ 0.102562] pnp 00:00: [bus 00-ff]
    [ 0.102569] pnp 00:00: [mem 0x000a0000-0x000bffff window]
    [ 0.102572] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
    [ 0.102575] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
    [ 0.102578] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
    [ 0.102581] pnp 00:00: [mem 0x000cc000-0x000cffff window]
    [ 0.102584] pnp 00:00: [mem 0x000d0000-0x000d7fff window]
    [ 0.102587] pnp 00:00: [mem 0x000a0000-0x000cefff window]
    [ 0.102590] pnp 00:00: [mem 0x1c000000-0xfff7ffff window]
    [ 0.102594] pnp 00:00: [io 0x0cf8-0x0cff]
    [ 0.102597] pnp 00:00: [io 0x0000-0x0cf7 window]
    [ 0.102600] pnp 00:00: [io 0x0d00-0xffff window]
    [ 0.102705] pnp 00:00: Plug and Play ACPI device, IDs PNP0a03 (active)
    [ 0.102916] pnp 00:01: [io 0x0000-0x000f]
    [ 0.102920] pnp 00:01: [io 0x0081-0x008f]
    [ 0.102922] pnp 00:01: [io 0x00c0-0x00df]
    [ 0.102927] pnp 00:01: [dma 4]
    [ 0.102975] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
    [ 0.102992] pnp 00:02: [io 0x0070-0x0073]
    [ 0.103001] pnp 00:02: [irq 8]
    [ 0.103037] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
    [ 0.103053] pnp 00:03: [io 0x00f0-0x00fe]
    [ 0.103057] pnp 00:03: [irq 13]
    [ 0.103092] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
    [ 0.103106] pnp 00:04: [io 0x0061]
    [ 0.103167] pnp 00:04: Plug and Play ACPI device, IDs PNP0800 (active)
    [ 0.103182] pnp 00:05: [io 0x0060]
    [ 0.103185] pnp 00:05: [io 0x0064]
    [ 0.103188] pnp 00:05: [irq 1]
    [ 0.103224] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 (active)
    [ 0.103239] pnp 00:06: [irq 12]
    [ 0.103276] pnp 00:06: Plug and Play ACPI device, IDs SYN0104 SYN0100 SYN0002 PNP0f13 (active)
    [ 0.103295] pnp 00:07: [io 0x0080]
    [ 0.103298] pnp 00:07: [io 0x00b0-0x00b3]
    [ 0.103301] pnp 00:07: [io 0x0092]
    [ 0.103303] pnp 00:07: [io 0x040b]
    [ 0.103306] pnp 00:07: [io 0x0480-0x048f]
    [ 0.103308] pnp 00:07: [io 0x04d0-0x04d1]
    [ 0.103311] pnp 00:07: [io 0x04d6]
    [ 0.103313] pnp 00:07: [io 0x8000-0x807f]
    [ 0.103316] pnp 00:07: [io 0xff00-0xff01]
    [ 0.103319] pnp 00:07: [io 0x8004-0x8005]
    [ 0.103321] pnp 00:07: [io 0xfe00-0xfefe]
    [ 0.103324] pnp 00:07: [mem 0xd0400000-0xd0400fff]
    [ 0.103363] pnp 00:07: disabling [io 0x8004-0x8005] because it overlaps 0000:00:11.0 BAR 13 [io 0x8000-0x803f]
    [ 0.103427] system 00:07: [io 0x040b] has been reserved
    [ 0.103431] system 00:07: [io 0x0480-0x048f] has been reserved
    [ 0.103435] system 00:07: [io 0x04d0-0x04d1] has been reserved
    [ 0.103439] system 00:07: [io 0x04d6] has been reserved
    [ 0.103443] system 00:07: [io 0x8000-0x807f] could not be reserved
    [ 0.103446] system 00:07: [io 0xff00-0xff01] has been reserved
    [ 0.103450] system 00:07: [io 0xfe00-0xfefe] has been reserved
    [ 0.103456] system 00:07: [mem 0xd0400000-0xd0400fff] has been reserved
    [ 0.103462] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
    [ 0.103805] pnp 00:08: [io 0x03f0-0x03f5]
    [ 0.103808] pnp 00:08: [io 0x03f7]
    [ 0.103812] pnp 00:08: [irq 6]
    [ 0.103814] pnp 00:08: [dma 2]
    [ 0.103871] pnp 00:08: Plug and Play ACPI device, IDs PNP0700 (active)
    [ 0.104241] pnp 00:09: [io 0x0378-0x037f]
    [ 0.104244] pnp 00:09: [io 0x0778-0x077f]
    [ 0.104247] pnp 00:09: [irq 7]
    [ 0.104250] pnp 00:09: [dma 0]
    [ 0.104537] pnp 00:09: Plug and Play ACPI device, IDs PNP0401 (active)
    [ 0.104776] pnp 00:0a: [io 0x03f8-0x03ff]
    [ 0.104780] pnp 00:0a: [irq 4]
    [ 0.104909] pnp 00:0a: Plug and Play ACPI device, IDs PNP0501 (active)
    [ 0.105223] pnp: PnP ACPI: found 11 devices
    [ 0.105226] ACPI: ACPI bus type pnp unregistered
    [ 0.142421] Switching to clocksource acpi_pm
    [ 0.142493] pci 0000:00:0a.0: res[15]=[mem 0x04000000-0x03ffffff pref] get_res_add_size add_size 4000000
    [ 0.142498] pci 0000:00:0a.0: res[16]=[mem 0x04000000-0x03ffffff] get_res_add_size add_size 4000000
    [ 0.142501] pci 0000:00:0a.0: res[13]=[io 0x0100-0x00ff] get_res_add_size add_size 100
    [ 0.142505] pci 0000:00:0a.0: res[14]=[io 0x0100-0x00ff] get_res_add_size add_size 100
    [ 0.142516] pci 0000:00:0a.0: BAR 0: assigned [mem 0x1c000000-0x1c000fff]
    [ 0.142525] pci 0000:00:0a.0: BAR 15: assigned [mem 0x20000000-0x23ffffff pref]
    [ 0.142529] pci 0000:00:0a.0: BAR 16: assigned [mem 0x24000000-0x27ffffff]
    [ 0.142533] pci 0000:00:12.0: BAR 6: assigned [mem 0x1c010000-0x1c01ffff pref]
    [ 0.142537] pci 0000:00:0a.0: BAR 13: assigned [io 0x1000-0x10ff]
    [ 0.142541] pci 0000:00:0a.0: BAR 14: assigned [io 0x1400-0x14ff]
    [ 0.142547] pci 0000:01:05.0: BAR 6: assigned [mem 0xd0120000-0xd013ffff pref]
    [ 0.142552] pci 0000:00:01.0: PCI bridge to [bus 01]
    [ 0.142556] pci 0000:00:01.0: bridge window [io 0x9000-0x9fff]
    [ 0.142562] pci 0000:00:01.0: bridge window [mem 0xd0100000-0xd01fffff]
    [ 0.142566] pci 0000:00:01.0: bridge window [mem 0xe0000000-0xefffffff pref]
    [ 0.142572] pci 0000:00:0a.0: CardBus bridge to [bus 02-05]
    [ 0.142575] pci 0000:00:0a.0: bridge window [io 0x1000-0x10ff]
    [ 0.142580] pci 0000:00:0a.0: bridge window [io 0x1400-0x14ff]
    [ 0.142584] pci 0000:00:0a.0: bridge window [mem 0x20000000-0x23ffffff pref]
    [ 0.142589] pci 0000:00:0a.0: bridge window [mem 0x24000000-0x27ffffff]
    [ 0.142608] pci 0000:00:0a.0: enabling device (0000 -> 0003)
    [ 0.142761] ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 11
    [ 0.142765] PCI: setting IRQ 11 as level-triggered
    [ 0.142773] pci 0000:00:0a.0: setting latency timer to 64
    [ 0.142779] pci_bus 0000:00: resource 4 [io 0x0000-0xffff]
    [ 0.142782] pci_bus 0000:00: resource 5 [mem 0x00000000-0xffffffff]
    [ 0.142786] pci_bus 0000:01: resource 0 [io 0x9000-0x9fff]
    [ 0.142789] pci_bus 0000:01: resource 1 [mem 0xd0100000-0xd01fffff]
    [ 0.142792] pci_bus 0000:01: resource 2 [mem 0xe0000000-0xefffffff pref]
    [ 0.142796] pci_bus 0000:02: resource 0 [io 0x1000-0x10ff]
    [ 0.142799] pci_bus 0000:02: resource 1 [io 0x1400-0x14ff]
    [ 0.142802] pci_bus 0000:02: resource 2 [mem 0x20000000-0x23ffffff pref]
    [ 0.142805] pci_bus 0000:02: resource 3 [mem 0x24000000-0x27ffffff]
    [ 0.142897] NET: Registered protocol family 2
    [ 0.143174] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.143535] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.143889] TCP: Hash tables configured (established 16384 bind 16384)
    [ 0.143955] TCP: reno registered
    [ 0.143959] UDP hash table entries: 256 (order: 1, 8192 bytes)
    [ 0.143977] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    [ 0.144077] NET: Registered protocol family 1
    [ 0.144100] pci 0000:00:00.0: ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb
    [ 0.144282] ACPI: PCI Interrupt Link [LNKU] enabled at IRQ 10
    [ 0.144286] PCI: setting IRQ 10 as level-triggered
    [ 0.413415] pci 0000:00:07.0: Activating ISA DMA hang workarounds
    [ 0.413447] pci 0000:01:05.0: Boot video device
    [ 0.413452] PCI: CLS 64 bytes, default 32
    [ 0.413587] Unpacking initramfs...
    [ 0.503602] Freeing initrd memory: 2784k freed
    [ 0.509892] Simple Boot Flag at 0x36 set to 0x1
    [ 0.510126] apm: BIOS not found.
    [ 0.510607] audit: initializing netlink socket (disabled)
    [ 0.510646] type=2000 audit(1358706958.509:1): initialized
    [ 0.523457] HugeTLB registered 4 MB page size, pre-allocated 0 pages
    [ 0.525587] VFS: Disk quotas dquot_6.5.2
    [ 0.525655] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.525920] msgmni has been set to 869
    [ 0.526240] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [ 0.526285] io scheduler noop registered
    [ 0.526288] io scheduler deadline registered
    [ 0.526298] io scheduler cfq registered (default)
    [ 0.526746] GHES: HEST is not enabled!
    [ 0.526764] isapnp: Scanning for PnP cards...
    [ 0.795785] isapnp: No Plug & Play device found
    [ 0.795846] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [ 0.816549] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 0.837660] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [ 0.838042] ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 3
    [ 0.838047] PCI: setting IRQ 3 as level-triggered
    [ 0.838329] i8042: PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
    [ 0.840414] serio: i8042 KBD port at 0x60,0x64 irq 1
    [ 0.840478] serio: i8042 AUX port at 0x60,0x64 irq 12
    [ 0.840617] mousedev: PS/2 mouse device common for all mice
    [ 0.840940] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
    [ 0.840970] rtc0: alarms up to one month, y3k, 242 bytes nvram
    [ 0.841007] cpuidle: using governor ladder
    [ 0.841010] cpuidle: using governor menu
    [ 0.841217] drop_monitor: Initializing network drop monitor service
    [ 0.841372] TCP: cubic registered
    [ 0.841559] NET: Registered protocol family 10
    [ 0.841863] NET: Registered protocol family 17
    [ 0.841889] Key type dns_resolver registered
    [ 0.842040] Using IPI No-Shortcut mode
    [ 0.842175] PM: Hibernation image not present or could not be loaded.
    [ 0.842199] registered taskstats version 1
    [ 0.842593] rtc_cmos 00:02: setting system clock to 2013-01-20 18:36:01 UTC (1358706961)
    [ 0.842770] Freeing unused kernel memory: 536k freed
    [ 0.843965] Write protecting the kernel text: 3976k
    [ 0.843994] Write protecting the kernel read-only data: 1180k
    [ 0.867357] systemd-udevd[35]: starting version 197
    [ 0.873812] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
    [ 0.936921] FDC 0 is a post-1991 82077
    [ 0.940986] SCSI subsystem initialized
    [ 0.956309] ACPI: bus type usb registered
    [ 0.956378] usbcore: registered new interface driver usbfs
    [ 0.956398] usbcore: registered new interface driver hub
    [ 0.958032] ACPI: bus type scsi registered
    [ 0.959860] usbcore: registered new device driver usb
    [ 0.960661] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [ 0.960747] ohci_hcd 0000:00:02.0: OHCI Host Controller
    [ 0.960761] ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
    [ 0.960803] ohci_hcd 0000:00:02.0: irq 10, io mem 0xd0002000
    [ 0.963589] libata version 3.00 loaded.
    [ 1.015711] hub 1-0:1.0: USB hub found
    [ 1.015730] hub 1-0:1.0: 4 ports detected
    [ 1.015891] pata_ali 0000:00:10.0: can't derive routing for PCI INT A
    [ 1.018256] scsi0 : pata_ali
    [ 1.018697] scsi1 : pata_ali
    [ 1.018845] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x8080 irq 14
    [ 1.018849] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x8088 irq 15
    [ 1.177191] ata1.00: ATA-6: IC25N040ATMR04-0, MO2OAD0A, max UDMA/100
    [ 1.177196] ata1.00: 78140160 sectors, multi 16: LBA48
    [ 1.190389] ata1.00: configured for UDMA/100
    [ 1.190649] scsi 0:0:0:0: Direct-Access ATA IC25N040ATMR04-0 MO2O PQ: 0 ANSI: 5
    [ 1.373392] usb 1-2: new full-speed USB device number 2 using ohci_hcd
    [ 1.373667] ata2.00: ATAPI: TSSTcorpCD/DVDW SN-S082D, SS03, max UDMA/33
    [ 1.373671] ata2.00: WARNING: ATAPI DMA disabled for reliability issues. It can be enabled
    [ 1.373673] ata2.00: WARNING: via pata_ali.atapi_dma modparam or corresponding sysfs node.
    [ 1.403539] ata2.00: configured for UDMA/33
    [ 1.411293] scsi 1:0:0:0: CD-ROM TSSTcorp CD/DVDW SN-S082D SS03 PQ: 0 ANSI: 5
    [ 1.191105] ACPI: Invalid Power Resource to register!
    [ 1.411676] ACPI: Invalid Power Resource to register!
    [ 1.417997] sd 0:0:0:0: [sda] 78140160 512-byte logical blocks: (40.0 GB/37.2 GiB)
    [ 1.418088] sd 0:0:0:0: [sda] Write Protect is off
    [ 1.418092] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
    [ 1.418129] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    [ 1.462655] sda: sda1 sda2
    [ 1.463374] sd 0:0:0:0: [sda] Attached SCSI disk
    [ 1.491992] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
    [ 1.492006] cdrom: Uniform CD-ROM driver Revision: 3.20
    [ 1.492908] sr 1:0:0:0: Attached scsi CD-ROM sr0
    [ 1.510060] tsc: Refined TSC clocksource calibration: 2120.213 MHz
    [ 1.510076] Switching to clocksource tsc
    [ 1.622794] usbcore: registered new interface driver usbhid
    [ 1.622804] usbhid: USB HID core driver
    [ 1.626374] input: USB Multi-Smart Mouse as /devices/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/input/input1
    [ 1.627212] hid-generic 0003:04FC:0801.0001: input,hidraw0: USB HID v1.11 Mouse [USB Multi-Smart Mouse] on usb-0000:00:02.0-2/input0
    [ 2.175751] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
    [ 2.652368] ACPI: EC: GPE storm detected, transactions will use polling mode
    [ 3.263466] systemd[1]: systemd 197 running in system mode. (+PAM -LIBWRAP -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ)
    [ 3.288044] systemd[1]: Set hostname to <skynet>.
    [ 3.689776] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. See system logs and 'systemctl status display-manager.service' for details.
    [ 3.690297] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
    [ 3.690438] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [ 3.690464] systemd[1]: Starting Remote File Systems.
    [ 3.690862] systemd[1]: Reached target Remote File Systems.
    [ 3.690883] systemd[1]: Starting Delayed Shutdown Socket.
    [ 3.691216] systemd[1]: Listening on Delayed Shutdown Socket.
    [ 3.691235] systemd[1]: Starting /dev/initctl Compatibility Named Pipe.
    [ 3.691536] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [ 3.691669] systemd[1]: Starting udev Kernel Socket.
    [ 3.691971] systemd[1]: Listening on udev Kernel Socket.
    [ 3.692050] systemd[1]: Starting udev Control Socket.
    [ 3.692347] systemd[1]: Listening on udev Control Socket.
    [ 3.692427] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point.
    [ 3.692914] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
    [ 3.692936] systemd[1]: Starting Encrypted Volumes.
    [ 3.693202] systemd[1]: Reached target Encrypted Volumes.
    [ 3.693234] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
    [ 3.693298] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [ 3.693320] systemd[1]: Expecting device dev-disk-by\x2duuid-3f31fd6e\x2d72f2\x2d4883\x2da8e8\x2dee56ba2b6e96.device...
    [ 3.693610] systemd[1]: Starting Journal Socket.
    [ 3.693947] systemd[1]: Listening on Journal Socket.
    [ 3.693983] systemd[1]: Started File System Check on Root Device.
    [ 3.694000] systemd[1]: Mounting Temporary Directory...
    [ 3.759629] systemd[1]: Mounting POSIX Message Queue File System...
    [ 3.762532] systemd[1]: Mounting Huge Pages File System...
    [ 3.803773] systemd[1]: Starting Apply Kernel Variables...
    [ 4.017890] systemd[1]: Started Set Up Additional Binary Formats.
    [ 4.031494] systemd[1]: Started Load Kernel Modules.
    [ 4.031542] systemd[1]: Mounted Configuration File System.
    [ 4.031570] systemd[1]: Starting Setup Virtual Console...
    [ 4.033865] systemd[1]: Mounting Debug File System...
    [ 4.037320] systemd[1]: Mounted FUSE Control File System.
    [ 4.037526] systemd[1]: Starting udev Kernel Device Manager...
    [ 4.043990] systemd[1]: Starting udev Coldplug all Devices...
    [ 4.047235] systemd[1]: Starting Journal Service...
    [ 4.051745] systemd[1]: Started Journal Service.
    [ 4.051905] systemd[1]: Starting Remount Root and Kernel File Systems...
    [ 4.056292] systemd[1]: Mounted Temporary Directory.
    [ 4.056902] systemd[1]: Mounted POSIX Message Queue File System.
    [ 4.057326] systemd[1]: Mounted Huge Pages File System.
    [ 4.057741] systemd[1]: Mounted Debug File System.
    [ 4.353535] EXT4-fs (sda1): re-mounted. Opts: data=ordered
    [ 4.598642] systemd-udevd[83]: starting version 197
    [ 5.123685] systemd[1]: Unit systemd-journald.service entered failed state
    [ 5.123947] systemd[1]: systemd-journald.service holdoff time over, scheduling restart.
    [ 5.124058] systemd[1]: Stopping Journal Service...
    [ 5.124670] systemd[1]: Starting Journal Service...
    [ 5.130250] systemd[1]: Started Journal Service.
    [ 6.060202] yenta_cardbus 0000:00:0a.0: CardBus bridge found [103c:0024]
    [ 6.060231] yenta_cardbus 0000:00:0a.0: Using CSCINT to route CSC interrupts to PCI
    [ 6.060234] yenta_cardbus 0000:00:0a.0: Routing CardBus interrupts to PCI
    [ 6.060239] yenta_cardbus 0000:00:0a.0: TI: mfunc 0x01111112, devctl 0x64
    [ 6.066899] pci 0000:00:11.0: enabling device (0000 -> 0001)
    [ 6.067944] alim1535_wdt: initialized. timeout=60 sec (nowayout=0)
    [ 6.069773] alim7101_wdt: Steve Hill <[email protected]>
    [ 6.069798] alim7101_wdt: Detected old alim7101 revision 'a1d'. If this is a cobalt board, set the 'use_gpio' module parameter.
    [ 6.141120] microcode: AMD CPU family 0x6 not supported
    [ 6.290481] yenta_cardbus 0000:00:0a.0: ISA IRQ mask 0x00b8, PCI irq 11
    [ 6.290490] yenta_cardbus 0000:00:0a.0: Socket status: 30000006
    [ 6.499629] ACPI: Video Device [VGA] (multi-head: yes rom: no post: no)
    [ 6.499945] ACPI: Battery Slot [BAT1] (battery absent)
    [ 6.501330] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A03:00/device:01/LNXVIDEO:00/input/input2
    [ 6.639604] input: PC Speaker as /devices/platform/pcspkr/input/input3
    [ 6.893520] alim7101_wdt: Steve Hill <[email protected]>
    [ 6.893544] alim7101_wdt: Detected old alim7101 revision 'a1d'. If this is a cobalt board, set the 'use_gpio' module parameter.
    [ 6.983648] tsc: Marking TSC unstable due to TSC halts in idle
    [ 6.983763] ACPI: acpi_idle registered with cpuidle
    [ 6.987013] Switching to clocksource acpi_pm
    [ 7.038815] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    [ 7.057667] ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 5
    [ 7.057680] PCI: setting IRQ 5 as level-triggered
    [ 7.084849] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input4
    [ 7.087965] ACPI: Power Button [PWRB]
    [ 7.088591] ACPI: AC Adapter [ACAD] (on-line)
    [ 7.089419] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input5
    [ 7.095566] Linux agpgart interface v0.103
    [ 7.106746] natsemi dp8381x driver, version 2.1, Sept 11, 2006
    originally by Donald Becker <[email protected]>
    2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
    [ 7.130175] ACPI: Lid Switch [LID]
    [ 7.130900] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input6
    [ 7.131019] ACPI: Power Button [PWRF]
    [ 7.220285] thermal LNXTHERM:00: registered as thermal_zone0
    [ 7.220298] ACPI: Thermal Zone [THRM] (60 C)
    [ 7.286538] parport_pc 00:09: reported by Plug and Play ACPI
    [ 7.286616] parport0: PC-style at 0x378 (0x778), irq 7, dma 0 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
    [ 7.299576] ppdev: user-space parallel port driver
    [ 7.424064] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x100-0x3af:
    [ 7.425327] excluding 0x170-0x177 0x1f0-0x1f7 0x200-0x207 0x220-0x22f 0x330-0x337 0x370-0x37f 0x388-0x38f
    [ 7.426221] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x3e0-0x4ff:
    [ 7.426660] excluding 0x3f0-0x3ff 0x408-0x40f 0x480-0x48f 0x4d0-0x4d7
    [ 7.427726] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x820-0x8ff:
    [ 7.428490] clean.
    [ 7.428514] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xc00-0xcf7:
    [ 7.429357] clean.
    [ 7.429387] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff:
    [ 7.429399] excluding 0xc0000-0xfffff
    [ 7.429423] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff:
    [ 7.429438] clean.
    [ 7.429461] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff:
    [ 7.429473] clean.
    [ 7.429496] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xa00-0xaff:
    [ 7.431559] clean.
    [ 7.550228] powernow: PowerNOW! Technology present. Can scale: frequency and voltage.
    [ 7.557694] powernow: No PST tables match this cpuid (0x7a0)
    [ 7.557703] powernow: This is indicative of a broken BIOS.
    [ 7.557704] powernow: Trying ACPI perflib
    [ 7.557803] powernow: Minimum speed 530 MHz. Maximum speed 2120 MHz.
    [ 7.799621] Adding 1004056k swap on /dev/sda2. Priority:-1 extents:1 across:1004056k
    [ 7.817944] psmouse serio1: synaptics: Touchpad model: 1, fw: 5.9, id: 0x236eb3, caps: 0x904713/0x10008/0x0, board id: 3655, fw id: 753378
    [ 7.852688] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input7
    [ 9.586736] AC'97 1 does not respond - RESET
    [ 9.600071] AC'97 1 access is not valid [0xffffffff], removing mixer.
    [ 9.600153] ali mixer 1 creating error.
    [ 9.605763] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
    [ 9.608749] natsemi eth0: NatSemi DP8381[56] at 0xd0005000 (0000:00:12.0), 00:0f:20:c7:01:24, IRQ 11, port TP.
    [ 9.610009] agpgart-ati 0000:00:00.0: Ati IGP320/M chipset
    [ 9.612037] reserve_ram_pages_type failed [mem 0x1a87d000-0x1a87dfff], track 0x10, req 0x10
    [ 9.612797] reserve_ram_pages_type failed [mem 0x1a87e000-0x1a87efff], track 0x10, req 0x10
    [ 9.614329] reserve_ram_pages_type failed [mem 0x1a87f000-0x1a87ffff], track 0x10, req 0x10
    [ 9.615179] reserve_ram_pages_type failed [mem 0x1a400000-0x1a400fff], track 0x10, req 0x10
    [ 9.615941] reserve_ram_pages_type failed [mem 0x1a402000-0x1a402fff], track 0x10, req 0x10
    [ 9.632019] reserve_ram_pages_type failed [mem 0x1a403000-0x1a403fff], track 0x10, req 0x10
    [ 9.632963] reserve_ram_pages_type failed [mem 0x1b238000-0x1b238fff], track 0x10, req 0x10
    [ 9.639528] reserve_ram_pages_type failed [mem 0x1aac8000-0x1aac8fff], track 0x10, req 0x10
    [ 9.641076] reserve_ram_pages_type failed [mem 0x1aaf4000-0x1aaf4fff], track 0x10, req 0x10
    [ 9.641840] reserve_ram_pages_type failed [mem 0x1a85e000-0x1a85efff], track 0x10, req 0x10
    [ 9.642604] reserve_ram_pages_type failed [mem 0x1a85f000-0x1a85ffff], track 0x10, req 0x10
    [ 9.650764] reserve_ram_pages_type failed [mem 0x1a864000-0x1a864fff], track 0x10, req 0x10
    [ 9.651546] reserve_ram_pages_type failed [mem 0x1a865000-0x1a865fff], track 0x10, req 0x10
    [ 9.652323] reserve_ram_pages_type failed [mem 0x1a404000-0x1a404fff], track 0x10, req 0x10
    [ 9.653103] reserve_ram_pages_type failed [mem 0x1a405000-0x1a405fff], track 0x10, req 0x10
    [ 9.655343] reserve_ram_pages_type failed [mem 0x1a406000-0x1a406fff], track 0x10, req 0x10
    [ 9.656123] reserve_ram_pages_type failed [mem 0x1a407000-0x1a407fff], track 0x10, req 0x10
    [ 9.660343] agpgart-ati 0000:00:00.0: AGP aperture is 64M @ 0xd4000000
    [ 9.661066] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10
    [ 9.661147] ssb: Found chip with id 0x4306, rev 0x02 and package 0x00
    [ 9.661162] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243)
    [ 9.661177] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
    [ 9.661191] ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243)
    [ 9.661203] ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
    [ 9.661214] ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243)
    [ 9.661225] ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
    [ 9.670177] ssb: Sonics Silicon Backplane found on PCI device 0000:00:09.0
    [ 9.670382] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
    [ 9.777337] systemd-udevd[112]: renamed network interface eth0 to enp0s18
    [ 9.873499] [drm] Initialized drm 1.1.0 20060810
    [ 9.956840] cfg80211: Calling CRDA to update world regulatory domain
    [ 10.157218] b43legacy-phy0: Broadcom 4306 WLAN found (core revision 4)
    [ 10.190344] enp0s18: DSPCFG accepted after 0 usec.
    [ 10.190366] enp0s18: link up.
    [ 10.190398] enp0s18: Setting full-duplex based on negotiated link capability.
    [ 10.198924] [drm] radeon defaulting to kernel modesetting.
    [ 10.198939] [drm] radeon kernel modesetting enabled.
    [ 10.199866] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
    [ 10.203846] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
    [ 10.206509] [drm] initializing kernel modesetting (RS100 0x1002:0x4336 0x103C:0x0024).
    [ 10.206583] [drm] register mmio base: 0xD0100000
    [ 10.206589] [drm] register mmio size: 65536
    [ 10.208257] agpgart-ati 0000:00:00.0: AGP 2.0 bridge
    [ 10.208304] agpgart-ati 0000:00:00.0: putting AGP V2 device into 4x mode
    [ 10.208382] radeon 0000:01:05.0: putting AGP V2 device into 4x mode
    [ 10.208400] radeon 0000:01:05.0: GTT: 64M 0xD4000000 - 0xD7FFFFFF
    [ 10.208422] radeon 0000:01:05.0: VRAM: 64M 0x000000001C000000 - 0x000000001FFFFFFF (64M used)
    [ 10.208461] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
    [ 10.208467] [drm] Driver supports precise vblank timestamp query.
    [ 10.208505] [drm] radeon: irq initialized.
    [ 10.209113] [drm] Detected VRAM RAM=64M, BAR=256M
    [ 10.209134] [drm] RAM width 64bits DDR
    [ 10.209414] [TTM] Zone kernel: Available graphics memory: 222902 kiB
    [ 10.209422] [TTM] Initializing pool allocator
    [ 10.209596] [drm] radeon: 64M of VRAM memory ready
    [ 10.209607] [drm] radeon: 64M of GTT memory ready.
    [ 10.233730] radeon 0000:01:05.0: WB disabled
    [ 10.233767] radeon 0000:01:05.0: fence driver on ring 0 use gpu addr 0x00000000d4000000 and cpu addr 0xdc702000
    [ 10.235923] [drm] Loading R100 Microcode
    [ 10.243857] b43legacy-phy0 ERROR: Firmware file "b43legacy/ucode4.fw" not found or load failed.
    [ 10.243943] b43legacy-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware (version 3).
    [ 10.272796] [drm] radeon: ring at 0x00000000D4001000
    [ 10.272843] [drm] ring test succeeded in 0 usecs
    [ 10.274061] [drm] ib test succeeded in 0 usecs
    [ 10.275769] [drm] Panel ID String: QDS
    [ 10.275780] [drm] Panel Size 1024x768
    [ 10.288375] [drm] radeon legacy LVDS backlight initialized
    [ 10.288880] [drm] Radeon Display Connectors
    [ 10.288889] [drm] Connector 0:
    [ 10.288897] [drm] VGA-1
    [ 10.288908] [drm] DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
    [ 10.288913] [drm] Encoders:
    [ 10.288918] [drm] CRT1: INTERNAL_DAC1
    [ 10.288924] [drm] Connector 1:
    [ 10.288930] [drm] LVDS-1
    [ 10.288940] [drm] DDC: 0x198 0x198 0x19c 0x19c 0x1a0 0x1a0 0x1a4 0x1a4
    [ 10.288945] [drm] Encoders:
    [ 10.288950] [drm] LCD1: INTERNAL_LVDS
    [ 10.288955] [drm] Connector 2:
    [ 10.288961] [drm] SVIDEO-1
    [ 10.288965] [drm] Encoders:
    [ 10.288970] [drm] TV1: INTERNAL_DAC2
    [ 10.393102] [drm] fb mappable at 0xE0040000
    [ 10.393114] [drm] vram apper at 0xE0000000
    [ 10.393119] [drm] size 3145728
    [ 10.393125] [drm] fb depth is 24
    [ 10.393131] [drm] pitch is 4096
    [ 10.394511] fbcon: radeondrmfb (fb0) is primary device
    [ 10.472464] Console: switching to colour frame buffer device 128x48
    [ 10.485936] fb0: radeondrmfb frame buffer device
    [ 10.485939] drm: registered panic notifier
    [ 10.485953] [drm] Initialized radeon 2.24.0 20080528 for 0000:01:05.0 on minor 0
    Xorg.0.log
    [ 699.289]
    X.Org X Server 1.13.1
    Release Date: 2012-12-13
    [ 699.290] X Protocol Version 11, Revision 0
    [ 699.290] Build Operating System: Linux 3.7.0-1-ARCH i686
    [ 699.290] Current Operating System: Linux skynet 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 12:58:46 CET 2012 i686
    [ 699.291] Kernel command line: root=/dev/sda1 ro initrd=../initramfs-linux.img BOOT_IMAGE=../vmlinuz-linux
    [ 699.291] Build Date: 16 December 2012 04:52:09PM
    [ 699.291]
    [ 699.292] Current version of pixman: 0.28.2
    [ 699.292] Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    [ 699.292] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [ 699.294] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jan 20 19:47:39 2013
    [ 699.360] (==) Using config directory: "/etc/X11/xorg.conf.d"
    [ 699.384] (==) No Layout section. Using the first Screen section.
    [ 699.384] (==) No screen section available. Using defaults.
    [ 699.384] (**) |-->Screen "Default Screen Section" (0)
    [ 699.384] (**) | |-->Monitor "<default monitor>"
    [ 699.404] (==) No device specified for screen "Default Screen Section".
    Using the first device section listed.
    [ 699.404] (**) | |-->Device "Radeon"
    [ 699.404] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
    [ 699.404] (==) Automatically adding devices
    [ 699.404] (==) Automatically enabling devices
    [ 699.404] (==) Automatically adding GPU devices
    [ 699.464] (WW) The directory "/usr/share/fonts/TTF/" does not exist.
    [ 699.464] Entry deleted from font path.
    [ 699.464] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
    [ 699.464] Entry deleted from font path.
    [ 699.464] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
    [ 699.464] Entry deleted from font path.
    [ 699.480] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
    [ 699.480] Entry deleted from font path.
    [ 699.480] (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
    [ 699.480] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
    [ 699.480] Entry deleted from font path.
    [ 699.480] (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
    [ 699.480] (==) FontPath set to:
    /usr/share/fonts/misc/
    [ 699.480] (==) ModulePath set to "/usr/lib/xorg/modules"
    [ 699.480] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
    [ 699.500] (II) Loader magic: 0x825a640
    [ 699.500] (II) Module ABI versions:
    [ 699.500] X.Org ANSI C Emulation: 0.4
    [ 699.500] X.Org Video Driver: 13.1
    [ 699.500] X.Org XInput driver : 18.0
    [ 699.500] X.Org Server Extension : 7.0
    [ 699.502] (II) config/udev: Adding drm device (/dev/dri/card0)
    [ 699.506] (--) PCI:*(0:1:5:0) 1002:4336:103c:0024 rev 0, Mem @ 0xe0000000/268435456, 0xd0100000/65536, I/O @ 0x00009000/256, BIOS @ 0x????????/131072
    [ 699.506] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
    [ 699.507] Initializing built-in extension Generic Event Extension
    [ 699.508] Initializing built-in extension SHAPE
    [ 699.508] Initializing built-in extension MIT-SHM
    [ 699.508] Initializing built-in extension XInputExtension
    [ 699.508] Initializing built-in extension XTEST
    [ 699.515] Initializing built-in extension BIG-REQUESTS
    [ 699.521] Initializing built-in extension SYNC
    [ 699.527] Initializing built-in extension XKEYBOARD
    [ 699.533] Initializing built-in extension XC-MISC
    [ 699.539] Initializing built-in extension SECURITY
    [ 699.544] Initializing built-in extension XINERAMA
    [ 699.550] Initializing built-in extension XFIXES
    [ 699.555] Initializing built-in extension RENDER
    [ 699.560] Initializing built-in extension RANDR
    [ 699.565] Initializing built-in extension COMPOSITE
    [ 699.570] Initializing built-in extension DAMAGE
    [ 699.575] Initializing built-in extension MIT-SCREEN-SAVER
    [ 699.580] Initializing built-in extension DOUBLE-BUFFER
    [ 699.585] Initializing built-in extension RECORD
    [ 699.589] Initializing built-in extension DPMS
    [ 699.594] Initializing built-in extension X-Resource
    [ 699.599] Initializing built-in extension XVideo
    [ 699.603] Initializing built-in extension XVideo-MotionCompensation
    [ 699.608] Initializing built-in extension XFree86-VidModeExtension
    [ 699.613] Initializing built-in extension XFree86-DGA
    [ 699.617] Initializing built-in extension XFree86-DRI
    [ 699.622] Initializing built-in extension DRI2
    [ 699.622] (II) LoadModule: "glx"
    [ 699.643] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    [ 699.710] (II) Module glx: vendor="X.Org Foundation"
    [ 699.710] compiled for 1.13.1, module version = 1.0.0
    [ 699.711] ABI class: X.Org Server Extension, version 7.0
    [ 699.711] (==) AIGLX enabled
    [ 699.716] Loading extension GLX
    [ 699.716] (II) LoadModule: "radeon"
    [ 699.739] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
    [ 699.805] (II) Module radeon: vendor="X.Org Foundation"
    [ 699.805] compiled for 1.13.0, module version = 7.0.0
    [ 699.806] Module class: X.Org Video Driver
    [ 699.806] ABI class: X.Org Video Driver, version 13.0
    [ 699.806] (II) RADEON: Driver for ATI Radeon chipsets:
    ATI Radeon Mobility X600 (M24) 3150 (PCIE), ATI FireMV 2400 (PCI),
    ATI Radeon Mobility X300 (M24) 3152 (PCIE),
    ATI FireGL M24 GL 3154 (PCIE), ATI FireMV 2400 3155 (PCI),
    ATI Radeon X600 (RV380) 3E50 (PCIE),
    ATI FireGL V3200 (RV380) 3E54 (PCIE), ATI Radeon IGP320 (A3) 4136,
    ATI Radeon IGP330/340/350 (A4) 4137, ATI Radeon 9500 AD (AGP),
    ATI Radeon 9500 AE (AGP), ATI Radeon 9600TX AF (AGP),
    ATI FireGL Z1 AG (AGP), ATI Radeon 9800SE AH (AGP),
    ATI Radeon 9800 AI (AGP), ATI Radeon 9800 AJ (AGP),
    ATI FireGL X2 AK (AGP), ATI Radeon 9600 AP (AGP),
    ATI Radeon 9600SE AQ (AGP), ATI Radeon 9600XT AR (AGP),
    ATI Radeon 9600 AS (AGP), ATI FireGL T2 AT (AGP), ATI Radeon 9650,
    ATI FireGL RV360 AV (AGP), ATI Radeon 7000 IGP (A4+) 4237,
    ATI Radeon 8500 AIW BB (AGP), ATI Radeon IGP320M (U1) 4336,
    ATI Radeon IGP330M/340M/350M (U2) 4337,
    ATI Radeon Mobility 7000 IGP 4437, ATI Radeon 9000/PRO If (AGP/PCI),
    ATI Radeon 9000 Ig (AGP/PCI), ATI Radeon X800 (R420) JH (AGP),
    ATI Radeon X800PRO (R420) JI (AGP),
    ATI Radeon X800SE (R420) JJ (AGP), ATI Radeon X800 (R420) JK (AGP),
    ATI Radeon X800 (R420) JL (AGP), ATI FireGL X3 (R420) JM (AGP),
    ATI Radeon Mobility 9800 (M18) JN (AGP),
    ATI Radeon X800 SE (R420) (AGP), ATI Radeon X800XT (R420) JP (AGP),
    ATI Radeon X800 VE (R420) JT (AGP), ATI Radeon X850 (R480) (AGP),
    ATI Radeon X850 XT (R480) (AGP), ATI Radeon X850 SE (R480) (AGP),
    ATI Radeon X850 PRO (R480) (AGP), ATI Radeon X850 XT PE (R480) (AGP),
    ATI Radeon Mobility M7 LW (AGP),
    ATI Mobility FireGL 7800 M7 LX (AGP),
    ATI Radeon Mobility M6 LY (AGP), ATI Radeon Mobility M6 LZ (AGP),
    ATI FireGL Mobility 9000 (M9) Ld (AGP),
    ATI Radeon Mobility 9000 (M9) Lf (AGP),
    ATI Radeon Mobility 9000 (M9) Lg (AGP), ATI FireMV 2400 PCI,
    ATI Radeon 9700 Pro ND (AGP), ATI Radeon 9700/9500Pro NE (AGP),
    ATI Radeon 9600TX NF (AGP), ATI FireGL X1 NG (AGP),
    ATI Radeon 9800PRO NH (AGP), ATI Radeon 9800 NI (AGP),
    ATI FireGL X2 NK (AGP), ATI Radeon 9800XT NJ (AGP),
    ATI Radeon Mobility 9600/9700 (M10/M11) NP (AGP),
    ATI Radeon Mobility 9600 (M10) NQ (AGP),
    ATI Radeon Mobility 9600 (M11) NR (AGP),
    ATI Radeon Mobility 9600 (M10) NS (AGP),
    ATI FireGL Mobility T2 (M10) NT (AGP),
    ATI FireGL Mobility T2e (M11) NV (AGP), ATI Radeon QD (AGP),
    ATI Radeon QE (AGP), ATI Radeon QF (AGP), ATI Radeon QG (AGP),
    ATI FireGL 8700/8800 QH (AGP), ATI Radeon 8500 QL (AGP),
    ATI Radeon 9100 QM (AGP), ATI Radeon 7500 QW (AGP/PCI),
    ATI Radeon 7500 QX (AGP/PCI), ATI Radeon VE/7000 QY (AGP/PCI),
    ATI Radeon VE/7000 QZ (AGP/PCI), ATI ES1000 515E (PCI),
    ATI Radeon Mobility X300 (M22) 5460 (PCIE),
    ATI Radeon Mobility X600 SE (M24C) 5462 (PCIE),
    ATI FireGL M22 GL 5464 (PCIE), ATI Radeon X800 (R423) UH (PCIE),
    ATI Radeon X800PRO (R423) UI (PCIE),
    ATI Radeon X800LE (R423) UJ (PCIE),
    ATI Radeon X800SE (R423) UK (PCIE),
    ATI Radeon X800 XTP (R430) (PCIE), ATI Radeon X800 XL (R430) (PCIE),
    ATI Radeon X800 SE (R430) (PCIE), ATI Radeon X800 (R430) (PCIE),
    ATI FireGL V7100 (R423) (PCIE), ATI FireGL V5100 (R423) UQ (PCIE),
    ATI FireGL unknown (R423) UR (PCIE),
    ATI FireGL unknown (R423) UT (PCIE),
    ATI Mobility FireGL V5000 (M26) (PCIE),
    ATI Mobility FireGL V5000 (M26) (PCIE),
    ATI Mobility Radeon X700 XL (M26) (PCIE),
    ATI Mobility Radeon X700 (M26) (PCIE),
    ATI Mobility Radeon X700 (M26) (PCIE),
    ATI Radeon X550XTX 5657 (PCIE), ATI Radeon 9100 IGP (A5) 5834,
    ATI Radeon Mobility 9100 IGP (U3) 5835,
    ATI Radeon XPRESS 200 5954 (PCIE),
    ATI Radeon XPRESS 200M 5955 (PCIE), ATI Radeon 9250 5960 (AGP),
    ATI Radeon 9200 5961 (AGP), ATI Radeon 9200 5962 (AGP),
    ATI Radeon 9200SE 5964 (AGP), ATI FireMV 2200 (PCI),
    ATI ES1000 5969 (PCI), ATI Radeon XPRESS 200 5974 (PCIE),
    ATI Radeon XPRESS 200M 5975 (PCIE),
    ATI Radeon XPRESS 200 5A41 (PCIE),
    ATI Radeon XPRESS 200M 5A42 (PCIE),
    ATI Radeon XPRESS 200 5A61 (PCIE),
    ATI Radeon XPRESS 200M 5A62 (PCIE),
    ATI Radeon X300 (RV370) 5B60 (PCIE),
    ATI Radeon X600 (RV370) 5B62 (PCIE),
    ATI Radeon X550 (RV370) 5B63 (PCIE),
    ATI FireGL V3100 (RV370) 5B64 (PCIE),
    ATI FireMV 2200 PCIE (RV370) 5B65 (PCIE),
    ATI Radeon Mobility 9200 (M9+) 5C61 (AGP),
    ATI Radeon Mobility 9200 (M9+) 5C63 (AGP),
    ATI Mobility Radeon X800 XT (M28) (PCIE),
    ATI Mobility FireGL V5100 (M28) (PCIE),
    ATI Mobility Radeon X800 (M28) (PCIE), ATI Radeon X850 5D4C (PCIE),
    ATI Radeon X850 XT PE (R480) (PCIE),
    ATI Radeon X850 SE (R480) (PCIE), ATI Radeon X850 PRO (R480) (PCIE),
    ATI unknown Radeon / FireGL (R480) 5D50 (PCIE),
    ATI Radeon X850 XT (R480) (PCIE),
    ATI Radeon X800XT (R423) 5D57 (PCIE),
    ATI FireGL V5000 (RV410) (PCIE), ATI Radeon X700 XT (RV410) (PCIE),
    ATI Radeon X700 PRO (RV410) (PCIE),
    ATI Radeon X700 SE (RV410) (PCIE), ATI Radeon X700 (RV410) (PCIE),
    ATI Radeon X700 SE (RV410) (PCIE), ATI Radeon X1800,
    ATI Mobility Radeon X1800 XT, ATI Mobility Radeon X1800,
    ATI Mobility FireGL V7200, ATI FireGL V7200, ATI FireGL V5300,
    ATI Mobility FireGL V7100, ATI Radeon X1800, ATI Radeon X1800,
    ATI Radeon X1800, ATI Radeon X1800, ATI Radeon X1800,
    ATI FireGL V7300, ATI FireGL V7350, ATI Radeon X1600, ATI RV505,
    ATI Radeon X1300/X1550, ATI Radeon X1550, ATI M54-GL,
    ATI Mobility Radeon X1400, ATI Radeon X1300/X1550,
    ATI Radeon X1550 64-bit, ATI Mobility Radeon X1300,
    ATI Mobility Radeon X1300, ATI Mobility Radeon X1300,
    ATI Mobility Radeon X1300, ATI Radeon X1300, ATI Radeon X1300,
    ATI RV505, ATI RV505, ATI FireGL V3300, ATI FireGL V3350,
    ATI Radeon X1300, ATI Radeon X1550 64-bit, ATI Radeon X1300/X1550,
    ATI Radeon X1600, ATI Radeon X1300/X1550, ATI Mobility Radeon X1450,
    ATI Radeon X1300/X1550, ATI Mobility Radeon X2300,
    ATI Mobility Radeon X2300, ATI Mobility Radeon X1350,
    ATI Mobility Radeon X1350, ATI Mobility Radeon X1450,
    ATI Radeon X1300, ATI Radeon X1550, ATI Mobility Radeon X1350,
    ATI FireMV 2250, ATI Radeon X1550 64-bit, ATI Radeon X1600,
    ATI Radeon X1650, ATI Radeon X1600, ATI Radeon X1600,
    ATI Mobility FireGL V5200, ATI Mobility Radeon X1600,
    ATI Radeon X1650, ATI Radeon X1650, ATI Radeon X1600,
    ATI Radeon X1300 XT/X1600 Pro, ATI FireGL V3400,
    ATI Mobility FireGL V5250, ATI Mobility Radeon X1700,
    ATI Mobility Radeon X1700 XT, ATI FireGL V5200,
    ATI Mobility Radeon X1700, ATI Radeon X2300HD,
    ATI Mobility Radeon HD 2300, ATI Mobility Radeon HD 2300,
    ATI Radeon X1950, ATI Radeon X1900, ATI Radeon X1950,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI Radeon X1900, ATI Radeon X1900, ATI Radeon X1900,
    ATI AMD Stream Processor, ATI Radeon X1900, ATI Radeon X1950,
    ATI RV560, ATI RV560, ATI Mobility Radeon X1900, ATI RV560,
    ATI Radeon X1950 GT, ATI RV570, ATI RV570, ATI FireGL V7400,
    ATI RV560, ATI Radeon X1650, ATI Radeon X1650, ATI RV560,
    ATI Radeon 9100 PRO IGP 7834, ATI Radeon Mobility 9200 IGP 7835,
    ATI Radeon X1200, ATI Radeon X1200, ATI Radeon X1200,
    ATI Radeon X1200, ATI Radeon X1200, ATI RS740, ATI RS740M, ATI RS740,
    ATI RS740M, ATI Radeon HD 2900 XT, ATI Radeon HD 2900 XT,
    ATI Radeon HD 2900 XT, ATI Radeon HD 2900 Pro, ATI Radeon HD 2900 GT,
    ATI FireGL V8650, ATI FireGL V8600, ATI FireGL V7600,
    ATI Radeon 4800 Series, ATI Radeon HD 4870 x2,
    ATI Radeon 4800 Series, ATI Radeon HD 4850 x2,
    ATI FirePro V8750 (FireGL), ATI FirePro V7760 (FireGL),
    ATI Mobility RADEON HD 4850, ATI Mobility RADEON HD 4850 X2,
    ATI Radeon 4800 Series, ATI FirePro RV770, AMD FireStream 9270,
    AMD FireStream 9250, ATI FirePro V8700 (FireGL),
    ATI Mobility RADEON HD 4870, ATI Mobility RADEON M98,
    ATI Mobility RADEON HD 4870, ATI Radeon 4800 Series,
    ATI Radeon 4800 Series, ATI FirePro M7750, ATI M98, ATI M98, ATI M98,
    ATI Mobility Radeon HD 4650, ATI Radeon RV730 (AGP),
    ATI Mobility Radeon HD 4670, ATI FirePro M5750,
    ATI Mobility Radeon HD 4670, ATI Radeon RV730 (AGP),
    ATI RV730XT [Radeon HD 4670], ATI RADEON E4600,
    ATI Radeon HD 4600 Series, ATI RV730 PRO [Radeon HD 4650],
    ATI FirePro V7750 (FireGL), ATI FirePro V5700 (FireGL),
    ATI FirePro V3750 (FireGL), ATI Mobility Radeon HD 4830,
    ATI Mobility Radeon HD 4850, ATI FirePro M7740, ATI RV740,
    ATI Radeon HD 4770, ATI Radeon HD 4700 Series, ATI Radeon HD 4770,
    ATI FirePro M5750, ATI RV610, ATI Radeon HD 2400 XT,
    ATI Radeon HD 2400 Pro, ATI Radeon HD 2400 PRO AGP, ATI FireGL V4000,
    ATI RV610, ATI Radeon HD 2350, ATI Mobility Radeon HD 2400 XT,
    ATI Mobility Radeon HD 2400, ATI RADEON E2400, ATI RV610,
    ATI FireMV 2260, ATI RV670, ATI Radeon HD3870,
    ATI Mobility Radeon HD 3850, ATI Radeon HD3850,
    ATI Mobility Radeon HD 3850 X2, ATI RV670,
    ATI Mobility Radeon HD 3870, ATI Mobility Radeon HD 3870 X2,
    ATI Radeon HD3870 X2, ATI FireGL V7700, ATI Radeon HD3850,
    ATI Radeon HD3690, AMD Firestream 9170, ATI Radeon HD 4550,
    ATI Radeon RV710, ATI Radeon RV710, ATI Radeon RV710,
    ATI Radeon HD 4350, ATI Mobility Radeon 4300 Series,
    ATI Mobility Radeon 4500 Series, ATI Mobility Radeon 4500 Series,
    ATI FirePro RG220, ATI Mobility Radeon 4330, ATI RV630,
    ATI Mobility Radeon HD 2600, ATI Mobility Radeon HD 2600 XT,
    ATI Radeon HD 2600 XT AGP, ATI Radeon HD 2600 Pro AGP,
    ATI Radeon HD 2600 XT, ATI Radeon HD 2600 Pro, ATI Gemini RV630,
    ATI Gemini Mobility Radeon HD 2600 XT, ATI FireGL V5600,
    ATI FireGL V3600, ATI Radeon HD 2600 LE,
    ATI Mobility FireGL Graphics Processor, ATI Radeon HD 3470,
    ATI Mobility Radeon HD 3430, ATI Mobility Radeon HD 3400 Series,
    ATI Radeon HD 3450, ATI Radeon HD 3450, ATI Radeon HD 3430,
    ATI Radeon HD 3450, ATI FirePro V3700, ATI FireMV 2450,
    ATI FireMV 2260, ATI FireMV 2260, ATI Radeon HD 3600 Series,
    ATI Radeon HD 3650 AGP, ATI Radeon HD 3600 PRO,
    ATI Radeon HD 3600 XT, ATI Radeon HD 3600 PRO,
    ATI Mobility Radeon HD 3650, ATI Mobility Radeon HD 3670,
    ATI Mobility FireGL V5700, ATI Mobility FireGL V5725,
    ATI Radeon HD 3200 Graphics, ATI Radeon 3100 Graphics,
    ATI Radeon HD 3200 Graphics, ATI Radeon 3100 Graphics,
    ATI Radeon HD 3300 Graphics, ATI Radeon HD 3200 Graphics,
    ATI Radeon 3000 Graphics, SUMO, SUMO, SUMO2, SUMO2, SUMO2, SUMO2,
    SUMO, SUMO, SUMO, SUMO, SUMO, SUMO, SUMO, SUMO, ATI Radeon HD 4200,
    ATI Radeon 4100, ATI Mobility Radeon HD 4200,
    ATI Mobility Radeon 4100, ATI Radeon HD 4290, ATI Radeon HD 4250,
    AMD Radeon HD 6310 Graphics, AMD Radeon HD 6310 Graphics,
    AMD Radeon HD 6250 Graphics, AMD Radeon HD 6250 Graphics,
    AMD Radeon HD 6300 Series Graphics,
    AMD Radeon HD 6200 Series Graphics, PALM, PALM, PALM, CYPRESS,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, AMD Firestream 9370,
    AMD Firestream 9350, ATI Radeon HD 5800 Series,
    ATI Radeon HD 5800 Series, ATI Radeon HD 5800 Series,
    ATI Radeon HD 5800 Series, ATI Radeon HD 5900 Series,
    ATI Radeon HD 5900 Series, ATI Mobility Radeon HD 5800 Series,
    ATI Mobility Radeon HD 5800 Series,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI Mobility Radeon HD 5800 Series, ATI Radeon HD 5700 Series,
    ATI Radeon HD 5700 Series, ATI Radeon HD 6700 Series,
    ATI Radeon HD 5700 Series, ATI Radeon HD 6700 Series,
    ATI Mobility Radeon HD 5000 Series,
    ATI Mobility Radeon HD 5000 Series, ATI Mobility Radeon HD 5570,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, ATI Radeon HD 5670,
    ATI Radeon HD 5570, ATI Radeon HD 5500 Series, REDWOOD,
    ATI Mobility Radeon HD 5000 Series,
    ATI Mobility Radeon HD 5000 Series, ATI Mobility Radeon Graphics,
    ATI Mobility Radeon Graphics, CEDAR,
    ATI FirePro (FireGL) Graphics Adapter,
    ATI FirePro (FireGL) Graphics Adapter, ATI FirePro 2270, CEDAR,
    ATI Radeon HD 5450, CEDAR, CEDAR, CAYMAN, CAYMAN, CAYMAN, CAYMAN,
    CAYMAN, CAYMAN, CAYMAN, CAYMAN, CAYMAN, CAYMAN,
    AMD Radeon HD 6900 Series, AMD Radeon HD 6900 Series, CAYMAN, CAYMAN,
    CAYMAN, AMD Radeon HD 6900M Series, Mobility Radeon HD 6000 Series,
    BARTS, BARTS, Mobility Radeon HD 6000 Series,
    Mobility Radeon HD 6000 Series, BARTS, BARTS, BARTS, BARTS,
    AMD Radeon HD 6800 Series, AMD Radeon HD 6800 Series,
    AMD Radeon HD 6700 Series, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS,
    TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS,
    TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS, TURKS,
    CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS,
    CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, CAICOS, ARUBA, ARUBA,
    ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA,
    ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA, ARUBA,
    ARUBA, ARUBA, TAHITI, TAHITI, TAHITI, TAHITI, TAHITI, TAHITI, TAHITI,
    TAHITI, TAHITI, TAHITI, TAHITI, TAHITI, PITCAIRN, PITCAIRN, PITCAIRN,
    PITCAIRN, PITCAIRN, PITCAIRN, PITCAIRN, PITCAIRN, PITCAIRN, PITCAIRN,
    PITCAIRN, PITCAIRN, PITCAIRN, VERDE, VERDE, VERDE, VERDE, VERDE,
    VERDE, VERDE, VERDE, VERDE, VERDE, VERDE, VERDE, VERDE, VERDE, VERDE,
    VERDE, VERDE, VERDE, VERDE, VERDE
    [ 699.829] (++) using VT number 1
    [ 699.843] (II) [KMS] Kernel modesetting enabled.
    [ 699.844] (II) RADEON(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 24/32
    [ 699.844] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
    [ 699.844] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
    [ 699.844] (==) RADEON(0): Default visual is TrueColor
    [ 699.844] (==) RADEON(0): RGB weight 888
    [ 699.844] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
    [ 699.844] (--) RADEON(0): Chipset: "ATI Radeon IGP320M (U1) 4336" (ChipID = 0x4336)
    [ 699.844] (II) Loading sub module "dri2"
    [ 699.844] (II) LoadModule: "dri2"
    [ 699.845] (II) Module "dri2" already built-in
    [ 699.845] (II) Loading sub module "exa"
    [ 699.845] (II) LoadModule: "exa"
    [ 699.845] (II) Loading /usr/lib/xorg/modules/libexa.so
    [ 699.866] (II) Module exa: vendor="X.Org Foundation"
    [ 699.866] compiled for 1.13.1, module version = 2.6.0
    [ 699.866] ABI class: X.Org Video Driver, version 13.1
    [ 699.866] (II) RADEON(0): KMS Color Tiling: disabled
    [ 699.866] (II) RADEON(0): KMS Color Tiling 2D: disabled
    [ 699.866] (II) RADEON(0): KMS Pageflipping: enabled
    [ 699.866] (II) RADEON(0): SwapBuffers wait for vsync: enabled
    [ 699.903] (II) RADEON(0): Output VGA-0 has no monitor section
    [ 699.903] (II) RADEON(0): Output LVDS has no monitor section
    [ 699.909] (II) RADEON(0): Output S-video has no monitor section
    [ 699.946] (II) RADEON(0): EDID for output VGA-0
    [ 699.946] (II) RADEON(0): EDID for output LVDS
    [ 699.946] (II) RADEON(0): Manufacturer: QDS Model: 11 Serial#: 0
    [ 699.946] (II) RADEON(0): Year: 2094 Week: 28
    [ 699.946] (II) RADEON(0): EDID Version: 1.2
    [ 699.946] (II) RADEON(0): Digital Display Input
    [ 699.946] (II) RADEON(0): Max Image Size [cm]: horiz.: 30 vert.: 23
    [ 699.946] (II) RADEON(0): Gamma: 2.20
    [ 699.946] (II) RADEON(0): No DPMS capabilities specified
    [ 699.946] (II) RADEON(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
    [ 699.946] (II) RADEON(0): First detailed timing is preferred mode
    [ 699.946] (II) RADEON(0): redX: 0.591 redY: 0.325 greenX: 0.314 greenY: 0.562
    [ 699.94

    The flickering issue is included in awesome-FS#1084
    satori wrote:Do you have any suggestions?
    For future reference, you should look for and report about awesome issues on the awesome bugtracker. The dev doesn't use arch and won't be looking through these forums.
    Last edited by tdy (2013-01-23 03:54:45)

  • New Awesome setup, a few questions.

    Hello everyone.
    Been tinkering away all day on a new lightweight setup using the Awesome WM. I like it a lot, but I have a few simple questions. I've tried searching the forums and the wiki to no avail. Hopefully it isn't because I wasn't looking hard enough!
    1.) Background: I've got the background set using nitrogen, I like the tool! But it doesn't stay set on reboot. I'm sure this one is easy, but I can't figure it out. Also, I have to run the tool from a terminal in the directory with the wallpapers. Is there a way to set the default directory it looks for wallpapers at? Does it have one already that I just don't know?
    2.) Firefox: It runs well, but there are some UGLIES to sort out. I'm sure GTK2 theme is one of them. The text in the browser looks fine, but the top bar with the tabs and menus has a really ugly font. Any suggested gtk2 themes for the awesome wm? Any good apps for changing them or any good packages with a lot to choose from?
    3.) Launcher: is there a way to put "quick launch" style icons on the awesome menu bar?
    Sorry if these questions are bone head, I've been slamming my head all day agains the configuration of vim and urxvt and I just don't want to give up. Those things are beasts. I actually ended up ditching urxvt for the xfce terminal and i'm really happy with it.
    Any good suggestions for VIM themes?
    Just looking to take a break and process some of this stuff before diving back into the config files really. Sorry the questions are a bit scattered, maybe I should have posted this in the newbie corner...feel free to move it!
    Thanks!!

    Cool, got the nitrogen thing worked out just fine.
    I'm having troubles making vim look right in the terminal. The default color scheme seems to appear correctly...but when I do desert it doesn't look like it does in gvim. I'd prefer to use vim in the console, anyone using the xfce terminal and have vim looking right? any .Xdefaults I could take a look at to get it going right?
    I appreciate the feed back!

  • [SOLVED] awesome & urxvt results in some screen flickering

    Hi,
    i've been using awesome since a few weeks and i noticed a flickering problem when starting urxvt (via mod4+enter).
    urxvt starts, disappears, comes back again, disappears and so on.
    starting up urxvt (time until i get a usable promt) takes about 1-2 seconds.
    However, i don't know how to track the problem down. Maybe it is urxvt's (i think it is), maybe it is awesome's or even ati's fault (using 2.6.32 with open source ati driver).
    when i switch between multiple windows (using mod4+n) only urxvt windows are flickering. Switching between gui-apps (ff, dolphin, …) works as expected.
    maybe someone has an idea about this …
    Here are the configs:
    .Xdefaults:
    !URxvt settings
    !--[Title]--!
    URxvt*title: urxvtc
    URxvt*termName: rxvt-unicode
    URxvt*cursorBlink: true
    URxvt*urgentOnBell: true
    !--[Url's /launching/marking/yanking]--!
    URxvt.perl-ext: default,matcher
    URxvt.urlLauncher: /usr/bin/firefox
    URxvt.matcher.button: 1
    !--[Fonts]--!
    URxvt*font: xft:Bitstream Vera Sans Mono:pixelsize=14:antialias=false
    URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true:antialias=false
    URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true:antialias=false
    URxvt.underlineColor: yellow
    URxvt.scrollBar: false
    !--[Urxvt Options]--!
    URxvt.boldMode: false
    URxvt.imLocale: de_AT.UTF-8
    URxvt.loginShell: true
    URxvt.saveLines: 512
    URxvt.inheritPixmap: true
    URxvt.borderless: true
    URxvt.jumpScroll: true
    URxvt.tintColor: white
    URxvt.internalBorder: 0
    URxvt.cursorBlink: false
    URxvt.cursorColor: #dd9900
    URxvt.cursorColor2: #000000
    URxvt.background: #222222
    URxvt.foreground: #ddccbb
    URxvt.colorBD: #ffffff
    URxvt.colorIT: #bbbbbb
    URxvt.colorUL: #999999
    URxvt.underlineColor: #999999
    URxvt*saveLines: 512
    !URxvt*depth: 32
    !URxvt*background: rgba:02f0/04f0/04f0/cccc
    URxvt*transparent: true
    URxvt*shading: 10
    !--[Colours]--!
    !Theme One from
    !http://phraktured.net/terminal-colors/terminal%20theme.tags.html
    *background: rgb:00/00/00
    *foreground: rgb:a8/a8/a8
    *color0: rgb:00/00/00
    *color1: rgb:a8/00/00
    *color2: rgb:00/a8/00
    *color3: rgb:a8/54/00
    *color4: rgb:00/00/a8
    *color5: rgb:a8/00/a8
    *color6: rgb:00/a8/a8
    *color7: rgb:a8/a8/a8
    *color8: rgb:54/50/54
    *color9: rgb:f8/54/50
    *color10: rgb:50/fc/50
    *color11: rgb:f8/fc/50
    *color12: rgb:50/54/f8
    *color13: rgb:f8/54/f8
    *color14: rgb:50/fc/f8
    *color15: rgb:f8/fc/f8
    http://github.com/nblock/config/blob/master/.Xdefaults
    rc.lua:
    -- {{{ Load libraries
    -- Standard awesome library
    require("awful")
    require("awful.autofocus")
    require("awful.rules")
    -- Theme handling library
    require("beautiful")
    -- Notification library
    require("naughty")
    require("vicious")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/usr/share/awesome/themes/zenburn/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "urxvtc"
    editor = "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.
    layouts =
    awful.layout.suit.tile, --1
    awful.layout.suit.tile.left, --2
    awful.layout.suit.tile.bottom, --3
    awful.layout.suit.tile.top, --4
    awful.layout.suit.fair, --5
    awful.layout.suit.fair.horizontal, --6
    awful.layout.suit.spiral, --7
    awful.layout.suit.spiral.dwindle, --8
    awful.layout.suit.max, --9
    awful.layout.suit.max.fullscreen, --10
    awful.layout.suit.magnifier, --11
    awful.layout.suit.floating --12
    -- some commands
    local commands = {}
    commands.suspend = "sudo pm-suspend"
    commands.help = "touch ~/seppal"
    commands.lock = "xscreensaver-command --lock"
    commands.screenshot = "scrot -e 'mv $f ~/bilder/screenshots'"
    --audio stuff
    commands.raisevol = "amixer set PCM 2%+"
    commands.lowervol = "amixer set PCM 2%-"
    commands.mute = "amixer sset PCM toggle"
    commands.cmusnext = "cmus-remote --next"
    commands.cmusprev = "cmus-remote --prev"
    commands.cmuspause = "cmus-remote --pause"
    commands.cmusplay = "cmus-remote --play"
    commands.calc = "krunner"
    --todo
    commands.fileman = "pcmanfm"
    commands.calc = "xcalc"
    commands.browser = "firefox"
    -- {{{ 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 download", "2 mail", "3 chat",
    "4 music", "5 news", "6 fm",
    7, 8, 9 }, s,
    {layouts[3], layouts[1], layouts[1], -- Tags: 1, 2, 3
    layouts[1], layouts[1], layouts[1], -- 4, 5 ,6
    layouts[1], layouts[1], layouts[1] -- 7, 8, 9
    end
    -- {{{ 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 }
    mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
    menu = mymainmenu })
    -- {{{ Wibox
    -- {{{ Widgets configuration
    -- {{{ Reusable separators
    local spacer = widget({ type = "textbox", name = "spacer" })
    local separator = widget({ type = "textbox", name = "separator" })
    spacer.text = " "
    separator.text = " <span foreground='red'>•</span> "
    -- {{{ CPU load
    local cpuwidget = widget({ type = "textbox" })
    vicious.register(cpuwidget, vicious.widgets.cpu, "<span foreground='orange'>load: </span><span foreground='green'>$2%</span><span foreground='orange'> - </span><span foreground='green'>$3%</span>")
    -- {{{ CPU temperature
    local thermalwidget = widget({ type = "textbox" })
    vicious.register(thermalwidget, vicious.widgets.thermal, "<span foreground='orange'>temp: </span><span foreground='green'>$1°C</span>", 20, "thermal_zone1")
    -- {{{ Battery state
    -- Widget icon
    -- baticon = widget({ type = "imagebox", name = "baticon" })
    -- baticon.image = image(beautiful.widget_bat)
    local batwidget = widget({ type = "textbox" })
    vicious.register(batwidget, vicious.widgets.bat, "<span foreground='orange'>bat: </span><span foreground='green'>$1$2%</span>", 60, "C1C5")
    -- {{{ Date and time
    local datewidget = widget({ type = "textbox" })
    vicious.register(datewidget, vicious.widgets.date, "<span foreground='green'>%a, %d.%m.%y - %H:%M</span>", 5)
    -- {{{ Volume widget
    local volwidget = widget({ type = "textbox" })
    vicious.register(volwidget, vicious.widgets.volume, "<span foreground='orange'>vol: </span><span foreground='green'>$1%</span>", 1, 'PCM')
    -- {{{ System tray
    systray = widget({ type = "systray" })
    -- {{{ Wibox initialisation
    local wibox = {}
    local promptbox = {}
    local layoutbox = {}
    local taglist = {}
    taglist.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, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev))
    for s = 1, screen.count() do
    -- Create a promptbox
    promptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
    -- Create a layoutbox
    layoutbox[s] = awful.widget.layoutbox(s)
    layoutbox[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
    taglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, taglist.buttons)
    -- Create the wibox
    wibox[s] = awful.wibox({
    position = "top", screen = s,
    fg = beautiful.fg_normal, bg = beautiful.bg_normal
    -- Add widgets to the wibox
    wibox[s].widgets = {{
    launcher, taglist[s], layoutbox[s], promptbox[s],
    layout = awful.widget.layout.horizontal.leftright
    s == screen.count() and systray or nil,
    spacer, datewidget,
    separator, volwidget,
    separator, batwidget,
    separator, cpuwidget,
    separator, thermalwidget,
    layout = awful.widget.layout.horizontal.rightleft
    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(
    --user defined
    awful.key({}, "XF86PowerOff", function() awful.util.spawn_with_shell(commands.suspend) end ),
    awful.key({}, "Help", function() awful.util.spawn_with_shell(commands.help) end ),
    awful.key({ modkey, }, "F12", function () awful.util.spawn_with_shell(commands.lock) end),
    --audio stuff
    awful.key({}, "XF86AudioMute", function() awful.util.spawn_with_shell(commands.mute) end ),
    awful.key({}, "XF86AudioRaiseVolume", function() awful.util.spawn_with_shell(commands.raisevol) end ),
    awful.key({}, "XF86AudioLowerVolume", function() awful.util.spawn_with_shell(commands.lowervol) end ),
    awful.key({}, "XF86AudioNext", function() awful.util.spawn_with_shell(commands.cmusnext) end ),
    awful.key({}, "XF86AudioPrev", function() awful.util.spawn_with_shell(commands.cmusprev) end ),
    awful.key({}, "XF86AudioPlay", function() awful.util.spawn_with_shell(commands.cmuspause) end ),
    awful.key({}, "XF86Tools", function() awful.util.spawn_with_shell(commands.cmusplay) end ),
    awful.key({}, "XF86Calculator", function() awful.util.spawn_with_shell(commands.calc) end ),
    awful.key({}, "Print", function() awful.util.spawn_with_shell(commands.screenshot) end ),
    -- awful.key({}, "XF86MyComputer", function() awful.util.spawn_with_shell(commands.fileman) end ),
    -- awful.key({}, "XF86Mail", function() awful.util.spawn_with_shell(commands.mail) end ),
    -- awful.key({}, "XF86HomePage", function() awful.util.spawn_with_shell(commands.browser) end ),
    -- awful.key({}, "XF86Sleep", function() awful.util.spawn_with_shell(commands.lock) end ),
    -- awful.key({"Control", "Mod1"}, "l", function() awful.util.spawn_with_shell(commands.lock) end ),
    --default bindings
    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, }, "n",
    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(true) end),
    -- Layout manipulation
    awful.key({ modkey, "Shift" }, "n", function () awful.client.swap.byidx( 1) end),
    awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
    awful.key({ modkey, "Control" }, "n", 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),
    -- Prompt
    awful.key({ modkey }, "r", function () promptbox[mouse.screen]:run() end),
    -- Run stuff in a Terminal
    awful.key({ modkey }, "x", function ()
    awful.prompt.run({ prompt = "Run in Terminal: " }, promptbox[mouse.screen].widget,
    function (prog)
    awful.util.spawn_with_shell(terminal .. " -name " .. prog .. " -e /bin/bash -c " .. prog)
    end)
    end)
    clientkeys = awful.util.table.join(
    awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, "Shift" }, "c", 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, "Shift" }, "r", function (c) c:redraw() end),
    awful.key({ modkey, }, "j", function (c) c.minimized = not c.minimized 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 = true,
    keys = clientkeys,
    buttons = clientbuttons } },
    --floating apps
    { rule = { class = "pinentry-qt4" },
    properties = { floating = true } },
    { rule = { class = "Gimp" },
    properties = { floating = true } },
    --apptags
    --downloading stuff
    { rule = { class = "JDownloader" },
    properties = { tag = tags[1][1],switchtotag = true } },
    { rule = { instance = "rtorrent" },
    properties = { tag = tags[1][1],switchtotag = false } },
    -- mail
    { rule = { class = "Kmail" },
    properties = { tag = tags[1][2],switchtotag = true } },
    --chat and stuff like that
    { rule = { class = "Choqok" },
    properties = { tag = tags[1][3],switchtotag = false } },
    { rule = { class = "Kopete" },
    properties = { tag = tags[1][3],switchtotag = false } },
    -- cmus
    { rule = { instance = "cmus" },
    properties = { tag = tags[1][4],switchtotag = true } },
    -- news
    { rule = { instance = "newsbeuter" },
    properties = { tag = tags[1][5],switchtotag = true } },
    --file manager
    { rule = { class = "Dolphin" },
    properties = { tag = tags[1][6],switchtotag = true } },
    --misc stuff
    { rule = { class = "Konqueror" },
    properties = { tag = tags[1][9],switchtotag = true } },
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    client.add_signal("manage", function (c, startup)
    -- Add a titlebar
    -- awful.titlebar.add(c, { modkey = modkey })
    -- remove gaps
    c.size_hints_honor = false
    -- 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)
    end
    end
    end)
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    -- {{{ Autostart
    os.execute("krandrtray &")
    -- vim: fdm=marker fdl=0 sts=4 ai
    http://github.com/nblock/config/blob/ma … ome/rc.lua
    Thanks.
    Last edited by nblock (2010-01-02 09:59:24)

    Try this .Xdefaults which works with awesome/urxvt.
    *utf8: 1
    *faceSize: 10
    *jumpScroll: true
    *multiScroll: true
    *boldMode: false
    *scrollBar: false
    *cutNewline: false
    *scrollTtyOutput: false
    *scrollKey: true
    *cursorBlink: true
    *dynamicColors: true
    *saveLines: 5000
    *geometry: 125x45
    ! URxvt
    URxvt*termName: xterm
    URxvt.font: xft:Bitstream Vera Sans Mono:antialias=true:pixelsize=12
    !urxvt.font: xft:Bitstream Vera Sans Mono-12:antialias=true
    URxvt*transparent: false
    URxvt*tintColor: #666666
    URxvt*shading: 50
    URxvt*scrollBar: false
    URxvt*internalBorder: 5
    URxvt*urgentOnBell: true
    URxvt*scrollTtyKeypress: true
    URxvt*underlineColor: yellow
    URxvt*perl-ext-common: default,matcher
    URxvt*urlLauncher: firefox
    URxvt*matcher.button: 1
    URxvt*matcher.pattern.1: \\bwww\\.[\\w-]\\.[\\w./?&@#-]*[\\w/-]
    ! Colours
    *background: #303030
    *foreground: #f2f2f2
    *cursorColor: #999
    *highlightColor: #333
    *color0: #101010
    *color1: #f13a21
    *color2: #93f91d
    *color3: #ffd00a
    *color4: #404f9e
    *color5: #ec0048
    *color6: #2aa7e7
    *color7: #f2f2f2
    *color8: #1d202f
    *color9: #ff361e
    *color10: #ffc005
    *color11: #93ff00
    *color12: #3071ff
    *color13: #ef0051
    *color14: #4bb8fd
    *color15: #a020f0
    Last edited by r6 (2010-01-02 05:05:11)

  • [SOLVED]Problem with systemd and awesome wm

    Hello,
    I recently have installed systemd and I have enabled slim.service, but after logging in throught slim I cannot run any programs in my awesome wm. Well, actually I can, but only a few seconds after login. If I run xterm and then try to run a program throught it I get messages "no protocol specified" and "cannot open display :0.0". If I quit awesome/X and login again(without reboot) all works just fine. Could you please help me to solve this problem? Thank you in advance.
    Edit: found this in the Xorg.0.log:
    [ 164.412] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Jun 15 11:47:28 2012
    [ 164.412] (==) Using config directory: "/etc/X11/xorg.conf.d"
    [ 164.413] (==) No Layout section. Using the first Screen section.
    [ 164.413] (==) No screen section available. Using defaults.
    [ 164.413] (**) |-->Screen "Default Screen Section" (0)
    [ 164.413] (**) | |-->Monitor "<default monitor>"
    [ 164.413] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
    Last edited by ArtemGuzhva (2012-06-18 07:46:12)

    Okay, it is working fine now I have uninstalled initscripts and installed sysvcompat.
    NOTE: before uninstalling initscripts and sysvinit, reboot your computer with init=/bin/systemd in your kernel cmdline, because you will not be able to shutdown properly due to the lack of inittab.
    Last edited by ArtemGuzhva (2012-06-18 07:49:12)

  • I am having a strange problem with the awesome bar

    The awesome bar/location bar is no longer as awesome as it used to be. When I start typing in an address it seems like it no longer checks through my history and gives a list of possible matches but just gives the stem of an address. For example, if I type in 'goo' it will complete this to 'google.com' if I then append this with an '/a' it will complete this to 'google.com/analytics' but that's as good as it gets, as I say, no list from the history or bookmarks.
    I've checked the options and also about:config and all the settings are as they should be, as far as I can tell (and I certainly hadn't changed any of them when it started misbehaving). I've also disabled all extensions and plug-ins.
    It's driving my slightly bonkers because I quite often use sites with long addresses and can't remember each of the components of each address. I'd switch to using Chrome but I also use Firebug a fair bit so don't really want to do this.

    Hi cowtan, <br/>Sorry you are having problems with the awesome bar.
    I imagine the new behaviour may be reversed by changing some pref but I have not looked that up.
    Regardless of the new behaviour you seem to have some fault as my awesomebar still gives bookmarked items.
    As a troubleshooting step try adding an asterisk in the awesomebar (as first character or anywhere) that should then filter the results in the dropdown list to bookmarked only items, does that work ?
    * see [[Search your bookmarks, history and tabs with the Awesome Bar#w_changing-results-on-the-fly]]_changing-results-on-the-fly
    You possibly have some extension interfering with the awesome bar, try Firefox in safe mode (but do NOT* at this stage try the Reset Firefox option)
    <nowiki>*</nowiki>'''edit''' - personal opinion, if a user; such as you; is knowledgeable enough to use ''about.config'' the easy solution of ''FirefoxReset ''is probably not the best route, as it can have unwanted side effects that are avoidable.
    * [[Troubleshoot Firefox issues using Safe Mode]]
    Do your bookmarked items appear in safe mode ?
    <u>Try a new Profile.</u><br/>The best method for troubleshooting this will be to set up a new Firefox profile, you can then: experiment, troubleshoot, alter settings or extensions installed in that profile without changing and potentially damaging your current profile.
    * http://kb.mozillazine.org/Profile_Manager#Creating_a_new_profile
    I suggest to prevent unexpected problems you
    * use a sensible name such as test 2012 for the profile name
    * ensure an empty folder is used & do not then rename or delete the new profile (instead add or delete shortcuts to it)
    * also see http://kb.mozillazine.org/Using_multiple_profiles_-_Firefox

  • [awesome] New to the tiling world

    Hey everybody,
    After the surprises and joys of the basic Archlinux install, I first installed KDE4 as DE, because I was quite used to use it.
    The I saw that KDE wasn't enough light to change my PC in a formula 1 car, so I searched. After that I installed Openbox, which has a great community here.
    But that was a quite common wm.
    Then I switched to awesome, and I'm here to fix some problems : when I start an awesome session, I only see my wallpaper, no right menu or bar on top as expected.
    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("vicious")
    -- Load Debian menu entries
    --require("debian.menu")
    -- Custom libraries
    require("revelation")
    require("shifty")
    require("vicious")
    require("teardrop")
    --if true then return end
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/home/alex/.config/awesome/theme/fiesta/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "xterm"
    editor = os.getenv("EDITOR") or "editor"
    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"
    modkey2 = "Mod3"
    -- 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.spiral,
    awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
    awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier,
    awful.layout.suit.floating
    -- {{{ Tags
    shifty.config.tags = {
    ["xterm"] = { position = 1, init = true, },
    ["www"] = { position = 2, spawn = browser,},
    ["inkscape"] = { position = 3, exclusive = true, nopopup = true, spawn = inkscape, },
    ["irc"] = { position = 4, nopopup = true, spawn = "xterm -T weechat -e weechat-curses" },
    ["sys"] = { position = 5, exclusive = true, nopopup = true, },
    ["msg"] = { position = 7, exclusive = true, nopopup = true, },
    ["view"] = { position = 8, exclusive = true, nopopup = true, },
    ["mail"] = { position = 10, exclusive = true, nopopup = true, spawn = claws-mail },
    ["med"] = { position = 11, nopopup = true, },
    ["[mplayer]"] = { position = 11, nopopup = true, spawn = "xterm -T mplay"},
    ["dl"] = { position = 12, nopopup = true, spawn = "Transmission"},
    shifty.taglist = mytaglist
    -- Clients rules
    shifty.config.apps = {
    { match = {"Transmission" }, tag = "dl" },
    { match = {"^Download$", "Preferences", "VideoDownloadHelper","Downloads", "Firefox Preferences", }, float = true, intrusive = true },
    { match = {"Firefox","Iceweasel","Vimperator","Shiretoko"} , tag = "www", opacity = 1.0 } ,
    { match = {"WeeChat 0.2.6","weechat-curses","weechat" }, tag = "irc" , },
    { match = {"Inkscape" }, tag = "inkscape", float = true , opacity = 1.0 },
    { match = {"MPlayer","QuodLibet" }, float = true, opacity = 1.0 },
    { match = {"claws-mail" }, tag = "mail", float = true, opacity = 1.0},
    { match = {"med" }, tag = "med" },
    { match = {"ncmpcpp","ncmpc++ ver.0.3.4","med" }, tag = "med", },
    { match = {"Pidgin" }, tag = "msg", },
    { match = {"htop" }, tag = "sys", },
    { match = {"Texmaker" }, tag = "texmaker", float = true, opacity = 1.0 },
    { match = {"lxappearence","Caml graphics" }, float = true, opacity = 1.0 },
    { match = {"gpicview","Epdfview" }, float = true, tag = "view", },
    { match = { "" },
    buttons = 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),
    awful.button({ modkey }, 8, awful.mouse.client.resize))
    -- Options par défaut.
    shifty.config.defaults = {
    layout = awful.layout.suit.tile,
    ncol = 1,
    mwfact = 0.50,
    floatBars=false,
    -- {{{ 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 }
    mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    -- { "Debian", debian.menu.Debian_menu.Debian },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
    menu = mymainmenu })
    -- {{{ Wibox
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" })
    -- Create a systray
    mysystray = widget({ type = "systray" })
    -- 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, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(
    awful.button({ }, 1, function (c)
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    client.focus = c
    c:raise()
    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({ layout = awful.widget.layout.horizontal.leftright })
    -- 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.label.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(function(c)
    return awful.widget.tasklist.label.currenttags(c, s)
    end, mytasklist.buttons)
    --- {{ Section des Widgets
    -- Date
    datewidget = widget({ type = "textbox" })
    vicious.register(datewidget, vicious.widgets.date, "%b %d, %R", 60)
    -- Mem Widget
    memwidget = widget({ type = "textbox" })
    vicious.register(memwidget, vicious.widgets.mem, " $2MB/$3MB", 13)
    -- CPU Widget
    -- Initialize widget
    cpuwidget = widget({ type = "textbox" })
    -- Register widget
    vicious.register(cpuwidget, vicious.widgets.cpu, "$1%")
    -- Widget MPD
    --mpdwidget = widget({ type = "textbox", name = "mpdwidget" })
    --vicious.register(mpdwidget, vicious.widgets.mpd, " $1", 5, { 30, "mpd" })
    -- Net Widget
    netwidget = widget({ type = "textbox", name = "netwidget" })
    vicious.register(netwidget, vicious.widgets.net, '${wlan0 down_kb} kbps / ${wlan0 up_kb} kbps', 3)
    -- FS Widget
    fswidget = widget({ type = "textbox", name = "fswidget" })
    vicious.register(fswidget, vicious.widgets.fs,
    ' ${/home used_gb}<span color="'.. beautiful.fg_widget ..'"> /</span> ${/home size_gb} ', 120)
    tempwidget = widget({ type = "textbox", name = "tempwidget" })
    vicious.register(tempwidget, vicious.widgets.thermal, "$1°C", 20, "thermal_zone2")
    -- Icones
    mycpuicon = widget({ type = "imagebox", name = "mycpuicon" })
    mycpuicon.image = image(beautiful.widget_cpu)
    myneticon = widget({ type = "imagebox", name = "myneticon" })
    myneticonup = widget({ type = "imagebox", name = "myneticonup" })
    myneticonup.image = image(beautiful.widget_netup)
    myneticon.image = image(beautiful.widget_net)
    myvolicon = widget({ type = "imagebox", name = "myvolicon" })
    myvolicon.image = image(beautiful.widget_vol)
    mymusicicon = widget({ type = "imagebox", name = "mymusicicon"})
    mymusicicon.image = image(beautiful.widget_music)
    myspacer = widget({ type = "textbox", name = "myspacer" })
    myseparator = widget({ type = "textbox", name = "myseparator" })
    myspacer.text = " "
    myseparator.text = "|"
    mydiskicon = widget({ type = "imagebox", name = "mydiskicon" })
    mytimeicon = widget({ type = "imagebox", name = "mytimeicon" })
    mytimeicon.image = image(beautiful.widget_date)
    mydiskicon.image = image(beautiful.widget_fs)
    mymemicon = widget({ type = "imagebox", name = "mymemicon" })
    mymemicon.image = image(beautiful.widget_mem)
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
    mylauncher,
    mytaglist[s],
    mypromptbox[s],
    layout = awful.widget.layout.horizontal.rightleft
    mylayoutbox[s],
    myspacer,
    datewidget, mytimeicon,
    s == 1 and mysystray or nil,
    myspacer,
    mpdwidget, mymusicicon,
    myspacer,
    fswidget, mydiskicon,
    myspacer,
    myneticonup, netwidget, myneticon,
    myspacer,
    cpuwidget,
    mycpuicon,
    myspacer,
    memwidget,
    mymemicon,
    layout = awful.widget.layout.horizontal.rightleft
    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, "Shift" }, "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(true) end),
    -- Layout manipulationi
    -- awful
    awful.key({ modkey, }, "Tab", function () awful.client.focus.byidx( 1) end),
    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, "Shift" }, "Tab",
    function ()
    awful.client.focus.history.previous()
    if client.focus then
    client.focus:raise()
    end
    end),
    -- Shifty
    awful.key({ modkey, "Shift" }, "t", shifty.add),
    awful.key({ modkey }, "r", shifty.rename),
    awful.key({ modkey }, "w", shifty.del),
    awful.key({ modkey, "Shift" }, "Left", shifty.shift_prev ),
    awful.key({ modkey, "Shift" }, "Right", shifty.shift_next ),
    -- awful.key({ modkey }, "Escape", function() awful.tag.history.restore() end), -- move to prev tag by history
    awful.key({ modkey, "Shift" }, "n", shifty.send_prev), -- move client to prev tag
    awful.key({ modkey }, "n", shifty.send_next),
    -- shifty.config.clientkeys = clientkeys
    -- 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 },"x", function () teardrop("urxvtc", "top") end),
    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 }, "Down", revelation.revelation),
    -- Keybindings Perso
    awful.key({ modkey2}, "Left", function () awful.util.spawn("amixer -q sset Front 2dB-") end),
    awful.key({ modkey2}, "Right", function () awful.util.spawn("amixer -q sset Front 2dB+") end),
    awful.key({ modkey}, "v", function () awful.util.spawn("apps") end),
    --}) end),
    -- Prompt
    awful.key({ modkey }, "BackSpace", function () mypromptbox[mouse.screen]:run() end)
    -- Customs prompts
    awful.key({ modkey }, "g", function ()
    awful.prompt.run({ prompt = "Xterm" }, promptbox[mouse.screen].widget,
    function (name)
    exec("xterm -T "..name.."")
    end)
    end)
    clientkeys = awful.util.table.join(
    awful.key({ modkey, }, "s", function (c) c.ontop = not c.ontop end ),
    awful.key({ modkey, }, "s", function (c) c.sticky = not c.sticky end ),
    awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey }, "c", 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, "Shift" }, "r", function (c) c:redraw() end),
    -- awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized 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.
    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)
    shifty.config.globalkeys = globalkeys
    shifty.config.clientkeys = clientkeys
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    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)
    end
    end
    end)
    shifty.init()
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    client.add_signal("focus", function(c)
    c.border_color = beautiful.border_focus
    if c.opacity < 1.0 then
    c.opacity = beautiful.opacity_focus
    end
    end)
    client.add_signal("unfocus", function(c)
    c.border_color = beautiful.border_normal
    if c.opacity < 1.0 then
    c.opacity = beautiful.opacity_normal
    end
    end)
    I did this from the only tutorial I saw.
    It would be nice if you help me fixing the bugs and errors.
    Last edited by aleks223 (2010-03-27 13:44:56)

    You are using way to many third party libraries at once for us to be able and point the finger at the problem. Which might not even be there, but turns out your personal theme is broken.
    Idea: start simple and clean with a default rc.lua, then add one thing at a time, not 10 libraries from some tutorial
    Link: all the information you will ever need indexed at one place http://awesome.naquadah.org/wiki/Main_Page
    Last edited by anrxc (2010-03-27 14:54:03)

  • Awesome 3.4.5-1 video issues (lingering visuals)

    I recently upgraded to awesome 3.4.5-1. I didn't reboot at the time, just restarted x.
    I rebooted when my house burned down, and at the same time had to change my nvidia settings [back to a single screen].
    Since rebooting and changing settings, my awesome desktop is acting odd. It won't bring up a wallpaper, and if I change tags, the first tag's programs carry over... also, if I close a program, it doesn't visually disappear, including the awesome menu [right click]... they just stay there, unusable, but visible.
    rc.lua
    -- Standard awesome library
    require("awful")
    require("awful.autofocus")
    require("awful.rules")
    -- Theme handling library
    require("beautiful")
    -- Notification library
    require("naughty")
    require("vicious")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/home/dan/.themes/theme.lua")
    -- This is used later as the default terminal and editor to run.
    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.
    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
    -- {{{ 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, layouts[1])
    end
    -- {{{ Menu
    -- Create a laucher widget and a main menu
    mynetworkmenu = {
    { "wvdial", terminal .. " -e sudo wvdial" }
    myawesomemenu = {
    { "manual", terminal .. " -e man awesome" },
    { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
    { "restart", awesome.restart },
    { "quit", awesome.quit },
    { "Shutdown", terminal .. "-e shutdown"}
    mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "networking", mynetworkmenu },
    { "open terminal", terminal },
    { 'open the GIMP', 'gimp' },
    { 'open thunar', 'thunar' }
    mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
    menu = mymainmenu })
    --Separators
    --spacer = widget({ type = "textbox" })
    --separator = widget ( type = "textbox"})
    --spacer.text = " "
    --separator.text = "|"
    --unread =widget({ type = "textbox" })
    --unread.txt = "unread"
    --gmail widget
    gmailicon = widget({ type = "imagebox" })
    vicious.cache(vicious.widgets.gmail)
    gmailicon.image = image(beautiful.widget_mail)
    gmailwidget = widget ({ type = "textbox" })
    vicious.register(gmailwidget, vicious.widgets.gmail, "${count}", 120)
    --Memory widget
    --memwidget = widget({type = "textbox" })
    --vicious.enable_caching(vicious.widgets.mem)
    --vicious.register(memwidget, vicious.widgets.mem, "$1% ($2 MiB)", 10)
    -- {{{ Wibox
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" })
    -- Create a systray
    mysystray = widget({ type = "systray" })
    -- Create a wibox for each screen and add it
    mywibox = {gmailwidget}
    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, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(
    awful.button({ }, 1, function (c)
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    client.focus = c
    c:raise()
    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({ layout = awful.widget.layout.horizontal.leftright })
    -- 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.label.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(function(c)
    return awful.widget.tasklist.label.currenttags(c, s)
    end, mytasklist.buttons)
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
    mylauncher,
    mytaglist[s],
    mypromptbox[s],
    -- gmailwidget, spacer, separator, spacer,
    layout = awful.widget.layout.horizontal.leftright
    mylayoutbox[s],
    -- memwidget,
    gmailwidget,
    gmailicon,
    -- spacer,
    -- separator,
    -- spacer,
    mytextclock,
    s == 1 and mysystray or nil,
    mytasklist[s],
    layout = awful.widget.layout.horizontal.rightleft
    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(true) 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),
    -- Prompt
    awful.key({ modkey }, "r", 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, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, "Shift" }, "c", 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, "Shift" }, "r", function (c) c:redraw() end),
    awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized 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 = 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 = "Namaroka" },
    properties = { floating = false } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    -- properties = { tag = tags[1][2] } },
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    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)
    end
    end
    end)
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    -- Autorun programs
    autorun = true
    autorunApps =
    "xcompmgr",
    -- "mutt",
    -- "consonance",
    -- "linux-fetion",
    -- "weechat-curses",
    if autorun then
    for app = 1, #autorunApps do
    awful.util.spawn(autorunApps[app])
    end
    end
    -- Transparency handling
    client.add_signal("focus", function(c)
    c.border_color = beautiful.border_focus
    c.opacity = .9
    end)
    client.add_signal("unfocus", function(c)
    c.border_color = beautiful.border_normal
    c.opacity = 0.7
    end)

    There appears to be a problem with awsetbg. It is fixed in the git version. I am currently trying to figure out how to get it working in 3.4.5.
    edit: the solution is to change your line theme.wallpaper_cmd = { "awsetbg FILEHERE"} to theme.wallpaper_cmd = { "awsetbg -u feh FILEHERE"}. This line is located in your theme file.
    Last edited by Revelation60 (2010-05-30 18:47:19)

  • [SOLVED] Some layout functions not working on Awesome 3.5

    Hi there,
    Anyone else have this problem with the new awesome release? Some functions just doesn't work here, like awful.tag.incmwfact, awful.tag.incnmaster and awful.mouse.client.resize, those are the ones I noticed, tested with the default rc.lua and it just doesn't work, searched the release notes and nothing too.
    SOLVED
    Don't know how it got working, probably I wasn't testing the right way
    Last edited by labp (2013-01-01 04:08:59)

    I must have done something stupid here, its working now :x, delete it please, sry

  • Questions regarding xft fonts, and awesome wm

    Hi, I just tried ArchLinux yesterday and loving it!
    I use JWM, but am very interested in dwm/awesome wm. I do have some questions:
    1. On a thread in the forum, it is mentioned that dwm has no Xft support. How useful exactly is Xft? Would it impact on design work involving GIMP/Inkscape/Scribus?
    2. Does awesome have Xft support?
    3. I installed awesome, but I have no idea on what keys to use. The shortcuts are different from dwm. I tried to look for quick tutorial just to get the basics (dwm has one on their website), but seems like all documentation I found have none of that section and go straight to configuration.
    Do I actually have to configure the wm before I can use it at a very basic level?
    4. I would like to do some more comparison between wms, trying to find a good balance for me in regards of lightness and functions I need. However, I have no idea on what to use to keep track of cpu/memory usage for all the wms. What's a good way to do this?
    Thank you in advance.

    Welcome to Arch!
    1. The lack of xft support in dwm mostly just means that you won't get anti-aliased fonts in the status bar. Individual applications will still have the same font support they had before you used dwm.
    2. Awesome uses pango for font rendering, which is even better than xft.
    3. Look at the man page for default key bindings. It's more or less usable out of the box, but you will definitely want to customize it somehow.
    4. A good system monitor is htop. Install it from the repos and run it from a terminal.
    Last edited by fflarex (2009-02-23 18:44:45)

  • Awesome + Shifty: clientbuttons don't work

    Hi,
    I'm playing around with awesome and installed shifty. Works fine, but the key-/buttonbindings for actions on client windows (modkey + rightclick = resize etc.) have seized to work. What could that be?
    My rc.lua is posted below, apart from some keybindings it's mostly unchanged, I haven't even edited the example tag definition for Shifty yet :
    -- {{{ Load libraries
    require("awful")
    require("awful.autofocus")
    require("awful.rules")
    require("beautiful")
    require("naughty")
    require("shifty")
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init(awful.util.getdir("config") .. "/themes/zenburn/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "urxvt"
    editor = os.getenv("EDITOR") or "nano"
    editor_cmd = terminal .. " -e " .. editor
    -- Default modkey.
    modkey = "Mod4"
    altkey = "Mod1"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    -- Available layouts: awful.layout.suit.floating, .tile, .tile.left,
    -- .tile.bottom, .tile.top, .fair, .fair.horizontal, .spiral,
    -- .spiral.dwindle, .max, .max.fullscreen, .magnifier
    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.max,
    awful.layout.suit.max.fullscreen,
    -- {{{ Tags: Traditional way
    -- Define a tag table which hold all screen tags.
    tags = {
    names = { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
    layout = { layouts[1], layouts[2], layouts[1], layouts[1],
    layouts[1], layouts[1], layouts[1], layouts[1], layouts[1] }
    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, layouts[1])
    tags[s] = awful.tag( tags.names, s, tags.layout)
    end
    -- {{{ Tags using Shifty
    -- tag settings
    shifty.config.tags =
    ["term"] = { position = 1, exclusive = true, spawn = terminal, },
    ["web"] = { position = 2, exclusive = true, spawn = browser, layout = awful.layout.suit.max, },
    -- client settings
    -- order here matters, early rules will be applied first
    shifty.config.apps =
    { match = { "Navigator","Vimperator","Gran Paradiso","Firefox","Iceweasel","Opera"} , tag = "web" } ,
    { match = { "xterm", "urxvt"} , honorsizehints = false, slave = true, tag = "term" } ,
    { match = { "pcmanfm" }, slave = true } ,
    { match = { "" }, buttons =
    button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ modkey }, 1, function (c) awful.mouse.client.move() end),
    button({ modkey }, 3, awful.mouse.client.resize ),
    -- tag defaults
    shifty.config.defaults =
    layout = awful.layout.suit.tile.bottom,
    ncol = 1,
    mwfact = 0.60,
    floatBars = true
    shifty.init()
    -- {{{ 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 }
    mymainmenu = awful.menu(
    items =
    { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher(
    image = image(beautiful.awesome_icon),
    menu = mymainmenu
    -- {{{ Wibox
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" })
    -- Create a systray
    mysystray = widget({ type = "systray" })
    -- 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, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(
    awful.button({ }, 1,
    function (c)
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    client.focus = c
    c:raise()
    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({ layout = awful.widget.layout.horizontal.leftright })
    -- 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.label.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(
    function(c)
    return awful.widget.tasklist.label.currenttags(c, s)
    end,
    mytasklist.buttons
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets =
    mylauncher,
    mytaglist[s],
    mypromptbox[s],
    layout = awful.widget.layout.horizontal.leftright
    mylayoutbox[s],
    mytextclock,
    s == 1 and mysystray or nil,
    mytasklist[s],
    layout = awful.widget.layout.horizontal.rightleft
    end
    shifty.taglist = mytaglist
    -- {{{ 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(
    -- Tag manipulation
    awful.key({ "Control", altkey }, "Left", awful.tag.viewprev ),
    awful.key({ "Control", altkey }, "Right", awful.tag.viewnext ),
    awful.key({ "Control", altkey }, "Escape", awful.tag.history.restore ),
    awful.key({ modkey }, "t", function() shifty.add({ rel_index = 1 }) end),
    awful.key({ modkey, "Control" }, "t", function() shifty.add({ rel_index = 1, nopopup = true }) end),
    awful.key({ modkey, "Shift" }, "r", shifty.rename),
    awful.key({ modkey, "Shift" }, "w", shifty.del),
    awful.key({ altkey, }, "Tab",
    function ()
    awful.client.focus.byidx( 1)
    if client.focus then client.focus:raise() end
    end
    awful.key({ altkey, "Shift" }, "Tab",
    function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end
    awful.key({ modkey, }, "w", function () mymainmenu:show(true) end ),
    -- Layout manipulation
    awful.key({ modkey, }, "Tab", function () awful.client.swap.byidx(1) end ),
    awful.key({ modkey, "Shift" }, "Tab", function () awful.client.swap.byidx(-1) end ),
    awful.key({ "Control" }, "Tab", function () awful.screen.focus_relative(1) end ),
    awful.key({ "Control", "Shift" }, "Tab", 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 ),
    -- Prompt
    awful.key({ modkey }, "r", 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, }, "f", function (c) c.fullscreen = not c.fullscreen end ),
    awful.key({ modkey, "Shift" }, "c", 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, "Shift" }, "r", function (c) c:redraw() end ),
    awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized 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]]
    -- Create <modkey>+i keybindings for Shifty
    for i = 1, 9 do
    globalkeys = awful.util.table.join(globalkeys,
    awful.key(
    { modkey }, i,
    function ()
    local t = awful.tag.viewonly(shifty.getpos(i))
    end
    globalkeys = awful.util.table.join(globalkeys,
    awful.key(
    { modkey, "Control" }, i,
    function ()
    local t = shifty.getpos(i)
    t.selected = not t.selected
    end
    globalkeys = awful.util.table.join(globalkeys,
    awful.key(
    { modkey, "Control", "Shift" }, i,
    function ()
    if client.focus then
    awful.client.toggletag(shifty.getpos(i))
    end
    end
    -- move clients to other tags
    globalkeys = awful.util.table.join(globalkeys,
    awful.key({ modkey, "Shift" }, i,
    function ()
    if client.focus then
    local t = shifty.getpos(i)
    awful.client.movetotag(t)
    awful.tag.viewonly(t)
    end
    end
    end
    clientbuttons = awful.util.table.join(
    awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
    awful.button({ altkey }, 1, awful.mouse.client.move),
    awful.button({ altkey }, 3, awful.mouse.client.resize))
    -- Set keys
    root.keys(globalkeys)
    shifty.config.globalkeys = globalkeys
    shifty.config.clientkeys = clientkeys
    --shifty.config.clientbuttons = clientbuttons
    -- {{{ Rules
    awful.rules.rules =
    -- 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 = "Pidgin", role = "buddy_list" },
    -- properties = { tag = { tags[1][2], tags[1][3] } } },
    -- { rule = { class = "Pidgin", role = "conversation" },
    -- properties = { tag = { tags[1][3] } } },
    -- { rule = { class = "Opera" },
    --§ properties = { tag = tags[1][2] } }
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    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)
    end
    end
    end
    client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    Another question: Does anyone know a good awesome tutorial? Because the awesome wiki is rather useless, I'm afraid.

    For Shifty it's in the shifty.config.apps section:
    shifty.config.apps =
    { match = { "" }, buttons =
    button({ }, 1, function (c) client.focus = c; c:raise() end),
    button({ modkey }, 1, function (c) awful.mouse.client.move() end),
    button({ modkey }, 3, awful.mouse.client.resize ),
    but for some reason this does not work. But maybe it's to do with this being a set again later by awful in rules.rules. I'll play with that when I get home.
    Concerning the wiki: Granted 'useless' was maybe too harsh, but the wiki is bad, including the tutorial, especially where the rules-table is concerned.
    Example: Set up a rule to put a client on multiple tags by default. I find some entry somewhere (and I mean "some entry, somewhere". I can't even find it again, it is that well hidden) that tells me how to set 1 tag and mentions that I can set multiple tags "that way" as well. It doesn't tell me how, and a chance look in the correct place of the FAQ tells me that you CAN'T set multiple tags like you would set one, but have to use some strange function in conjunction with "callback =". Why? Because, apparently. The awesome-3-configuration entry doesn't even mention rules, neither does the tutorial.
    If I wanted to teach awesome to cook tea, it would be alright for the wiki to be unhelpful, but the above seems to me to be pretty basic.
    There are many things that are un- or badly documented. What is documented is documented mostly by examples that often aren't explained, leaving you unable to apply these to similar but not identical situations. And if there is some sort of explanation, chances are you won't find it because the wiki is all over the place.
    Don't get me wrong, awesome is great, and I love it. It is very easy to use if you stay away from rc.lua and would be very easy to configure if rc.lua was explained properly.

  • I have an iphone6. I am unsure whether to go from 8.1.3 operating system and switch to  ICloud Drive or not?  Has anyone done this?  Is it awesome?  I need to be able to access my resume from phone. I think this will help me achieve this.am i right?

    I have an iphone6. I am unsure whether to go from 8.1.3 operating system and switch to  ICloud Drive or not?  Has anyone done this?  Is it awesome?  I need to be able to access my resume from phone. I think this will help me achieve this?  Am i right?  Is there any body out there right now that could help me?  I'm thinking about going from 8.1.3 to I guess yosemite?  Or is that for Mac computers?  I don't understand the language entirely on the help page.   Anyone's straight forward and easy stepped advice would be much appreciated.  I'm so frustrated and I need a job so badly!  Drowning in debt.  Any help appreciated!
    Thanks,
    A

    You're a Windows user, correct? If so, read here:
    http://support.apple.com/kb/DL1455

Maybe you are looking for