Есть ли способ использовать позицию сочетания клавиш QWERTY, когда раскладка Dvorak активна?

Я - пользователь макета Dvorak, и я доволен переключателем. Я избежал недостатка "отменить / вырезать / копировать / вставить" (z,c,x и v значительно отличаются друг от друга в макете Dvorak) в Windows с помощью средства создания макетов клавиатуры Microsoft для сопоставления сочетаний клавиш с их аналогами qwerty, но это ошибка мне, что я не могу сделать то же самое в Ubuntu/Linux, хотя он имеет более продвинутую структуру ввода.

Предполагается, что dvorak-querty выполнит это, но у меня не работает.

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

Итак, могу ли я что-нибудь сделать, не дожидаясь (годами) исправления ошибок, например, написать пользовательскую раскладку клавиатуры или плагин ibus?

Разъяснение (еще один способ поставить мой вопрос)

Есть ли способ использовать позицию сочетания клавиш QWERTY, когда раскладка Dvorak активна? Например, чтобы "Скопировать", я должен нажать Ctrl+I (позиция "I" на QWERTY - это "C" на Дворжаке, что является неловким натяжением), затем для "Вставить" я должен нажать Ctrl +, (еще одна неловкая позиция). Я хочу нажать Ctrl+C и Ctrl+V. В настоящее время я использую ярлыки в старом стиле, которые я выучил из DOS-эры, Shift-Del для вырезки и Ctrl+Insert для копирования...

4 ответа

Моя первая попытка состояла в том, чтобы заставить клавиши управления действовать одновременно как Control и как средство выбора третьего уровня, затем определить раскладку клавиатуры с Dvorak на уровнях 1 и 2 и Qwerty на уровнях 3 и 4. Это не представляется возможным в XKB, тем не мение. Кроме того, комментарии в источнике программы dvorak-qwerty, которую вы связали, утверждают, что

Несмотря на то, что можно определить макет XKB, который реализует Dvorak-Qwerty, при этом выявляется удручающее количество ошибок по всем направлениям в приложениях X. Поскольку каждое X-приложение несет ответственность за интерпретацию самой раскладки клавиатуры, а не за то, чтобы X-сервер выполнял эту работу, различные структуры GUI на самом деле имеют тенденцию иметь разные ошибки, которые возникают при использовании такой раскладки. Исправить их все было бы невозможно.

Ваш лучший выбор, вероятно, состоит в том, чтобы заставить работать хакер dvorak-qwerty. Большинство из того, что я собираюсь написать, вы, наверное, знаете. Источник говорит, чтобы скомпилировать его с

gcc xdq.c -o xdq -std=c99 -O2 -lX11

затем запустить его с

./xdq

или укажите абсолютный путь, чтобы вы могли поместить его в элементы автозагрузки.

Когда я запустил программу, я получил следующее предупреждение:

Не удалось получить 35 комбинаций клавиш. Вероятно, это связано с тем, что некоторые горячие клавиши уже захвачены системой. К сожалению, эти общесистемные горячие клавиши не могут быть автоматически переназначены этим инструментом. Тем не менее, вы можете настроить их вручную.

Тем не менее, я проверил это с ^W, ^Q, ^C, ^X, а также ^V и это сработало, как и ожидалось. Если вы хотите, чтобы он захватил другие модификаторы (ALt+Ctrl а также Super) комбинации, которые система уже использует для других целей, добавьте -DXQD_GREEDY (не -DXDQ_GREEDY как говорит источник) к команде компиляции.

Если не удалось скомпилировать с ошибкой

xdq.c:87:22: фатальная ошибка: X11/Xlib.h: компиляция такого файла или каталога не прекращена.

тогда вам следует установить пакет libx11-dev с

sudo apt-get install libx11-dev

Если программа не работает, дайте мне знать, и мы можем попытаться решить ее.

ТЛ; др

Вам нужно отключить NumLock.

объяснение

dvorak-querty работает, "захватывая" (больше похоже на "воровство") комбинации клавиш из других программ. Комбинации, которые включают определенные модификаторы (Control, Control+Shift, Alt и Alt+Shift), украдены, "qwerty'd" и возвращены в исходную программу.

Проблема в том, что эти и только те являются единственными комбинациями модификаторов, которые украдены. Другие модификаторы, такие как CapsLock и NumLock, не украдены.

Поэтому, если у вас активен NumLock и вы нажали Ctrl+C, dvorak-qwery будет "воспринимать" NumLock+Ctrl+C и, следовательно, не крадет его.

Поэтому отключите любые дополнительные неявные модификаторы, которые вы видите на клавиатуре.

Альтернативное решение

Если вы хотите запустить dvorak-qwerty и одновременно включить NumLock, вы можете попробовать мою версию кода (см. Аргументы)

:)

Много лет спустя я все еще использую AutoKey на X11 с отдельными сопоставлениями клавиш. Грустный.

Для тех, кто рассматривает этот вопрос спустя 7 лет и далее, вот что сработало для меня (кодирование не требуется!):

  • Загрузите https://github.com/ZeptByteS/dvorak-qwerty/tree/develop в виде zip-файла
  • расстегнуть молнию
  • Запустите sudo./install.sh
  • (Ubuntu) Зайдите в Настройки / Регион и язык / Источники ввода
  • Нажмите кнопку плюс
  • Выберите английский (США)
  • Выберите любой английский (Dvorak-Qwerty) макет, вкус, который вы предпочитаете
  • Теперь переключите раскладку клавиатуры на вновь добавленную раскладку.

Изображения и как применить Dvorak Qwerty для других основных ОС доступны здесь

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