Как и в названии, я хотел бы наложить на изображение обоев всего 1920x1080 изображение на удобочитаемый объект, независимо от того, какие окна, панели, пусковые установки и т. д. могут в настоящее время быть на вершине.
Python, потому что мне это нравится, но я возьму то, что смогу получить. Я могу делать C / C ++. Я бы предпочел не делать Java. Пожалуйста, не ява. Это небольшая утилита, а не оружейное приложение.
Почему, спросите вы?
Я хочу посмотреть пару 100 случайных пикселей из изображения, попытаться найти общий цвет, а затем обработать текущий CSS-файл темы gtk3, чтобы изменить @dark_bg_color на мой вычисленный цвет, а затем, как-то, перезагрузите тему.
Конечным результатом будет то, что при изменении обоев цвета заголовков окон будут меняться на «match».
Я уверен, что могу делать все, кроме шага 1 ... получать текущие обои в читаемый объект. Есть много уроков о том, как изменить / установить обои, но не так много, чтобы получить их.
О, вы говорите! Вы не знаете, что такое обои для рабочего стола? Нет. Я использую , независимо от того, какие окна, панели, пусковые установки и т. Д. Могут в настоящее время быть на вершине , и он всегда загружает новые обои И использует мою личную коллекцию, случайно меняя ее каждые 10 минут или около того.
@ Тимо выше описано, как получить его в GNOME и Unity, вот как это делается в Xfce.
import subprocess
xfce_wall_cmd = subprocess.Popen('xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image', shell=True, stdout=subprocess.PIPE)
xfce_wall, xfce_wall_errs = xfce_wall_cmd.communicate()
xfce_wall = xfce_wall.decode('utf-8').replace('\n', '')
print(xfce_wall)