Аномальные запросы терминала после переключения рабочих пространств (например, ;7A)

Я думаю, что первый ответ слишком -усложнил вопрос, поэтому давайте попробуем еще раз, используя /org/cinnamon/в качестве примера пространства имен для резервного копирования и восстановления:

В резервную копию /org/cinnamon/:

Из терминала запустите:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

сохраните файл backup_of_my_cinnamon_settingsгде-нибудь на потом

Чтобы сбросить настройки /org/cinnamon/ по умолчанию:

dconf reset -f /org/cinnamon/

Обратите внимание, корица может зависнуть или вылететь при этом

Чтобы восстановить все настройки для /org/cinnamon:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Процесс будет таким же для /org/gnome/terminal/и т. д.

Для достижения наилучших результатов обновляйте ссылки на приложения, когда они не запущены.

Спасибо Cinnamon docs за советы.

1
26.03.2020, 22:58
1 ответ

Вы правы, это от нажатия Ctrl + Meta + Up/Down . Терминал отправляет escape-последовательности для представления функциональных клавиш и комбинаций модификаторов; см. Как работает ввод с клавиатуры и вывод текста? для обзора и Существуют ли какие-либо терминалы Linux, которые могут обрабатывать все комбинации клавиш? для получения более подробной информации, относящейся к этому конкретному случаю.

Zsh не может узнать, что определенные нажатия этой клавиши незаконны. Ошибка либо в вашем оконном менеджере (, либо в той части среды вашего рабочего стола, которая обрабатывает привязки клавиш Ctrl + Meta + Up/Down ). ] или в эмуляторе терминала. Вероятно, не в эмуляторе терминала, потому что он вообще не должен видеть эти нажатия клавиш :, они должны быть захвачены программой, которая настроила их как сочетания клавиш.

Лучшее, что вы можете сделать, это настроить обходной путь с помощью zsh :добавить привязку клавиш для этих последовательностей клавиш, которая ничего не делает. Это повлияет только на zsh, а не на другие приложения, работающие в терминале. Полная последовательность символов: ␛[1;7Aдля Ctrl + Meta + Up и ␛[1;7Bдля Ctrl + Meta + Вниз где ␛ — escape-символ (значение байта 27 ). Вы можете увидеть это, нажав Ctrl + V , а затем нажатие клавиши в zsh (escape-символ отображается как ^[на терминале ). По умолчанию zsh читает ␛[1, видит, что эта управляющая последовательность не привязана, и прекращает чтение здесь, а затем обрабатывает следующие символы как обычные вставки (невозможно узнать, когда заканчивается последовательность клавиш, кроме как в случае случай основа ).

bindkey -s '\e[1;7A' ''
bindkey -s '\e[1;7B' ''
0
19.03.2021, 02:32

Теги

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