summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml
diff options
context:
space:
mode:
authorAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
committerAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
commit70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch)
treeab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml
parent5d94c0a7d44a2255b81815a52a7056a94a39842d (diff)
downloadRaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz
RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml')
-rw-r--r--raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml663
1 files changed, 0 insertions, 663 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml
deleted file mode 100644
index 7d08c5a..0000000
--- a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/GammaControlTab.qml
+++ /dev/null
@@ -1,663 +0,0 @@
-import QtQuick
-import qs.Common
-import qs.Services
-import qs.Widgets
-import qs.Modules.Settings.Widgets
-
-Item {
- id: root
-
- function formatGammaTime(isoString) {
- if (!isoString)
- return "";
- try {
- const date = new Date(isoString);
- if (isNaN(date.getTime()))
- return "";
- return date.toLocaleTimeString(Qt.locale(), "HH:mm");
- } catch (e) {
- return "";
- }
- }
-
- 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
-
- StyledRect {
- width: parent.width
- height: gammaSection.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
- border.width: 0
-
- Column {
- id: gammaSection
-
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- spacing: Theme.spacingM
-
- Row {
- width: parent.width
- spacing: Theme.spacingM
-
- DankIcon {
- name: "brightness_6"
- size: Theme.iconSize
- color: Theme.primary
- anchors.verticalCenter: parent.verticalCenter
- }
-
- StyledText {
- text: I18n.tr("Gamma Control")
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- }
- }
-
- DankToggle {
- id: nightModeToggle
-
- width: parent.width
- text: I18n.tr("Night Mode")
- description: DisplayService.gammaControlAvailable ? I18n.tr("Apply warm color temperature to reduce eye strain. Use automation settings below to control when it activates.") : I18n.tr("Gamma control not available. Requires DMS API v6+.")
- checked: DisplayService.nightModeEnabled
- enabled: DisplayService.gammaControlAvailable
- onToggled: checked => {
- DisplayService.toggleNightMode();
- }
-
- Connections {
- function onNightModeEnabledChanged() {
- nightModeToggle.checked = DisplayService.nightModeEnabled;
- }
-
- target: DisplayService
- }
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingS
- leftPadding: Theme.spacingM
- rightPadding: Theme.spacingM
- visible: DisplayService.gammaControlAvailable
-
- SettingsSliderRow {
- id: nightTempSlider
- settingKey: "nightModeTemperature"
- tags: ["gamma", "night", "temperature", "kelvin", "warm", "color", "blue light"]
- width: parent.width - parent.leftPadding - parent.rightPadding
- text: SessionData.nightModeAutoEnabled ? I18n.tr("Night Temperature") : I18n.tr("Color Temperature")
- description: SessionData.nightModeAutoEnabled ? I18n.tr("Color temperature for night mode") : I18n.tr("Warm color temperature to apply")
- minimum: 2500
- maximum: 6000
- step: 100
- unit: "K"
- value: SessionData.nightModeTemperature
- onSliderValueChanged: newValue => {
- SessionData.setNightModeTemperature(newValue);
- if (SessionData.nightModeHighTemperature < newValue)
- SessionData.setNightModeHighTemperature(newValue);
- }
- }
-
- SettingsSliderRow {
- id: dayTempSlider
- settingKey: "nightModeHighTemperature"
- tags: ["gamma", "day", "temperature", "kelvin", "color"]
- width: parent.width - parent.leftPadding - parent.rightPadding
- text: I18n.tr("Day Temperature")
- description: I18n.tr("Color temperature for day time")
- minimum: SessionData.nightModeTemperature
- maximum: 10000
- step: 100
- unit: "K"
- value: Math.max(SessionData.nightModeHighTemperature, SessionData.nightModeTemperature)
- visible: SessionData.nightModeAutoEnabled
- onSliderValueChanged: newValue => SessionData.setNightModeHighTemperature(newValue)
- }
- }
-
- DankToggle {
- id: automaticToggle
- width: parent.width
- text: I18n.tr("Automatic Control")
- description: I18n.tr("Only adjust gamma based on time or location rules.")
- checked: SessionData.nightModeAutoEnabled
- visible: DisplayService.gammaControlAvailable
- onToggled: checked => {
- if (checked && !DisplayService.nightModeEnabled) {
- DisplayService.toggleNightMode();
- } else if (!checked && DisplayService.nightModeEnabled) {
- DisplayService.toggleNightMode();
- }
- SessionData.setNightModeAutoEnabled(checked);
- }
-
- Connections {
- target: SessionData
- function onNightModeAutoEnabledChanged() {
- automaticToggle.checked = SessionData.nightModeAutoEnabled;
- }
- }
- }
-
- Column {
- id: automaticSettings
- width: parent.width
- spacing: Theme.spacingS
- visible: SessionData.nightModeAutoEnabled && DisplayService.gammaControlAvailable
-
- Connections {
- target: SessionData
- function onNightModeAutoEnabledChanged() {
- automaticSettings.visible = SessionData.nightModeAutoEnabled;
- }
- }
-
- Item {
- width: parent.width
- height: 45 + Theme.spacingM
-
- DankTabBar {
- id: modeTabBarNight
- width: 200
- height: 45
- anchors.horizontalCenter: parent.horizontalCenter
- model: [
- {
- "text": I18n.tr("Time"),
- "icon": "access_time"
- },
- {
- "text": I18n.tr("Location"),
- "icon": "place"
- }
- ]
-
- Component.onCompleted: {
- currentIndex = SessionData.nightModeAutoMode === "location" ? 1 : 0;
- Qt.callLater(updateIndicator);
- }
-
- onTabClicked: index => {
- DisplayService.setNightModeAutomationMode(index === 1 ? "location" : "time");
- currentIndex = index;
- }
-
- Connections {
- target: SessionData
- function onNightModeAutoModeChanged() {
- modeTabBarNight.currentIndex = SessionData.nightModeAutoMode === "location" ? 1 : 0;
- Qt.callLater(modeTabBarNight.updateIndicator);
- }
- }
- }
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingM
- visible: SessionData.nightModeAutoMode === "time"
-
- Column {
- spacing: Theme.spacingXS
- anchors.horizontalCenter: parent.horizontalCenter
-
- Row {
- spacing: Theme.spacingM
-
- StyledText {
- text: ""
- width: 50
- height: 20
- }
-
- StyledText {
- text: I18n.tr("Hour")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- width: 70
- horizontalAlignment: Text.AlignHCenter
- }
-
- StyledText {
- text: I18n.tr("Minute")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- width: 70
- horizontalAlignment: Text.AlignHCenter
- }
- }
-
- Row {
- spacing: Theme.spacingM
-
- StyledText {
- text: I18n.tr("Start")
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- width: 50
- height: 40
- verticalAlignment: Text.AlignVCenter
- }
-
- DankDropdown {
- dropdownWidth: 70
- currentValue: SessionData.nightModeStartHour.toString()
- options: {
- var hours = [];
- for (var i = 0; i < 24; i++) {
- hours.push(i.toString());
- }
- return hours;
- }
- onValueChanged: value => {
- SessionData.setNightModeStartHour(parseInt(value));
- }
- }
-
- DankDropdown {
- dropdownWidth: 70
- currentValue: SessionData.nightModeStartMinute.toString().padStart(2, '0')
- options: {
- var minutes = [];
- for (var i = 0; i < 60; i += 5) {
- minutes.push(i.toString().padStart(2, '0'));
- }
- return minutes;
- }
- onValueChanged: value => {
- SessionData.setNightModeStartMinute(parseInt(value));
- }
- }
- }
-
- Row {
- spacing: Theme.spacingM
-
- StyledText {
- text: I18n.tr("End")
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- width: 50
- height: 40
- verticalAlignment: Text.AlignVCenter
- }
-
- DankDropdown {
- dropdownWidth: 70
- currentValue: SessionData.nightModeEndHour.toString()
- options: {
- var hours = [];
- for (var i = 0; i < 24; i++) {
- hours.push(i.toString());
- }
- return hours;
- }
- onValueChanged: value => {
- SessionData.setNightModeEndHour(parseInt(value));
- }
- }
-
- DankDropdown {
- dropdownWidth: 70
- currentValue: SessionData.nightModeEndMinute.toString().padStart(2, '0')
- options: {
- var minutes = [];
- for (var i = 0; i < 60; i += 5) {
- minutes.push(i.toString().padStart(2, '0'));
- }
- return minutes;
- }
- onValueChanged: value => {
- SessionData.setNightModeEndMinute(parseInt(value));
- }
- }
- }
- }
- }
-
- Column {
- property bool isLocationMode: SessionData.nightModeAutoMode === "location"
- visible: isLocationMode
- spacing: Theme.spacingM
- width: parent.width
-
- DankToggle {
- id: ipLocationToggle
- width: parent.width
- text: I18n.tr("Use IP Location")
- description: I18n.tr("Automatically detect location based on IP address")
- checked: SessionData.nightModeUseIPLocation || false
- onToggled: checked => {
- SessionData.setNightModeUseIPLocation(checked);
- }
-
- Connections {
- target: SessionData
- function onNightModeUseIPLocationChanged() {
- ipLocationToggle.checked = SessionData.nightModeUseIPLocation;
- }
- }
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingM
- leftPadding: Theme.spacingM
- visible: !SessionData.nightModeUseIPLocation
-
- StyledText {
- text: I18n.tr("Manual Coordinates")
- font.pixelSize: Theme.fontSizeMedium
- color: Theme.surfaceText
- }
-
- Row {
- spacing: Theme.spacingL
-
- Column {
- spacing: Theme.spacingXS
-
- StyledText {
- text: I18n.tr("Latitude")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- }
-
- DankTextField {
- width: 120
- height: 40
- text: SessionData.latitude.toString()
- placeholderText: "0.0"
- onEditingFinished: {
- const lat = parseFloat(text);
- if (!isNaN(lat) && lat >= -90 && lat <= 90 && lat !== SessionData.latitude) {
- SessionData.setLatitude(lat);
- }
- }
- }
- }
-
- Column {
- spacing: Theme.spacingXS
-
- StyledText {
- text: I18n.tr("Longitude")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- }
-
- DankTextField {
- width: 120
- height: 40
- text: SessionData.longitude.toString()
- placeholderText: "0.0"
- onEditingFinished: {
- const lon = parseFloat(text);
- if (!isNaN(lon) && lon >= -180 && lon <= 180 && lon !== SessionData.longitude) {
- SessionData.setLongitude(lon);
- }
- }
- }
- }
- }
-
- StyledText {
- text: I18n.tr("Uses sunrise/sunset times to automatically adjust night mode based on your location.")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- width: parent.width - parent.leftPadding
- wrapMode: Text.WordWrap
- }
- }
- }
-
- Rectangle {
- width: parent.width
- height: 1
- color: Theme.outline
- opacity: 0.2
- visible: gammaStatusSection.visible
- }
-
- Column {
- id: gammaStatusSection
- width: parent.width
- spacing: Theme.spacingM
- visible: DisplayService.nightModeEnabled && DisplayService.gammaCurrentTemp > 0
-
- Row {
- width: parent.width
- spacing: Theme.spacingS
-
- DankIcon {
- name: DisplayService.gammaIsDay ? "light_mode" : "dark_mode"
- size: Theme.iconSizeSmall
- color: Theme.primary
- anchors.verticalCenter: parent.verticalCenter
- }
-
- StyledText {
- text: I18n.tr("Current Status")
- font.pixelSize: Theme.fontSizeMedium
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- }
- }
-
- Row {
- width: parent.width
- spacing: Theme.spacingM
-
- Rectangle {
- width: (parent.width - Theme.spacingM) / 2
- height: tempColumn.implicitHeight + Theme.spacingM * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
-
- Column {
- id: tempColumn
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- DankIcon {
- name: "device_thermostat"
- size: Theme.iconSize
- color: Theme.primary
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: DisplayService.gammaCurrentTemp + "K"
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: I18n.tr("Current Temp")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
-
- Rectangle {
- width: (parent.width - Theme.spacingM) / 2
- height: periodColumn.implicitHeight + Theme.spacingM * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
-
- Column {
- id: periodColumn
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- DankIcon {
- name: DisplayService.gammaIsDay ? "wb_sunny" : "nightlight"
- size: Theme.iconSize
- color: DisplayService.gammaIsDay ? "#FFA726" : "#7E57C2"
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: DisplayService.gammaIsDay ? I18n.tr("Daytime") : I18n.tr("Night")
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: I18n.tr("Current Period")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
- }
-
- Row {
- width: parent.width
- spacing: Theme.spacingM
- visible: SessionData.nightModeAutoMode === "location" && (DisplayService.gammaSunriseTime || DisplayService.gammaSunsetTime)
-
- Rectangle {
- width: (parent.width - Theme.spacingM) / 2
- height: sunriseColumn.implicitHeight + Theme.spacingM * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- visible: DisplayService.gammaSunriseTime
-
- Column {
- id: sunriseColumn
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- DankIcon {
- name: "wb_twilight"
- size: Theme.iconSize
- color: "#FF7043"
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: root.formatGammaTime(DisplayService.gammaSunriseTime)
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: I18n.tr("Sunrise")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
-
- Rectangle {
- width: (parent.width - Theme.spacingM) / 2
- height: sunsetColumn.implicitHeight + Theme.spacingM * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- visible: DisplayService.gammaSunsetTime
-
- Column {
- id: sunsetColumn
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- DankIcon {
- name: "wb_twilight"
- size: Theme.iconSize
- color: "#5C6BC0"
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: root.formatGammaTime(DisplayService.gammaSunsetTime)
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: I18n.tr("Sunset")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- anchors.horizontalCenter: parent.horizontalCenter
- }
- }
- }
- }
-
- Rectangle {
- width: parent.width
- height: nextChangeRow.implicitHeight + Theme.spacingM * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- visible: DisplayService.gammaNextTransition
-
- Row {
- id: nextChangeRow
- anchors.centerIn: parent
- spacing: Theme.spacingM
-
- DankIcon {
- name: "schedule"
- size: Theme.iconSize
- color: Theme.primary
- anchors.verticalCenter: parent.verticalCenter
- }
-
- Column {
- spacing: 2
- anchors.verticalCenter: parent.verticalCenter
-
- StyledText {
- text: I18n.tr("Next Transition")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- }
-
- StyledText {
- text: root.formatGammaTime(DisplayService.gammaNextTransition)
- font.pixelSize: Theme.fontSizeMedium
- font.weight: Font.Medium
- color: Theme.surfaceText
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-}