Keyboard shortcuts (Русский) - ArchWiki

Jump to content
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.

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

- LXDE (Русский)#Горячие клавиши
- Xfce (Русский)#Сочетания клавиш

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

- Fluxbox#Keyboard shortcuts
- Openbox (Русский)#Сочетания клавиш
- i3 (Русский)#Назначение клавиш

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

The factual accuracy of this article or section is disputed.

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

This article or section needs expansion.

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`.

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

- Вставка содержимого X (не буфера обмена) клавиатурой
- домашняя страница xvkbd

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

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

    xmonad.hs

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

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

- Если вам нравится работать с клавиатурой, вы также можете оценить фреймовые оконные менеджеры.

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

- Руководство администратора для новичков Linux - сочетания клавиш и команды (англ)
- Клавиатура и консоль Linux HOWTO (англ)

Categories:

- Keyboard configuration (Русский)
- X server (Русский)
- Accessibility (Русский)

Hidden categories:

- Pages or sections flagged with Template:Accuracy
- Pages or sections flagged with Template:Expansion