26 lines
772 B
Python
26 lines
772 B
Python
import subprocess
|
|
|
|
from .base import FuzzyMenu, StaticActionProvider
|
|
|
|
|
|
def _spawn(argv: list[str]) -> None:
|
|
subprocess.Popen(argv, start_new_session=True)
|
|
|
|
|
|
def PowerMenu(monitor: int = 0, lock_command: list[str] | None = None) -> FuzzyMenu:
|
|
lock = lock_command or ["waylock"]
|
|
provider = StaticActionProvider(
|
|
actions=[
|
|
("⏻ Poweroff", lambda: _spawn(["systemctl", "poweroff"])),
|
|
("🔁 Reboot", lambda: _spawn(["systemctl", "reboot"])),
|
|
("⏾ Suspend", lambda: _spawn(["systemctl", "suspend"])),
|
|
("Lock", lambda: _spawn(lock)),
|
|
]
|
|
)
|
|
return FuzzyMenu(
|
|
provider=provider,
|
|
monitor=monitor,
|
|
placeholder="Power Menu...",
|
|
window_name="power-menu",
|
|
)
|