awesome/my.lua
changeset 14 6348b9f842b2
parent 13 e9e2f624cd99
child 15 73df43769340
equal deleted inserted replaced
13:e9e2f624cd99 14:6348b9f842b2
    22 
    22 
    23 module("my")
    23 module("my")
    24 
    24 
    25 --- Stolen from shifty: Shows a popup and logs to a file
    25 --- Stolen from shifty: Shows a popup and logs to a file
    26 -- @param message The text message.
    26 -- @param message The text message.
    27 -- @param log_level 1 = INFO, 2 = WARN, 3 = ERROR, if nothting is provided 1 is used.
    27 -- @param log_level 1 = INFO, 2 = WARN, 3 = ERROR, if nothing is provided 1 is used.
    28 function log(message, log_level)
    28 function log(message, log_level)
    29   if log_level == nil then
    29   if log_level == nil then
    30     log_level = 1
    30     log_level = 1
    31   end
    31   end
    32 
    32 
    35     { level = "WARN", bg_colour = "#9E731F", fg_colour  = "#0E0E0E" },
    35     { level = "WARN", bg_colour = "#9E731F", fg_colour  = "#0E0E0E" },
    36     { level = "ERROR", bg_colour = "#FF0015", fg_colour  = "#000000" }
    36     { level = "ERROR", bg_colour = "#FF0015", fg_colour  = "#000000" }
    37   }
    37   }
    38   -- %c eg: Wed Jan 30 14:25:13 2013
    38   -- %c eg: Wed Jan 30 14:25:13 2013
    39   local time = os.date("%c")
    39   local time = os.date("%c")
    40   message = time .. " - " .. log_table[log_level].level .. " - " .. message ..  "\n" .. debug.traceback()
    40   message = time .. " - " .. log_table[log_level].level .. " - " .. message ..  "\n"
       
    41   tb = debug.traceback()
    41 
    42 
    42   local home = os.getenv("HOME")
    43   local home = os.getenv("HOME")
    43   local log_file = io.open(home .. "/.awesome.log", "a+")
    44   local log_file = io.open(home .. "/.awesome.log", "a+")
    44   log_file:write(message .."\n")
    45   log_file:write(message .. tb .. "\n")
    45   log_file:close()
    46   log_file:close()
    46 
    47 
    47   naughty.notify({ preset = naughty.config.presets.critical, text = message, bg = log_table[log_level].bg_colour, fg = log_table[log_level].fg_colour})
    48   naughty.notify({ preset = naughty.config.presets.critical, text = message, bg = log_table[log_level].bg_colour, fg = log_table[log_level].fg_colour})
    48 end
    49 end
    49 
    50 
   140 
   141 
   141 local function widgets_net(device)
   142 local function widgets_net(device)
   142    local w = wibox.widget.textbox()
   143    local w = wibox.widget.textbox()
   143    -- w:set_vertical(true)
   144    -- w:set_vertical(true)
   144    w.width = 150
   145    w.width = 150
   145    w.align = 'center'
   146    w:set_align('center')
   146    vicious.register(w, wicked.widgets.net,
   147    vicious.register(w, wicked.widgets.net,
   147                     '${' .. device .. ' up} / ${' .. device .. ' down}',
   148                     '<tt>${' .. device .. ' up} ▴ ${' .. device .. ' down} ▾</tt>',
   148                    1)
   149                    1)
   149    return w
   150    return w
   150 end
   151 end
   151 
   152 
   152 local function widgets_mode()
   153 local function widgets_mode()
   180    net = widgets_net,
   181    net = widgets_net,
   181    mdp = widgets_mdp,
   182    mdp = widgets_mdp,
   182    mode = widgets_mode,
   183    mode = widgets_mode,
   183    keyboard = widgets_keyboard,
   184    keyboard = widgets_keyboard,
   184    decorated = widgets_decorated,
   185    decorated = widgets_decorated,
       
   186 
   185 }
   187 }
   186 
       
   187 function make_key(k, n, f)
   188 function make_key(k, n, f)
   188    return { key = k, name = n, func = f}
   189    return { key = k, name = n, func = f}
       
   190 end
       
   191 
       
   192 function make_single_key(k, n, f)
       
   193    if f == nil then
       
   194       log("name: " .. n .. " is nil", 3)
       
   195    end
       
   196    return make_key(k, n, function (c) f(c); return true ; end)
   189 end
   197 end
   190 
   198 
   191 function show_kt(keytable, title)
   199 function show_kt(keytable, title)
   192    -- todo: replace with a menu ?
   200    -- todo: replace with a menu ?
   193    text = ""
   201    text = ""
   291       if capi.client.focus then capi.client.focus:raise() end
   299       if capi.client.focus then capi.client.focus:raise() end
   292       return true
   300       return true
   293    end
   301    end
   294 end
   302 end
   295 
   303 
       
   304 function split_modifiers(key)
       
   305    local modifiers = {}
       
   306    local pattern = capi.string.format("([^+]+)", sep)
       
   307    key:gsub(pattern, function(mod) table.insert(modifiers, mod) end)
       
   308    key = table.remove(modifiers)
       
   309    return modifiers, key
       
   310 end
       
   311       
   296 function make_globalkeys(modifiers, keytable)
   312 function make_globalkeys(modifiers, keytable)
   297    local t = {}
   313    local t = {}
   298    for _,k in ipairs(keytable) do
   314    for _,k in ipairs(keytable) do
   299       t = awful.util.table.join(t, awful.key(modifiers, k.key, k.func))
   315       local mods, key = split_modifiers(k.key)
       
   316       mods = awful.util.table.join(modifiers, mods)
       
   317       -- log("name=" .. k.name .. "; modifiers=" .. table.concat(mods, ":") .. "; key=" .. key)
       
   318       if key == "Space" then
       
   319          key = capi.string.lower(key)
       
   320       end
       
   321       t = awful.util.table.join(t, awful.key(mods, key, k.func))
   300    end
   322    end
   301    return t
   323    return t
   302 end
   324 end
   303 
   325 
   304 -- Install a sloppy-like focus with a timeout.
   326 -- Install a sloppy-like focus with a timeout.