import { bind } from "astal"; import AstalBattery from "gi://AstalBattery"; import AstalBluetooth from "gi://AstalBluetooth"; import AstalNetwork from "gi://AstalNetwork"; import AstalWp from "gi://AstalWp"; import { Gtk } from "astal/gtk4"; import Brightness from "../../../util/brightness"; import QuickActions from "../../QuickActions/QuickActions"; const STATE = AstalNetwork.DeviceState; const QuickView = () => { const qa = QuickActions.QuickActions(); const showQuickActions = () => { qa.popup(); }; return ( ); }; const NetworkWidget = () => { const network = AstalNetwork.get_default(); return ( { if (state === AstalNetwork.State.CONNECTING) { return "chronometer-reset-symbolic"; } else if ( state === AstalNetwork.State.CONNECTED_LOCAL || state === AstalNetwork.State.CONNECTED_SITE || state === AstalNetwork.State.CONNECTED_GLOBAL ) { return "network-wired-activated-symbolic"; } else { return "paint-unknown-symbolic"; } })} cssClasses={["network-widget", "quick-view-symbol"]} visible={bind(network.wifi, "state").as( state => state !== STATE.ACTIVATED, )} > { if (state === STATE.ACTIVATED) { return network.wifi.iconName; } else { return ""; } })} cssClasses={["network-widget", "quick-view-symbol"]} visible={bind(network.wifi, "state").as( state => state === STATE.ACTIVATED, )} > ); }; const BluetoothWidget = () => { const bluetooth = AstalBluetooth.get_default(); const enabled = bind(bluetooth, "isPowered"); const connected = bind(bluetooth, "isConnected"); // For each connected BT device, render status return ( e)}> c)} > !c)} > !e)} > {bind(bluetooth, "devices").as(devices => { return devices.map(device => { return ( c)}> icon, )} > ); }); })} ); }; const BatteryWidget = () => { const battery = AstalBattery.get_default(); if (battery.get_is_present()) { return ( icon)} cssClasses={["quick-view-symbol"]} > ); } else { return ; } // Else, no battery available -> Don't show the widget }; const BrightnessWidget = () => { const brightness = Brightness.get_default(); const screen_brightness = bind(brightness, "screen"); return ( ); }; const Audio = () => { const wireplumber = AstalWp.get_default(); if (wireplumber) { return ( icon, )} cssClasses={["quick-view-symbol"]} > icon)} cssClasses={["quick-view-symbol"]} > ); } else { print( "[ WirePlumber ] Could not connect, Audio support in bar will be missing", ); return ; } }; // cssClasses={[ 'quick-view-symbol' ]} export default { QuickView, };