aboutsummaryrefslogtreecommitdiff
path: root/lemonbar/ws_bar
blob: d8d1674e7111be675edfbb66efc983ebc333f7e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/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