Skip to content

Instantly share code, notes, and snippets.

@vkravets
Forked from 3demax/nm-signal-0.svg
Created March 28, 2012 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vkravets/2226394 to your computer and use it in GitHub Desktop.
Save vkravets/2226394 to your computer and use it in GitHub Desktop.
rc.lua for lualock simpleblack theme
#!/bin/bash
sudo ln -s `pwd`/rc.lua /etc/xdg/lualock/rc.lua -f
sudo ln -s `pwd`/img/ /usr/share/lualock/data/simpleblack
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
require "odious"
local oocairo = require "oocairo"
-- {{{ lualock settings
background("color", "#000000")
--im = image(utils.get_data_dir() .. "/simpleblack/archlinux-official-light.svg")
----im:scale(0.75, 0.75)
--im:set_position(utils.screen_width()/2 - 600/2, 0.2)
--im:show()
im = image(utils.get_data_dir() .. "/simpleblack/panel.png")
--im:scale(0.75, 0.75)
--im:set_position(utils.screen_width()/2 - 600/2, 0.2)
im:set_position(utils.screen_width()/2 - 600/2, utils.screen_height()/2 - 400/2)
im:show()
sxcenter = utils.screen_width()/2
sycenter = utils.screen_height()/2
input_top = sycenter + 50
--panel = image(utils.get_data_dir() .. "/simpleblack/panel_transp1.png")
--panel:set_position(utils.screen_width()/2 - 300/2, input_top-50)
--panel:show()
style{ color = "black", font = "Sans 24",
x = sxcenter - 150/2 - 24,
y = input_top + 50,
off_x = 10,
off_y = 10,
width = 199,
height = 50,
bg_color = 'rgba(0, 0, 0, 0)',
border_color = 'rgba(0, 0, 0, 0)',
border_width = 2
}
prefs{ timeout = 10 * 60 }
user_text = odious.widget.text{ text = os.getenv("USER"), font = "Sans 24", color = "black",
x = sxcenter - 92,
y = input_top + 10,
border_color = "black", border_width = 0
}
-- }}}
-- define functions for setting and restoring DPMS settings
local dpms = {
set = function (standby, suspend, off)
utils.spawn(string.format("xset dpms %i %i %i", standby, suspend, off))
end,
get = function ()
local xset_out = odious.util.pread("xset q")
local standby, suspend, off =
string.match(xset_out, "Standby: (%d+).*Suspend: (%d+).*Off: (%d+)")
return tonumber(standby) or 0, tonumber(suspend) or 0, tonumber(off) or 0
end
}
-- {{{ Hooks
-- get current DPMS settings
local standby, suspend, off = dpms.get()
hook.connect("lock", function ()
dpms.set(60, 120, 300)
end)
-- restore DPMS settings once we're done
hook.connect("unlock", function ()
dpms.set(standby, suspend, off)
end)
-- show a dot for each failed login attempt
--evildot = utils.get_data_dir() .. "/glowydot.png"
--failed_attempts = 0
--hook.connect("auth-failed", function ()
-- local dot = image(evildot)
-- dot:set_position(500 + 20 * failed_attempts, 440)
-- dot:show()
-- failed_attempts = failed_attempts + 1
--end)
-- }}}
-- {{{
-- SYSTRAY
function update_systray()
print("systray " .. os.date("*t").min .. ":" .. os.date("*t").sec)
right = utils.screen_width()
-- systray = image(right, 30)
-- systray:set_position(0, 0)
-- --systray:draw_rectangle(0, 0, 100, 100, true, "#ff0000")
-- systray:show()
systray = odious.widget.progressbar{ width = right, height = 30, x = 0, y = 0 }
systray:set_border_color("black"):set_vertical(false):set_color("#000000")
systray:set_value(100)
top = 3
-- CLOCK
-- right = right - 175
local update_clock = function()
local time = os.date("*t")
local sec = time.sec
local file = assert(io.popen("date +\"%a, %b %e %H:%M\"", 'r'))
local output = file:read('*all')
file:close()
output = string.gsub(output, "\n", "")
systray:set_value(100)
local clock_text = odious.widget.text{ text = "" .. output, font = "Droid Sans 16", color = "#ffffff",
x = utils.screen_width()/2 - 85,
y = 5,
border_color = "#000000", border_width = 3 }
end
update_clock()
-- BATTERY
right = right - 45
batt_box = odious.widget.progressbar{ width = 30, height = 16, x = right+0, y = top+1 }
batt_box:set_border_color("#dddddd"):set_vertical(false):set_color("#dddddd")
batt_box_pip = odious.widget.progressbar{ width = 3, height = 10, x = right+30, y = top+4 }
batt_box_pip:set_border_color("#dddddd"):set_vertical(false):set_color("#dddddd")
batt_box_pip:set_value(100)
function update_battery ()
local batt_info = odious.util.get_battery("BAT0")
local level = batt_info.charge_now / batt_info.charge_full
-- level = math.random()
-- level = 100
batt_box:set_value(level)
if (level <= 0.15) then
batt_box:set_color("#d70000")
end
if (level == 1) then
level = ""
else
level = math.floor(level*100) .. "%"
end
local batt_text = odious.widget.text{ text = level .. "", font = "Sans 8", color = "#000000",
x = right,
y = top,
border_color = "#dddddd", border_width = 3 }
end
update_battery()
-- network
right = right - 35
local file = assert(io.popen("nm-tool", 'r'))
local output = file:read('*all')
file:close()
string.gsub(output, "\nState: (.-)\n", function(a) print("[network]", a); state = a; end)
if (state == "disconnected") then
path = "nm-no-connection.svg"
else
path = "nm-signal-100.svg"
end
print("[path]", path)
network_icon = image(utils.get_data_dir() .. "/simpleblack/" .. path)
network_icon:scale(1, 1)
network_icon:set_position(right, 0)
network_icon:show()
end
local first_update = function ()
update_systray()
local systray_timer = timer(update_systray, 60)
systray_timer:start()
end
-- align update_systray timer to the start of the minute
local once = function ()
first_update()
once_timer:stop()
print("once timer stopped")
end
once_timer = timer(once, 60-os.date("*t").sec)
once_timer:start()
update_systray()
local update_kblayout = function()
local kbd_box = odious.widget.progressbar{ width = 35, height = 35, x = sxcenter+110, y = input_top+60 }
kbd_box:set_border_color("black"):set_vertical(false):set_color("#000000")
kbd_box:set_value(100)
-- local kbd_layouts = {
-- ["00001000"] = "RU",
-- ["00000000"] = "EN"
-- }
-- local out = odious.util.pread("xset -q | awk '/LED/{printf \"%s\", $10}'")
local out = odious.util.pread("xkb-switch | awk '{printf \"%s\", $0}'")
-- local layout_text = kbd_layouts[out] or "EN"
layout_text = string.upper(out)
local clock_text = odious.widget.text{ text = "" .. layout_text, font = "Droid Sans 16", color = "#ffffff",
x = sxcenter+110,
y = input_top+60,
border_color = "#000000", border_width = 3 }
end
update_kblayout()
kb_timer = timer(update_kblayout, 1)
kb_timer:start()
-- }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment