hyprcrux/.config/ags/old/modules/quicksettings/widgets/AsusProfile.js
2024-04-11 00:21:35 -04:00

51 lines
1.4 KiB
JavaScript

import { ArrowToggleButton, Menu } from "../ToggleButton.js"
import icons from "../../../lib/icons.js"
import asusctl from "../../../services/asusctl.js"
const profile = asusctl.bind("profile")
export const ProfileToggle = () => ArrowToggleButton({
name: "asusctl-profile",
icon: profile.as(p => icons.asusctl.profile[p]),
label: profile,
connection: [asusctl, () => asusctl.profile !== "Balanced"],
activate: () => asusctl.setProfile("Quiet"),
deactivate: () => asusctl.setProfile("Balanced"),
activateOnArrow: false,
})
export const ProfileSelector = () => Menu({
name: "asusctl-profile",
icon: profile.as(p => icons.asusctl.profile[p]),
title: "Profile Selector",
content: [
Widget.Box({
vertical: true,
hexpand: true,
children: [
Widget.Box({
vertical: true,
children: asusctl.profiles.map(prof => Widget.Button({
on_clicked: () => asusctl.setProfile(prof),
child: Widget.Box({
children: [
Widget.Icon(icons.asusctl.profile[prof]),
Widget.Label(prof),
],
}),
})),
}),
],
}),
Widget.Separator(),
Widget.Button({
on_clicked: () => Utils.execAsync("rog-control-center"),
child: Widget.Box({
children: [
Widget.Icon(icons.ui.settings),
Widget.Label("Rog Control Center"),
],
}),
}),
],
})