wmtools/date.nim

53 lines
1.2 KiB
Nim

import base
import std/[times,osproc,re]
const default_bg = blue
const default_fg = white
const default_format = "yyyy-MM-dd"
const cal_pos_x = "20"
const cal_pos_y = "20"
proc getObject(date: string): Info =
var data = newInfo("Date")
data.full_text = date
data.border = default_bg
data.selected_bg = default_bg
data.selected_fg = default_fg
return data
proc newCalendar(): string =
var c = """yad --calendar \
--undecorated --fixed --close-on-unfocus --no-buttons \
--width="222" --height="193" \
--posx="%pos_x" --posy="%pos_y" \
--title="yad-calendar" --borders 0 > /dev/null
"""
return c
proc openCalendar*(input: i3barInput) =
var c = newCalendar()
c = replace(c,re"%pos_x", $(input.x - 111))
c = replace(c,re"%pos_y", $input.y)
discard execCmd(c)
proc dmenuCalendar() =
var c = newCalendar()
c = replace(c,re"%pos_x", cal_pos_x)
c = replace(c,re"%pos_y", cal_pos_y)
discard execCmd(c)
proc getDate*() =
let date_today = times.now().format(default_format)
let data = getObject(date_today)
let output = outputData(data)
if output == date_today:
dmenuCalendar()
proc main() =
getDate()
if isMainModule:
main()