mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 17:47:09 +00:00
quickshell and hyprland additions
This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
import qs.config
|
||||
import qs.modules.components
|
||||
import qs.services
|
||||
import qs.modules.functions
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import QtQuick.Layouts
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Io
|
||||
import QtQuick.Controls
|
||||
import Quickshell.Services.Pipewire
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import "content/"
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: Metrics.margin("normal")
|
||||
anchors.rightMargin: Metrics.margin("normal")
|
||||
anchors.topMargin: Metrics.margin("large")
|
||||
anchors.bottomMargin: Metrics.margin("large")
|
||||
|
||||
ColumnLayout {
|
||||
id: mainLayout
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: Metrics.margin("tiny")
|
||||
anchors.rightMargin: Metrics.margin("tiny")
|
||||
anchors.margins: Metrics.margin("large")
|
||||
spacing: Metrics.margin("large")
|
||||
|
||||
RowLayout {
|
||||
id: topSection
|
||||
Layout.fillWidth: true
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: Metrics.margin(10)
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
spacing: Metrics.spacing(2)
|
||||
|
||||
RowLayout {
|
||||
spacing: Metrics.spacing(8)
|
||||
|
||||
StyledText {
|
||||
text: SystemDetails.osIcon
|
||||
font.pixelSize: Metrics.fontSize("hugeass") + 6
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: SystemDetails.uptime
|
||||
font.pixelSize: Metrics.fontSize("large")
|
||||
Layout.alignment: Qt.AlignBottom
|
||||
Layout.bottomMargin: Metrics.margin(5)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
Row {
|
||||
spacing: Metrics.spacing(6)
|
||||
Layout.leftMargin: Metrics.margin(25)
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
|
||||
StyledRect {
|
||||
id: screenshotbtncontainer
|
||||
color: "transparent"
|
||||
radius: Metrics.radius("large")
|
||||
implicitHeight: screenshotButton.height + Metrics.margin("tiny")
|
||||
implicitWidth: screenshotButton.width + Metrics.margin("small")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
Layout.topMargin: Metrics.margin(10)
|
||||
Layout.leftMargin: Metrics.margin(15)
|
||||
|
||||
MaterialSymbolButton {
|
||||
id: screenshotButton
|
||||
icon: "edit"
|
||||
anchors.centerIn: parent
|
||||
iconSize: Metrics.iconSize("hugeass") + 2
|
||||
tooltipText: "Take a screenshot"
|
||||
|
||||
onButtonClicked: {
|
||||
Quickshell.execDetached(["nucleus", "ipc", "call", "screen", "capture"])
|
||||
Globals.visiblility.sidebarRight = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StyledRect {
|
||||
id: reloadbtncontainer
|
||||
color: "transparent"
|
||||
radius: Metrics.radius("large")
|
||||
implicitHeight: reloadButton.height + Metrics.margin("tiny")
|
||||
implicitWidth: reloadButton.width + Metrics.margin("small")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
Layout.topMargin: Metrics.margin(10)
|
||||
Layout.leftMargin: Metrics.margin(15)
|
||||
|
||||
MaterialSymbolButton {
|
||||
id: reloadButton
|
||||
icon: "refresh"
|
||||
anchors.centerIn: parent
|
||||
iconSize: Metrics.iconSize("hugeass") + 4
|
||||
tooltipText: "Reload Nucleus Shell"
|
||||
|
||||
onButtonClicked: {
|
||||
Quickshell.execDetached(["nucleus", "run", "--reload"])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StyledRect {
|
||||
id: settingsbtncontainer
|
||||
color: "transparent"
|
||||
radius: Metrics.radius("large")
|
||||
implicitHeight: settingsButton.height + Metrics.margin("tiny")
|
||||
implicitWidth: settingsButton.width + Metrics.margin("small")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
Layout.topMargin: Metrics.margin(10)
|
||||
Layout.leftMargin: Metrics.margin(15)
|
||||
|
||||
MaterialSymbolButton {
|
||||
id: settingsButton
|
||||
icon: "settings"
|
||||
anchors.centerIn: parent
|
||||
iconSize: Metrics.iconSize("hugeass") + 2
|
||||
tooltipText: "Open Settings"
|
||||
onButtonClicked: {
|
||||
Globals.visiblility.sidebarRight = false
|
||||
Globals.states.settingsOpen = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StyledRect {
|
||||
id: powerbtncontainer
|
||||
color: "transparent"
|
||||
radius: Metrics.radius("large")
|
||||
implicitHeight: settingsButton.height + Metrics.margin("tiny")
|
||||
implicitWidth: settingsButton.width + Metrics.margin("small")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
Layout.topMargin: Metrics.margin(10)
|
||||
Layout.leftMargin: Metrics.margin(15)
|
||||
|
||||
MaterialSymbolButton {
|
||||
id: powerButton
|
||||
icon: "power_settings_new"
|
||||
anchors.centerIn: parent
|
||||
iconSize: Metrics.iconSize("hugeass") + 2
|
||||
tooltipText: "Open PowerMenu"
|
||||
|
||||
onButtonClicked: {
|
||||
Globals.visiblility.sidebarRight = false
|
||||
Globals.visiblility.powermenu = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
height: 1
|
||||
color: Appearance.m3colors.m3outlineVariant
|
||||
radius: Metrics.radius(1)
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: sliderColumn
|
||||
Layout.fillWidth: true
|
||||
|
||||
VolumeSlider {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 50
|
||||
icon: "volume_up"
|
||||
iconSize: Metrics.iconSize("large") + 3
|
||||
}
|
||||
|
||||
BrightnessSlider {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 50
|
||||
icon: "brightness_high"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
height: 1
|
||||
color: Appearance.m3colors.m3outlineVariant
|
||||
radius: Metrics.radius(1)
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
id: middleGrid
|
||||
Layout.fillWidth: true
|
||||
columns: 1
|
||||
columnSpacing: Metrics.spacing(8)
|
||||
rowSpacing: Metrics.spacing(8)
|
||||
Layout.preferredWidth: parent.width
|
||||
|
||||
RowLayout {
|
||||
NetworkToggle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
}
|
||||
FlightModeToggle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
BluetoothToggle {
|
||||
Layout.preferredWidth: 220
|
||||
Layout.preferredHeight: 80
|
||||
}
|
||||
ThemeToggle {
|
||||
Layout.preferredHeight: 80
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
NightModeToggle {
|
||||
Layout.preferredHeight: 80
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
spacing: Metrics.margin("small")
|
||||
Layout.fillWidth: true
|
||||
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
height: 1
|
||||
color: Appearance.m3colors.m3outlineVariant
|
||||
radius: Metrics.radius(1)
|
||||
Layout.topMargin: Metrics.margin(5)
|
||||
Layout.bottomMargin: Metrics.margin(5)
|
||||
}
|
||||
|
||||
NotifModal {
|
||||
Layout.preferredHeight: (Config.runtime.bar.position === "left" || Config.runtime.bar.position === "right") ? 480 : 470
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user