From 42f14b92d0d25a25d3b80f524c8852d86631bd02 Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sat, 21 Mar 2026 21:29:48 -0400 Subject: [PATCH 01/29] gentoo updated quickshell ebuild --- ...9-r5.ebuild => illogical-impulse-quickshell-git-r6.ebuild} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename sdata/dist-gentoo/illogical-impulse-quickshell-git/{illogical-impulse-quickshell-git-9999-r5.ebuild => illogical-impulse-quickshell-git-r6.ebuild} (97%) diff --git a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-9999-r5.ebuild b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild similarity index 97% rename from sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-9999-r5.ebuild rename to sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild index f7bc4a155..aa9bdbc69 100644 --- a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-9999-r5.ebuild +++ b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild @@ -9,7 +9,7 @@ DESCRIPTION="Toolkit for building desktop widgets using QtQuick" HOMEPAGE="https://quickshell.org/" EGIT_REPO_URI="https://github.com/quickshell-mirror/quickshell.git" -EGIT_COMMIT="6e17efab83d3a5ad5d6e59bc08d26095c6660502" +EGIT_COMMIT="7511545ee20664e3b8b8d3322c0ffe7567c56f7a" KEYWORDS="~amd64 ~arm64 ~x86" LICENSE="LGPL-3" @@ -22,6 +22,8 @@ RDEPEND=" dev-qt/qtsvg:6 dev-qt/qt5compat:6 + dev-cpp/cpptrace + dev-qt/qtimageformats:6 dev-qt/qtmultimedia:6 dev-qt/qtpositioning:6 From b61ae3abe7aee68ab41a8e7684c80df8b13b2a10 Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sat, 21 Mar 2026 21:30:10 -0400 Subject: [PATCH 02/29] gentoo updated keyword --- sdata/dist-gentoo/keywords | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdata/dist-gentoo/keywords b/sdata/dist-gentoo/keywords index 238200763..0d4eaaf5e 100644 --- a/sdata/dist-gentoo/keywords +++ b/sdata/dist-gentoo/keywords @@ -54,3 +54,5 @@ media-fonts/readex-pro media-fonts/rubik-vf app-misc/songrec dev-cpp/glaze +dev-cpp/cpptrace +dev-libs/libdwarf From 9dcf63b54a5489f118a270322af524ff35377480 Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sat, 21 Mar 2026 21:37:30 -0400 Subject: [PATCH 03/29] disabled breakpad, i3, and i3-ipc by default --- .../illogical-impulse-quickshell-git-r6.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild index aa9bdbc69..372a9ad21 100644 --- a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild +++ b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild @@ -15,7 +15,7 @@ KEYWORDS="~amd64 ~arm64 ~x86" LICENSE="LGPL-3" SLOT="0" # Upstream recommends leaving all build options enabled by default -IUSE="+breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab +i3 +i3-ipc +bluetooth" +IUSE="-breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab -i3 -i3-ipc +bluetooth" RDEPEND=" dev-qt/qtbase:6 From 4caa59dd9e2da6e0d9290094b7866cc6b2f70467 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 16:36:17 -0400 Subject: [PATCH 04/29] Decrease gamma when brightness is requested to go lower beyond 0 --- .../models/hyprland/HyprlandConfigOption.qml | 2 +- .../models/quickToggles/NightLightToggle.qml | 4 +- .../indicators/BrightnessIndicator.qml | 2 +- .../nightLight/NightLightDialog.qml | 4 +- .../quickToggles/classicStyle/NightLight.qml | 4 +- .../nightLight/NightLightControl.qml | 4 +- .../ii/modules/waffle/looks/WIcons.qml | 2 +- .../quickshell/ii/services/Brightness.qml | 12 +++- .../quickshell/ii/services/Hyprsunset.qml | 68 ++++++++++++++----- 9 files changed, 72 insertions(+), 30 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml b/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml index 0422aab02..3219a8a12 100644 --- a/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml +++ b/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml @@ -3,7 +3,7 @@ import QtQml import QtQuick import Quickshell.Io import qs.services -import "../" +import ".." NestableObject { id: root diff --git a/dots/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml b/dots/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml index d53af9740..f71c97ee9 100644 --- a/dots/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml +++ b/dots/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml @@ -12,11 +12,11 @@ QuickToggleModel { name: Translation.tr("Night Light") statusText: (auto ? Translation.tr("Auto, ") : "") + (toggled ? Translation.tr("Active") : Translation.tr("Inactive")) - toggled: Hyprsunset.active + toggled: Hyprsunset.temperatureActive icon: auto ? "night_sight_auto" : "bedtime" mainAction: () => { - Hyprsunset.toggle() + Hyprsunset.toggleTemperature() } hasMenu: true diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/BrightnessIndicator.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/BrightnessIndicator.qml index fbdbd7152..a4381757c 100644 --- a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/BrightnessIndicator.qml +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/BrightnessIndicator.qml @@ -9,7 +9,7 @@ OsdValueIndicator { property var focusedScreen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name) property var brightnessMonitor: Brightness.getMonitorForScreen(focusedScreen) - icon: Hyprsunset.active ? "routine" : "light_mode" + icon: Hyprsunset.temperatureActive ? "routine" : "light_mode" rotateIcon: true scaleIcon: true name: Translation.tr("Brightness") diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml index e6f7509f2..6ad9307cb 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml @@ -44,9 +44,9 @@ WindowDialog { iconSize: Appearance.font.pixelSize.larger buttonIcon: "check" text: Translation.tr("Enable now") - checked: Hyprsunset.active + checked: Hyprsunset.temperatureActive onCheckedChanged: { - Hyprsunset.toggle(checked) + Hyprsunset.toggleTemperature(checked) } } diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NightLight.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NightLight.qml index 8b7e69a5a..7fa6f18ae 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NightLight.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NightLight.qml @@ -6,10 +6,10 @@ import Quickshell.Io QuickToggleButton { id: nightLightButton - toggled: Hyprsunset.active + toggled: Hyprsunset.temperatureActive buttonIcon: Config.options.light.night.automatic ? "night_sight_auto" : "bedtime" onClicked: { - Hyprsunset.toggle() + Hyprsunset.toggleTemperature() } altAction: () => { diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/nightLight/NightLightControl.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/nightLight/NightLightControl.qml index 591e56399..09d00fda9 100644 --- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/nightLight/NightLightControl.qml +++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/nightLight/NightLightControl.qml @@ -87,9 +87,9 @@ Item { name: Translation.tr("Enable now") description: Translation.tr("More comfortable viewing at night") iconName: WIcons.nightLightIcon - checked: Hyprsunset.active + checked: Hyprsunset.temperatureActive onCheckedChanged: { - Hyprsunset.toggle(checked); + Hyprsunset.toggleTemperature(checked); } } diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml index b804aa3d9..ce026da29 100644 --- a/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml +++ b/dots/.config/quickshell/ii/modules/waffle/looks/WIcons.qml @@ -71,7 +71,7 @@ Singleton { property string bluetoothIcon: BluetoothStatus.connected ? "bluetooth-connected" : BluetoothStatus.enabled ? "bluetooth" : "bluetooth-disabled" - property string nightLightIcon: Hyprsunset.active ? "weather-moon" : "weather-moon-off" + property string nightLightIcon: Hyprsunset.temperatureActive ? "weather-moon" : "weather-moon-off" property string notificationsIcon: Notifications.silent ? "alert-snooze" : "alert" diff --git a/dots/.config/quickshell/ii/services/Brightness.qml b/dots/.config/quickshell/ii/services/Brightness.qml index b0c7f303e..939bc37d8 100644 --- a/dots/.config/quickshell/ii/services/Brightness.qml +++ b/dots/.config/quickshell/ii/services/Brightness.qml @@ -28,6 +28,12 @@ Singleton { } function increaseBrightness(): void { + // if gamma is not yet 100, first increase gamma + if (Hyprsunset.gamma !== 100) { + Hyprsunset.setGamma(Hyprsunset.gamma + 5); + return; + } + const focusedName = Hyprland.focusedMonitor.name; const monitor = monitors.find(m => focusedName === m.screen.name); if (monitor) @@ -37,8 +43,12 @@ Singleton { function decreaseBrightness(): void { const focusedName = Hyprland.focusedMonitor.name; const monitor = monitors.find(m => focusedName === m.screen.name); - if (monitor) + if (monitor && monitor.brightness > 0) monitor.setBrightness(monitor.brightness - 0.05); + // if brightness is 0, then decrease gamma + else { + Hyprsunset.setGamma(Hyprsunset.gamma - 5); + } } reloadableId: "brightness" diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml index 8f0e36529..f1c17025e 100644 --- a/dots/.config/quickshell/ii/services/Hyprsunset.qml +++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml @@ -17,9 +17,10 @@ Singleton { property string to: Config.options?.light?.night?.to ?? "06:30" property bool automatic: Config.options?.light?.night?.automatic && (Config?.ready ?? true) property int colorTemperature: Config.options?.light?.night?.colorTemperature ?? 5000 + property int gamma: 100 property bool shouldBeOn property bool firstEvaluation: true - property bool active: false + property bool temperatureActive: false property int fromHour: Number(from.split(":")[0]) property int fromMinute: Number(from.split(":")[1]) @@ -71,24 +72,55 @@ Singleton { if (!root.automatic || root.manualActive !== undefined) return; if (root.shouldBeOn) { - root.enable(); + root.enableTemperature(); } else { - root.disable(); + root.disableTemperature(); } } function load() { } // Dummy to force init - function enable() { - root.active = true; + function enableTemperature() { + root.temperatureActive = true; // console.log("[Hyprsunset] Enabling"); - Quickshell.execDetached(["bash", "-c", `pidof hyprsunset || hyprsunset --temperature ${root.colorTemperature}`]); + Quickshell.execDetached(["bash", "-c", ` + if pidof hyprsunset > /dev/null; then + hyprctl hyprsunset temperature ${root.colorTemperature}; + else + hyprsunset --temperature ${root.colorTemperature}; + fi + `]); } - function disable() { - root.active = false; + function disableTemperature() { + root.temperatureActive = false; // console.log("[Hyprsunset] Disabling"); - Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]); + if (root.gamma === 100) { + Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]); + } else { + Quickshell.execDetached(["hyprctl", "hyprsunset", "identity"]); + } + } + + function setGamma(gamma) { + root.gamma = Math.max(0, Math.min(100, gamma)); + + if (root.gamma !== 100) { + // console.log("[Hyprsunset] Enabling"); + Quickshell.execDetached(["bash", "-c", ` + if pidof hyprsunset > /dev/null; then + hyprctl hyprsunset gamma ${root.gamma}; + else + hyprsunset --gamma ${root.gamma}; + fi + `]); + } else { + if (!root.temperatureActive) { + Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]); + } else { + Quickshell.execDetached(["hyprctl", "hyprsunset", "gamma", "100"]); + } + } } function fetchState() { @@ -104,26 +136,26 @@ Singleton { onStreamFinished: { const output = stateCollector.text.trim(); if (output.length == 0 || output.startsWith("Couldn't")) - root.active = false; + root.temperatureActive = false; else - root.active = (output != "6500"); // 6500 is the default when off - // console.log("[Hyprsunset] Fetched state:", output, "->", root.active); + root.temperatureActive = (output != "6500"); // 6500 is the default when off + // console.log("[Hyprsunset] Fetched state:", output, "->", root.temperatureActive); } } } - function toggle(active = undefined) { + function toggleTemperature(active = undefined) { if (root.manualActive === undefined) { - root.manualActive = root.active; + root.manualActive = root.temperatureActive; root.manualActiveHour = root.clockHour; root.manualActiveMinute = root.clockMinute; } root.manualActive = active !== undefined ? active : !root.manualActive; if (root.manualActive) { - root.enable(); + root.enableTemperature(); } else { - root.disable(); + root.disableTemperature(); } } @@ -131,9 +163,9 @@ Singleton { Connections { target: Config.options.light.night function onColorTemperatureChanged() { - if (!root.active) return; + if (!root.temperatureActive) return; Hyprland.dispatch(`hyprctl hyprsunset temperature ${Config.options.light.night.colorTemperature}`); Quickshell.execDetached(["hyprctl", "hyprsunset", "temperature", `${Config.options.light.night.colorTemperature}`]); } } -} +} \ No newline at end of file From 9d065f2c8efab525b3c8919e5d8dafb134c50a8f Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 16:37:25 -0400 Subject: [PATCH 05/29] Undo temp fix --- .../ii/modules/common/models/hyprland/HyprlandConfigOption.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml b/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml index 3219a8a12..0422aab02 100644 --- a/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml +++ b/dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml @@ -3,7 +3,7 @@ import QtQml import QtQuick import Quickshell.Io import qs.services -import ".." +import "../" NestableObject { id: root From 973b83bc155943b1c2b962a8d5c139f6faf51b01 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 16:52:35 -0400 Subject: [PATCH 06/29] Add gamma indicator --- .../modules/ii/onScreenDisplay/OnScreenDisplay.qml | 13 +++++++++++++ .../onScreenDisplay/indicators/GammaIndicator.qml | 14 ++++++++++++++ dots/.config/quickshell/ii/services/Hyprsunset.qml | 4 ++++ dots/.config/quickshell/ii/translations/en_US.json | 1 + 4 files changed, 32 insertions(+) create mode 100644 dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OnScreenDisplay.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OnScreenDisplay.qml index 21b9c4320..05bce49ae 100644 --- a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OnScreenDisplay.qml +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OnScreenDisplay.qml @@ -25,6 +25,10 @@ Scope { id: "brightness", sourceUrl: "indicators/BrightnessIndicator.qml" }, + { + id: "gamma", + sourceUrl: "indicators/GammaIndicator.qml" + }, ] function triggerOsd() { @@ -52,6 +56,15 @@ Scope { } } + Connections { + target: Hyprsunset + function onGammaChangeAttempt() { + root.protectionMessage = ""; + root.currentIndicator = "gamma"; + root.triggerOsd(); + } + } + Connections { // Listen to volume changes target: Audio.sink?.audio ?? null diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml new file mode 100644 index 000000000..7dac9e84f --- /dev/null +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml @@ -0,0 +1,14 @@ +import qs.services +import QtQuick +import Quickshell +import Quickshell.Hyprland +import qs.modules.ii.onScreenDisplay + +OsdValueIndicator { + id: rotateIcon + + icon: "wb_twilight" + scaleIcon: true + name: Translation.tr("Gamma") + value: Hyprsunset.gamma / 100 ?? 0.5 +} diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml index f1c17025e..6af2d6da5 100644 --- a/dots/.config/quickshell/ii/services/Hyprsunset.qml +++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml @@ -13,6 +13,8 @@ import Quickshell.Hyprland */ Singleton { id: root + signal gammaChangeAttempt() + property string from: Config.options?.light?.night?.from ?? "19:00" property string to: Config.options?.light?.night?.to ?? "06:30" property bool automatic: Config.options?.light?.night?.automatic && (Config?.ready ?? true) @@ -105,6 +107,8 @@ Singleton { function setGamma(gamma) { root.gamma = Math.max(0, Math.min(100, gamma)); + root.gammaChangeAttempt(); + if (root.gamma !== 100) { // console.log("[Hyprsunset] Enabling"); Quickshell.execDetached(["bash", "-c", ` diff --git a/dots/.config/quickshell/ii/translations/en_US.json b/dots/.config/quickshell/ii/translations/en_US.json index 82cae2c08..01569de04 100644 --- a/dots/.config/quickshell/ii/translations/en_US.json +++ b/dots/.config/quickshell/ii/translations/en_US.json @@ -81,6 +81,7 @@ "Unknown function call: %1": "Unknown function call: %1", "Online | %1's model | Delivers fast, responsive and well-formatted answers. Disadvantages: not very eager to do stuff; might make up unknown function calls": "Online | %1's model | Delivers fast, responsive and well-formatted answers. Disadvantages: not very eager to do stuff; might make up unknown function calls", "Volume": "Volume", + "Gamma": "Gamma", "Medium": "Medium", "Copy code": "Copy code", "Exceeded max allowed": "Exceeded max allowed", From a28ed6023ebbb778752048d0180ec4c33ad1471a Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 17:44:30 -0400 Subject: [PATCH 07/29] Update quickslider to also decrease gamma when brightness is at 0 --- .../modules/ii/sidebarRight/QuickSliders.qml | 45 ++++++++++++++++--- .../quickshell/ii/services/Hyprsunset.qml | 37 ++++----------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml index 26925001e..7983e6098 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml @@ -40,10 +40,24 @@ Rectangle { visible: active active: Config.options.sidebar.quickSliders.showBrightness sourceComponent: QuickSlider { - materialSymbol: "brightness_6" - value: root.brightnessMonitor.brightness + materialSymbol: "light_mode" + secondaryMaterialSymbol: "wb_twilight" + value: Hyprsunset.gamma === 100? 0.3 + root.brightnessMonitor.brightness * 0.7 : Hyprsunset.gamma / 100 * 0.3 + tooltipContent: Hyprsunset.gamma === 100 ? `${Math.round(root.brightnessMonitor.brightness * 100)}%` : `${Hyprsunset.gamma}%` onMoved: { - root.brightnessMonitor.setBrightness(value) + if (value >= 0.3) { + // 0.3 - 1.0 brightness + root.brightnessMonitor.setBrightness((value - 0.3) / 0.7); + if (Hyprsunset.gamma !== 100) { + Hyprsunset.setGamma(100); + } + } else { + // 0 - 0.3 gamma + if (root.brightnessMonitor.brightness !== 0) { + root.brightnessMonitor.setBrightness(0); + } + Hyprsunset.setGamma(value * 100 / 0.3); + } } } } @@ -84,6 +98,7 @@ Rectangle { component QuickSlider: StyledSlider { id: quickSlider required property string materialSymbol + property string secondaryMaterialSymbol configuration: StyledSlider.Configuration.M stopIndicatorValues: [] @@ -91,9 +106,9 @@ Rectangle { id: icon property bool nearFull: quickSlider.value >= 0.9 anchors { - verticalCenter: parent.verticalCenter - right: nearFull ? quickSlider.handle.right : parent.right - rightMargin: quickSlider.nearFull ? 14 : 8 + verticalCenter: quickSlider.verticalCenter + right: nearFull ? quickSlider.handle.right : quickSlider.right + rightMargin: nearFull ? 14 : 8 } iconSize: 20 color: nearFull ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer @@ -105,7 +120,25 @@ Rectangle { Behavior on anchors.rightMargin { animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) } + } + MaterialSymbol { + id: secondaryIcon + visible: secondaryMaterialSymbol.length > 0 + property real iconLocation: 0.3 + property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > -0.03 + anchors { + verticalCenter: quickSlider.verticalCenter + right: nearIcon ? quickSlider.handle.right : quickSlider.right + rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.width + } + iconSize: 20 + color: quickSlider.value >= iconLocation - 0.1 ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer + text: secondaryMaterialSymbol + + Behavior on color { + animation: Appearance.animation.elementMoveFast.colorAnimation.createObject(this) + } } } } diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml index 6af2d6da5..5749ee251 100644 --- a/dots/.config/quickshell/ii/services/Hyprsunset.qml +++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml @@ -80,28 +80,21 @@ Singleton { } } - function load() { } // Dummy to force init + function load() { + Quickshell.execDetached(["bash", "-c", `pidof hyprsunset || hyprsunset`]); + } function enableTemperature() { root.temperatureActive = true; // console.log("[Hyprsunset] Enabling"); - Quickshell.execDetached(["bash", "-c", ` - if pidof hyprsunset > /dev/null; then - hyprctl hyprsunset temperature ${root.colorTemperature}; - else - hyprsunset --temperature ${root.colorTemperature}; - fi - `]); + root.load(); + Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset temperature ${root.colorTemperature}`]); } function disableTemperature() { root.temperatureActive = false; // console.log("[Hyprsunset] Disabling"); - if (root.gamma === 100) { - Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]); - } else { - Quickshell.execDetached(["hyprctl", "hyprsunset", "identity"]); - } + Quickshell.execDetached(["hyprctl", "hyprsunset", "identity"]); } function setGamma(gamma) { @@ -109,22 +102,8 @@ Singleton { root.gammaChangeAttempt(); - if (root.gamma !== 100) { - // console.log("[Hyprsunset] Enabling"); - Quickshell.execDetached(["bash", "-c", ` - if pidof hyprsunset > /dev/null; then - hyprctl hyprsunset gamma ${root.gamma}; - else - hyprsunset --gamma ${root.gamma}; - fi - `]); - } else { - if (!root.temperatureActive) { - Quickshell.execDetached(["bash", "-c", `pkill hyprsunset`]); - } else { - Quickshell.execDetached(["hyprctl", "hyprsunset", "gamma", "100"]); - } - } + root.load(); + Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset gamma ${root.gamma}`]); } function fetchState() { From fc7524a30f88ad6d468342a01a23bd28946ab418 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:02:00 -0400 Subject: [PATCH 08/29] Add gamma slider to night light dialog --- .../modules/ii/sidebarRight/QuickSliders.qml | 1 + .../nightLight/NightLightDialog.qml | 34 ++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml index 7983e6098..6c619abb7 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml @@ -42,6 +42,7 @@ Rectangle { sourceComponent: QuickSlider { materialSymbol: "light_mode" secondaryMaterialSymbol: "wb_twilight" + stopIndicatorValues: Hyprsunset.gamma !== 100 && root.brightnessMonitor.brightness !== 0 ? [0.3 + root.brightnessMonitor.brightness * 0.7] : [] value: Hyprsunset.gamma === 100? 0.3 + root.brightnessMonitor.brightness * 0.7 : Hyprsunset.gamma / 100 * 0.3 tooltipContent: Hyprsunset.gamma === 100 ? `${Math.round(root.brightnessMonitor.brightness * 100)}%` : `${Hyprsunset.gamma}%` onMoved: { diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml index 6ad9307cb..4f70983d9 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml @@ -15,7 +15,7 @@ WindowDialog { id: root property var screen: root.QsWindow.window?.screen property var brightnessMonitor: Brightness.getMonitorForScreen(screen) - backgroundHeight: 600 + backgroundHeight: 700 WindowDialogTitle { text: Translation.tr("Eye protection") @@ -146,6 +146,33 @@ WindowDialog { id: brightnessColumn Layout.topMargin: -16 Layout.fillWidth: true + + WindowDialogSlider { + anchors { + left: parent.left + right: parent.right + leftMargin: 4 + rightMargin: 4 + } + value: root.brightnessMonitor.brightness + onMoved: root.brightnessMonitor.setBrightness(value) + } + } + + WindowDialogSectionHeader { + text: Translation.tr("Gamma") + } + + WindowDialogSeparator { + Layout.topMargin: -22 + Layout.leftMargin: 0 + Layout.rightMargin: 0 + } + + Column { + id: gammaColumn + Layout.topMargin: -16 + Layout.fillWidth: true Layout.fillHeight: true WindowDialogSlider { @@ -155,9 +182,8 @@ WindowDialog { leftMargin: 4 rightMargin: 4 } - // text: Translation.tr("Brightness") - value: root.brightnessMonitor.brightness - onMoved: root.brightnessMonitor.setBrightness(value) + value: Hyprsunset.gamma / 100 + onMoved: Hyprsunset.setGamma(value * 100) } } From aff4705d6a62c044d6ad3f5d9adbf827e56d286b Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sun, 22 Mar 2026 20:20:08 -0400 Subject: [PATCH 09/29] added version number, updated deps, added := slots --- ...al-impulse-quickshell-git-0.1.0-r6.ebuild} | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) rename sdata/dist-gentoo/illogical-impulse-quickshell-git/{illogical-impulse-quickshell-git-r6.ebuild => illogical-impulse-quickshell-git-0.1.0-r6.ebuild} (75%) diff --git a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-0.1.0-r6.ebuild similarity index 75% rename from sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild rename to sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-0.1.0-r6.ebuild index 372a9ad21..5d8358638 100644 --- a/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-r6.ebuild +++ b/sdata/dist-gentoo/illogical-impulse-quickshell-git/illogical-impulse-quickshell-git-0.1.0-r6.ebuild @@ -14,59 +14,57 @@ EGIT_COMMIT="7511545ee20664e3b8b8d3322c0ffe7567c56f7a" KEYWORDS="~amd64 ~arm64 ~x86" LICENSE="LGPL-3" SLOT="0" -# Upstream recommends leaving all build options enabled by default + IUSE="-breakpad +jemalloc +sockets +wayland +layer-shell +session-lock +toplevel-management +screencopy +X +pipewire +tray +mpris +pam +hyprland +hyprland-global-shortcuts +hyprland-focus-grab -i3 -i3-ipc +bluetooth" RDEPEND=" - dev-qt/qtbase:6 - dev-qt/qtsvg:6 - dev-qt/qt5compat:6 - - dev-cpp/cpptrace - - dev-qt/qtimageformats:6 - dev-qt/qtmultimedia:6 - dev-qt/qtpositioning:6 - dev-qt/qtquicktimeline:6 - dev-qt/qtsensors:6 - dev-qt/qtsvg:6 - dev-qt/qttools:6 - dev-qt/qttranslations:6 - dev-qt/qtvirtualkeyboard:6 - dev-qt/qtwayland:6 + dev-qt/qtbase:6= + dev-qt/qtdeclarative:6= + dev-qt/qt5compat:6= + kde-frameworks/kimageformats:6=[avif] + dev-cpp/cpptrace[unwind] + dev-qt/qtimageformats:6= + dev-qt/qtmultimedia:6= + dev-qt/qtpositioning:6= + dev-qt/qtquicktimeline:6= + dev-qt/qtsensors:6= + dev-qt/qtsvg:6= + dev-qt/qttools:6= + dev-qt/qttranslations:6= + dev-qt/qtvirtualkeyboard:6= + dev-qt/qtwayland:6= kde-apps/kdialog - kde-frameworks/syntax-highlighting:6 - kde-frameworks/kirigami + kde-frameworks/syntax-highlighting:6= + kde-frameworks/kirigami:6= - jemalloc? ( dev-libs/jemalloc ) + jemalloc? ( dev-libs/jemalloc:= ) wayland? ( dev-libs/wayland - dev-qt/qtwayland:6 + dev-qt/qtwayland:6= ) screencopy? ( x11-libs/libdrm media-libs/mesa ) - X? ( x11-libs/libxcb ) - pipewire? ( media-video/pipewire ) - mpris? ( dev-qt/qtdbus ) + X? ( x11-libs/libxcb:= ) + pipewire? ( media-video/pipewire:= ) + mpris? ( dev-qt/qtdbus:= ) pam? ( sys-libs/pam ) bluetooth? ( net-wireless/bluez ) " DEPEND="${RDEPEND}" BDEPEND=" - || ( >=sys-devel/gcc-14:* >=llvm-core/clang-17:* ) + dev-cpp/cli11 + dev-build/cmake + dev-vcs/git + dev-build/ninja + dev-qt/qtshadertools dev-util/spirv-tools - dev-qt/qtshadertools:6 wayland? ( dev-util/wayland-scanner dev-libs/wayland-protocols ) - dev-cpp/cli11 - dev-build/ninja - dev-build/cmake - dev-vcs/git virtual/pkgconfig breakpad? ( dev-util/breakpad ) dev-util/vulkan-headers @@ -76,7 +74,7 @@ src_configure(){ mycmakeargs=( -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDISTRIBUTOR="Gentoo Illogical-Impulses" - -DINSTALL_QML_PREFIX="lib64/qt6/qml" + -DINSTALL_QML_PREFIX="$(get_libdir)/qt6/qml" -DCRASH_REPORTER=$(usex breakpad ON OFF) -DUSE_JEMALLOC=$(usex jemalloc ON OFF) -DSOCKETS=$(usex sockets ON OFF) From 795f4042b0b63a4a26819b43ee1783e0e3466055 Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sun, 22 Mar 2026 20:33:08 -0400 Subject: [PATCH 10/29] updated use flags --- sdata/dist-gentoo/useflags | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sdata/dist-gentoo/useflags b/sdata/dist-gentoo/useflags index e94832d36..8d44d5f59 100644 --- a/sdata/dist-gentoo/useflags +++ b/sdata/dist-gentoo/useflags @@ -111,7 +111,9 @@ sys-power/upower introspection gui-apps/fuzzel png svg dev-libs/glib dbus elf introspection mime xattr # ngl idk about nm-connection-editor. Works fine without -gui-apps/quickshell -X -i3 -i3-ipc breakpad bluetooth hyprland hyprland-focus-grab hyprland-global-shortcuts jemalloc layer-shell mpris pam pipewire screencopy session-lock sockets toplevel-management tray wayland #app-i18n/translate-shell (nothing needed) #gui-apps/wlogout (no use flags) media-gfx/imagemagick xml + +################### WIDGETS ################### +dev-cpp/cpptrace unwind From 41b6c190d21d3090be200fd7671c1a43f8fe9505 Mon Sep 17 00:00:00 2001 From: jwihardi Date: Sun, 22 Mar 2026 20:50:55 -0400 Subject: [PATCH 11/29] moved depclean to the end --- sdata/dist-gentoo/install-deps.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdata/dist-gentoo/install-deps.sh b/sdata/dist-gentoo/install-deps.sh index f763fdceb..1cbbdb966 100644 --- a/sdata/dist-gentoo/install-deps.sh +++ b/sdata/dist-gentoo/install-deps.sh @@ -52,7 +52,6 @@ v sudo sh -c 'cat ./sdata/dist-gentoo/additional-useflags >> /etc/portage/packag v sudo emerge --sync v sudo emerge --quiet --newuse --update --deep @world v sudo emerge --quiet @smart-live-rebuild -v sudo emerge --depclean # Remove old ebuilds (if this isn't done the wildcard will fuck upon a version change) x sudo rm -fr ${ebuild_dir}/app-misc/illogical-impulse-* @@ -66,3 +65,5 @@ for i in "${metapkgs[@]}"; do v sudo ebuild ${ebuild_dir}/app-misc/${i}/*.ebuild digest v sudo emerge --update --quiet app-misc/${i} done + +v sudo emerge --depclean From 065b34ccded029c38200a0a7bee987fed69f1437 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 23:05:09 -0400 Subject: [PATCH 12/29] Add divider to brightness quick slider --- .../modules/common/widgets/StyledSlider.qml | 134 +++++++++++------- .../modules/ii/sidebarRight/QuickSliders.qml | 5 +- 2 files changed, 85 insertions(+), 54 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index 971a1eb10..4d373f928 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -17,6 +17,7 @@ Slider { id: root property list stopIndicatorValues: [1] + property list dividerValues: [] enum Configuration { Wavy = 4, XS = 12, @@ -45,6 +46,7 @@ Slider { property real handleHeight: (configuration === StyledSlider.Configuration.Wavy) ? 24 : Math.max(33, trackWidth + 9) property real handleWidth: root.pressed ? handlePressedWidth : handleDefaultWidth property real handleMargins: 4 + property real dividerMargins: 2 property real trackDotSize: 3 property bool usePercentTooltip: true property string tooltipContent: usePercentTooltip ? `${Math.round(((value - from) / (to - from)) * 100)}%` : `${Math.round(value)}` @@ -94,71 +96,99 @@ Slider { } background: Item { + id: background anchors.verticalCenter: parent.verticalCenter - width: parent.width + anchors.horizontalCenter: parent.horizontalCenter + width: root.effectiveDraggingWidth implicitHeight: trackWidth - + property var normalized: root.dividerValues.map(v => (v - root.from) / (root.to - root.from)) + property var leftValues: [0, ...normalized.filter(v => v < root.visualPosition), root.visualPosition] + property var rightValues: [root.visualPosition, ...normalized.filter(v => v > root.visualPosition), 1] + property var leftWidths: leftValues.map((v, i, a) => a[i + 1] - v).slice(0, -1) + property var rightWidths: rightValues.map((v, i, a) => a[i + 1] - v).slice(0, -1) + // Fill left - Loader { - anchors { - verticalCenter: parent.verticalCenter - left: parent.left - } - width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins) - height: root.trackWidth - active: !root.wavy - sourceComponent: Rectangle { - color: root.highlightColor - topLeftRadius: root.trackRadius - bottomLeftRadius: root.trackRadius - topRightRadius: root.unsharpenRadius - bottomRightRadius: root.unsharpenRadius + Repeater { + model: background.leftWidths.length + + Loader { + required property real index + anchors { + verticalCenter: background.verticalCenter + } + property real leftMargin: index > 0 ? root.dividerMargins : 0 + property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins + x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + height: root.trackWidth + active: !root.wavy + sourceComponent: Rectangle { + color: root.highlightColor + topLeftRadius: index === 0 ? root.trackRadius : root.unsharpenRadius + bottomLeftRadius: index === 0 ? root.trackRadius : root.unsharpenRadius + topRightRadius: root.unsharpenRadius + bottomRightRadius: root.unsharpenRadius + } } } - Loader { - anchors { - verticalCenter: parent.verticalCenter - left: parent.left - } - width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins) - height: root.height - active: root.wavy - sourceComponent: WavyLine { - id: wavyFill - frequency: root.waveFrequency - fullLength: root.width - color: root.highlightColor - amplitudeMultiplier: root.wavy ? 0.5 : 0 - width: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins) - height: root.trackWidth - Connections { - target: root - function onValueChanged() { wavyFill.requestPaint(); } - function onHighlightColorChanged() { wavyFill.requestPaint(); } + Repeater { + model: background.leftWidths.length + + Loader { + required property int index + anchors { + verticalCenter: background.verticalCenter } - FrameAnimation { - running: root.animateWave - onTriggered: { - wavyFill.requestPaint() + property real leftMargin: index > 0 ? root.dividerMargins : 0 + property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins + x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + height: root.height + active: root.wavy + sourceComponent: WavyLine { + id: wavyFill + frequency: root.waveFrequency + fullLength: root.width + color: root.highlightColor + amplitudeMultiplier: root.wavy ? 0.5 : 0 + width: parent.width + height: root.trackWidth + Connections { + target: root + function onValueChanged() { wavyFill.requestPaint(); } + function onHighlightColorChanged() { wavyFill.requestPaint(); } + } + FrameAnimation { + running: root.animateWave + onTriggered: { + wavyFill.requestPaint() + } } } - } + } } // Fill right - Rectangle { - anchors { - verticalCenter: parent.verticalCenter - right: parent.right + Repeater { + model: background.rightWidths.length + + Rectangle { + required property int index + anchors { + verticalCenter: background.verticalCenter + } + property real leftMargin: index > 0 ? root.dividerMargins : root.handleMargins + property real rightMargin: index < background.rightWidths.length - 1 ? root.dividerMargins : 0 + x: background.rightValues[index] * root.effectiveDraggingWidth + leftMargin + (index === 0 ? handleWidth / 2 : 0) + width: background.rightWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === 0 ? handleWidth / 2 : 0) + height: trackWidth + color: root.trackColor + topRightRadius: index === background.rightWidths.length - 1 ? root.trackRadius : root.unsharpenRadius + bottomRightRadius: index === background.rightWidths.length - 1 ? root.trackRadius : root.unsharpenRadius + topLeftRadius: root.unsharpenRadius + bottomLeftRadius: root.unsharpenRadius } - width: root.handleMargins + ((1 - root.visualPosition) * root.effectiveDraggingWidth) - (root.handleWidth / 2 + root.handleMargins) - height: trackWidth - color: root.trackColor - topRightRadius: root.trackRadius - bottomRightRadius: root.trackRadius - topLeftRadius: root.unsharpenRadius - bottomLeftRadius: root.unsharpenRadius } // Stop indicators diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml index 6c619abb7..11651824b 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml @@ -102,6 +102,7 @@ Rectangle { property string secondaryMaterialSymbol configuration: StyledSlider.Configuration.M stopIndicatorValues: [] + dividerValues: secondaryMaterialSymbol.length > 0 ? [secondaryIcon.iconLocation] : [] MaterialSymbol { id: icon @@ -127,11 +128,11 @@ Rectangle { id: secondaryIcon visible: secondaryMaterialSymbol.length > 0 property real iconLocation: 0.3 - property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > -0.03 + property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > (quickSlider.rightPadding - 7) / quickSlider.effectiveDraggingWidth anchors { verticalCenter: quickSlider.verticalCenter right: nearIcon ? quickSlider.handle.right : quickSlider.right - rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.width + rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.width + 7 } iconSize: 20 color: quickSlider.value >= iconLocation - 0.1 ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer From 3e0f480ce0748c1ec84e31ca2020510fb7ebc0d9 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 23:14:26 -0400 Subject: [PATCH 13/29] Add padding logic to background --- .../ii/modules/common/widgets/StyledSlider.qml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index 4d373f928..7df9701f4 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -99,7 +99,7 @@ Slider { id: background anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - width: root.effectiveDraggingWidth + width: root.width implicitHeight: trackWidth property var normalized: root.dividerValues.map(v => (v - root.from) / (root.to - root.from)) property var leftValues: [0, ...normalized.filter(v => v < root.visualPosition), root.visualPosition] @@ -118,8 +118,8 @@ Slider { } property real leftMargin: index > 0 ? root.dividerMargins : 0 property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins - x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin - width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0) + width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + (index === 0 ? leftPadding : 0) height: root.trackWidth active: !root.wavy sourceComponent: Rectangle { @@ -142,8 +142,8 @@ Slider { } property real leftMargin: index > 0 ? root.dividerMargins : 0 property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins - x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin - width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0) + width: background.leftWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === background.leftWidths.length - 1 ? handleWidth / 2 : 0) + (index === 0 ? leftPadding : 0) height: root.height active: root.wavy sourceComponent: WavyLine { @@ -180,8 +180,8 @@ Slider { } property real leftMargin: index > 0 ? root.dividerMargins : root.handleMargins property real rightMargin: index < background.rightWidths.length - 1 ? root.dividerMargins : 0 - x: background.rightValues[index] * root.effectiveDraggingWidth + leftMargin + (index === 0 ? handleWidth / 2 : 0) - width: background.rightWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === 0 ? handleWidth / 2 : 0) + x: background.rightValues[index] * root.effectiveDraggingWidth + leftMargin + (index === 0 ? handleWidth / 2 : 0) + leftPadding + width: background.rightWidths[index] * root.effectiveDraggingWidth - leftMargin - rightMargin - (index === 0 ? handleWidth / 2 : 0) + (index === background.rightWidths.length - 1 ? rightPadding : 0) height: trackWidth color: root.trackColor topRightRadius: index === background.rightWidths.length - 1 ? root.trackRadius : root.unsharpenRadius @@ -207,7 +207,7 @@ Slider { implicitWidth: root.handleWidth implicitHeight: root.handleHeight - x: root.handleMargins + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2) + x: leftPadding + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2) anchors.verticalCenter: parent.verticalCenter radius: Appearance.rounding.full color: root.handleColor From e06a3be7264c817b4e1acf1e661d83aed80c8f4d Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Sun, 22 Mar 2026 23:38:21 -0400 Subject: [PATCH 14/29] Fix small visual bug when slider goes over divider --- .../quickshell/ii/modules/common/widgets/StyledSlider.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index 7df9701f4..b17afd86b 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -102,8 +102,9 @@ Slider { width: root.width implicitHeight: trackWidth property var normalized: root.dividerValues.map(v => (v - root.from) / (root.to - root.from)) - property var leftValues: [0, ...normalized.filter(v => v < root.visualPosition), root.visualPosition] - property var rightValues: [root.visualPosition, ...normalized.filter(v => v > root.visualPosition), 1] + property var filtered: normalized.filter(v => Math.abs(v - root.visualPosition) * effectiveDraggingWidth > handleMargins + handleWidth / 2 - dividerMargins) + property var leftValues: [0, ...filtered.filter(v => v < root.visualPosition), root.visualPosition] + property var rightValues: [root.visualPosition, ...filtered.filter(v => v > root.visualPosition), 1] property var leftWidths: leftValues.map((v, i, a) => a[i + 1] - v).slice(0, -1) property var rightWidths: rightValues.map((v, i, a) => a[i + 1] - v).slice(0, -1) From f974dea8e5c79db09de24b19af4690a4a12db57c Mon Sep 17 00:00:00 2001 From: jwihardi Date: Mon, 23 Mar 2026 17:58:56 -0400 Subject: [PATCH 15/29] fixed comment --- sdata/dist-gentoo/useflags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdata/dist-gentoo/useflags b/sdata/dist-gentoo/useflags index 8d44d5f59..c3d979e6d 100644 --- a/sdata/dist-gentoo/useflags +++ b/sdata/dist-gentoo/useflags @@ -115,5 +115,5 @@ dev-libs/glib dbus elf introspection mime xattr #gui-apps/wlogout (no use flags) media-gfx/imagemagick xml -################### WIDGETS ################### +################### OTHER ################### dev-cpp/cpptrace unwind From deadf6cc4f51079c03fc9ed996bb3ecfe55deafe Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Mon, 23 Mar 2026 21:54:19 -0400 Subject: [PATCH 16/29] Fix math for quickslider icon changing sides of handle --- .../quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml index 11651824b..d7e0a0b57 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml @@ -128,11 +128,11 @@ Rectangle { id: secondaryIcon visible: secondaryMaterialSymbol.length > 0 property real iconLocation: 0.3 - property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > (quickSlider.rightPadding - 7) / quickSlider.effectiveDraggingWidth + property bool nearIcon: iconLocation - quickSlider.value <= 0.1 && iconLocation - quickSlider.value > (quickSlider.handleWidth + 8 - 14) / quickSlider.effectiveDraggingWidth anchors { verticalCenter: quickSlider.verticalCenter right: nearIcon ? quickSlider.handle.right : quickSlider.right - rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.width + 7 + rightMargin: nearIcon ? 14 : (1 - iconLocation) * quickSlider.effectiveDraggingWidth + quickSlider.rightPadding + 8 } iconSize: 20 color: quickSlider.value >= iconLocation - 0.1 ? Appearance.colors.colOnPrimary : Appearance.colors.colOnSecondaryContainer From 78c6e3c16f88f9bb77d25313f0174850a2aac15e Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Mon, 23 Mar 2026 22:15:25 -0400 Subject: [PATCH 17/29] Fix hyprsunset config not applying on launch --- .../quickshell/ii/services/Hyprsunset.qml | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml index 5749ee251..c9fac1a6d 100644 --- a/dots/.config/quickshell/ii/services/Hyprsunset.qml +++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml @@ -80,14 +80,30 @@ Singleton { } } - function load() { + function startHyprsunset() { Quickshell.execDetached(["bash", "-c", `pidof hyprsunset || hyprsunset`]); } + function load() { + root.startHyprsunset(); + updateHyprsunset.restart(); + } + + Timer { + id: updateHyprsunset + interval: 100 + repeat: false + onTriggered: { + root.ensureState(); + root.setGamma(root.gamma); + } + } + function enableTemperature() { root.temperatureActive = true; + // console.log("[Hyprsunset] Enabling"); - root.load(); + root.startHyprsunset(); Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset temperature ${root.colorTemperature}`]); } @@ -102,7 +118,7 @@ Singleton { root.gammaChangeAttempt(); - root.load(); + root.startHyprsunset(); Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset gamma ${root.gamma}`]); } From abea376e598a76ed1cf04e603e6d05bb1947ab9b Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:47:56 +0100 Subject: [PATCH 18/29] reload kitty after theming --- dots/.config/quickshell/ii/scripts/colors/applycolor.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dots/.config/quickshell/ii/scripts/colors/applycolor.sh b/dots/.config/quickshell/ii/scripts/colors/applycolor.sh index fd8651c73..2aab8dfce 100755 --- a/dots/.config/quickshell/ii/scripts/colors/applycolor.sh +++ b/dots/.config/quickshell/ii/scripts/colors/applycolor.sh @@ -40,6 +40,9 @@ apply_kitty() { for i in "${!colorlist[@]}"; do sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$STATE_DIR"/user/generated/terminal/kitty-theme.conf done + + # Reload + kill -SIGUSR1 $(pidof kitty) } apply_anyterm() { From 774ce228a03934f066683c5c1ccb57c5b0f40b56 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:50:53 +0100 Subject: [PATCH 19/29] fish: update prompt; don't be fancy in tty --- dots/.config/fish/config.fish | 29 +++++++------- .../scripts/colors/terminal/kitty-theme.conf | 26 ++++++++++++- dots/.config/starship.toml | 39 ++++++++++--------- 3 files changed, 61 insertions(+), 33 deletions(-) diff --git a/dots/.config/fish/config.fish b/dots/.config/fish/config.fish index 0d26fe1dc..c565cef0a 100755 --- a/dots/.config/fish/config.fish +++ b/dots/.config/fish/config.fish @@ -1,28 +1,31 @@ -function fish_prompt -d "Write out the prompt" - # This shows up as USER@HOST /home/user/ >, with the directory colored - # $USER and $hostname are set by fish, so you can just use them - # instead of using `whoami` and `hostname` - printf '%s@%s %s%s%s > ' $USER $hostname \ - (set_color $fish_color_cwd) (prompt_pwd) (set_color normal) -end - -if status is-interactive # Commands to run in interactive sessions can go here - +# Commands to run in interactive sessions can go here +if status is-interactive # No greeting set fish_greeting # Use starship - starship init fish | source + function starship_transient_prompt_func + starship module character + end + if test "$TERM" != "linux" + starship init fish | source + enable_transience + end + + # Colors if test -f ~/.local/state/quickshell/user/generated/terminal/sequences.txt cat ~/.local/state/quickshell/user/generated/terminal/sequences.txt end # Aliases - alias clear "printf '\033[2J\033[3J\033[1;1H'" # fix: kitty doesn't clear properly + # kitty doesn't clear properly so we need to do this weird printing + alias clear "printf '\033[2J\033[3J\033[1;1H'" alias celar "printf '\033[2J\033[3J\033[1;1H'" alias claer "printf '\033[2J\033[3J\033[1;1H'" - alias ls 'eza --icons' alias pamcan pacman alias q 'qs -c ii' + if test "$TERM" != "linux" + alias ls 'eza --icons' + end end diff --git a/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf b/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf index 2017b50f6..fdebeab3a 100644 --- a/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf +++ b/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf @@ -23,5 +23,27 @@ cursor #$term7 # foreground #$term7 # -selection_background #$term7 # -selection_foreground #$term0 # +selection_background #$onSecondaryContainer # +selection_foreground #$secondaryContainer # + +# Override obscure colors for starship prompt (these are greys at the end) +color255 #$primary # +color254 #$primaryContainer # +color253 #$secondary # +color252 #$secondaryContainer # +color251 #$tertiary # +color250 #$tertiaryContainer # +color249 #$error # +color248 #$errorContainer # + +color232 #$onPrimary # +color233 #$onPrimaryContainer # +color234 #$onSecondary # +color235 #$onSecondaryContainer # +color236 #$onTertiary # +color237 #$onTertiaryContainer # +color238 #$onError # +color239 #$onErrorContainer # + +color244 #$outline # +color245 #$outlineVariant # diff --git a/dots/.config/starship.toml b/dots/.config/starship.toml index 2e3f7db96..376b46630 100644 --- a/dots/.config/starship.toml +++ b/dots/.config/starship.toml @@ -7,28 +7,31 @@ add_newline = false # Cool stuff 󰜥    # format = """ -# $cmd_duration$username$hostname $directory $git_branch -# $character -# """ +# $directory $fill $git_branch $cmd_duration +# $character""" format = """ -$cmd_duration 󰜥 $directory $git_branch -$character""" +$cmd_duration $directory$git_branch + $character""" + +[fill] +symbol = '-' +style = 'fg:245' # Replace the "❯" symbol in the prompt with "➜" [character] # The name of the module we are configuring is "character" -success_symbol = "[  ](bold fg:blue)" -error_symbol = "[  ](bold fg:red)" +success_symbol = "[ ](bold fg:255)" +error_symbol = "[ ](bold fg:249)" # Disable the package module, hiding it from the prompt completely [package] disabled = true [git_branch] -style = "bg: cyan" +style = "bg: 252" symbol = "󰘬" truncation_length = 12 truncation_symbol = "" -format = "󰜥 [](bold fg:cyan)[$symbol $branch(:$remote_branch)](fg:black bg:cyan)[ ](bold fg:cyan)" +format = " 󰜥 [](bold fg:252)[$symbol $branch(:$remote_branch)](fg:235 bg:252)[ ](bold fg:252)" [git_commit] commit_hash_length = 4 @@ -52,7 +55,7 @@ deleted = " 🗑 " [hostname] ssh_only = false -format = "[•$hostname](bg:cyan bold fg:black)[](bold fg:cyan)" +format = "[•$hostname](bg:252 bold fg:235)[](bold fg:252)" trim_at = ".companyname.com" disabled = false @@ -71,19 +74,19 @@ format = '🕙[\[ $time \]]($style) ' time_format = "%T" [username] -style_user = "bold bg:cyan fg:black" +style_user = "bold bg:252 fg:235" style_root = "red bold" -format = "[](bold fg:cyan)[$user]($style)" +format = "[](bold fg:252)[$user]($style)" disabled = false show_always = true [directory] -home_symbol = "  " +home_symbol = " " read_only = "  " -style = "bg:green fg:black" -truncation_length = 6 -truncation_symbol = " ••/" -format = '[](bold fg:green)[󰉋 $path]($style)[](bold fg:green)' +style = "bg:255 fg:black" +truncation_length = 2 +truncation_symbol = ".../" +format = '[](bold fg:255)[󰉋 → $path]($style)[](bold fg:255)' [directory.substitutions] @@ -97,4 +100,4 @@ format = '[](bold fg:green)[󰉋 $path]($style)[](bold fg:green)' [cmd_duration] min_time = 0 -format = '[](bold fg:yellow)[󰪢 $duration](bold bg:yellow fg:black)[](bold fg:yellow)' +format = '[](bold fg:252)[󰪢 $duration](bold bg:252 fg:235)[](bold fg:252)' From a9721c7cfe176d13a0e7984471f921f2eeb03479 Mon Sep 17 00:00:00 2001 From: Xleb <113757538+xleb-normal@users.noreply.github.com> Date: Tue, 24 Mar 2026 19:43:32 +0500 Subject: [PATCH 20/29] Update Russian localization: Quality improvements (#3134) --- .../quickshell/ii/translations/ru_RU.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/dots/.config/quickshell/ii/translations/ru_RU.json b/dots/.config/quickshell/ii/translations/ru_RU.json index d8d6498a3..db3a6d901 100644 --- a/dots/.config/quickshell/ii/translations/ru_RU.json +++ b/dots/.config/quickshell/ii/translations/ru_RU.json @@ -35,7 +35,7 @@ "Help & Support": "Помощь", "Bubble": "Пузырчатый", "Large images | God tier quality, no NSFW.": "Большие изобр. | Отличное качество, без NSFW.", - "Dark": "Тьма", + "Dark": "Тёмный", "Center clock": "Часы по центру экрана", "Search, calculate or run": "Поиск, расчёт, запуск", "Region height": "Высота области", @@ -47,7 +47,7 @@ "at": "в", "Math": "Математика", "Consider plugging in your device": "Подключите зарядку", - "Workspaces shown": "Видимые пространство", + "Workspaces shown": "Видимые пространства", "Place the corners to trigger at the bottom": "Триггер-углы снизу", "No API key\nSet it with /key YOUR_API_KEY": "Нет API-ключа\nУстановите: /key ВАШ_КЛЮЧ", "Auto (System)": "Авто (система)", @@ -223,7 +223,7 @@ "Networking": "Сеть", "Tint icons": "Тонировать иконки", "Low battery": "Низкий заряд", - "Make icons pinned by default": "Показывать все иконки", + "Make icons pinned by default": "Закреплять все иконки", "Get the next page of results": "Следующая стр. результатов", "Invalid API provider. Supported: \n-": "Неверный провайдер. Поддерж:\n-", "Show \"Locked\" text": "Показ. текст «Заблокировано»", @@ -276,7 +276,7 @@ "Prefixes": "Префиксы", "Terminal": "Терминала", "Incorrect password": "Неверный пароль", - "Line-separated": "Без разделения", + "Line-separated": "Разделение по строкам", "Always": "Всегда", "☕ Break: %1 minutes": "☕ Перерыв: %1 мин", "Depends on sidebars": "Зависит от панелей", @@ -288,7 +288,7 @@ "Base URL": "Базовый URL", "Float": "Флоат", "Invalid arguments. Must provide `command`.": "Неверные аргументы. Укажите `command`.", - "Fully charged": "Полностью заряжен", + "Fully charged": "Полностью заряжена", "Earbang protection": "Защита ушей", "Low warning": "Увед. о низком %", "Advanced": "Прочее", @@ -434,7 +434,7 @@ "Game mode": "Игровой режим", "Usage: %1save CHAT_NAME": "Исп: %1save ИМЯ_ЧАТА", "Thin": "Тонкий", - "Light": "Свет", + "Light": "Светлый", "When not fullscreen": "Не в фулл-скрине", "Commands, edit configs, search.\nTakes an extra turn to switch to search mode if that's needed": "Команды, редактирование конфигов, поиск.\nПри необходимости переключается в режим поиска", "Privacy Policy": "Политика конфиденциальности", @@ -506,7 +506,7 @@ "Could be images or parts of the screen that have some containment.\nMight not always be accurate.\nThis is done with an image processing algorithm run locally and no AI is used.": "Могут быть изображения или части экрана с содержимым.\nМожет быть неточно.\nИспользуется локальный алгоритм обработки изображений, без ИИ.", "Polling interval (m)": "Интервал опроса (мин)", "Inactive": "Неактивно", - "Authentication": "Аутентиф.", + "Authentication": "Аутентификация", "Full warning": "Уведомление о полном заряде при проценте", "Power Profile": "Профиль питания", "Content region": "Обл. контента", @@ -596,7 +596,7 @@ "Battery: %1%2": "Батарея: %1%2", "Command": "Команда", "Tooltips": "Подсказки", - "Show hidden icons": "Системный трей", + "Show hidden icons": "Показать скрытые значки", "Used for headings and titles": "Для заголовков", "Top-down": "Сверху вниз", "of %1": "из %1", @@ -613,7 +613,7 @@ "Overlay: General": "Игровой оверлей", "Enable opening zoom animation": "Анимация зума при открытии", "More Internet settings": "Доп. сетевые настройки", - "Nerd font icons": "Иконки Nerd Font (эмодзи)", + "Nerd font icons": "Иконки Nerd Font", "Display modifiers and keys in multiple keycap (e.g., \"Ctrl + A\" instead of \"Ctrl A\" or \"󰘴 + A\" instead of \"󰘴 A\")": "Показывать модификаторы с разделителем (напр, «Ctrl + A» вместо «Ctrl A»)", "Change password": "Изменить пароль", "Check interval (mins)": "Интервал пров. (мин)", @@ -633,7 +633,7 @@ "Numbers font": "Шрифт чисел", "Move right": "Переместить вправо", "Unknown Application": "Неизв. приложение", - "Used for decorative/expressive text": "Для декоротивного / выразительного текста", + "Used for decorative/expressive text": "Для декоративного / выразительного текста", "Used for reading large blocks of text": "Для чтения больших блоков", "Type /key to get started with online models\nCtrl+O to expand sidebar\nCtrl+P to pin sidebar\nCtrl+D to detach sidebar": "Введите /key для онлайн-моделей\nCtrl+O - расширить панель\nCtrl+P - закрепить панель\nCtrl+D - открепить панель", "Health:": "Здоровье:", @@ -648,7 +648,7 @@ "Pinned": "Закреплено", "Unpin from Start": "Открепить из пуска", "Adjust the color temperature": "Цветовая температура", - "Han chars": "Кандзи", + "Han chars": "Иероглифы", "Show only when locked": "Отображать только при блокировке", "Widget: Weather": "Виджет погоды", "Right to left": "Справа налево", @@ -659,13 +659,13 @@ "Fonts": "Шрифты", "Left to right": "Слева направо", "Set FPS limit": "Лимит FPS", - "Draggable": "Drag & drop", + "Draggable": "Перетаскиваемый", "Turn on from sunset to sunrise": "От заката до рассвета", "Do you want to allow this app to make changes to your device?": "Разрешить приложению изменять устройство?", "Balance brightness based on content": "Баланс яркости по содержимому", "Font width and roundness settings are only available for some fonts like Google Sans Flex": "Ширина и скруглённость - только для нек. шрифтов (напр, Google Sans Flex)", "Record region": "Запись обл.", - "You can also manually edit cheatsheet.superKey": "Можно вручную отредактировать клавишу в шпаргалке клавиш и в других частях системы", + "You can also manually edit cheatsheet.superKey": "Также вы можете вручную отредактировать cheatsheet.superKey", "Sign out": "Выйти", "Overlay: Crosshair": "Оверлей: прицел", "Shut down": "Выключить", From 72b8b7aecb3f6af7e72e6e0ad3282942d0bc2c70 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:16:03 +0100 Subject: [PATCH 21/29] fix bar scrolls not also changing gamma --- dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml | 4 ++-- .../quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml | 4 ++-- .../ii/modules/ii/verticalBar/VerticalBarContent.qml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml b/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml index 2a72e3382..d8bf9a34b 100644 --- a/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml +++ b/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml @@ -59,8 +59,8 @@ Item { // Bar content region implicitWidth: leftSectionRowLayout.implicitWidth implicitHeight: Appearance.sizes.baseBarHeight - onScrollDown: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness - 0.05) - onScrollUp: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness + 0.05) + onScrollDown: Brightness.decreaseBrightness() + onScrollUp: Brightness.increaseBrightness() onMovedAway: GlobalStates.osdBrightnessOpen = false onPressed: event => { if (event.button === Qt.LeftButton) diff --git a/dots/.config/quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml b/dots/.config/quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml index cbb8087ae..1e1ec07ba 100644 --- a/dots/.config/quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml +++ b/dots/.config/quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml @@ -98,7 +98,7 @@ Scope { if (!Config.options.sidebar.cornerOpen.valueScroll) return; if (cornerWidget.isLeft) - cornerPanelWindow.brightnessMonitor.setBrightness(cornerPanelWindow.brightnessMonitor.brightness - 0.05); + Brightness.decreaseBrightness() else { const currentVolume = Audio.value; const step = currentVolume < 0.1 ? 0.01 : 0.02 || 0.2; @@ -109,7 +109,7 @@ Scope { if (!Config.options.sidebar.cornerOpen.valueScroll) return; if (cornerWidget.isLeft) - cornerPanelWindow.brightnessMonitor.setBrightness(cornerPanelWindow.brightnessMonitor.brightness + 0.05); + Brightness.increaseBrightness() else { const currentVolume = Audio.value; const step = currentVolume < 0.1 ? 0.01 : 0.02 || 0.2; diff --git a/dots/.config/quickshell/ii/modules/ii/verticalBar/VerticalBarContent.qml b/dots/.config/quickshell/ii/modules/ii/verticalBar/VerticalBarContent.qml index 69ffc4bbe..4e34d421a 100644 --- a/dots/.config/quickshell/ii/modules/ii/verticalBar/VerticalBarContent.qml +++ b/dots/.config/quickshell/ii/modules/ii/verticalBar/VerticalBarContent.qml @@ -54,8 +54,8 @@ Item { // Bar content region height: (root.height - middleSection.height) / 2 width: Appearance.sizes.verticalBarWidth - onScrollDown: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness - 0.05) - onScrollUp: root.brightnessMonitor.setBrightness(root.brightnessMonitor.brightness + 0.05) + onScrollDown: Brightness.decreaseBrightness() + onScrollUp: Brightness.increaseBrightness() onMovedAway: GlobalStates.osdBrightnessOpen = false onPressed: event => { if (event.button === Qt.LeftButton) From 8f66afe1090d36608112192717bcedf1213c63bf Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:17:01 +0100 Subject: [PATCH 22/29] minor formatting fix --- .../quickshell/ii/modules/common/widgets/StyledSlider.qml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index b17afd86b..66c6ee0af 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -176,9 +176,7 @@ Slider { Rectangle { required property int index - anchors { - verticalCenter: background.verticalCenter - } + anchors.verticalCenter: background.verticalCenter property real leftMargin: index > 0 ? root.dividerMargins : root.handleMargins property real rightMargin: index < background.rightWidths.length - 1 ? root.dividerMargins : 0 x: background.rightValues[index] * root.effectiveDraggingWidth + leftMargin + (index === 0 ? handleWidth / 2 : 0) + leftPadding @@ -208,7 +206,7 @@ Slider { implicitWidth: root.handleWidth implicitHeight: root.handleHeight - x: leftPadding + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2) + x: root.leftPadding + (root.visualPosition * root.effectiveDraggingWidth) - (root.handleWidth / 2) anchors.verticalCenter: parent.verticalCenter radius: Appearance.rounding.full color: root.handleColor From b6fc897b39d3c40330fc103fded16be820e0afcc Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:18:01 +0100 Subject: [PATCH 23/29] make gamma indicator icon not scale --- .../ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml index 7dac9e84f..f86a8d7c0 100644 --- a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml @@ -8,7 +8,6 @@ OsdValueIndicator { id: rotateIcon icon: "wb_twilight" - scaleIcon: true name: Translation.tr("Gamma") value: Hyprsunset.gamma / 100 ?? 0.5 } From f86d42d8f267371accb0992fb4cf5e15ec8ca972 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:12:32 -0400 Subject: [PATCH 24/29] fix anchors formatting --- .../quickshell/ii/modules/common/widgets/StyledSlider.qml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index 66c6ee0af..af25619bd 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -114,9 +114,7 @@ Slider { Loader { required property real index - anchors { - verticalCenter: background.verticalCenter - } + anchors.verticalCenter: background.verticalCenter property real leftMargin: index > 0 ? root.dividerMargins : 0 property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0) @@ -138,9 +136,7 @@ Slider { Loader { required property int index - anchors { - verticalCenter: background.verticalCenter - } + anchors.verticalCenter: background.verticalCenter property real leftMargin: index > 0 ? root.dividerMargins : 0 property real rightMargin: index < background.leftWidths.length - 1 ? root.dividerMargins : root.handleMargins x: background.leftValues[index] * root.effectiveDraggingWidth + leftMargin + (index > 0 ? leftPadding : 0) From 75594fb5cff79f556aa7499735963e48762a4555 Mon Sep 17 00:00:00 2001 From: altrup <51763643+altrup@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:22:39 -0400 Subject: [PATCH 25/29] Change bar scroll icon to gamma when changing gamma --- dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml b/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml index d8bf9a34b..3bec75890 100644 --- a/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml +++ b/dots/.config/quickshell/ii/modules/ii/bar/BarContent.qml @@ -70,7 +70,7 @@ Item { // Bar content region // Visual content ScrollHint { reveal: barLeftSideMouseArea.hovered - icon: "light_mode" + icon: Hyprsunset.gamma === 100 ? "light_mode" : "wb_twilight" tooltipText: Translation.tr("Scroll to change brightness") side: "left" anchors.left: parent.left From 2ed29f5c46ba6379cbbbd6a8eb0f8e52cf69b5dd Mon Sep 17 00:00:00 2001 From: jwihardi Date: Tue, 24 Mar 2026 16:40:25 -0400 Subject: [PATCH 26/29] gentoo: updated widget deps to use guru songrec oops --- ...> illogical-impulse-widgets-1.0-r5.ebuild} | 2 +- sdata/dist-gentoo/import-local-pkgs.sh | 3 -- sdata/dist-gentoo/keywords | 3 +- .../widgets/songrec-0.4.3-r1.ebuild | 48 ------------------- 4 files changed, 2 insertions(+), 54 deletions(-) rename sdata/dist-gentoo/illogical-impulse-widgets/{illogical-impulse-widgets-1.0-r4.ebuild => illogical-impulse-widgets-1.0-r5.ebuild} (95%) delete mode 100644 sdata/dist-gentoo/local-pkgs/widgets/songrec-0.4.3-r1.ebuild diff --git a/sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r4.ebuild b/sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r5.ebuild similarity index 95% rename from sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r4.ebuild rename to sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r5.ebuild index 9ffceea09..6e9bf62af 100644 --- a/sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r4.ebuild +++ b/sdata/dist-gentoo/illogical-impulse-widgets/illogical-impulse-widgets-1.0-r5.ebuild @@ -18,7 +18,7 @@ RDEPEND=" gui-apps/hypridle gui-apps/hyprlock gui-apps/hyprpicker - app-misc/songrec + media-sound/songrec app-i18n/translate-shell gui-apps/wlogout sci-libs/libqalculate diff --git a/sdata/dist-gentoo/import-local-pkgs.sh b/sdata/dist-gentoo/import-local-pkgs.sh index 0062adb31..9c5b687e4 100644 --- a/sdata/dist-gentoo/import-local-pkgs.sh +++ b/sdata/dist-gentoo/import-local-pkgs.sh @@ -19,6 +19,3 @@ import_ebuild "${FT_DIR}" "media-fonts" "rubik-vf" import_ebuild "${FT_DIR}" "media-fonts" "space-grotesk" import_ebuild "${FT_DIR}" "kde-plasma" "breeze-plus" import_ebuild "${FT_DIR}" "x11-themes" "darkly" - -############### WIDGETS -import_ebuild "${WIDGETS_DIR}" "app-misc" "songrec" diff --git a/sdata/dist-gentoo/keywords b/sdata/dist-gentoo/keywords index 0d4eaaf5e..7e6fe2ab2 100644 --- a/sdata/dist-gentoo/keywords +++ b/sdata/dist-gentoo/keywords @@ -28,7 +28,6 @@ gui-libs/hyprcursor gui-apps/wf-recorder gui-apps/wtype gui-apps/fuzzel -gui-apps/quickshell ** gui-apps/wlogout dev-cpp/sdbus-c++ dev-libs/hyprland-protocols @@ -52,7 +51,7 @@ media-fonts/space-grotesk media-fonts/material-symbols-variable ** media-fonts/readex-pro media-fonts/rubik-vf -app-misc/songrec +media-sound/songrec dev-cpp/glaze dev-cpp/cpptrace dev-libs/libdwarf diff --git a/sdata/dist-gentoo/local-pkgs/widgets/songrec-0.4.3-r1.ebuild b/sdata/dist-gentoo/local-pkgs/widgets/songrec-0.4.3-r1.ebuild deleted file mode 100644 index fa5f1e6b3..000000000 --- a/sdata/dist-gentoo/local-pkgs/widgets/songrec-0.4.3-r1.ebuild +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Illogicall Impulse Widget Dependencies" -HOMEPAGE="" -SRC_URI="https://github.com/marin-m/SongRec/archive/${PV}.tar.gz -> ${P}-SongRec.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -# need for cargo fetch, idk how to get around it if possible -RESTRICT="strip network-sandbox" - -DEPEND="" -RDEPEND="" - -S="${WORKDIR}/SongRec-${PV}" - -src_prepare() { - default - export CARGO_HOME="${WORKDIR}/cargo" - cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" -} - -src_compile() { - export CARGO_HOME="${WORKDIR}/cargo" - cargo build --release --frozen --offline -} - -src_install() { - dobin target/release/songrec - insinto /usr/share/applications - - doins packaging/rootfs/usr/share/applications/com.github.marinm.songrec.desktop - - insinto /usr/share/icons/hicolor/scalable/apps - doins packaging/rootfs/usr/share/icons/hicolor/scalable/apps/com.github.marinm.songrec.svg - - insinto /usr/share/metainfo - doins packaging/rootfs/usr/share/metainfo/com.github.marinm.songrec.metainfo.xml - - insinto /usr/share/songrec/translations - doins -r translations/* - - dodoc README.md -} From 35fb3d4da8dfb89dbb544199e362d48e7e6120c8 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Tue, 24 Mar 2026 22:55:36 +0100 Subject: [PATCH 27/29] make 25 lowest possible gamma --- .../ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml | 2 ++ .../ii/onScreenDisplay/indicators/GammaIndicator.qml | 1 + .../quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml | 6 +++--- .../modules/ii/sidebarRight/nightLight/NightLightDialog.qml | 2 ++ dots/.config/quickshell/ii/services/Hyprsunset.qml | 4 +++- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml index fc10c8a2a..e209ce286 100644 --- a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml @@ -11,6 +11,8 @@ Item { required property string name property bool rotateIcon: false property bool scaleIcon: false + property alias from: valueProgressBar.from + property alias to: valueProgressBar.to property real valueIndicatorVerticalPadding: 9 property real valueIndicatorLeftPadding: 10 diff --git a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml index f86a8d7c0..7fed00163 100644 --- a/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml +++ b/dots/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml @@ -9,5 +9,6 @@ OsdValueIndicator { icon: "wb_twilight" name: Translation.tr("Gamma") + from: Hyprsunset.gammaLowerLimit / 100 value: Hyprsunset.gamma / 100 ?? 0.5 } diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml index d7e0a0b57..4e80f7203 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml @@ -42,9 +42,9 @@ Rectangle { sourceComponent: QuickSlider { materialSymbol: "light_mode" secondaryMaterialSymbol: "wb_twilight" - stopIndicatorValues: Hyprsunset.gamma !== 100 && root.brightnessMonitor.brightness !== 0 ? [0.3 + root.brightnessMonitor.brightness * 0.7] : [] - value: Hyprsunset.gamma === 100? 0.3 + root.brightnessMonitor.brightness * 0.7 : Hyprsunset.gamma / 100 * 0.3 - tooltipContent: Hyprsunset.gamma === 100 ? `${Math.round(root.brightnessMonitor.brightness * 100)}%` : `${Hyprsunset.gamma}%` + stopIndicatorValues: Hyprsunset.gamma !== 100 && root.brightnessMonitor?.brightness !== 0 ? [0.3 + root.brightnessMonitor?.brightness * 0.7] : [] + value: Hyprsunset.gamma === 100? 0.3 + root.brightnessMonitor?.brightness * 0.7 : Hyprsunset.gamma / 100 * 0.3 + tooltipContent: Hyprsunset.gamma === 100 ? `${Math.round(root.brightnessMonitor?.brightness * 100)}%` : `${Translation.tr("Gamma")} ${Hyprsunset.gamma}%` onMoved: { if (value >= 0.3) { // 0.3 - 1.0 brightness diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml index 4f70983d9..7c7004b99 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml @@ -182,8 +182,10 @@ WindowDialog { leftMargin: 4 rightMargin: 4 } + from: Hyprsunset.gammaLowerLimit / 100 value: Hyprsunset.gamma / 100 onMoved: Hyprsunset.setGamma(value * 100) + tooltipContent: `${Math.round(value * 100)}%` } } diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml index c9fac1a6d..d51d4fe99 100644 --- a/dots/.config/quickshell/ii/services/Hyprsunset.qml +++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml @@ -15,6 +15,8 @@ Singleton { id: root signal gammaChangeAttempt() + readonly property real gammaLowerLimit: 25 + property string from: Config.options?.light?.night?.from ?? "19:00" property string to: Config.options?.light?.night?.to ?? "06:30" property bool automatic: Config.options?.light?.night?.automatic && (Config?.ready ?? true) @@ -114,7 +116,7 @@ Singleton { } function setGamma(gamma) { - root.gamma = Math.max(0, Math.min(100, gamma)); + root.gamma = Math.max(root.gammaLowerLimit, Math.min(100, gamma)); root.gammaChangeAttempt(); From c117d9903a00ed7ff42b8af36db8a364bfa2b3dd Mon Sep 17 00:00:00 2001 From: fb24m Date: Wed, 25 Mar 2026 19:19:19 +0400 Subject: [PATCH 28/29] add translation keys for cookie clocks settings --- .../quickshell/ii/modules/settings/BackgroundConfig.qml | 8 ++++---- dots/.config/quickshell/ii/translations/en_US.json | 6 +++++- dots/.config/quickshell/ii/translations/ru_RU.json | 4 ++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index 80814146f..78e0473a2 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -303,7 +303,7 @@ ContentPage { Config.options.background.widgets.clock.cookie.useSineCookie = checked; } StyledToolTip { - text: "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing" + text: Translation.tr("Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing") } } @@ -327,7 +327,7 @@ ContentPage { Config.options.background.widgets.clock.cookie.constantlyRotate = checked; } StyledToolTip { - text: "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical." + text: Translation.tr("Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.") } } @@ -345,7 +345,7 @@ ContentPage { Config.options.background.widgets.clock.cookie.hourMarks = checked; } StyledToolTip { - text: "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons" + text: Translation.tr("Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons") } } @@ -361,7 +361,7 @@ ContentPage { Config.options.background.widgets.clock.cookie.timeIndicators = checked; } StyledToolTip { - text: "Can't be turned on when using 'Numbers' dial style for aesthetic reasons" + text: Translation.tr("Can't be turned on when using 'Numbers' dial style for aesthetic reasons") } } } diff --git a/dots/.config/quickshell/ii/translations/en_US.json b/dots/.config/quickshell/ii/translations/en_US.json index 01569de04..15e5d85d3 100644 --- a/dots/.config/quickshell/ii/translations/en_US.json +++ b/dots/.config/quickshell/ii/translations/en_US.json @@ -360,6 +360,10 @@ "Connect to Wi-Fi": "Connect to Wi-Fi", "... and %1 more": "... and %1 more", "Cookie clock settings": "Cookie clock settings", + "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing": "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing", + "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.", + "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons": "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons", + "Can't be turned on when using 'Numbers' dial style for aesthetic reasons": "Can't be turned on when using 'Numbers' dial style for aesthetic reasons", "Brightness and volume": "Brightness and volume", "Choose file": "Choose file", "Invalid model. Supported: \n```": "Invalid model. Supported: \n```", @@ -608,4 +612,4 @@ "Battery full": "Battery full", "Pin": "Pin", "Unpin": "Unpin" -} \ No newline at end of file +} diff --git a/dots/.config/quickshell/ii/translations/ru_RU.json b/dots/.config/quickshell/ii/translations/ru_RU.json index db3a6d901..0e0a0283b 100644 --- a/dots/.config/quickshell/ii/translations/ru_RU.json +++ b/dots/.config/quickshell/ii/translations/ru_RU.json @@ -330,6 +330,10 @@ "Connect to Wi-Fi": "Подкл. к Wi-Fi", "... and %1 more": "... и ещё %1", "Cookie clock settings": "Настройки «Cookie»-часов", + "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing": "Выглядит мягче и уместнее с разным количеством углов,\nно сжатие может выглядить менее впечатляюще", + "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Часы будут постоянно вращаться. Это крайне ресурсозатратно\n(ок. 50% использования Intel UHD Graphics) и фактически бесполезно.", + "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons": "Может быть активировано только в режимах 'С точками' и 'Полностью залитый' по эстетическим причинам", + "Can't be turned on when using 'Numbers' dial style for aesthetic reasons": "Не может быть включено, когда используется стиль 'С числами' по эстетическим причинам", "Brightness and volume": "Яркость и громкость", "Choose file": "Выбор обоев", "Invalid model. Supported: \n```": "Неверная модель. Поддерживаемые: \n```", From dde0988a45b3b2b2c9f0fba0531386f5f8493418 Mon Sep 17 00:00:00 2001 From: fb24m Date: Wed, 25 Mar 2026 20:45:59 +0400 Subject: [PATCH 29/29] quality improvments --- dots/.config/quickshell/ii/translations/ru_RU.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/translations/ru_RU.json b/dots/.config/quickshell/ii/translations/ru_RU.json index 0e0a0283b..998b7a34d 100644 --- a/dots/.config/quickshell/ii/translations/ru_RU.json +++ b/dots/.config/quickshell/ii/translations/ru_RU.json @@ -331,7 +331,7 @@ "... and %1 more": "... и ещё %1", "Cookie clock settings": "Настройки «Cookie»-часов", "Looks a bit softer and more consistent with different number of sides,\nbut has less impressive morphing": "Выглядит мягче и уместнее с разным количеством углов,\nно сжатие может выглядить менее впечатляюще", - "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Часы будут постоянно вращаться. Это крайне ресурсозатратно\n(ок. 50% использования Intel UHD Graphics) и фактически бесполезно.", + "Makes the clock always rotate. This is extremely expensive\n(expect 50% usage on Intel UHD Graphics) and thus impractical.": "Часы будут постоянно вращаться. Это крайне ресурсозатратно\n(примерно 50% использования Intel UHD Graphics) и фактически бесполезно.", "Can only be turned on using the 'Dots' or 'Full' dial style for aesthetic reasons": "Может быть активировано только в режимах 'С точками' и 'Полностью залитый' по эстетическим причинам", "Can't be turned on when using 'Numbers' dial style for aesthetic reasons": "Не может быть включено, когда используется стиль 'С числами' по эстетическим причинам", "Brightness and volume": "Яркость и громкость",