diff --git a/.config/quickshell/modules/bar/UtilButtons.qml b/.config/quickshell/modules/bar/UtilButtons.qml index 9d9832a0a..ee94d42fe 100644 --- a/.config/quickshell/modules/bar/UtilButtons.qml +++ b/.config/quickshell/modules/bar/UtilButtons.qml @@ -10,7 +10,8 @@ import Quickshell.Services.Pipewire Item { id: root property bool borderless: ConfigOptions.bar.borderless - implicitWidth: rowLayout.implicitWidth + rowLayout.spacing * 2 + implicitWidth: rowLayout.implicitWidth + rowLayout.spacing * 16 + implicitHeight: rowLayout.implicitHeight RowLayout { id: rowLayout @@ -34,21 +35,21 @@ Item { } } - Loader { - active: ConfigOptions.bar.utilButtons.showColorPicker - visible: ConfigOptions.bar.utilButtons.showColorPicker - sourceComponent: CircleUtilButton { - Layout.alignment: Qt.AlignVCenter - onClicked: Hyprland.dispatch("exec hyprpicker -a") - MaterialSymbol { - horizontalAlignment: Qt.AlignHCenter - fill: 1 - text: "colorize" - iconSize: Appearance.font.pixelSize.large - color: Appearance.colors.colOnLayer2 - } - } - } + Loader { + active: ConfigOptions.bar.utilButtons.showColorPicker + visible: ConfigOptions.bar.utilButtons.showColorPicker + sourceComponent: CircleUtilButton { + Layout.alignment: Qt.AlignVCenter + onClicked: Hyprland.dispatch("exec hyprpicker -a") + MaterialSymbol { + horizontalAlignment: Qt.AlignHCenter + fill: 1 + text: "colorize" + iconSize: Appearance.font.pixelSize.large + color: Appearance.colors.colOnLayer2 + } + } + } Loader { active: ConfigOptions.bar.utilButtons.showKeyboardToggle @@ -82,4 +83,26 @@ Item { } } } + + Loader { + active: ConfigOptions.bar.utilButtons.darkMode.show + visible: ConfigOptions.bar.utilButtons.darkMode.show + sourceComponent: CircleUtilButton { + Layout.alignment: Qt.AlignVCenter + onClicked: event => { + if (Appearance.m3colors.darkmode) { + Hyprland.dispatch(`exec ${Directories.wallpaperSwitchScriptPath} ${ConfigOptions.bar.utilButtons.darkMode.lightImgPath} --mode light`); + } else { + Hyprland.dispatch(`exec ${Directories.wallpaperSwitchScriptPath} ${ConfigOptions.bar.utilButtons.darkMode.darkImgPath} --mode dark`); + } + } + MaterialSymbol { + horizontalAlignment: Qt.AlignHCenter + fill: 0 + text: Appearance.m3colors.darkmode ? "light_mode" : "dark_mode" + iconSize: Appearance.font.pixelSize.large + color: Appearance.colors.colOnLayer2 + } + } + } } diff --git a/.config/quickshell/modules/common/ConfigOptions.qml b/.config/quickshell/modules/common/ConfigOptions.qml index 58331e368..cc841d567 100644 --- a/.config/quickshell/modules/common/ConfigOptions.qml +++ b/.config/quickshell/modules/common/ConfigOptions.qml @@ -1,7 +1,7 @@ -import QtQuick -import Quickshell pragma Singleton pragma ComponentBehavior: Bound +import QtQuick +import Quickshell Singleton { property QtObject policies: QtObject { @@ -21,8 +21,10 @@ Singleton { } } - property QtObject audio: QtObject { // Values in % - property QtObject protection: QtObject { // Prevent sudden bangs + property QtObject audio: QtObject { + // Values in % + property QtObject protection: QtObject { + // Prevent sudden bangs property bool enable: true property real maxAllowedIncrease: 10 property real maxAllowed: 90 // Realistically should already provide some protection when it's 99... @@ -59,6 +61,11 @@ Singleton { property bool showColorPicker: false property bool showMicToggle: false property bool showKeyboardToggle: true + property QtObject darkMode: QtObject { + property bool show: true + property string lightImgPath: "" + property string darkImgPath: "" + } } property QtObject tray: QtObject { property bool monochromeIcons: true @@ -83,9 +90,7 @@ Singleton { property bool pinnedOnStartup: false property bool hoverToReveal: false // When false, only reveals on empty workspace property list pinnedApps: [ // IDs of pinned entries - "org.kde.dolphin", - "kitty", - ] + "org.kde.dolphin", "kitty",] } property QtObject language: QtObject { @@ -123,7 +128,7 @@ Singleton { property QtObject search: QtObject { property int nonAppResultDelay: 30 // This prevents lagging when typing property string engineBaseUrl: "https://www.google.com/search?q=" - property list excludedSites: [ "quora.com" ] + property list excludedSites: ["quora.com"] property bool sloppy: false // Uses levenshtein distance based scoring instead of fuzzy sort. Very weird. property QtObject prefix: QtObject { property string action: "/" @@ -159,5 +164,4 @@ Singleton { property QtObject hacks: QtObject { property int arbitraryRaceConditionDelay: 20 // milliseconds } - }