mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 09:36:46 +00:00
quickshell and hyprland additions
This commit is contained in:
@@ -0,0 +1,215 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import Quickshell.Widgets
|
||||
import qs.config
|
||||
import qs.modules.components
|
||||
import qs.services
|
||||
import qs.modules.functions
|
||||
|
||||
ContentMenu {
|
||||
title: "Notifications & Overlays"
|
||||
description: "Adjust notification and overlay settings."
|
||||
|
||||
function indexFromPosition(pos, model) {
|
||||
pos = pos.toLowerCase()
|
||||
for (let i = 0; i < model.length; i++) {
|
||||
if (model[i].toLowerCase().replace(" ", "-") === pos)
|
||||
return i
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
ContentCard {
|
||||
|
||||
StyledText {
|
||||
text: "Notifications"
|
||||
font.pixelSize: Metrics.fontSize(20)
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
StyledSwitchOption {
|
||||
title: "Enabled"
|
||||
description: "Enable or disable built-in notification daemon."
|
||||
prefField: "notifications.enabled"
|
||||
}
|
||||
|
||||
StyledSwitchOption {
|
||||
title: "Do not disturb enabled"
|
||||
description: "Enable or disable dnd."
|
||||
prefField: "notifications.doNotDisturb"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
||||
ColumnLayout {
|
||||
StyledText {
|
||||
text: "Notification Position"
|
||||
font.pixelSize: Metrics.fontSize(16)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: "Select where notification will be shown."
|
||||
font.pixelSize: Metrics.fontSize(12)
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
StyledDropDown {
|
||||
id: notificationDropdown
|
||||
label: "Position"
|
||||
|
||||
property var positions: ["Top Left", "Top Right", "Top"]
|
||||
|
||||
model: positions
|
||||
|
||||
currentIndex:
|
||||
indexFromPosition(
|
||||
Config.runtime.notifications.position,
|
||||
positions
|
||||
)
|
||||
|
||||
onSelectedIndexChanged: function(index) {
|
||||
Config.updateKey(
|
||||
"notifications.position",
|
||||
positions[index].toLowerCase().replace(" ", "-")
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
||||
ColumnLayout {
|
||||
StyledText {
|
||||
text: "Test Notifications"
|
||||
font.pixelSize: Metrics.fontSize(16)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: "Run a test notification."
|
||||
font.pixelSize: Metrics.fontSize(12)
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
StyledButton {
|
||||
text: "Test"
|
||||
icon: "chat"
|
||||
|
||||
onClicked:
|
||||
Quickshell.execDetached([
|
||||
"notify-send",
|
||||
"Quickshell",
|
||||
"This is a test notification"
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ContentCard {
|
||||
|
||||
StyledText {
|
||||
text: "Overlays / OSDs"
|
||||
font.pixelSize: Metrics.fontSize(20)
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
StyledSwitchOption {
|
||||
title: "Enabled"
|
||||
description: "Enable or disable built-in osd daemon."
|
||||
prefField: "overlays.enabled"
|
||||
}
|
||||
|
||||
StyledSwitchOption {
|
||||
title: "Volume OSD enabled"
|
||||
description: "Enable or disable volume osd."
|
||||
prefField: "overlays.volumeOverlayEnabled"
|
||||
}
|
||||
|
||||
StyledSwitchOption {
|
||||
title: "Brightness OSD enabled"
|
||||
description: "Enable or disable brightness osd."
|
||||
prefField: "overlays.brightnessOverlayEnabled"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
||||
ColumnLayout {
|
||||
StyledText {
|
||||
text: "Brightness OSD Position"
|
||||
font.pixelSize: Metrics.fontSize(16)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: "Choose where brightness OSD is shown."
|
||||
font.pixelSize: Metrics.fontSize(12)
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
StyledDropDown {
|
||||
|
||||
property var positions:
|
||||
["Top Left","Top Right","Bottom Left","Bottom Right","Top","Bottom"]
|
||||
|
||||
model: positions
|
||||
|
||||
currentIndex:
|
||||
indexFromPosition(
|
||||
Config.runtime.overlays.brightnessOverlayPosition,
|
||||
positions
|
||||
)
|
||||
|
||||
onSelectedIndexChanged: function(index) {
|
||||
Config.updateKey(
|
||||
"overlays.brightnessOverlayPosition",
|
||||
positions[index].toLowerCase().replace(" ", "-")
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
||||
ColumnLayout {
|
||||
StyledText {
|
||||
text: "Volume OSD Position"
|
||||
font.pixelSize: Metrics.fontSize(16)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: "Choose where volume OSD is shown."
|
||||
font.pixelSize: Metrics.fontSize(12)
|
||||
}
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
StyledDropDown {
|
||||
|
||||
property var positions:
|
||||
["Top Left","Top Right","Bottom Left","Bottom Right","Top","Bottom"]
|
||||
|
||||
model: positions
|
||||
|
||||
currentIndex:
|
||||
indexFromPosition(
|
||||
Config.runtime.overlays.volumeOverlayPosition,
|
||||
positions
|
||||
)
|
||||
|
||||
onSelectedIndexChanged: function(index) {
|
||||
Config.updateKey(
|
||||
"overlays.volumeOverlayPosition",
|
||||
positions[index].toLowerCase().replace(" ", "-")
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user