mirror of
https://github.com/xsghetti/HyprCrux.git
synced 2025-07-03 22:00:38 -04:00
87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
import { ProfileSelector, ProfileToggle } from "./widgets/AsusProfile.js"
|
|
// import { Header } from "./widgets/Header.js"
|
|
import { Volume, Microhone, SinkSelector, AppMixer } from "./widgets/Volume.js"
|
|
import { Brightness } from "./widgets/Brightness.js"
|
|
import { NetworkToggle, WifiSelection } from "./widgets/Network.js"
|
|
import { BluetoothToggle, BluetoothDevices } from "./widgets/Bluetooth.js"
|
|
import { DND } from "./widgets/DND.js"
|
|
// import { DarkModeToggle } from "./widgets/DarkMode.js"
|
|
import { MicMute } from "./widgets/MicMute.js"
|
|
import { Media } from "./widgets/Media.js"
|
|
import PopupWindow from "../PopupWindow.js"
|
|
import NotificationColumn from "./NotificationColumn.js"
|
|
import options from "../../options.js"
|
|
|
|
const { bar, quicksettings } = options
|
|
const media = (await Service.import("mpris")).bind("players")
|
|
const layout = `${quicksettings.position}`
|
|
|
|
|
|
const Row = (
|
|
toggles = [],
|
|
menus = [],
|
|
) => Widget.Box({
|
|
vertical: true,
|
|
children: [
|
|
Widget.Box({
|
|
homogeneous: true,
|
|
class_name: "row horizontal",
|
|
children: toggles.map(w => w()),
|
|
}),
|
|
...menus.map(w => w()),
|
|
],
|
|
})
|
|
|
|
const Settings = () => Widget.Box({
|
|
vertical: true,
|
|
vexpand: true,
|
|
vpack: "fill",
|
|
class_name: "quicksettings vertical",
|
|
css: `min-width: ${quicksettings.width}px;`,
|
|
children: [
|
|
// Header(),
|
|
Widget.Box({
|
|
class_name: "sliders-box vertical",
|
|
vertical: true,
|
|
children: [
|
|
Row(
|
|
[Volume],
|
|
[SinkSelector, AppMixer],
|
|
),
|
|
Microhone(),
|
|
Brightness(),
|
|
],
|
|
}),
|
|
Row(
|
|
[NetworkToggle, BluetoothToggle],
|
|
[WifiSelection, BluetoothDevices],
|
|
),
|
|
Row(
|
|
[ProfileToggle],
|
|
[ProfileSelector],
|
|
),
|
|
Row([MicMute, DND]),
|
|
Widget.Box({
|
|
visible: media.as(l => l.length > 0),
|
|
child: Media(),
|
|
}),
|
|
NotificationColumn(),
|
|
],
|
|
})
|
|
|
|
const QuickSettings = () => PopupWindow({
|
|
name: "quicksettings",
|
|
transition: "slide_left", //bar.position === "top" ? "slide_down" : "slide_up",
|
|
// anchor: ["right", "top"],
|
|
keymode: 'on-demand',
|
|
layout: layout,
|
|
child: Settings(),
|
|
vpack: "fill",
|
|
// hpack: "fill",
|
|
vexpand: true,
|
|
// hexpand: true,
|
|
})
|
|
|
|
export function setupQuickSettings() {
|
|
App.addWindow(QuickSettings())
|
|
}
|