lite-xl/release_files/addons/plugins/smallclock.lua

67 lines
1.7 KiB
Lua

-- mod-version:3
local core = require "core"
local config = require "core.config"
local common = require "core.common"
local style = require "core.style"
local StatusView = require "core.statusview"
config.plugins.smallclock = common.merge({
enabled = true,
clock_type = "24",
-- The config specification used by the settings gui
config_spec = {
name = "Small Clock",
{
label = "Enabled",
description = "Show or hide the small clock from the status bar.",
path = "enabled",
type = "toggle",
default = true,
on_apply = function(enabled)
core.add_thread(function()
if enabled then
core.status_view:get_item("status:small-clock"):show()
else
core.status_view:get_item("status:small-clock"):hide()
end
end)
end
},
{
label = "Clock Type",
description = "Choose between 12 or 24 hours clock mode.",
path = "clock_type",
type = "selection",
default = "24",
values = {
{"24 Hours", "24"},
{"12 Hours", "12"}
}
}
}
}, config.plugins.smallclock)
local time = ""
local last_time = os.time()
local function update_time()
if os.time() > last_time then
local h = config.plugins.smallclock.clock_type == "24"
and os.date("%H") or os.date("%I")
local m = os.date("%M")
time = string.format("%02d:%02d", h, m)
last_time = os.time()
end
end
core.status_view:add_item({
name = "status:small-clock",
alignment = StatusView.Item.RIGHT,
get_item = function()
update_time()
return {style.accent, time}
end,
position = -1,
separator = core.status_view.separator2
})