77 lines
2.9 KiB
TypeScript
77 lines
2.9 KiB
TypeScript
import { Gtk } from "astal/gtk4";
|
|
import Power from "./modules/Power";
|
|
import Audio from "./modules/Audio/Audio";
|
|
import Bluetooth from "./modules/Bluetooth/Bluetooth";
|
|
import Brightness from "./modules/Brightness/Brightness";
|
|
import Player from "./modules/Player/Player";
|
|
import { BatteryBox } from "./modules/Battery";
|
|
import { exec } from "astal";
|
|
import Network from "./modules/Networking/Network";
|
|
|
|
const QuickActions = () => {
|
|
const popover = new Gtk.Popover({ cssClasses: ["quick-actions-wrapper"] });
|
|
popover.set_child(renderQuickActions());
|
|
return popover;
|
|
};
|
|
|
|
const renderQuickActions = () => {
|
|
const user = exec("/bin/sh -c whoami");
|
|
const profile = exec("/bin/fish -c get-profile-picture");
|
|
const cwd = exec("pwd");
|
|
const um = Power.UserMenu();
|
|
|
|
return (
|
|
<box visible cssClasses={["quick-actions", "popover-box"]} vertical>
|
|
<centerbox
|
|
startWidget={
|
|
<button
|
|
onClicked={() => um.popup()}
|
|
cssClasses={["stealthy-button"]}
|
|
child={
|
|
<box>
|
|
{um}
|
|
<Gtk.Frame
|
|
cssClasses={["avatar-icon"]}
|
|
child={
|
|
<image
|
|
file={
|
|
profile !== ""
|
|
? profile
|
|
: cwd +
|
|
"/no-avatar-icon.jpg"
|
|
}
|
|
></image>
|
|
}
|
|
></Gtk.Frame>
|
|
<label label={user}></label>
|
|
</box>
|
|
}
|
|
></button>
|
|
}
|
|
endWidget={
|
|
<box
|
|
hexpand={false}
|
|
>
|
|
<BatteryBox></BatteryBox>
|
|
<Power.Power></Power.Power>
|
|
</box>
|
|
}
|
|
></centerbox>
|
|
<Gtk.Separator marginTop={10} marginBottom={20}></Gtk.Separator>
|
|
<box>
|
|
<Bluetooth.BluetoothModule></Bluetooth.BluetoothModule>
|
|
<Network.Network></Network.Network>
|
|
</box>
|
|
<Gtk.Separator marginTop={10} marginBottom={10}></Gtk.Separator>
|
|
<Brightness.BrightnessModule></Brightness.BrightnessModule>
|
|
<Audio.AudioModule></Audio.AudioModule>
|
|
<Player.PlayerModule></Player.PlayerModule>
|
|
</box>
|
|
);
|
|
};
|
|
|
|
// TODO: Expose additional functions to be usable through CLI
|
|
export default {
|
|
QuickActions,
|
|
};
|