| changeset 13 | e9e2f624cd99 | 
| parent 12 | ffc02bf394cb | 
| child 14 | 6348b9f842b2 | 
| 12:ffc02bf394cb | 13:e9e2f624cd99 | 
|---|---|
| 1 local os = require("os") | 1 local os = require("os") | 
| 2 local io = require("io") | 2 local io = require("io") | 
| 3 local debug = require("debug") | 3 local debug = require("debug") | 
| 4 local table = require("table") | |
| 4 local awesome = require("awesome") | 5 local awesome = require("awesome") | 
| 5 local naughty = require("naughty") | 6 local naughty = require("naughty") | 
| 6 local awful = require("awful") | 7 local awful = require("awful") | 
| 7 local vicious = require("vicious") | 8 local vicious = require("vicious") | 
| 8 local wicked = require("wicked") | 9 local wicked = require("wicked") | 
| 59 end | 60 end | 
| 60 end | 61 end | 
| 61 | 62 | 
| 62 notify_error = mk_notify_error_dialog(3) | 63 notify_error = mk_notify_error_dialog(3) | 
| 63 | 64 | 
| 64 local function get_gradient_colors(c1, c2, c3) | 65 local function get_gradient_colors(c1, c2) | 
| 65 return { type = "linear", from = { 0, 0 }, to = { 0, 20 }, stops = { { 0, c1 }, { 0.5, c2 }, { 1, c3 } }} | 66 return { type = "linear", from = { 0, 0 }, to = { 0, 20 }, stops = { { 0, c2 }, { 1, c1 } }} | 
| 66 end | 67 end | 
| 67 | 68 | 
| 68 function mkspawn(p) | 69 function mkspawn(p) | 
| 69 return function () awful.util.spawn(p) end | 70 return function () awful.util.spawn(p) end | 
| 70 end | 71 end | 
| 100 | 101 | 
| 101 local function widgets_cpu() | 102 local function widgets_cpu() | 
| 102 local w = awful.widget.graph() | 103 local w = awful.widget.graph() | 
| 103 -- Graph properties | 104 -- Graph properties | 
| 104 w:set_width(30) | 105 w:set_width(30) | 
| 105 w:set_background_color("#729fcf") | 106 w:set_background_color(beautiful.bg_normal) | 
| 106 w:set_color(get_gradient_colors("#729fcf", "LightBlue", "white")) | 107 w:set_color(get_gradient_colors(beautiful.bg_focus, beautiful.bg_urgent)) | 
| 107 -- Register widget | 108 -- Register widget | 
| 108 vicious.register(w, vicious.widgets.cpu, "$1", 1) | 109 vicious.register(w, vicious.widgets.cpu, "$1", 1) | 
| 109 return w | 110 return w | 
| 110 end | 111 end | 
| 111 | 112 | 
| 128 -- Initialize widget | 129 -- Initialize widget | 
| 129 local w = awful.widget.progressbar() | 130 local w = awful.widget.progressbar() | 
| 130 -- Progressbar properties | 131 -- Progressbar properties | 
| 131 w:set_width(10) | 132 w:set_width(10) | 
| 132 w:set_vertical(true) | 133 w:set_vertical(true) | 
| 133 w:set_background_color("#729fcf") | 134 w:set_background_color(beautiful.bg_normal) | 
| 134 w:set_color(get_gradient_colors("#729fcf", "LightBlue", "white")) | 135 w:set_color(get_gradient_colors(beautiful.bg_focus, beautiful.bg_urgent)) | 
| 135 -- Register widget | 136 -- Register widget | 
| 136 vicious.register(w, vicious.widgets.mem, "$1", 5) | 137 vicious.register(w, vicious.widgets.mem, "$1", 5) | 
| 137 return w | 138 return w | 
| 138 end | 139 end | 
| 139 | 140 | 
| 221 | 222 | 
| 222 local function kt_handler(keytable, mod, key, event) | 223 local function kt_handler(keytable, mod, key, event) | 
| 223 if event == "release" then | 224 if event == "release" then | 
| 224 return true | 225 return true | 
| 225 end | 226 end | 
| 226 local theme = beautiful.get() | 227 widgets.mode_widget_bg:set_bg(beautiful.bg_focus) | 
| 227 widgets.mode_widget_bg:set_bg(theme.bg_focus) | |
| 228 if key == "Escape" then | 228 if key == "Escape" then | 
| 229 return false | 229 return false | 
| 230 end | 230 end | 
| 231 local skey = capi.string.lower(translate_key(mod, key)) | 231 local skey = capi.string.lower(translate_key(mod, key)) | 
| 232 if skey == "control+h" or skey == "shift+?" then | 232 if skey == "control+h" or skey == "shift+?" then | 
| 237 if skey == capi.string.lower(k.key) then | 237 if skey == capi.string.lower(k.key) then | 
| 238 return k.func(c) | 238 return k.func(c) | 
| 239 end | 239 end | 
| 240 end | 240 end | 
| 241 -- notify_error("Nothing for " .. skey) | 241 -- notify_error("Nothing for " .. skey) | 
| 242 widgets.mode_widget_bg:set_bg(theme.bg_urgent) | 242 widgets.mode_widget_bg:set_bg(beautiful.bg_urgent) | 
| 243 return true | 243 return true | 
| 244 end | 244 end | 
| 245 | 245 | 
| 246 local function stop_kt() | 246 local function stop_kt() | 
| 247 capi.keygrabber.stop() | 247 capi.keygrabber.stop() | 
| 258 | 258 | 
| 259 -- local is_in_run_kt = false | 259 -- local is_in_run_kt = false | 
| 260 function run_kt(c, keytable, title) | 260 function run_kt(c, keytable, title) | 
| 261 widgets.mode_widget:set_text("Mode: " .. title) | 261 widgets.mode_widget:set_text("Mode: " .. title) | 
| 262 -- widgets.mode_widget:show() | 262 -- widgets.mode_widget:show() | 
| 263 widgets.mode_widget_bg:set_bg("LightBlue") | 263 widgets.mode_widget_bg:set_bg(beautiful.bg_focus) | 
| 264 widgets.mode_widget:buttons( | 264 widgets.mode_widget:buttons( | 
| 265 awful.util.table.join( | 265 awful.util.table.join( | 
| 266 awful.button({}, 1, function () show_kt(keytable, "Binding") end), | 266 awful.button({}, 1, function () show_kt(keytable, "Binding") end), | 
| 267 awful.button({}, 3, stop_kt))) | 267 awful.button({}, 3, stop_kt))) | 
| 268 capi.keygrabber.run(function (mod, key, event) | 268 capi.keygrabber.run(function (mod, key, event) | 
| 351 if sloppy_timer.started then | 351 if sloppy_timer.started then | 
| 352 sloppy_timer:stop() | 352 sloppy_timer:stop() | 
| 353 end | 353 end | 
| 354 end) | 354 end) | 
| 355 end | 355 end | 
| 356 | |
| 357 -- theme menu | |
| 358 function theme_load(theme) | |
| 359 local cfg_path = awful.util.getdir("config") | |
| 360 awful.util.spawn("ln -sfn " .. cfg_path .. "/themes/" .. theme .. " " .. cfg_path .. "/current_theme") | |
| 361 awesome.restart() | |
| 362 end | |
| 363 | |
| 364 function theme_menu() | |
| 365 -- List your theme files and feed the menu table | |
| 366 local cmd = "ls -1 " .. awful.util.getdir("config") .. "/themes/" | |
| 367 local f = io.popen(cmd) | |
| 368 | |
| 369 local themes = {} | |
| 370 for l in f:lines() do | |
| 371 local item = { l, function () theme_load(l) end } | |
| 372 table.insert(themes, item) | |
| 373 end | |
| 374 | |
| 375 f:close() | |
| 376 return themes | |
| 377 end | |
| 378 | |
| 379 function set_wallpaper(wallpaper) | |
| 380 local cfg_path = awful.util.getdir("config") | |
| 381 local source_path = cfg_path .. "/wallpapers/" .. wallpaper | |
| 382 local default_path = cfg_path .. "/default" | |
| 383 awful.util.spawn("ln -sfn " .. source_path .. " " .. default_path ) | |
| 384 awful.util.spawn("fbsetbg -a " .. default_path) | |
| 385 end | |
| 386 | |
| 387 function wallpaper_menu() | |
| 388 local cmd = "ls " .. awful.util.getdir("config") .. "/wallpapers/" | |
| 389 local f = io.popen(cmd) | |
| 390 local wallpapers = {} | |
| 391 for l in f:lines() do | |
| 392 local name, ext = capi.string.match(l, "(.-)(%.[^%.]+)$") | |
| 393 local item = { name, function () set_wallpaper(l) end } | |
| 394 table.insert(wallpapers, item) | |
| 395 end | |
| 396 | |
| 397 f:close() | |
| 398 return wallpapers | |
| 399 end | |
| 400 |