added theme and widgets to screens
This commit is contained in:
135
qtile/popups/calendar.py
Normal file
135
qtile/popups/calendar.py
Normal file
@@ -0,0 +1,135 @@
|
||||
import subprocess
|
||||
|
||||
from libqtile import qtile
|
||||
|
||||
from qtile_extras import widget
|
||||
from qtile_extras.popup.toolkit import (PopupRelativeLayout,
|
||||
PopupWidget,
|
||||
)
|
||||
|
||||
from res.themes.colors import gruvbox_dark
|
||||
|
||||
# https://discord.com/channels/955163559086665728/1166312212223250482/1322614846155657370
|
||||
# check for this PR to change back the code with the message contents to the prev code of the widget:
|
||||
# PopupWidget(
|
||||
# pos_x=0.051,
|
||||
# pos_y=0.415,
|
||||
# height=0.6,
|
||||
# width=0.9,
|
||||
# widget=widget.GenPollCommand(
|
||||
# cmd="cal",
|
||||
# shell=True,
|
||||
# font='mono',
|
||||
# fontsize=20,
|
||||
# markup=False,
|
||||
# # background=gruvbox_dark["blue"],
|
||||
# )
|
||||
|
||||
|
||||
def parse_cal():
|
||||
process = subprocess.run(
|
||||
"cal",
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
body = process.stdout.strip()
|
||||
lines = body.splitlines()
|
||||
maxlen = max(len(l) for l in lines)
|
||||
output = []
|
||||
for line in body.splitlines():
|
||||
if len(line) < maxlen:
|
||||
line += " " * (maxlen - len(line))
|
||||
output.append(line)
|
||||
return "\n".join(output).strip("\n")
|
||||
|
||||
|
||||
def calendar(qtile):
|
||||
layout = PopupRelativeLayout(
|
||||
qtile,
|
||||
rows=7,
|
||||
cols=9,
|
||||
width=300,
|
||||
height=310,
|
||||
opacity=0.8,
|
||||
hide_on_mouse_leave=True,
|
||||
close_on_click=False,
|
||||
border_width=0,
|
||||
background=gruvbox_dark["bg0_soft"],
|
||||
controls=[
|
||||
PopupWidget(
|
||||
pos_x=0,
|
||||
pos_y=0,
|
||||
height=0.2,
|
||||
width=0.9,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
widget=widget.Wttr(
|
||||
fontsize=40,
|
||||
format='%c'
|
||||
)
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.3,
|
||||
pos_y=0.05,
|
||||
height=0.05,
|
||||
width=0.9,
|
||||
v_align="middle",
|
||||
h_align="center",
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans Bold',
|
||||
fontsize=18,
|
||||
format='Actual: %t'
|
||||
)
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.3,
|
||||
pos_y=0.12,
|
||||
height=0.05,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans',
|
||||
fontsize=14,
|
||||
format='Feels: %f'
|
||||
)
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.05,
|
||||
pos_y=0.2,
|
||||
height=0.05,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans',
|
||||
fontsize=14,
|
||||
format='Wind: %w Prec: %p'
|
||||
)
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.05,
|
||||
pos_y=0.25,
|
||||
height=0.11,
|
||||
width=0.9,
|
||||
widget=widget.Wttr(
|
||||
font='Open Sans Bold',
|
||||
fontsize=14,
|
||||
format='City: %l', # \nFeel;%f Wind: %w'
|
||||
)
|
||||
),
|
||||
PopupWidget(
|
||||
pos_x=0.051,
|
||||
pos_y=0.38,
|
||||
height=0.6,
|
||||
width=0.9,
|
||||
widget=widget.GenPollText(
|
||||
func=parse_cal,
|
||||
font='mono',
|
||||
fontsize=20,
|
||||
markup=False,
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
layout.show(relative_to=3,
|
||||
relative_to_bar=True,
|
||||
y=3,
|
||||
x=-3,
|
||||
)
|
||||
Reference in New Issue
Block a user