#!/bin/python # kinda minimal lemonbar script by Vidhu Kant Sharma # for herbstluftwm # needs japanese fonts and powerline fonts to be installed # edit the fonts in the launch script # changing the color schemes is going to be hell import datetime import time import os day_name = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday','Sunday'] # to make day names more readable # japanese tag names tag_names = { '1':'%{A:0:}一%{A}', '2':'%{A:1:}二%{A}', '3':'%{A:2:}三%{A}', '4':'%{A:3:}四%{A}', '5':'%{A:4:}五%{A}', '6':'%{A:5:}六%{A}', '7':'%{A:6:}七%{A}', '8':'%{A:7:}八%{A}', '9':'%{A:8:}九%{A}', '0':'%{A:9:}十%{A}' } def getTags(): tags = os.popen("herbstclient tag_status").read().split() # get tags in a list for i in range(len(tags)): tag = tags[i] if tag[0] == ':': tags[i] = ' ' + tag_names[tag[1]] + ' ' # format occupied tags elif tag[0] == '#': tags[i] = '%{F#6c71c4}%{B#d33682}%{F-} ' + tag_names[tag[1]] + '%{F#d33682} %{B#268bd2}%{F-}' # format active tag else: tags[i] = '%{F#443837} ' + tag_names[tag[1]] + '%{F-} ' # format other tags return '%{B#6c71c4} ' + ' '.join((str(x) for x in tags)) + '%{B-}' + '%{F#268bd2}%{F-}' # return formatted list in a cleaner form def getTime(): date = datetime.datetime.today().strftime("%d/%m") # date in DD/MM format day_raw = datetime.datetime.today().weekday() # get number of day day = "(" + day_name[day_raw] + ")" # day but in a more readable form time = datetime.datetime.now().strftime("%H:%M") # time in H:M format return '%{B#171520}%{F#CB4B16}%{F-}%{B#CB4B16} ' + date + day + ' ' + time + ' %{B-}' def sleepNotifier(): if int(datetime.datetime.now().strftime("%H")) < 6: # executes between 12 and 6 a.m. return "%{F#dc322f}%{F-}%{B#dc322f} Go to sleep! %{F#171520}%{B-}%{F-}" # prompt me to go to sleep when it's late else: return "" while True: time.sleep(0.3) # be nice to the CPU output = getTags() + '%{r}' + sleepNotifier() + getTime() os.system("echo '" + output + "'") # for some reason print() messes up everything