mirror of https://github.com/lcpz/lain.git
This commit is contained in:
parent
2a5d13920f
commit
8f948b52eb
|
@ -7,32 +7,31 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
local wibox = require("wibox")
|
||||
local math = { modf = math.modf }
|
||||
local string = { format = string.format,
|
||||
match = string.match,
|
||||
rep = string.rep }
|
||||
local type = type
|
||||
local tonumber = tonumber
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
local wibox = require("wibox")
|
||||
local math = { modf = math.modf }
|
||||
local string = { format = string.format,
|
||||
match = string.match,
|
||||
rep = string.rep }
|
||||
local type, tonumber = type, tonumber
|
||||
|
||||
-- ALSA volume bar
|
||||
-- lain.widget.alsabar
|
||||
local alsabar = {
|
||||
colors = {
|
||||
background = "#000000",
|
||||
mute = "#EB8F8F",
|
||||
unmute = "#A4CE8A"
|
||||
},
|
||||
|
||||
_current_level = 0,
|
||||
_muted = false
|
||||
}
|
||||
|
||||
local function factory(args)
|
||||
local alsabar = {
|
||||
colors = {
|
||||
background = "#000000",
|
||||
mute = "#EB8F8F",
|
||||
unmute = "#A4CE8A"
|
||||
},
|
||||
|
||||
_current_level = 0,
|
||||
_muted = false
|
||||
}
|
||||
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 5
|
||||
local settings = args.settings or function() end
|
||||
|
@ -133,4 +132,4 @@ local function factory(args)
|
|||
return alsabar
|
||||
end
|
||||
|
||||
return setmetatable(alsabar, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -18,7 +18,7 @@ local setmetatable = setmetatable
|
|||
-- lain.widget.contrib.kblayout
|
||||
|
||||
local function factory(args)
|
||||
local kbdlayout = { widget = wibox.widget.textbox() }
|
||||
local kbdlayout = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local layouts = args.layouts or {}
|
||||
local settings = args.settings or function () end
|
||||
|
|
|
@ -15,13 +15,12 @@ local wibox = require("wibox")
|
|||
local os = { getenv = os.getenv }
|
||||
local string = { format = string.format,
|
||||
gmatch = string.gmatch }
|
||||
local setmetatable = setmetatable
|
||||
|
||||
-- MOC audio player
|
||||
-- lain.widget.contrib.moc
|
||||
local moc = {}
|
||||
|
||||
local function factory(args)
|
||||
local moc = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local music_dir = args.music_dir or os.getenv("HOME") .. "/Music"
|
||||
|
@ -31,8 +30,6 @@ local function factory(args)
|
|||
local followtag = args.followtag or false
|
||||
local settings = args.settings or function() end
|
||||
|
||||
moc.widget = wibox.widget.textbox()
|
||||
|
||||
moc_notification_preset = { title = "Now playing", timeout = 6 }
|
||||
|
||||
helpers.set_map("current moc track", nil)
|
||||
|
@ -98,4 +95,4 @@ local function factory(args)
|
|||
return moc
|
||||
end
|
||||
|
||||
return setmetatable(moc, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -7,25 +7,22 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local math = { ceil = math.ceil }
|
||||
local string = { format = string.format,
|
||||
gmatch = string.gmatch }
|
||||
local tostring = tostring
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local math = { ceil = math.ceil }
|
||||
local string = { format = string.format,
|
||||
gmatch = string.gmatch }
|
||||
local tostring = tostring
|
||||
|
||||
-- CPU usage
|
||||
-- lain.widget.cpu
|
||||
local cpu = { core = {} }
|
||||
|
||||
local function factory(args)
|
||||
local cpu = { core = {}, widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local settings = args.settings or function() end
|
||||
|
||||
cpu.widget = wibox.widget.textbox()
|
||||
|
||||
function cpu.update()
|
||||
-- Read the amount of time the CPUs have spent performing
|
||||
-- different kinds of work. Read the first line of /proc/stat
|
||||
|
@ -79,4 +76,4 @@ local function factory(args)
|
|||
return cpu
|
||||
end
|
||||
|
||||
return setmetatable(cpu, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -6,43 +6,42 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local shell = require("awful.util").shell
|
||||
local focused = require("awful.screen").focused
|
||||
local wibox = require("wibox")
|
||||
local naughty = require("naughty")
|
||||
local string = string
|
||||
local tonumber = tonumber
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local shell = require("awful.util").shell
|
||||
local focused = require("awful.screen").focused
|
||||
local wibox = require("wibox")
|
||||
local naughty = require("naughty")
|
||||
local string = string
|
||||
local tonumber = tonumber
|
||||
|
||||
-- File system disk space usage
|
||||
-- lain.widget.fs
|
||||
local fs = { unit = { ["mb"] = 1024, ["gb"] = 1024^2 } }
|
||||
|
||||
function fs.hide()
|
||||
if not fs.notification then return end
|
||||
naughty.destroy(fs.notification)
|
||||
fs.notification = nil
|
||||
end
|
||||
|
||||
function fs.show(seconds, scr)
|
||||
fs.update()
|
||||
|
||||
fs.hide()
|
||||
|
||||
if fs.followtag then
|
||||
fs.notification_preset.screen = focused()
|
||||
else
|
||||
fs.notification_preset.screen = scr or 1
|
||||
end
|
||||
|
||||
fs.notification = naughty.notify({
|
||||
preset = fs.notification_preset,
|
||||
timeout = seconds or 5
|
||||
})
|
||||
end
|
||||
|
||||
local function factory(args)
|
||||
local fs = { unit = { ["mb"] = 1024, ["gb"] = 1024^2 }, widget = wibox.widget.textbox() }
|
||||
|
||||
function fs.hide()
|
||||
if not fs.notification then return end
|
||||
naughty.destroy(fs.notification)
|
||||
fs.notification = nil
|
||||
end
|
||||
|
||||
function fs.show(seconds, scr)
|
||||
fs.update()
|
||||
fs.hide()
|
||||
|
||||
if fs.followtag then
|
||||
fs.notification_preset.screen = focused()
|
||||
else
|
||||
fs.notification_preset.screen = scr or 1
|
||||
end
|
||||
|
||||
fs.notification = naughty.notify({
|
||||
preset = fs.notification_preset,
|
||||
timeout = seconds or 5
|
||||
})
|
||||
end
|
||||
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 600
|
||||
local partition = args.partition or "/"
|
||||
|
@ -62,8 +61,6 @@ local function factory(args)
|
|||
}
|
||||
end
|
||||
|
||||
fs.widget = wibox.widget.textbox()
|
||||
|
||||
helpers.set_map(partition, false)
|
||||
|
||||
function fs.update()
|
||||
|
@ -124,4 +121,4 @@ local function factory(args)
|
|||
return fs
|
||||
end
|
||||
|
||||
return setmetatable(fs, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -7,24 +7,19 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local gmatch = string.gmatch
|
||||
local lines = io.lines
|
||||
local floor = math.floor
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local gmatch, lines, floor = string.gmatch, io.lines, math.floor
|
||||
|
||||
-- Memory usage (ignoring caches)
|
||||
-- lain.widget.mem
|
||||
local mem = {}
|
||||
|
||||
local function factory(args)
|
||||
local mem = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local settings = args.settings or function() end
|
||||
|
||||
mem.widget = wibox.widget.textbox()
|
||||
|
||||
function mem.update()
|
||||
mem_now = {}
|
||||
for line in lines("/proc/meminfo") do
|
||||
|
@ -53,4 +48,4 @@ local function factory(args)
|
|||
return mem
|
||||
end
|
||||
|
||||
return setmetatable(mem, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -17,13 +17,12 @@ local os = { getenv = os.getenv }
|
|||
local string = { format = string.format,
|
||||
gmatch = string.gmatch,
|
||||
match = string.match }
|
||||
local setmetatable = setmetatable
|
||||
|
||||
-- MPD infos
|
||||
-- lain.widget.mpd
|
||||
local mpd = {}
|
||||
|
||||
local function factory(args)
|
||||
local mpd = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local password = (args.password and #args.password > 0 and string.format("password %s\\n", args.password)) or ""
|
||||
|
@ -41,8 +40,6 @@ local function factory(args)
|
|||
local echo = string.format("printf \"%sstatus\\ncurrentsong\\nclose\\n\"", password)
|
||||
local cmd = string.format("%s | curl --connect-timeout 1 -fsm 3 %s", echo, mpdh)
|
||||
|
||||
mpd.widget = wibox.widget.textbox()
|
||||
|
||||
mpd_notification_preset = { title = "Now playing", timeout = 6 }
|
||||
|
||||
helpers.set_map("current mpd track", nil)
|
||||
|
@ -112,7 +109,8 @@ local function factory(args)
|
|||
|
||||
if not string.match(mpd_now.file, "http.*://") then -- local file instead of http stream
|
||||
local path = string.format("%s/%s", music_dir, string.match(mpd_now.file, ".*/"))
|
||||
local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", path:gsub("'", "'\\''"), cover_pattern)
|
||||
local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'",
|
||||
path:gsub("'", "'\\''"), cover_pattern)
|
||||
helpers.async({ shell, "-c", cover }, function(current_icon)
|
||||
common.icon = current_icon:gsub("\n", "")
|
||||
if #common.icon == 0 then common.icon = nil end
|
||||
|
@ -134,4 +132,4 @@ local function factory(args)
|
|||
return mpd
|
||||
end
|
||||
|
||||
return setmetatable(mpd, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -16,8 +16,7 @@ local string = { format = string.format, match = string.match }
|
|||
-- lain.widget.net
|
||||
|
||||
local function factory(args)
|
||||
local net = { widget = wibox.widget.textbox(), devices = {} }
|
||||
|
||||
local net = { widget = wibox.widget.textbox(), devices = {} }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local units = args.units or 1024 -- KB
|
||||
|
|
|
@ -17,7 +17,7 @@ local string = { gmatch = string.gmatch,
|
|||
-- lain.widget.pulseaudio
|
||||
|
||||
local function factory(args)
|
||||
local pulseaudio = { widget = wibox.widget.textbox() }
|
||||
local pulseaudio = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 5
|
||||
local settings = args.settings or function() end
|
||||
|
|
|
@ -7,33 +7,32 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
local wibox = require("wibox")
|
||||
local math = { modf = math.modf }
|
||||
local string = { format = string.format,
|
||||
gmatch = string.gmatch,
|
||||
match = string.match,
|
||||
rep = string.rep }
|
||||
local type = type
|
||||
local tonumber = tonumber
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
local wibox = require("wibox")
|
||||
local math = { modf = math.modf }
|
||||
local string = { format = string.format,
|
||||
match = string.match,
|
||||
gmatch = string.gmatch,
|
||||
rep = string.rep }
|
||||
local type, tonumber = type, tonumber
|
||||
|
||||
-- Pulseaudio volume bar
|
||||
-- lain.widget.pulsebar
|
||||
local pulsebar = {
|
||||
colors = {
|
||||
background = "#000000",
|
||||
mute = "#EB8F8F",
|
||||
unmute = "#A4CE8A"
|
||||
},
|
||||
|
||||
_current_level = 0,
|
||||
_muted = false
|
||||
}
|
||||
|
||||
local function factory(args)
|
||||
local pulsebar = {
|
||||
colors = {
|
||||
background = "#000000",
|
||||
mute = "#EB8F8F",
|
||||
unmute = "#A4CE8A"
|
||||
},
|
||||
|
||||
_current_level = 0,
|
||||
_muted = false
|
||||
}
|
||||
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 5
|
||||
local settings = args.settings or function() end
|
||||
|
|
|
@ -7,29 +7,25 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local io = { open = io.open }
|
||||
local string = { match = string.match }
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local open, match = io.open, string.match
|
||||
|
||||
-- System load
|
||||
-- lain.widget.sysload
|
||||
local sysload = {}
|
||||
|
||||
local function factory(args)
|
||||
local sysload = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local settings = args.settings or function() end
|
||||
|
||||
sysload.widget = wibox.widget.textbox()
|
||||
|
||||
function sysload.update()
|
||||
local f = io.open("/proc/loadavg")
|
||||
local f = open("/proc/loadavg")
|
||||
local ret = f:read("*all")
|
||||
f:close()
|
||||
|
||||
load_1, load_5, load_15 = string.match(ret, "([^%s]+) ([^%s]+) ([^%s]+)")
|
||||
load_1, load_5, load_15 = match(ret, "([^%s]+) ([^%s]+) ([^%s]+)")
|
||||
|
||||
widget = sysload.widget
|
||||
settings()
|
||||
|
@ -40,4 +36,4 @@ local function factory(args)
|
|||
return sysload
|
||||
end
|
||||
|
||||
return setmetatable(sysload, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
|
@ -6,26 +6,23 @@
|
|||
|
||||
--]]
|
||||
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local io = { open = io.open }
|
||||
local tonumber = tonumber
|
||||
local setmetatable = setmetatable
|
||||
local helpers = require("lain.helpers")
|
||||
local wibox = require("wibox")
|
||||
local open = io.open
|
||||
local tonumber = tonumber
|
||||
|
||||
-- coretemp
|
||||
-- lain.widget.temp
|
||||
local temp = {}
|
||||
|
||||
local function factory(args)
|
||||
local temp = { widget = wibox.widget.textbox() }
|
||||
local args = args or {}
|
||||
local timeout = args.timeout or 2
|
||||
local tempfile = args.tempfile or "/sys/class/thermal/thermal_zone0/temp"
|
||||
local settings = args.settings or function() end
|
||||
|
||||
temp.widget = wibox.widget.textbox()
|
||||
|
||||
function temp.update()
|
||||
local f = io.open(tempfile)
|
||||
local f = open(tempfile)
|
||||
if f then
|
||||
coretemp_now = tonumber(f:read("*all")) / 1000
|
||||
f:close()
|
||||
|
@ -42,4 +39,4 @@ local function factory(args)
|
|||
return temp
|
||||
end
|
||||
|
||||
return setmetatable(temp, { __call = function(_, ...) return factory(...) end })
|
||||
return factory
|
||||
|
|
Loading…
Reference in New Issue