Перепривязка / отключение CTRL + ALT + F # Виртуальный терминал / Коммутация консоли


21

У меня есть приложение , которое связывает CTRL+ ALT+ F7, но моя машина Linux , кажется, поймать нажатие клавиши.

Есть ли способ перепривязать / отключить этот ключ? Перекомпиляция ядра - приемлемый ответ.

Рассматриваемые дистрибутивы: Fedora 16 и Ubuntu 11.10.


У меня нет конкретных советов, но я думаю, что CTRL + ALT + Fn связан только с системой X-Windows, что ядро ​​никак не связано с ним, и что вам, вероятно, повезет больше пытаясь настроить конфигурацию X11.
njsg

@njsg Вы можете использовать одни и те же клавиши для переключения с X11 на vt и для переключения назад (также между vt), поэтому они должны быть одинаково связаны с vt.
Фолькер Сигел

Ответы:


10

Поместите это в свой /etc/X11/xorg.confфайл, чтобы отключить переключение VT с помощью Ctrl+ Alt+ Fn:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Вам также потребуется следующее для передачи событий клиентам, подключенным к дисплею:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

(Этот последний бит не проверен, обратитесь к его источнику .)


Это не передает комбинацию в окно, X все еще ловит ее.
Jes

2
После нескольких месяцев работы с Windows я наконец-то проверил это на Lubuntu 12.04, где окно IntelliJ IDEA по-прежнему не улавливает нажатие клавиши.
Jes

2
Использование двух настроек было для меня как обязательным, так и для меня. (на санто). Ctrl-Alt-F7 теперь показывает встроенные использования в intellij :).
Роб Доусон

3
Если вы используете Intellij и хотите использовать CTL+ALT+F7для «Показать использование», в Lubuntu 15.04 по умолчанию используется ярлык по умолчанию CTL+ALT+7. Вам нужно будет изменить его обратно, CTL+ALT+F7если вы хотите поддерживать совместимость с другими ОС.
Сяо Пэн - ZenUML.com

1
Просто чтобы подтвердить, что это работает и во FreeBSD 11.
gsl

15

Следующий вызов команды X11 setxkbmapотключает переключение консоли / виртуального терминала Ctrl-Alt-Fn:

setxkbmap -option srvrkeys:none

Чтобы вернуться к предыдущему поведению клавиш ctrl-alt-Fn, а также удалить все другие параметры, такие как caps:ctrl_modifier:

setxkbmap -option ''

Для печати текущих настроек используйте setxkbmap -print.

Чтобы вызвать пользователя, поместите команду в файл ~ / .xinitrc.

Чтобы вызвать при запуске Xsession, создайте файл в

/etc/X11/Xsession.d

такие как

/etc/X11/Xsession.d/65srvrkeys-none

содержащий указанную выше setxkbmapкоманду, и сделать ее исполняемой с sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

Для получения дополнительной информации введите man setxkbmapв командной строке или см. Справочную страницу Xorg setxkbmap .

Я проверял это с KDE на Ubuntu 14.04 LTS (Trusty). Эти настройки также доступны в Системные настройки> Устройства ввода> Клавиатура> Дополнительно. Если вы измените srvrkeysнастройки GUI, он сразу же появится setxkbmapи наоборот.

Я предпочитаю модифицировать систему X Window через интерфейсы командной строки X11. Если это не сработает, я пытаюсь использовать рабочую среду. В крайнем случае я бы изменил файлы конфигурации системы. Реализации и форматы файлов меняются, но интерфейсы командной строки почти всегда живут в традициях Unix / Linux.


Спасибо, @RobertL. Мои надежды были высоки, но нет, похоже, это никак не повлияет на мои установки Debian jessie и Ubuntu 14.04. Ctrl-Alt-F7 и Ctrl-Alt-F8 по-прежнему переключаются между виртуальным терминалом и обратно. У меня также нет этого пункта меню «Системные настройки»> «Устройства ввода»> ... Возможно, это вещь KDE? Я использую GNOME или то, что по умолчанию в Ubuntu.
Glts

Я пробовал несколько способов, и этот был единственным, который работает в Lubuntu 16.04, он работает, когда я вошел в систему. Знаете ли вы, как заставить его работать на экране приветствия lxdm? (в Ubuntu с Lightdm работает).
J.Serra

1
Работает на Linux Mint 18. Спасибо.
Хоанг Тран

1
Это работает для меня на Debian 8 (Джесси). ПРИМЕЧАНИЕ. Я проверял только командную строку setxkbmap -option srvrkeys:none. Я помещаю запись в файл в /etc/X11/Xsession.d/65srvrkeys-none. И хотя я еще не вышел из системы и не вернулся, я предполагаю, что она будет работать нормально.
MikeyE

1
У меня отлично работало на Debian Buster; как @MikeyE Я еще не вышел (и, вероятно, не буду делать это через пару недель / месяцев ;-), ноsetxkbmap approach did the trick. Much appreciated!
Per Lundberg

1

Вы можете отключить это, зайдя в Настройки системы -> раскладка клавиатуры -> опция. в разделе «Прочие параметры совместимости» установите флажок «специальные ключи Ctrl+ Alt+ <key>обрабатываются на сервере».

Я проверил это, и Ubuntu не ловит любую комбинацию Ctrl+ Alt+ .... но до сих пор идея не улавливает Ctrl+ Alt+ F7и проблема все еще выходит !!!.


Вы правы, Ubuntu не ловит его, но я подозреваю, что X-сервер делает это.
Jes

3
Ура! Выяснил, что по умолчанию в Ubuntu IDEA обрабатывает Ctrl + Alt + 7 вместо F7 !
o_nix

0

В Ubuntu 18.04 вам нужно создать следующий файл:

/usr/share/X11/xorg.conf.d/65-setxkbmap

с этим содержанием:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

затем перезагрузите вашу систему.


За исключением имени файла, это было предложено в принятом ответе.
Ральф Фридл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.