summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml598
1 files changed, 0 insertions, 598 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml
deleted file mode 100644
index 7282d34..0000000
--- a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Settings/PowerSleepTab.qml
+++ /dev/null
@@ -1,598 +0,0 @@
-import QtQuick
-import qs.Common
-import qs.Services
-import qs.Widgets
-import qs.Modules.Settings.Widgets
-
-Item {
- id: root
-
- readonly property var timeoutOptions: [I18n.tr("Never"), I18n.tr("1 minute"), I18n.tr("2 minutes"), I18n.tr("3 minutes"), I18n.tr("5 minutes"), I18n.tr("10 minutes"), I18n.tr("15 minutes"), I18n.tr("20 minutes"), I18n.tr("30 minutes"), I18n.tr("1 hour"), I18n.tr("1 hour 30 minutes"), I18n.tr("2 hours"), I18n.tr("3 hours")]
- readonly property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
-
- function getTimeoutIndex(timeout) {
- var idx = timeoutValues.indexOf(timeout);
- return idx >= 0 ? idx : 0;
- }
-
- DankFlickable {
- anchors.fill: parent
- clip: true
- contentHeight: mainColumn.height + Theme.spacingXL
- contentWidth: width
-
- Column {
- id: mainColumn
- topPadding: 4
- width: Math.min(550, parent.width - Theme.spacingL * 2)
- anchors.horizontalCenter: parent.horizontalCenter
- spacing: Theme.spacingXL
-
- SettingsCard {
- width: parent.width
- iconName: "schedule"
- title: I18n.tr("Idle Settings")
- settingKey: "idleSettings"
-
- Row {
- width: parent.width
- spacing: Theme.spacingM
-
- StyledText {
- text: I18n.tr("Power source")
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- visible: BatteryService.batteryAvailable
- }
-
- Item {
- width: Theme.spacingS
- height: 1
- visible: BatteryService.batteryAvailable
- }
-
- DankButtonGroup {
- id: powerCategory
- anchors.verticalCenter: parent.verticalCenter
- visible: BatteryService.batteryAvailable
- model: [I18n.tr("AC Power"), I18n.tr("Battery")]
- currentIndex: 0
- selectionMode: "single"
- checkEnabled: false
- onSelectionChanged: (index, selected) => {
- if (!selected)
- return;
- currentIndex = index;
- }
- }
- }
-
- SettingsToggleRow {
- settingKey: "fadeToLockEnabled"
- tags: ["fade", "lock", "screen", "idle", "grace period"]
- text: I18n.tr("Fade to lock screen")
- description: I18n.tr("Gradually fade the screen before locking with a configurable grace period")
- checked: SettingsData.fadeToLockEnabled
- onToggled: checked => SettingsData.set("fadeToLockEnabled", checked)
- }
-
- SettingsToggleRow {
- settingKey: "fadeToDpmsEnabled"
- tags: ["fade", "dpms", "monitor", "screen", "idle", "grace period"]
- text: I18n.tr("Fade to monitor off")
- description: I18n.tr("Gradually fade the screen before turning off monitors with a configurable grace period")
- checked: SettingsData.fadeToDpmsEnabled
- onToggled: checked => SettingsData.set("fadeToDpmsEnabled", checked)
- }
-
- SettingsToggleRow {
- settingKey: "lockBeforeSuspend"
- tags: ["lock", "suspend", "sleep", "security"]
- text: I18n.tr("Lock before suspend")
- description: I18n.tr("Automatically lock the screen when the system prepares to suspend")
- checked: SettingsData.lockBeforeSuspend
- visible: SessionService.loginctlAvailable && SettingsData.loginctlLockIntegration
- onToggled: checked => SettingsData.set("lockBeforeSuspend", checked)
- }
-
- SettingsDropdownRow {
- id: fadeGracePeriodDropdown
- settingKey: "fadeToLockGracePeriod"
- tags: ["fade", "grace", "period", "timeout", "lock"]
- property var periodOptions: [I18n.tr("1 second"), I18n.tr("2 seconds"), I18n.tr("3 seconds"), I18n.tr("4 seconds"), I18n.tr("5 seconds"), I18n.tr("10 seconds"), I18n.tr("15 seconds"), I18n.tr("20 seconds"), I18n.tr("30 seconds")]
- property var periodValues: [1, 2, 3, 4, 5, 10, 15, 20, 30]
-
- text: I18n.tr("Lock fade grace period")
- options: periodOptions
- visible: SettingsData.fadeToLockEnabled
- enabled: SettingsData.fadeToLockEnabled
-
- Component.onCompleted: {
- const currentPeriod = SettingsData.fadeToLockGracePeriod;
- const index = periodValues.indexOf(currentPeriod);
- currentValue = index >= 0 ? periodOptions[index] : I18n.tr("5 seconds");
- }
-
- onValueChanged: value => {
- const index = periodOptions.indexOf(value);
- if (index < 0)
- return;
- SettingsData.set("fadeToLockGracePeriod", periodValues[index]);
- }
- }
-
- SettingsDropdownRow {
- id: fadeDpmsGracePeriodDropdown
- settingKey: "fadeToDpmsGracePeriod"
- tags: ["fade", "grace", "period", "timeout", "dpms", "monitor"]
- property var periodOptions: [I18n.tr("1 second"), I18n.tr("2 seconds"), I18n.tr("3 seconds"), I18n.tr("4 seconds"), I18n.tr("5 seconds"), I18n.tr("10 seconds"), I18n.tr("15 seconds"), I18n.tr("20 seconds"), I18n.tr("30 seconds")]
- property var periodValues: [1, 2, 3, 4, 5, 10, 15, 20, 30]
-
- text: I18n.tr("Monitor fade grace period")
- options: periodOptions
- visible: SettingsData.fadeToDpmsEnabled
- enabled: SettingsData.fadeToDpmsEnabled
-
- Component.onCompleted: {
- const currentPeriod = SettingsData.fadeToDpmsGracePeriod;
- const index = periodValues.indexOf(currentPeriod);
- currentValue = index >= 0 ? periodOptions[index] : I18n.tr("5 seconds");
- }
-
- onValueChanged: value => {
- const index = periodOptions.indexOf(value);
- if (index < 0)
- return;
- SettingsData.set("fadeToDpmsGracePeriod", periodValues[index]);
- }
- }
- SettingsDropdownRow {
- id: powerProfileDropdown
- settingKey: "powerProfile"
- tags: ["power", "profile", "performance", "balanced", "saver", "battery"]
- property var profileOptions: [I18n.tr("Don't Change"), Theme.getPowerProfileLabel(0), Theme.getPowerProfileLabel(1), Theme.getPowerProfileLabel(2)]
- property var profileValues: ["", "0", "1", "2"]
-
- width: parent.width
- addHorizontalPadding: true
- text: I18n.tr("Switch to power profile")
- options: profileOptions
-
- Connections {
- target: powerCategory
- function onCurrentIndexChanged() {
- const currentProfile = powerCategory.currentIndex === 0 ? SettingsData.acProfileName : SettingsData.batteryProfileName;
- const index = powerProfileDropdown.profileValues.indexOf(currentProfile);
- powerProfileDropdown.currentValue = powerProfileDropdown.profileOptions[index];
- }
- }
-
- Component.onCompleted: {
- const currentProfile = powerCategory.currentIndex === 0 ? SettingsData.acProfileName : SettingsData.batteryProfileName;
- const index = profileValues.indexOf(currentProfile);
- currentValue = profileOptions[index];
- }
-
- onValueChanged: value => {
- const index = profileOptions.indexOf(value);
- if (index >= 0) {
- const profileValue = profileValues[index];
- if (powerCategory.currentIndex === 0) {
- SettingsData.set("acProfileName", profileValue);
- } else {
- SettingsData.set("batteryProfileName", profileValue);
- }
- }
- }
- }
-
- Rectangle {
- width: parent.width
- height: 1
- color: Theme.outline
- opacity: 0.15
- }
-
- SettingsDropdownRow {
- id: lockDropdown
- settingKey: "lockTimeout"
- tags: ["lock", "timeout", "idle", "automatic", "security"]
- text: I18n.tr("Automatically lock after")
- options: root.timeoutOptions
-
- Connections {
- target: powerCategory
- function onCurrentIndexChanged() {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acLockTimeout : SettingsData.batteryLockTimeout;
- lockDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
- }
-
- Component.onCompleted: {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acLockTimeout : SettingsData.batteryLockTimeout;
- currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
-
- onValueChanged: value => {
- const index = root.timeoutOptions.indexOf(value);
- if (index < 0)
- return;
- const timeout = root.timeoutValues[index];
- if (powerCategory.currentIndex === 0) {
- SettingsData.set("acLockTimeout", timeout);
- } else {
- SettingsData.set("batteryLockTimeout", timeout);
- }
- }
- }
-
- SettingsDropdownRow {
- id: monitorDropdown
- settingKey: "monitorTimeout"
- tags: ["monitor", "display", "screen", "timeout", "off", "idle"]
- text: I18n.tr("Turn off monitors after")
- options: root.timeoutOptions
-
- Connections {
- target: powerCategory
- function onCurrentIndexChanged() {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acMonitorTimeout : SettingsData.batteryMonitorTimeout;
- monitorDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
- }
-
- Component.onCompleted: {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acMonitorTimeout : SettingsData.batteryMonitorTimeout;
- currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
-
- onValueChanged: value => {
- const index = root.timeoutOptions.indexOf(value);
- if (index < 0)
- return;
- const timeout = root.timeoutValues[index];
- if (powerCategory.currentIndex === 0) {
- SettingsData.set("acMonitorTimeout", timeout);
- } else {
- SettingsData.set("batteryMonitorTimeout", timeout);
- }
- }
- }
-
- SettingsDropdownRow {
- id: suspendDropdown
- settingKey: "suspendTimeout"
- tags: ["suspend", "sleep", "timeout", "idle", "system"]
- text: I18n.tr("Suspend system after")
- options: root.timeoutOptions
-
- Connections {
- target: powerCategory
- function onCurrentIndexChanged() {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acSuspendTimeout : SettingsData.batterySuspendTimeout;
- suspendDropdown.currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
- }
-
- Component.onCompleted: {
- const currentTimeout = powerCategory.currentIndex === 0 ? SettingsData.acSuspendTimeout : SettingsData.batterySuspendTimeout;
- currentValue = root.timeoutOptions[root.getTimeoutIndex(currentTimeout)];
- }
-
- onValueChanged: value => {
- const index = root.timeoutOptions.indexOf(value);
- if (index < 0)
- return;
- const timeout = root.timeoutValues[index];
- if (powerCategory.currentIndex === 0) {
- SettingsData.set("acSuspendTimeout", timeout);
- } else {
- SettingsData.set("batterySuspendTimeout", timeout);
- }
- }
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingS
- visible: SessionService.hibernateSupported
-
- StyledText {
- text: I18n.tr("Suspend behavior")
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- leftPadding: Theme.spacingM
- }
-
- DankButtonGroup {
- id: suspendBehaviorSelector
- anchors.horizontalCenter: parent.horizontalCenter
- model: [I18n.tr("Suspend"), I18n.tr("Hibernate"), I18n.tr("Suspend then Hibernate")]
- selectionMode: "single"
- checkEnabled: false
-
- Connections {
- target: powerCategory
- function onCurrentIndexChanged() {
- const behavior = powerCategory.currentIndex === 0 ? SettingsData.acSuspendBehavior : SettingsData.batterySuspendBehavior;
- suspendBehaviorSelector.currentIndex = behavior;
- }
- }
-
- Component.onCompleted: {
- const behavior = powerCategory.currentIndex === 0 ? SettingsData.acSuspendBehavior : SettingsData.batterySuspendBehavior;
- currentIndex = behavior;
- }
-
- onSelectionChanged: (index, selected) => {
- if (!selected)
- return;
- currentIndex = index;
- if (powerCategory.currentIndex === 0) {
- SettingsData.set("acSuspendBehavior", index);
- } else {
- SettingsData.set("batterySuspendBehavior", index);
- }
- }
- }
- }
-
- StyledText {
- text: I18n.tr("Idle monitoring not supported - requires newer Quickshell version")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.error
- anchors.horizontalCenter: parent.horizontalCenter
- visible: !IdleService.idleMonitorAvailable
- }
- }
-
- SettingsCard {
- width: parent.width
- iconName: "tune"
- title: I18n.tr("Power Menu Customization")
- settingKey: "powerMenu"
-
- StyledText {
- text: I18n.tr("Customize which actions appear in the power menu")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- width: parent.width
- wrapMode: Text.Wrap
- }
-
- SettingsToggleRow {
- settingKey: "powerMenuGridLayout"
- tags: ["power", "menu", "grid", "layout", "list"]
- text: I18n.tr("Use Grid Layout")
- description: I18n.tr("Display power menu actions in a grid instead of a list")
- checked: SettingsData.powerMenuGridLayout
- onToggled: checked => SettingsData.set("powerMenuGridLayout", checked)
- }
-
- SettingsDropdownRow {
- id: defaultActionDropdown
- settingKey: "powerMenuDefaultAction"
- tags: ["power", "menu", "default", "action", "reboot", "logout", "shutdown"]
- text: I18n.tr("Default selected action")
- options: [I18n.tr("Reboot"), I18n.tr("Log Out"), I18n.tr("Power Off"), I18n.tr("Lock"), I18n.tr("Suspend"), I18n.tr("Restart DMS"), I18n.tr("Hibernate")]
- property var actionValues: ["reboot", "logout", "poweroff", "lock", "suspend", "restart", "hibernate"]
-
- Component.onCompleted: {
- const currentAction = SettingsData.powerMenuDefaultAction || "logout";
- const index = actionValues.indexOf(currentAction);
- currentValue = index >= 0 ? options[index] : I18n.tr("Log Out");
- }
-
- onValueChanged: value => {
- const index = options.indexOf(value);
- if (index < 0)
- return;
- SettingsData.set("powerMenuDefaultAction", actionValues[index]);
- }
- }
-
- Rectangle {
- width: parent.width
- height: 1
- color: Theme.outline
- opacity: 0.15
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingS
-
- Repeater {
- model: [
- {
- key: "reboot",
- label: I18n.tr("Show Reboot")
- },
- {
- key: "logout",
- label: I18n.tr("Show Log Out")
- },
- {
- key: "poweroff",
- label: I18n.tr("Show Power Off")
- },
- {
- key: "lock",
- label: I18n.tr("Show Lock")
- },
- {
- key: "suspend",
- label: I18n.tr("Show Suspend")
- },
- {
- key: "restart",
- label: I18n.tr("Show Restart DMS"),
- desc: I18n.tr("Restart the DankMaterialShell")
- },
- {
- key: "hibernate",
- label: I18n.tr("Show Hibernate"),
- desc: I18n.tr("Only visible if hibernate is supported by your system"),
- hibernate: true
- }
- ]
-
- SettingsToggleRow {
- required property var modelData
- settingKey: "powerMenuAction_" + modelData.key
- tags: ["power", "menu", "action", "show", modelData.key]
- text: modelData.label
- description: modelData.desc || ""
- visible: !modelData.hibernate || SessionService.hibernateSupported
- checked: SettingsData.powerMenuActions.includes(modelData.key)
- onToggled: checked => {
- let actions = [...SettingsData.powerMenuActions];
- if (checked && !actions.includes(modelData.key)) {
- actions.push(modelData.key);
- } else if (!checked) {
- actions = actions.filter(a => a !== modelData.key);
- }
- SettingsData.set("powerMenuActions", actions);
- }
- }
- }
- }
- }
-
- SettingsCard {
- width: parent.width
- iconName: "check_circle"
- title: I18n.tr("Power Action Confirmation")
- settingKey: "powerConfirmation"
-
- SettingsToggleRow {
- settingKey: "powerActionConfirm"
- tags: ["power", "confirm", "hold", "button", "safety"]
- text: I18n.tr("Hold to Confirm Power Actions")
- description: I18n.tr("Require holding button/key to confirm power off, restart, suspend, hibernate and logout")
- checked: SettingsData.powerActionConfirm
- onToggled: checked => SettingsData.set("powerActionConfirm", checked)
- }
-
- SettingsDropdownRow {
- id: holdDurationDropdown
- settingKey: "powerActionHoldDuration"
- tags: ["power", "hold", "duration", "confirm", "time"]
- property var durationOptions: [I18n.tr("250 ms"), I18n.tr("500 ms"), I18n.tr("750 ms"), I18n.tr("1 second"), I18n.tr("2 seconds"), I18n.tr("3 seconds"), I18n.tr("5 seconds"), I18n.tr("10 seconds")]
- property var durationValues: [0.25, 0.5, 0.75, 1, 2, 3, 5, 10]
-
- text: I18n.tr("Hold Duration")
- options: durationOptions
- visible: SettingsData.powerActionConfirm
-
- Component.onCompleted: {
- const currentDuration = SettingsData.powerActionHoldDuration;
- const index = durationValues.indexOf(currentDuration);
- currentValue = index >= 0 ? durationOptions[index] : I18n.tr("500 ms");
- }
-
- onValueChanged: value => {
- const index = durationOptions.indexOf(value);
- if (index < 0)
- return;
- SettingsData.set("powerActionHoldDuration", durationValues[index]);
- }
- }
- }
-
- SettingsCard {
- width: parent.width
- iconName: "developer_mode"
- title: I18n.tr("Custom Power Actions")
- settingKey: "customPowerActions"
-
- Repeater {
- model: [
- {
- key: "customPowerActionLock",
- label: I18n.tr("Custom Lock Command"),
- placeholder: "/usr/bin/myLock.sh"
- },
- {
- key: "customPowerActionLogout",
- label: I18n.tr("Custom Logout Command"),
- placeholder: "/usr/bin/myLogout.sh"
- },
- {
- key: "customPowerActionSuspend",
- label: I18n.tr("Custom Suspend Command"),
- placeholder: "/usr/bin/mySuspend.sh"
- },
- {
- key: "customPowerActionHibernate",
- label: I18n.tr("Custom Hibernate Command"),
- placeholder: "/usr/bin/myHibernate.sh"
- },
- {
- key: "customPowerActionReboot",
- label: I18n.tr("Custom Reboot Command"),
- placeholder: "/usr/bin/myReboot.sh"
- },
- {
- key: "customPowerActionPowerOff",
- label: I18n.tr("Custom Power Off Command"),
- placeholder: "/usr/bin/myPowerOff.sh"
- }
- ]
-
- Column {
- required property var modelData
- width: parent.width
- spacing: Theme.spacingXS
-
- StyledText {
- text: modelData.label
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- }
-
- DankTextField {
- width: parent.width
- placeholderText: modelData.placeholder
- backgroundColor: Theme.surfaceContainerHighest
- normalBorderColor: Theme.outlineMedium
- focusedBorderColor: Theme.primary
-
- Component.onCompleted: {
- var val = SettingsData[modelData.key];
- if (val)
- text = val;
- }
-
- onTextEdited: {
- SettingsData.set(modelData.key, text.trim());
- }
- }
- }
- }
- }
-
- SettingsCard {
- width: parent.width
- iconName: "tune"
- title: I18n.tr("Advanced")
- settingKey: "powerAdvanced"
- collapsible: true
- expanded: false
-
- SettingsSliderRow {
- settingKey: "batteryChargeLimit"
- tags: ["battery", "charge", "limit", "percentage", "power"]
- text: I18n.tr("Battery Charge Limit")
- description: I18n.tr("Note: this only changes the percentage, it does not actually limit charging.")
- value: SettingsData.batteryChargeLimit
- minimum: 50
- maximum: 100
- defaultValue: 100
- onSliderValueChanged: newValue => SettingsData.set("batteryChargeLimit", newValue)
- }
- }
- }
- }
-}