mirror of
https://github.com/zoriya/astal.git
synced 2026-05-28 00:21:24 +00:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from gi.repository import Astal, Gtk, Gdk, GLib
|
|
|
|
|
|
class Time(Astal.Label):
|
|
def __init__(self, format="%H:%M:%S"):
|
|
super().__init__(visible=True)
|
|
self.connect("destroy", self.on_destroy)
|
|
self.format = format
|
|
self.time = Astal.Time.interval(1000, self.on_tick)
|
|
|
|
def on_tick(self):
|
|
datetime = GLib.DateTime.new_now_local()
|
|
assert datetime
|
|
time = datetime.format(self.format)
|
|
assert time
|
|
self.set_label(time)
|
|
|
|
def on_destroy(self, *args, **kwargs):
|
|
self.time.cancel()
|
|
|
|
|
|
class Bar(Astal.Window):
|
|
def __init__(self, monitor: Gdk.Monitor):
|
|
super().__init__(
|
|
visible=True,
|
|
gdkmonitor=monitor,
|
|
name="Bar" + str(monitor.get_model()),
|
|
anchor=Astal.WindowAnchor.LEFT
|
|
| Astal.WindowAnchor.RIGHT
|
|
| Astal.WindowAnchor.TOP,
|
|
exclusivity=Astal.Exclusivity.EXCLUSIVE,
|
|
)
|
|
|
|
Astal.widget_set_class_names(self, ["Bar"])
|
|
start_widget = Astal.Box(visible=True, hexpand=True, halign=Gtk.Align.CENTER)
|
|
end_widget = Astal.Box(visible=True, hexpand=True, halign=Gtk.Align.CENTER)
|
|
|
|
start_widget.set_children([Astal.Label(visible=True, label="Astal in python")])
|
|
|
|
end_widget.set_children([Time()])
|
|
|
|
self.add(
|
|
Astal.CenterBox(
|
|
visible=True,
|
|
start_widget=start_widget,
|
|
end_widget=end_widget,
|
|
)
|
|
)
|