Создайте Окно Gtk, нечувствительное для Показа Рабочего стола, и не покажет в Средстве запуска

Я хочу сделать Gtk. Окно, которое прикрепляется к Рабочему столу и действует как настольный виджет. Я нашел, что могу сделать это путем установки self.set_type_hint(Gdk.WindowTypeHint.DESKTOP) который сохраняет его ниже всех окон, неподвижных и нечувствительных для Показа Настольного плагина Единицы. Однако при нажатии на настольную область за пределами виджета окно скрыто позади рабочего стола, и я не могу вернуть его (я должен закрыть программу).

Что лучший способ состоит в том, чтобы обработать это? Там другой устанавливает? Я нашел, что могу также заставить окно игнорировать Выставочные Настольные команды, если я установил skip_taskbar, подсказывают и деактивируют установку в compiz, но я не слонялся бы без дела с compiz настройками людей для получения этого эффекта.

Править: Вычисленный проигнорировать Выставочный Рабочий стол (см. ниже), но все еще не может заставить это пропускать панель Средства запуска. Подсказка окна DESKTOP работала на это, но упомянула выше недостатки. Я также играл вокруг с установкой WM_CLASS в .desktop файле, но Единица, кажется, игнорирует это.

7
задан 26 February 2013 в 12:54

2 ответа

Понятый это... необходимо установить подсказку типа на Gdk.WindowTypeHint.DOCK затем также набор также skip_taskbar_hint ИЛИ skip_pager_hint.

ОТРЕДАКТИРУЙТЕ Это работает, но даже с skiptaskbar, окно все еще обнаруживается как значок в панели средства запуска. Мне нужен лучший путь....

EDIT2 Получила его! Проблема прибыла из других средств запуска в панели, имеющей тот же WMClass как программа, я пытался сделать Настольный Виджет. Для различения необходимо установить WMClass окна в рамках программы, а также в ее .desktop средстве запуска:

В коде:

Gtk.Window.set_wmclass(WMname,WMclass)

И в .desktop средстве запуска:

StartupWMClass=WMname
7
ответ дан 23 November 2019 в 06:33

У меня есть приложение, работающее, который делает точно, как Вы желаете: это - 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, видно. Но кажется, что неподвижность играет роль.

1
ответ дан 23 November 2019 в 06:33

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

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