ags(control-center): update wallpaper select button to use new module

also, bluetooth stuff are using `AstalBluetooth.isPowered` instead of `Adapter.powered`, because of binding issues
This commit is contained in:
retrozinndev
2025-04-26 22:41:12 -03:00
parent 28e75a0ba2
commit b037edd0ba
4 changed files with 49 additions and 42 deletions
+5 -4
View File
@@ -4,23 +4,24 @@ import AstalBluetooth from "gi://AstalBluetooth";
import { BluetoothPage } from "../pages/Bluetooth";
import { TilesPages } from "../Tiles";
export const TileBluetooth = Tile({
title: "Bluetooth",
description: bind(AstalBluetooth.get_default(), "isConnected").as((connected) => {
const connectedDev = AstalBluetooth.get_default().devices.filter(dev => dev.connected)?.[0];
return connected && connectedDev ? connectedDev.get_alias() : ""
}),
onToggledOn: () => AstalBluetooth.get_default().adapter.set_powered(true),
onToggledOff: () => AstalBluetooth.get_default().adapter.set_powered(false),
onToggledOn: () => AstalBluetooth.get_default().adapter?.set_powered(true),
onToggledOff: () => AstalBluetooth.get_default().adapter?.set_powered(false),
onClickMore: () => TilesPages?.toggle(BluetoothPage()),
enableOnClickMore: true,
icon: Variable.derive([
bind(AstalBluetooth.get_default().adapter, "powered"),
bind(AstalBluetooth.get_default(), "isPowered"),
bind(AstalBluetooth.get_default(), "isConnected")
],
(powered: boolean, isConnected: boolean) =>
powered ? ( isConnected ? "󰂱" : "󰂯" ) : "󰂲"
)(),
iconSize: 16,
toggleState: bind(AstalBluetooth.get_default().adapter, "powered")
toggleState: bind(AstalBluetooth.get_default(), "isPowered")
} as TileProps);
+5 -1
View File
@@ -11,6 +11,7 @@ export type TileProps = {
description?: string | Binding<string | undefined>;
toggleState?: boolean | Binding<boolean | undefined>;
enableOnClickMore?: boolean | Binding<boolean | undefined>;
onDestroy?: () => void;
onToggledOn: () => void;
onToggledOff: () => void;
onClickMore?: () => void;
@@ -42,7 +43,10 @@ export function Tile(props: TileProps): (() => Gtk.Widget) {
),
expand: true,
visible: props.visible,
onDestroy: () => subscription?.(),
onDestroy: () => {
props.onDestroy?.();
subscription?.();
},
children: [
new Widget.Button({
className: "toggle-button",