nixos-configs/nixosModules/ags/config/ts/powermenu.ts
matt1432 24aa4b9842
All checks were successful
Discord / discord commits (push) Has been skipped
refactor: make modules independant and exposed in the flake for outside use
2024-08-02 22:32:29 -04:00

49 lines
1.1 KiB
TypeScript

const Hyprland = await Service.import('hyprland');
const { CenterBox, Label } = Widget;
const { execAsync } = Utils;
import PopupWindow from './misc/popup.ts';
import CursorBox from './misc/cursorbox.ts';
const PowermenuWidget = () => CenterBox({
class_name: 'powermenu',
vertical: false,
start_widget: CursorBox({
class_name: 'shutdown button',
on_primary_click_release: () => execAsync(['systemctl', 'poweroff'])
.catch(print),
child: Label({
label: '襤',
}),
}),
center_widget: CursorBox({
class_name: 'reboot button',
on_primary_click_release: () => execAsync(['systemctl', 'reboot'])
.catch(print),
child: Label({
label: '勒',
}),
}),
end_widget: CursorBox({
class_name: 'logout button',
on_primary_click_release: () => Hyprland.messageAsync('dispatch exit')
.catch(print),
child: Label({
label: '',
}),
}),
});
export default () => PopupWindow({
name: 'powermenu',
transition: 'slide bottom',
child: PowermenuWidget(),
});