Как перерисовать или аннулировать рабочий стол Ubuntu программно с помощью C или Python

Сейчас я использую ubuntu16.04 с окружением рабочего стола GNOME. Я могу изменить атрибуты (например, metadata::nautilus-icon-position) файлов на рабочем столе с помощью c или python, но отображение на рабочем столе не обновляется. Затем я имитирую событие нажатия «F5», используя xdo_send_keysequence_window(x, CURRENTWINDOW, "F5", 0) из libxdo, дисплей теперь обновляется, но с мигом (мне кажется, что все виджеты на рабочем столе сначала очищаются, а затем перерисовываются). Если я постоянно меняю атрибуты файла и имитирую нажатие клавиши «F5», рабочий стол продолжает обновляться и мигать.

У меня есть два вопроса:

  1. , как настольная система обрабатывает событие нажатия «F5»? (сначала очистить все виджеты, кроме фона на рабочем столе, а затем, может быть, в следующий раз срез перерисует все виджеты ??)
  2. есть ли способ (интерфейс API или отправить события на рабочий стол), чтобы сделать недействительным или перерисовать рабочий стол, не мигая, просто как обычное приложение с графическим интерфейсом (widget.move () или container.invalidate ())?

Я много искал и не могу найти ответ. Большое спасибо

1
задан 7 December 2017 в 04:02

1 ответ

Поскольку F5 является привязкой клавиш для функции Обновить , она обрабатывается как таковая. Это ничем не отличается от нажатия F5 в веб-браузере для обновления. Страница очищается, и на сервер делается новый запрос. В случае Nautilus это означает, что представление очищено и каталог повторно сканируется.

Вы могли бы написать плагин (расширение) для Nautilus, который мог бы захватить фактический виджет для фона и затем сделать недействительным только частичный прямоугольник, хотя я не уверен, что это решит вашу проблему (вы должны быть в состоянии проверить, переместив окна над рассматриваемой областью, а затем снова отодвинув их).

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

1
ответ дан 7 December 2017 в 04:02

Другие вопросы по тегам:

Похожие вопросы: