Клавиша 'd' в VNC Viewer сводит к минимуму все окна

Я запускаю vnc4server в окне Ubuntu 10.10 и подключаюсь к нему с машины Ubuntu 8.04 с помощью TightVNC Viewer 1.3.9. Я не могу вводить ничего с символом d в сеансе VNC, так как d приводит к минимизации всех окон.

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

Выход xev приведен ниже. Он включает в себя два нажатия кнопки d, поскольку первое нажатие сводит к минимуму все окна. Я не знал, что сохранить и что удалить, поэтому этот вывод включает в себя все, начиная с первого нажатия клавиши до того, как окна вернулись к второму нажатию клавиши:

 FocusOut event, serial 29, synthetic NO, window 0xa00001, mode NotifyGrab, detail NotifyAncestor FocusOut event, serial 29, synthetic NO, window 0xa00001, mode NotifyWhileGrabbed, detail NotifyNonlinear FocusIn event, serial 29, synthetic NO, window 0xa00001, mode NotifyWhileGrabbed, detail NotifyPointer KeymapNotify event, serial 29, synthetic NO, window 0x0, keys: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LeaveNotify event, serial 29, synthetic NO, window 0xa00001, root 0x2e, subw 0x0, time 581275388, (100,64), root:(111,572), mode NotifyNormal, detail NotifyAncestor, same_screen YES, focus YES, state 0 UnmapNotify event, serial 29, synthetic NO, window 0xa00001, event 0xa00001, window 0xa00001, from_configure NO PropertyNotify event, serial 29, synthetic NO, window 0xa00001, atom 0xc7 (WM_STATE), time 581275388, state PropertyNewValue PropertyNotify event, serial 29, synthetic NO, window 0xa00001, atom 0xae (_NET_WM_STATE), time 581275388, state PropertyNewValue MapNotify event, serial 29, synthetic NO, window 0xa00001, event 0xa00001, window 0xa00001, override NO VisibilityNotify event, serial 29, synthetic NO, window 0xa00001, state VisibilityUnobscured Expose event, serial 29, synthetic NO, window 0xa00001, (0,0), width 178, height 10, count 3 Expose event, serial 29, synthetic NO, window 0xa00001, (0,10), width 10, height 58, count 2 Expose event, serial 29, synthetic NO, window 0xa00001, (68,10), width 110, height 58, count 1 Expose event, serial 29, synthetic NO, window 0xa00001, (0,68), width 178, height 110, count 0 EnterNotify event, serial 29, synthetic NO, window 0xa00001, root 0x2e, subw 0x0, time 581276874, (100,64), root:(111,572), mode NotifyNormal, detail NotifyAncestor, same_screen YES, focus NO, state 0 KeymapNotify event, serial 29, synthetic NO, window 0x0, keys: 4294967283 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PropertyNotify event, serial 29, synthetic NO, window 0xa00001, atom 0xc7 (WM_STATE), time 581276874, state PropertyNewValue PropertyNotify event, serial 29, synthetic NO, window 0xa00001, atom 0xae (_NET_WM_STATE), time 581276874, state PropertyNewValue FocusIn event, serial 29, synthetic NO, window 0xa00001, mode NotifyWhileGrabbed, detail NotifyNonlinear KeymapNotify event, serial 29, synthetic NO, window 0x0, keys: 68 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FocusOut event, serial 29, synthetic NO, window 0xa00001, mode NotifyUngrab, detail NotifyPointer FocusIn event, serial 29, synthetic NO, window 0xa00001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 29, synthetic NO, window 0x0, keys: 4294967214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

Сейчас проблема решена. Я сделал глупое предположение, что привязки клавиш были глобальными, когда на самом деле они предназначены для каждого пользователя. Я изменил связывание ключей, зарегистрированное как root, но выполнил вход в сеанс VNC, созданный другим пользователем. Ярлык «Скрыть все обычные окна …» был установлен для Mod4 + D для этого пользователя. Стандартное решение – изменение его на что-то другое, например Ctrl + Alt + D - исправить проблему.

Также вы можете использовать openbox в качестве диспетчера окон вместо метаданных для сеансов VNC.
Ярлыки Metacity не будут работать, а Mod4 + D ничего не сломает.

Поэтому я видел тот же вопрос, заданный на 5 разных сайтах stackexchange, и все ответы говорят просто удалить горячую клавишу, которая работает, но не является корнем проблемы (по крайней мере, это было не для меня). Реальная проблема заключается в том, что суперкластер Windows не отображается правильно, как описано здесь:

i3 игнорирует mod4 (ключ окна), когда в сеансе VNC

В основном просто выполните эти две команды

 xmodmap -e "clear mod4" xmodmap -e "add Mod4 = Super_L" 

Это должно сделать это. Теперь рабочий стол должен отображаться только в том случае, если вы также удерживаете клавишу super (windows). Клавиша «d» (и другие клавиши с супер-ярлыками) теперь должна работать как ожидалось.

Возможно, вам придется заменить Super_L чем-то другим в зависимости от вашей клавиатуры, проверьте ссылку выше для получения более подробной информации.