Add setting a specific file as desktop wallpaper.
This commit is contained in:
		
							parent
							
								
									d45d9a0b90
								
							
						
					
					
						commit
						11301f7203
					
				| 
						 | 
					@ -15,6 +15,7 @@ async function main(): Promise<void> {
 | 
				
			||||||
      "--save-current <file:file>",
 | 
					      "--save-current <file:file>",
 | 
				
			||||||
      "Save the current wallpaper to a different file",
 | 
					      "Save the current wallpaper to a different file",
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					    .option("--set <file:file>", "Set a file as the wallpaper")
 | 
				
			||||||
    .option("--width <width:number>", "The width of the image", {
 | 
					    .option("--width <width:number>", "The width of the image", {
 | 
				
			||||||
      default: 1920,
 | 
					      default: 1920,
 | 
				
			||||||
      depends: ["unsplash"],
 | 
					      depends: ["unsplash"],
 | 
				
			||||||
| 
						 | 
					@ -25,6 +26,10 @@ async function main(): Promise<void> {
 | 
				
			||||||
    await Deno.copyFile(imagePath, options.saveCurrent);
 | 
					    await Deno.copyFile(imagePath, options.saveCurrent);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (options.set) {
 | 
				
			||||||
 | 
					    await setWallpaper(options.set);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (options.unsplash) {
 | 
					  if (options.unsplash) {
 | 
				
			||||||
    await downloadImage(
 | 
					    await downloadImage(
 | 
				
			||||||
      `https://source.unsplash.com/random/${options.width}x${options.height}`,
 | 
					      `https://source.unsplash.com/random/${options.width}x${options.height}`,
 | 
				
			||||||
| 
						 | 
					@ -41,7 +46,7 @@ async function downloadImage(url: string): Promise<void> {
 | 
				
			||||||
  }).status();
 | 
					  }).status();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function setWallpaper(): Promise<void> {
 | 
					async function setWallpaper(file: string = imagePath): Promise<void> {
 | 
				
			||||||
  const monitors = ["monitorHDMI-0", "monitorHDMI-1"];
 | 
					  const monitors = ["monitorHDMI-0", "monitorHDMI-1"];
 | 
				
			||||||
  for (const monitor of monitors) {
 | 
					  for (const monitor of monitors) {
 | 
				
			||||||
    await Deno.run({
 | 
					    await Deno.run({
 | 
				
			||||||
| 
						 | 
					@ -52,7 +57,7 @@ async function setWallpaper(): Promise<void> {
 | 
				
			||||||
        "-p",
 | 
					        "-p",
 | 
				
			||||||
        `/backdrop/screen0/${monitor}/workspace0/last-image`,
 | 
					        `/backdrop/screen0/${monitor}/workspace0/last-image`,
 | 
				
			||||||
        "-s",
 | 
					        "-s",
 | 
				
			||||||
        imagePath,
 | 
					        file,
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
    }).status();
 | 
					    }).status();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in New Issue