Keyboard shortcuts (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Keyboard shortcuts. Дата последней синхронизации: 14 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

В этой статье приведен список (не общеизвестных) стандартных сочетаний клавиш и предоставляется информация о пользовательской настройке.

Стандартные сочетания клавиш

Ядро (SysRq)

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

Подробнее: Wikipedia:Magic SysRq key

Включение

В systemd битовая маска разрешений sysrq по умолчанию установлена на 0x10, что не позволяет, в частности, отправлять процессам сигналы или перезагружаться. Чтобы разрешить полное использование sysrq в вашей системе, добавьте kernel.sysrq = 1 в конфигурацию sysctl. Значения больше 1 могут использоваться для выборочного включения функций sysrq; подробности описаны в документации ядра. Если хотите убедиться, что они будут включены даже до монтирования разделов и перед initrd, добавьте sysrq_always_enabled=1 в параметры ядра.

Обратите внимание, что изменение этих настроек является постоянным. Если вы хотите изменить параметры sysrq только для текущего сеанса, можно использовать sysctl kernel.sysrq=1 или echo "1" > /proc/sys/kernel/sysrq.

Полное включение sysrq связано с некоторыми очевидными рисками безопасности. Помимо принудительных перезагрузок и тому подобного, sysrq может использоваться для дампа содержимого регистров процессора, что теоретически может раскрыть конфиденциальную информацию. Поскольку для его использования требуется физический доступ к системе (если только вы не вынесете управление sysrq за её пределы), большинство пользователей настольных компьютеров, вероятно, сочтут уровень риска приемлемым. Тем не менее, прежде чем включить sysrq, убедитесь, что вы полностью понимаете последствия его использования и динамику контекста, в котором работает ваша система.

Перезагрузка

Общая идиома для запоминания этих сочетаний клавиш - "Reboot Even If System Utterly Broken" (сокращенно "REISUB"). Кроме того, подумайте об этом наоборот "BUSIER".

Примечание: Имейте в виду, что "REISUB" — это просто мнемоника, а не какая-то общая рекомендация по нажатию клавиш для возвращения контроля над зависшей системой. Не следует слепо нажимать эти сочетания без понимания, что они делают.
Сочетание клавиш Описание Код для включения Другие включаемые функции
Alt+SysRq+r Unraw Забирает клавиатуру от X для управления. 4 Alt+SysRq+k SAK
Alt+SysRq+e Terminate Отправляет SIGTERM всем процессам. Этот сигнал запрашивает завершение процесса, но он может быть проигнорирован. 64 Alt+SysRq+f OOM kill
Alt+SysRq+j Thaw
Alt+SysRq+i Kill Отправляет SIGKILL всем процессам. Этот сигнал вызывает немедленное завершение процесса.
Alt+SysRq+s Sync Сбрасывает данные на диск. 16 -
Alt+SysRq+u Unmount Монтирует все файловые системы только для чтения. 32 -
Alt+SysRq+b Reboot Перезагружает 128 -

Например, чтобы выборочно включить только функцию перезагрузки, установите kernel.sysrq в 128. Весь набор функций REISUB можно включить, установив значение 244, хотя это также включает дополнительные функции, перечисленные в последнем столбце таблицы. Дополнительную документацию смотрите в документации ядра и в исходном файле ядра /drivers/tty/sysrq.c.

Завершение процесса, занимающего много памяти

Можно использовать Alt+SysRq+f для вызова OOM (out-of-memory) killer, не вызывая паники ядра, если ничего не может быть убито. OOM killer использует набор эвристик, чтобы выбрать не очень важный процесс, использующий больше всего памяти, и убить его. Это очень полезно для завершения процесса, который заблокировал вашу систему, например, запущенный скрипт браузера, и во многих случаях может избавить от необходимости перезагрузки. Обратите внимание, что OOM killer может быть нацелен на широкий спектр процессов, несмотря на его благонамеренную эвристику, и может быть несколько непредсказуемым, поэтому будьте осторожны с его вызовом.

Решение проблем

  • Если вы используете экранный менеджер и после Alt+SysRq+e появляется экран входа в систему (или рабочий стол, если включен автовход), скорее всего это вызвано директивой Restart=always в соответствующем файле службы. Если нужно отредактируйте юнит, однако это не должно препятствовать работе последовательности "REISUB".
  • Если все вышеперечисленные комбинации работают, кроме Alt+SysRq+b, попробуйте использовать контралатеральную клавишу Alt.
  • На ноутбуках, использующих клавишу Fn для переключения SysRq/PrtScrn, на самом деле не обязательно использовать Fn (например, Alt+PrtSc+буква должно работать).
  • На ноутбуках Lenovo клавиша SysRq часто настроена как Fn+S. Чтобы использовать ее нажмите и держите Alt, затем нажмите Fn+s, отпустите Fn и s все еще удерживайте Alt, а затем нажмите необходимую клавишу-букву.
  • Вам может потребоваться нажать Ctrl вместе с Alt. Так например, полное сочетание клавиш будет таким: Ctrl+Alt+SysRq+b.

Консоль Linux

Смотрите Консоль Linux#Горячие клавиши.

Xorg и Wayland

Сочетание клавиш Описание Примечание
Ctrl+Alt+F1, F2, F3, ... Переключиться на n-ную виртуальную консоль Если это не работает, попробуйте Ctrl+Fn+Alt+F….
Shift+Insert
Mouse Button 2
Вставить текст из буфера PRIMARY По умолчанию Shift+Insert Qt соответствует CLIPBOARD вместо буфера PRIMARY (посмотрите, например, [1]) и Ctrl+Shift+Insert - буферу PRIMARY.

Настройка

Readline

Readline — это широко используемая библиотека для редактирования строк; она используется, например, в Bash, FTP и многих других программах (больше примеров можно посмотреть в разделе "Required By" в описании пакета readline). Она имеет Emacs-подобные и vi-подобные режимы редактирования, которые можно настроить с помощью управляющих последовательностей. Стандартные сочетания клавиш описаны в readline(3) и документации Info.

Zsh

Zsh использует ZLE для виджетов, скриптов и команд.

Xorg

Чтобы узнать некоторые общие сочетания клавиш, которые по умолчанию отключены, смотрите Конфигурация клавиатуры в Xorg#Часто используемые опции XKB.

Когда мы находимся в графическом окружение, мы можем захотеть выполнить команду при нажатии определенной комбинации клавиш (то есть привязать команду к keysym). Существует несколько способов сделать это:

  • Самый портативный способ. Использование инструментов низкого уровня, таких как acpid. Не все клавиши поддерживаются, но конфигурация в унифицированном виде возможна для клавиш клавиатуры, подключения адаптера питания и даже для подключения/отключения наушников. Также трудно запускать программы внутри X сеанса правильно.
  • Универсальный способ. Использование утилит Xorg (например, xbindkeys) и, в конечном итоге, инструментов вашего окружения рабочего стола или оконного менеджера.
  • Более быстрый способ. Использование сторонних программ, где все можно сделать в GUI, таких как Gnome Control Center.

sxhkd

Простой демон X hotkey с мощным и компактным синтаксисом конфигурации. Для получения дополнительной информации смотрите sxhkd.

actkbd

С домашней страницы actkbd:

actkbdAUR (доступно в AUR) - простой демон, который связывает действия с событиями клавиатуры. Он распознаёт сочетания клавиш и может обрабатывать события нажатия, удержания и отпускания. В настоящее время он поддерживает только интерфейс linux-2.6 evdev. Он использует текстовый файл конфигурации, который содержит все привязки.

Образец конфигурации и руководство по настройке можно найти здесь.

xbindkeys

xbindkeys позволяет расширенное сопоставление клавиш с действиями независимо от окружения рабочего стола.

Совет: Если вы находите xbindkeys сложным в использование, попробуйте графический менеджер xbindkeys_config-gtk2AUR из AUR.

Среды рабочего стола

Оконные менеджеры

Сочетание клавиш для X-selection-paste

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Shift+Insert вставляет в буфер PRIMARY. (Discuss in Talk:Keyboard shortcuts (Русский))

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Почему задержка 100ms? (Discuss in Talk:Keyboard shortcuts (Русский))

Пользователи, которые предпочитают работать скорее с клавиатурой, чем с мышью, могут извлечь выгоду из сочетаний клавиш к операции вставки средней кнопки мыши. Это особенно полезно в среде, которая управляется клавиатурой. Пример работы:

  1. В Firefox выберите строку, которую вы хотите использовать для Google (с помощью мыши).
  2. Нажмите Ctrl+k , чтобы ввести поле "поисковая система".
  3. Нажмите F9, чтобы вставить буфер, вместо того, чтобы перемещать указатель мыши в поле и щелкать по колесику для вставки.
Примечание: Shift+Insert имеет сходную, но другую функциональность, для получения дополнительной информации смотрите #Xorg: Shift+Insert вставляет буфер clipboard, а не x-selection-paste. В некоторых приложениях эти два буфера зеркалируются.

В предлагаемом здесь способе используются следующие три пакета:

  • xsel для предоставления доступа к содержимому буфера the x-selection-buffer.
  • Xbindkeys для связывания клавиши к действию.
  • xvkbdAUR для передачи буферной строки в приложение путем эмуляции ввода клавиатуры.

В этом примере операция x-selection-paste связывается с клавишей F9:

.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null"
    F9

Префикс кода "\D1" устанавливает задержку 100 мс для вставки буфера (для получения дополнительной информации смотрите домашнюю страницу xvkbd).

Примечание: В зависимости от ваших настроек X вам может потребоваться убрать аргумент -xsendevent для xvkbd.

Коды клавиш отличных от F9 можно определить с помощью xbindkeys -k.

Связанные с этим ссылки:

Оконный менеджер XMonad

В оконном менеджере xmonad есть встроенная функция для вставки содержимого x-selection-buffer. Чтобы связать эту функцию с клавишей (здесь с Insert) , можно использовать следующие настройки:

xmonad.hs
import XMonad.Util.Paste
...
  -- X-selection-paste buffer
  , ((0,                     xK_Insert), pasteSelection) ]

Советы и рекомендации

Смотрите также