bar: power button works

Use wlogout for power menu
Add more defaults for PopupWindow
This commit is contained in:
2 * r + 2 * t 2025-01-14 23:56:07 +11:00
parent c2e03775db
commit a53389c8b5
3 changed files with 4 additions and 5 deletions

View file

@ -1,4 +1,4 @@
import { GLib, register, Variable } from "astal";
import { execAsync, GLib, register, Variable } from "astal";
import { bind, kebabify } from "astal/binding";
import { App, Astal, astalify, Gdk, Gtk, type ConstructProps } from "astal/gtk3";
import AstalHyprland from "gi://AstalHyprland";
@ -251,9 +251,7 @@ const Power = () => (
className="module power"
label="power_settings_new"
cursor="pointer"
onClicked={() => {
// TODO: Power menu
}}
onClicked={() => execAsync("fish -c 'pkill wlogout || wlogout -p layer-shell'").catch(console.error)}
/>
);

View file

@ -363,7 +363,6 @@ export default class Launcher extends PopupWindow {
super({
name: "launcher",
keymode: Astal.Keymode.EXCLUSIVE,
exclusivity: Astal.Exclusivity.IGNORE,
onKeyPressEvent(_, event) {
const keyval = event.get_keyval()[1];
// Focus entry on typing

View file

@ -100,6 +100,8 @@ export class PopupWindow extends Widget.Window {
sProps.namespace = `caelestia-${props.name}`;
sProps.anchor =
Astal.WindowAnchor.TOP | Astal.WindowAnchor.LEFT | Astal.WindowAnchor.BOTTOM | Astal.WindowAnchor.RIGHT;
sProps.exclusivity = Astal.Exclusivity.IGNORE;
if (!sProps.keymode) sProps.keymode = Astal.Keymode.ON_DEMAND;
sProps.onKeyPressEvent = (self, event) => {
// Close window on escape
if (event.get_keyval()[1] === Gdk.KEY_Escape) self.hide();