Merge pull request #1697 from fboulay/feature/add-option-to-choose-monitor-for-ipc-random-wallpaper

Add screen argument to IPC wallpaper random
This commit is contained in:
Lemmy
2026-03-01 15:51:24 -05:00
committed by GitHub
3 changed files with 22 additions and 9 deletions
@@ -11,5 +11,5 @@ NIconButtonHot {
icon: "wallpaper-selector"
tooltipText: I18n.tr("wallpaper.panel.title")
onClicked: PanelService.getPanel("wallpaperPanel", screen)?.toggle()
onRightClicked: WallpaperService.setRandomWallpaper()
onRightClicked: WallpaperService.setRandomWallpaper(null)
}
+5 -2
View File
@@ -566,9 +566,12 @@ Singleton {
}
}
function random() {
function random(screen: string) {
if (Settings.data.wallpaper.enabled) {
WallpaperService.setRandomWallpaper();
if (screen === "all" || screen.trim().length === 0) {
screen = undefined;
}
WallpaperService.setRandomWallpaper(screen);
}
}
+16 -6
View File
@@ -430,15 +430,25 @@ Singleton {
}
// -------------------------------------------------------------------
function setRandomWallpaper() {
function setRandomWallpaper(screen) {
Logger.d("Wallpaper", "setRandomWallpaper");
if (Settings.data.wallpaper.enableMultiMonitorDirectories) {
// Pick a random wallpaper per screen
for (var i = 0; i < Quickshell.screens.length; i++) {
var screenName = Quickshell.screens[i].name;
var wallpaperList = getWallpapersList(screenName);
if (screen === undefined) {
// Pick a random wallpaper per screen
for (var i = 0; i < Quickshell.screens.length; i++) {
var screenName = Quickshell.screens[i].name;
var wallpaperList = getWallpapersList(screenName);
if (wallpaperList.length > 0) {
var randomIndex = Math.floor(Math.random() * wallpaperList.length);
var randomPath = wallpaperList[randomIndex];
changeWallpaper(randomPath, screenName);
}
}
} else {
// Pick a random wallpaper for the screen argument
var wallpaperList = getWallpapersList(screen);
if (wallpaperList.length > 0) {
var randomPath = _pickUnusedRandom(screenName, wallpaperList);
changeWallpaper(randomPath, screenName);
@@ -568,7 +578,7 @@ Singleton {
if (mode === "alphabetical") {
setAlphabeticalWallpaper();
} else {
setRandomWallpaper();
setRandomWallpaper(null);
}
}