From 502dffeac70ade7b8b09a0a1d9b9f6cf6b5e7527 Mon Sep 17 00:00:00 2001 From: GokuPlay609 Date: Sun, 15 Feb 2026 10:22:03 +0530 Subject: [PATCH 1/4] fix(quickshell): mpris not detecting browser players when plasma-browser-integration is installed Amp-Thread-ID: https://ampcode.com/threads/T-019c5f8e-6544-735e-88e3-aa29c2d3bbf6 Co-authored-by: Amp --- .../quickshell/ii/services/MprisController.qml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/dots/.config/quickshell/ii/services/MprisController.qml b/dots/.config/quickshell/ii/services/MprisController.qml index 02151f1c1..7faed2274 100644 --- a/dots/.config/quickshell/ii/services/MprisController.qml +++ b/dots/.config/quickshell/ii/services/MprisController.qml @@ -25,22 +25,16 @@ Singleton { property var activeTrack; - property bool hasPlasmaIntegration: false - Process { - id: plasmaIntegrationAvailabilityCheckProc - running: true - command: ["bash", "-c", "command -v plasma-browser-integration-host"] - onExited: (exitCode, exitStatus) => { - root.hasPlasmaIntegration = (exitCode === 0); - } - } + readonly property bool hasActivePlasmaIntegration: Mpris.players.values.some( + p => p.dbusName?.startsWith('org.mpris.MediaPlayer2.plasma-browser-integration') + ) function isRealPlayer(player) { if (!Config.options.media.filterDuplicatePlayers) { return true; } return ( - // Remove unecessary native buses from browsers if there's plasma integration - !(hasPlasmaIntegration && player.dbusName.startsWith('org.mpris.MediaPlayer2.firefox')) && !(hasPlasmaIntegration && player.dbusName.startsWith('org.mpris.MediaPlayer2.chromium')) && + // Remove native browser buses only if plasma-browser-integration is actually active on D-Bus + !(hasActivePlasmaIntegration && player.dbusName.startsWith('org.mpris.MediaPlayer2.firefox')) && !(hasActivePlasmaIntegration && player.dbusName.startsWith('org.mpris.MediaPlayer2.chromium')) && // playerctld just copies other buses and we don't need duplicates !player.dbusName?.startsWith('org.mpris.MediaPlayer2.playerctld') && // Non-instance mpd bus From 60c197e2f5db35b2ffd2404e47ff0efa145c95c6 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:25:18 +0100 Subject: [PATCH 2/4] gemini-categorize-wallpaper.sh: upgrade gemini from 2.0 to 2.5 (#3015) --- .../quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh b/dots/.config/quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh index 41963d161..ead46561d 100755 --- a/dots/.config/quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh +++ b/dots/.config/quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh @@ -8,7 +8,7 @@ fi # Variables SOURCE_IMG_PATH="$1" -MODEL="${2:-${GEMINI_WALLPAPER_MODEL:-gemini-2.0-flash}}" # We use the flash variant so it's fast +MODEL="${2:-${GEMINI_WALLPAPER_MODEL:-gemini-2.5-flash}}" # We use the flash variant so it's fast WALLPAPER_NAME="$(basename "$SOURCE_IMG_PATH")" PROMPT="${3:-${GEMINI_WALLPAPER_PROMPT:-Categorize the wallpaper. Its file name is $WALLPAPER_NAME}}" RESIZED_IMG_PATH="/tmp/quickshell/ai/wallpaper.jpg" From 2e7ea9d9f60c1f59ee43cb2a6efb522d88fed0dc Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 20 Feb 2026 09:11:43 +0100 Subject: [PATCH 3/4] fix gemini clock styling --- .../ii/background/widgets/clock/CookieClock.qml | 15 ++++----------- .../quickshell/ii/scripts/colors/switchwall.sh | 10 ++++++++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieClock.qml index 7eaa04b98..f6ab64d81 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieClock.qml @@ -66,16 +66,9 @@ Item { } } - Connections { - target: Config - function onReadyChanged() { - categoryFileView.path = Directories.generatedWallpaperCategoryPath - } - } - FileView { id: categoryFileView - path: "" + path: Config.ready ? Directories.generatedWallpaperCategoryPath : "" watchChanges: true onFileChanged: reload() onLoaded: { @@ -85,7 +78,7 @@ Item { property bool useSineCookie: Config.options.background.widgets.clock.cookie.useSineCookie StyledDropShadow { - target: useSineCookie ? sineCookieLoader : roundedPolygonCookieLoader + target: root.useSineCookie ? sineCookieLoader : roundedPolygonCookieLoader RotationAnimation on rotation { running: Config.options.background.widgets.clock.cookie.constantlyRotate @@ -100,7 +93,7 @@ Item { id: sineCookieLoader z: 0 visible: false // The DropShadow already draws it - active: useSineCookie + active: root.useSineCookie sourceComponent: SineCookie { implicitSize: root.implicitSize sides: Config.options.background.widgets.clock.cookie.sides @@ -111,7 +104,7 @@ Item { id: roundedPolygonCookieLoader z: 0 visible: false // The DropShadow already draws it - active: !useSineCookie + active: !root.useSineCookie sourceComponent: MaterialCookie { implicitSize: root.implicitSize sides: Config.options.background.widgets.clock.cookie.sides diff --git a/dots/.config/quickshell/ii/scripts/colors/switchwall.sh b/dots/.config/quickshell/ii/scripts/colors/switchwall.sh index 1ae164d0c..6352e3f6d 100755 --- a/dots/.config/quickshell/ii/scripts/colors/switchwall.sh +++ b/dots/.config/quickshell/ii/scripts/colors/switchwall.sh @@ -155,6 +155,12 @@ set_thumbnail_path() { fi } +categorize_wallpaper() { + img_cat=$("$SCRIPT_DIR/../ai/gemini-categorize-wallpaper.sh" "$1") + # notify-send "Wallpaper category" "$img_cat" + echo "$img_cat" > "$STATE_DIR/user/generated/wallpaper/category.txt" +} + switch() { imgpath="$1" mode_flag="$2" @@ -163,9 +169,9 @@ switch() { color="$5" # Start Gemini auto-categorization if enabled - aiStylingEnabled=$(jq -r '.background.clock.cookie.aiStyling' "$SHELL_CONFIG_FILE") + aiStylingEnabled=$(jq -r '.background.widgets.clock.cookie.aiStyling' "$SHELL_CONFIG_FILE") if [[ "$aiStylingEnabled" == "true" ]]; then - "$SCRIPT_DIR/../ai/gemini-categorize-wallpaper.sh" "$imgpath" > "$STATE_DIR/user/generated/wallpaper/category.txt" & + categorize_wallpaper "$imgpath" & fi read scale screenx screeny screensizey < <(hyprctl monitors -j | jq '.[] | select(.focused) | .scale, .x, .y, .height' | xargs) From 3d9f51030c85f7a4fab100daba5c806cc56ae036 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 20 Feb 2026 14:48:03 +0100 Subject: [PATCH 4/4] settings: allow crazy background clock sizes (closes #2974) --- .../quickshell/ii/modules/settings/BackgroundConfig.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index b67e10409..80814146f 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -246,8 +246,8 @@ ContentPage { value: Config.options.background.widgets.clock.digital.font.size usePercentTooltip: false buttonIcon: "format_size" - from: 70 - to: 150 + from: 50 + to: 700 stopIndicatorValues: [90] onValueChanged: { Config.options.background.widgets.clock.digital.font.size = value;