mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 17:47:09 +00:00
216 lines
5.8 KiB
QML
216 lines
5.8 KiB
QML
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(" ", "-")
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|