Я хочу сделать Gtk. Окно, которое прикрепляется к Рабочему столу и действует как настольный виджет. Я нашел, что могу сделать это путем установки self.set_type_hint(Gdk.WindowTypeHint.DESKTOP)
который сохраняет его ниже всех окон, неподвижных и нечувствительных для Показа Настольного плагина Единицы. Однако при нажатии на настольную область за пределами виджета окно скрыто позади рабочего стола, и я не могу вернуть его (я должен закрыть программу).
Что лучший способ состоит в том, чтобы обработать это? Там другой устанавливает? Я нашел, что могу также заставить окно игнорировать Выставочные Настольные команды, если я установил skip_taskbar, подсказывают и деактивируют установку в compiz, но я не слонялся бы без дела с compiz настройками людей для получения этого эффекта.
Править: Вычисленный проигнорировать Выставочный Рабочий стол (см. ниже), но все еще не может заставить это пропускать панель Средства запуска. Подсказка окна DESKTOP работала на это, но упомянула выше недостатки. Я также играл вокруг с установкой WM_CLASS в .desktop файле, но Единица, кажется, игнорирует это.
Понятый это... необходимо установить подсказку типа на Gdk.WindowTypeHint.DOCK
затем также набор также skip_taskbar_hint
ИЛИ skip_pager_hint
.
ОТРЕДАКТИРУЙТЕ Это работает, но даже с skiptaskbar, окно все еще обнаруживается как значок в панели средства запуска. Мне нужен лучший путь....
EDIT2 Получила его! Проблема прибыла из других средств запуска в панели, имеющей тот же WMClass как программа, я пытался сделать Настольный Виджет. Для различения необходимо установить WMClass окна в рамках программы, а также в ее .desktop средстве запуска:
В коде:
Gtk.Window.set_wmclass(WMname,WMclass)
И в .desktop средстве запуска:
StartupWMClass=WMname
У меня есть приложение, работающее, который делает точно, как Вы желаете: это - rainlendar2 в настольном режиме. XwinInfo производят:
xwininfo: Window id: 0x1200086 "rainlendar2" Window manager hints: Client accepts input or input focus: Yes Initial state is Normal State Displayed on all desktops Window type: Dock Window state: Skip Pager Skip Taskbar Below Sticky
То, как это переводит во флаги Gtk +/Gdk, видно. Но кажется, что неподвижность играет роль.