Files
Modus/modules/bar/components/idle.py
T
2025-02-13 16:40:47 +05:45

28 lines
855 B
Python

from fabric import Fabricator
from fabric.utils import exec_shell_command
from fabric.widgets.box import Box
from snippets import MaterialIcon
class IdleIndicator(Box):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.idle_icon = self.create_idle_icon()
self.fabricator = Fabricator(interval=1000, poll_from=self.check_idle_status)
self.children = [self.idle_icon]
def create_idle_icon(self):
return MaterialIcon("coffee", 16)
def check_idle_status(self, *_):
output = exec_shell_command("pidof wayland-idle-inhibitor.py")
is_idle = bool(str(output).strip())
self.update_idle_status(is_idle)
def update_idle_status(self, is_idle):
if is_idle:
self.idle_icon.set_visible(True)
else:
self.idle_icon.set_visible(False)