Как я могу связать сочетание клавиш с вкладкой

772
Davor Cubranic

Я хотел бы повторно связать ярлык следующей / предыдущей вкладки в терминале XFCE с Ctrl+ PgDn/ PgUpдо Ctrl+ Tab/ Ctrl+ Shift+ Tab. Кажется, он не работает, редактируя accels.scmили изменяя ярлык в интерактивном режиме, наводя курсор на меню и нажимая нужную комбинацию клавиш.

Для этого отлично работают другие клавиши, это просто ярлыки, Tabкоторые являются проблемой. Я предполагаю, что они особенные для GTK и даже не доходят до приложения. Есть ли способ переопределить это?

1

1 ответ на вопрос

1
clearkimura

Вы не можете использовать клавишу Tab для ярлыков, по крайней мере, в Xfce Terminal.

Прямые ответы

[...] проблема заключается только в ярлыках, включающих Tab. Я предполагаю, что они особенные для GTK и даже не доходят до приложения.

Ваше предположение верно. Ограничение действительно относится к прикладным программам GTK +, и Xfce Terminal является одной из них. И это не только сочетания клавиш, которые включают клавишу Tab, но также несколько других клавиш, например PageUp, PageDown, F10, которые нельзя использовать по отдельности (без клавиши-модификатора).

Есть ли способ переопределить это?

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

Объяснено авторами

Во-первых, существует устаревшая ошибка 3524, сообщающая, что «Сочетания клавиш на следующей / предыдущей вкладке ничего не делают». Наиболее актуальный комментарий был приведен ниже.

[Комментарий 9: Ник Шермер 2009-10-10 13:49:08 CEST]

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

Во-вторых, в « Переполнении стека» есть пост с просьбой «PyGTK: Разрешить использование Tab в AccelGroup». Соответствующая часть вопроса приведена ниже.

При использовании gtk.AccelGroup любая комбинация с символом Tab недопустима. Теперь я понимаю, что навигация по пользовательскому интерфейсу осуществляется с помощью этого ключа [...]

Объяснено документацией

Что касается «навигации по пользовательскому интерфейсу с использованием этой клавиши», в документации разработчика GNOME отмечена проблема в теме ввода с клавиатуры, как указано ниже.

Клавиатурная навигация

[...] Tabявляется стандартным ключом для перемещения по интерфейсу с GTK + и GNOME.

Кроме того, ярлыки, использующие клавишу Tab, имеют специальные функции.

Стандартные навигационные клавиши

Tabи Shift+ Tab Перемещает фокус клавиатуры на следующий / предыдущий элемент управления

Ctrl+ Tabи Shift+ Ctrl+ Tab Перемещает фокус клавиатуры из виджета включения в следующий / предыдущий элемент управления, в тех случаях, когда одна вкладка имеет другую функцию

Ctrl+ Tabи Shift+ Ctrl+ Tab Перемещает фокус клавиатуры на следующую / предыдущую группу элементов управления

Так что более ранние комментарии имеют смысл сейчас.

Исправленный ответ (2017.04.04)

Несмотря на вкладку Tab распознается как ^Iв командной строке для завершения вкладки, она имеет наименьшее значение, так как не может использовать клавишу Tab в качестве ярлыка в графических прикладных программах.

Почему клавиша Tab не может использоваться как ярлык? Причина была проста: клавиша Tab и ее сочетания клавиш зарезервированы для GTK + и GNOME.

Несмотря на то, что GNOME Terminal через GSettings позволяет использовать клавиши быстрого доступа для ярлыков, не существует эквивалентного хака для Xfce Terminal через Xfconf к этой дате ответа.

Да, Tab интерпретируется оболочкой, но ваше длинное объяснение не отвечает на мой вопрос: почему Ctrl + Tab нельзя использовать в качестве ярлыка? Davor Cubranic 7 лет назад 1
Похоже, я не полностью понял вопрос. Так что это может быть проблема Xfce или GTK +. Необходимо исследовать дальше, прежде чем пересматривать ответ. clearkimura 7 лет назад 0
Пересмотрел мой ответ. Хотя причина была проста, я не мог найти простой ответ. Мне пришлось цитировать текст из нескольких источников, что в любом случае делает мой ответ длинным. clearkimura 7 лет назад 0
Спасибо за обновление: вы правы, именно GTK резервирует комбо Tab в ускорителях, поэтому приложения не могут использовать его без хитростей (как это делает Pidgin): https://bugzilla.gnome.org/show_bug.cgi ? ID = 123994. Davor Cubranic 7 лет назад 0
Кроме того, кто-то нашел обходной путь с использованием gnome-терминала "Вкладка «а»Вкладка ": https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/162000/comments/13. Может быть, что-то подобное можно использовать и в xfce-терминал, интересно? Davor Cubranic 7 лет назад 1
Вы можете запустить `xfconf-query -l`, чтобы увидеть, есть ли в Xfce Terminal какая-либо выделенная конфигурация. Там, кажется, нет. clearkimura 7 лет назад 0