dimayakovlev.ru


Unsplash и PowerShell для установки обоев рабочего стола

Сервис Unsplash и PowerShell - это два полезных инструмента для любителя регулярной смены обоев рабочего стола (и не только).

Для тех кто ещё не знает, Unsplash - сервис стоковых фотографий, которые можно свободно использовать в личных целях. Лично постоянно использую фотографии с Unsplash как временные изображения для проектов и как обои рабочего стола для оформления виртуального рабочего пространства.

Свободный доступ к Unsplash Source даёт возможность автоматизировать получение изображений, а PowerShell это подходящий инструмент для автоматизации. Пример скрипта, который предлагаю рассмотреть, показывает как на практике использовать Unsplash Source для загрузки и установки изображений в качестве обоев рабочего стола в операционной системе Microsoft Windows. Для понимания работы скрипта, код снабжён комментариями.

# Получение текущего разрешения экрана по горизонтали и вертикали
$horRes = (Get-WmiObject -Class Win32_VideoController).CurrentHorizontalResolution
$vertRes = (Get-WmiObject -Class Win32_VideoController).CurrentVerticalResolution

# Путь к файлу изображения
$file = Join-Path -Path ([Environment]::GetFolderPath('MyPictures')) -ChildPath "UnsplashWallpaper.${horRes}x${vertRes}.jpg"

# URL для отправки запроса
$url = "https://source.unsplash.com/collection/1065396/${horRes}x${vertRes}"

# Загрузка файла изображения
Invoke-WebRequest -Uri $url -OutFile $file

# Установка обоев рабочего стола
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop\' -Name WallPaper -value $file
rundll32.exe user32.dll, UpdatePerUserSystemParameters 1, True

Сохраните код скрипта в файл Get-UnsplashWallpaper.ps1 и запустите. После завершения работы скрипта в качестве обоев будет установлено случайное изображение из курируемой коллекции обоев для рабочего стола Unsplash.

Не стоит ограничиваться изображениями только из этой коллекции, которая использована в качестве примера. Изучите описание работы с Unsplash Source и задавайте собственные критерии поиска изображений.

Если на полученном изображении видны артефакты сжатия, задайте вручную в скрипте размеры изображения, превышающие текущее разрешение экрана.

Кроме Unsplash Source разработчикам доступен так же бесплатный Unsplash API, который даёт больше возможностей при автоматизации обращений к сервису, но соглашение запрещает использовать API в приложениях, единственная функция которых это получение изображений для обоев рабочего стола. Для пользователей Mac OS разработано официальное приложение Unsplash Wallpapers, доступное в Mac App Store.