Поменять сочетание клавиш копирования ubuntu в терминале citrix

Обновлено: 05.07.2024

Unity - довольно неплохая оболочка рабочего стола, у нее красивый внешний вид и минимальное количество настроек. Как раз то что нужно новичкам. Но если вы пользовались Unity, то наверное, заметили что, для того чтобы добраться к определенной функции или программе, необходимо совершить очень много действий мышью. Например, если вы хотите запустить ту или иную программу вам нужно открыть Меню запуска, набрать в поиске ее имя и т д. Это не всегда удобно.

Есть способ оптимизировать такое поведение - горячие клавиш Ubuntu. Вообще, сочетания клавиш Ubuntu, это отличный инструмент оптимизации рабочего процесса, запомнив один раз несколько комбинаций, вы будете делать различные действия намного быстрее.

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

Сочетания клавиш Ubuntu

Вообще, все основные горячие клавиши Ubuntu можно посмотреть при первом запуске Ubuntu. Система выдаст вот такое окно, в котором все подробно расписано:

Ubuntu-15-10-Keyboard-Shortcuts (1)

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

Оболочка

  • Super (Win) - Запустить или закрыть меню Dash
  • Super + 1 - 9 - Запустить или сделать активным приложение с панели Unity указанным номером.
  • Super + Shift + 1 - 9 - Запустить новую копию приложения с панели Unity
  • Super + T - открыть корзину
  • Alt + F1 - Установить фокус ввода на значок меню запуска приложений. Затем можно его открыть нажав Enter или перемещаться по панели Unity с помощью стрелок.
  • Ctrl + Alt + T - Запустить терминал
  • Зажать Super - показывает номера приложений на панели
  • Alt - открыть строку запуска приложений
  • ЛКМ - запустить приложения
  • ПКМ - информация о приложении
  • Ctrl+Tab - переход к следующей линзе поиска
  • Ctrl + Shift + Tab - переход к предыдущей линзе поиска
  • Alt+F2 - выполнить команду, можно вводить полный путь к программе.
  • Super + A - открыть поиск приложений
  • Super + F - открыть поиск по файлам и каталогам
  • Super + M - открыть поиск музыки
  • Super + V - открыть поиск видео

Панель

  • Alt + F10 - открыть меню первого элемента системного лотка. Перемещаться по элементам потом можно с помощью клавиш со стрелками.
  • Esc - закрыть меню без выполнения действий.

Управление окнами

  • Ctrl + Super + D - показать рабочий стол
  • Super + W - Показать окна со всех рабочих столов
  • Super + D - свернуть или развернуть все окна
  • Alt + Пробел - открыть меню окна
  • Alt + Tab - переключение между приложениями. Вы можете зажать Alt и нажимать Tab для переключения.
  • Alt + ` - показать превью программы при переключении по Alt + Tab.
  • Ctrl + Super + вверх - развернуть текущее окно на весь экран
  • Ctrl + Super + вниз - минимизировать или восстановить текущее окно.
  • Ctrl + Super + вправо - развернуть текущее окно вправо
  • Ctrl + Super + влево - развернуть текущее окно влево
  • Alt + F8 - изменить размер текущего окна
  • Alt + F4 - закрыть текущее окно
  • Alt + F7 - переместить текущее окно

Перемещение окон

  • Ctrl + Alt + Numpad 7 - Поместить окно в верхний левый угол
  • Ctrl + Alt + Numpad 8 - Поместить окно вверху по центру
  • Ctrl + Alt + Numpad 9 - Поместить окно в верхнем правом углу.
  • Ctrl + Alt + Numpad 5 - Поместить окно по центру экрана
  • Ctrl + Alt + Numpad 1 - Поместить окно в нижний левый угол
  • Ctrl + Alt + Numpad 2 - Поместить окно внизу по центру
  • Ctrl + Alt + Numpad 3 - Поместить окно в нижний правый угол
  • Ctrl + Alt + Numpad 0 - Свернуть текущее окно

Управление рабочей средой

  • Super + S - режим приборной доски, вы можете управлять всеми окнами на всех рабочих столах.
  • Shift + Alt + вверх - режим приборной доски только для текущего рабочего стола
  • Ctrl + Alt + вверх, вниз, вправо, влево - переключение между рабочими столами
  • Ctrl + Alt + L - заблокировать экран

Снимки экрана

  • PrtScr - сделать снимок экрана.
  • Alt + PrtScr - сделать снимок текущего окна.
  • Shift + PrtScr - сделать снимок области под мышкой.

Система

  • Ctrl + Alt + Delete - завершение текущей сессии
  • Ctrl + Alt + Backspace - перезапуск Х сервера

Настройка сочетаний клавиш Ubuntu

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

Откройте настройки системы:

ubuntu1

Выберите пункт Клавиатура:

ubuntu2

Перейдите на вкладку Комбинации клавиш:

ubuntu3

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

Запуск приложений и выполнение команд Ubuntu по сочетанию клавиш

Вот мы и подошли к тому о чем говорили в начале статьи. С помощью того же меню можно настроить горячие клавиши Ubuntu 16.04 для любого действия.

Для этого нажмите кнопку +:

ubuntu5

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

ubuntu4

Затем нажмите кнопку Применить. Дальше нажмите на надпись Выключено, чтобы задать сочетание клавиш, по которому будет выполняться эта команда.

ubuntu6

Готово, после выбора сочетания клавиш можете сразу проверить как это работает.

Узнать адрес исполняемого файла нужного приложения можно немного поэкспериментировав в терминале или посмотрев его ярлык в папке /usr/share/applications:

ubuntu7

Здесь найдите нужное приложение, сделайте на нем клик правой кнопкой мыши и выберите Свойства:

Здесь вы можете увидеть имя приложения, и команду для его запуска:

ubuntu9

Выводы

Теперь вы знаете все что нужно чтобы настроить и полноценно использовать в Ubuntu комбинации клавиш. Если у вас остались вопросы, пишите комментарии!

Я использую Kubuntu 10.04. Я хотел бы изменить некоторые стандартные сочетания клавиш для bash (терминал).

Вот ярлыки, которые я хотел бы установить:

Ctrl - C скопировать выделенный текст в терминале в буфер обмена.

Ctrl - V вставить из буфера обмена в терминал.

Ctrl - Z отменить редактирование текущей строки в терминале.

Ctrl - Shift - C (или даже лучше, Super - C ) прекратить команду.

Ctrl - Shift - Z (или Super - Z ) быть фоновой командой.

Ctrl - Shift - V (или Super - V ), чтобы быть буквальной командой вставки (или что-нибудь еще Ctrl - z делали раньше).

Как мне сделать эти изменения?

Кстати, мне нравится, как терминал работает в OS X. Использование клавиши командной строки делает все команды копирования / вставки очень согласованными (в отличие от многих других вещей в OS X).

PS Я прочитал справочную страницу bash, и это не помогло. Это дало мне идеи, но мне нужны конкретные примеры для вышеуказанных комбинаций. Благодарю.

некоторые из этих «горячих клавиш» не могут быть «реализованы» в bash, но должны быть помещены в сам терминал (xterm, gnome-терминал, консоль и т. д.), например, «выбранный текст», «буфер обмена»

Это не функции bash, это функции драйвера терминала. Как таковые, они указаны stty(1) .

OK. Спасибо за подсказку. Теперь я все еще хотел бы достичь своей цели. И я также знаю, что inputrc может переназначить Ctrl-C. Но мне действительно все равно, как я это делаю, я просто хочу узнать, как переназначить эти ярлыки в терминале. Вот «рыба»: stty intr \ ^ k (где команда завершения, ранее Ctrl-C теперь становится Ctrl-K, K может быть любой буквенной клавишей) Никто не «дал мне эту рыбу». Я упорно трудился , чтобы найти его самостоятельно. Итак, проповедь с пословицами заставляет вас выглядеть как придурок, ИМО.

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

Я решил, какой не числовой ключ я хочу заменить Ctrl-C в качестве команды завершения. (Я использовал "к"). Я никогда не находил никакой информации о том, как передать модификатор сдвига в stty, поэтому я отказался от этого. После этого я должен был ввести в командной строке следующее:

stty intr \ ^ k

Я проверил, что все работает как хотелось.

Теперь мне просто нужно было поместить одну вышеупомянутую команду (stty intr \ ^ k) в сценарий запуска. Я не уверен, какой из них "правильный". Я хотел бы, чтобы это изменение было системным и постоянным.

Любые предложения относительно того, в какой сценарий я должен поместить команду?

Вы когда-нибудь определяли, какой «правильный» скрипт запуска использовать, или лучший способ сделать это? Я борюсь с этой же проблемой (ваш оригинальный вопрос). Но хотя я могу заставить 'stty intr \ ^ k' связывать ctrl-k, он не отменяет привязку ctrl-c и ни 'stty intr undef', ни 'stty intr = ^ -' делают это, ctrl-c все равно отправляет прерывание , И 'stty -a' никогда не показывает никаких изменений, которые я сделал.

Некоторые из них могут быть установлены с помощью обычного механизма сочетания клавиш KDE. В меню «Настройки» Konsole нажмите «Настроить ярлыки», и вы получите диалоговое окно, которое можно использовать для изменения привязок клавиш для функций, которые обрабатываются KDE. Это позволит вам переназначить Ctrl + C для копирования и Ctrl + V для вставки - но имейте в виду, что после этого эти последовательности клавиш больше не будут передаваться на терминал, поэтому вы не сможете использовать Ctrl + C, чтобы прервать программу, например.

Другие функции контролируются readline библиотекой, которую вы можете настроить, отредактировав файл

/.inputrc . Чтобы получить Ctrl + Z, чтобы отменить любые изменения, сделанные в текущей строке, вы хотите добавить

но эта последовательность клавиш, вероятно, уже захвачена терминалом, поэтому вам, возможно, придется использовать ее, stty чтобы отсоединить, прежде чем она заработает. Сначала ищите ^Z в выводе stty -a (как показано в ответе Игнасио), а затем, например, если он появляется в susp = ^Z , запустите

чтобы открепить это сопоставление клавиш.

Другие изменения, о которых вы спрашиваете, должны быть сделаны, stty как говорит Игнасио, поскольку это терминальные функции, но я не совсем уверен, как именно. Проблема в том, что я не знаю, распознает ли терминал Shift или, если да, как передать эту информацию stty .

Bash использует emacs или vi режим в командной строке. Он не имеет понятия «выбор» или «буфер обмена». Он использует такие вещи, как «kill buffer» и «point», «mark», «word», «line», «kill» и «yank» и т. Д.

Попытка включить в него функциональность в стиле GUI будет в лучшем случае разочаровывающей и не будет работать полностью. Вы должны попытаться объединить функции stty , readline и ваш терминал (предположительно Terminal.app для вас). Вам нужно будет переназначить функции , такие как intr , susp , lnext и т.д., так что вы можете использовать свои возможности.

Я настоятельно рекомендую против таких радикальных модификаций. Он просто не предназначен для того, чтобы делать то, что вы хотите.

Дэйв, для системы, которая работает так же, как OS X, могу я предложить вам использовать OS X? Как намекнул Деннис, даже если вы сможете заставить его работать, вы будете довольно хромать, когда будете входить в систему как угодно, кроме вас на своей собственной машине. Я не могу поручиться за другие команды, но копирование и вставка имеют смысл в командном окне и очень удобны. Я использую их постоянно для копирования и вставки между другими окнами и консолью, и делал это в течение многих лет. Shift-Ctrl-C и Shift-Ctrl-V работают таким образом для Konsole из коробки. И хотя я делал это каждый день в течение многих лет, я неизбежно забывал и нажимал Ctrl-c в Konsole. Лично я готов прекратить применять пословицу «когда в Риме» и переназначить их, чтобы они работали, как практически КАЖДЫЕ из других существующих приложений.

Я запустил Ubuntu и изменил ярлык для копирования по умолчанию Ctrl + Shift + C на более обычный и простой Ctrl + C . Это , однако , заставил меня бежать в проблему не в состоянии послать команду прерывания ^ C .

Благодаря ответу @Paul я нашел команду запуска

Таким образом, в конечном итоге выполнение следующей команды (один раз) (в Ubuntu 18.04 и, вероятно, более) даст ожидаемое поведение каждый раз.

Наконец, стоит упомянуть, что вы не должны использовать K кнопку. Вы можете поменять букву k во всех приведенных выше командах на любой выбранный вами буквенный ключ.

Copy paste Linux

Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.

Буфер копирования

Стандартно для копирования и вставки объектов в Linux используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в обычный буфер копирования. Затем вы можете вставить этот текст в другом месте.

Буфер выбора (первичный буфер)

В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).

Кстати, именно этим объясняется следующие поведение. Вы выделили текст в программе, затем открыли другую программу и выделили какой-нибудь текст в ней. После этого, выделение текста в первой программе автоматически снимется, а текст который вы выделили последним, попадет в буфер выбора.

Копирование и вставка в терминале

В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.

Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.



Раньше, у меня довольно часто возникала такая ситуация, когда одновременно работаешь в терминале и, например, в браузере.
После нескольких часов работы начинаешь путаться и в терминале вместо [Ctrl]+[Shift]+[C] нажимаешь [Ctrl]+[C], а в браузере наоборот. В итоге в терминале вы получаете прерывание а в браузере вместо ожидаемого эффекта у вас медленно прогружается дебаггер.
В один прекрасный момент меня это достало и я решил, что пора что-то менять.

До того как я переустановил на своей рабочей машине OSX на Linux, я успел привыкнуть к довольно приятной реализации сочетаний клавиш. А точнее к тому, что все основные операции, такие как «Вырезать», «Копировать» и «Вставить», все они используют кнопку [Cmd] (аналог кнопки [Win] на PC), а не [Ctrl], как это сделано по умолчанию в Linux и Windows. Это очень удобно, так как, повторюсь, если вы часто работаете в терминале, вы имеете единые сочетания клавиш для копирования и вставки как и во всех других приложениях, а прерывание всегда остается на своем месте [Ctrl]+[C].
Вы так же олучите профит от такого способа, если вы используете тайловый оконный менеджер, т.к. в большинстве случаев для использования стандартных операций и переключений между тэгами/окнами вам не придется снимать палец с вашего modkey

Конечно настраивать сочетания клавиш можно в конфигах каждого определенного приложения, но это слишком не удобно, к тому же не каждое приложение поддерживает такую настройку. По этому я решил просто забиндить стандартные сочетания клавиш на те, что нужны мне.
Т.е. нажимая [Win]+[C], ваш терминал будет думать, что вы нажимаете [Ctrl]+[Shift]+[C], а все остальные приложения, что [Ctrl]+[C].

Для реализации задуманного нам понадобятся программа, которая будет отслеживать наши нажатия, например xbindkeys или же можно воспользоваться штатными возможностями вашего оконного менеджера, и эмулятор нажатий на клавиши, их несколько: xdotool, xte и xvkbd.

Правда с первыми двумя у меня возникал один преинтереснийший глюк: если например вы нажимете [Win]+[A], эмулятор покорно передаст [Ctrl]+[A] в приложение, а приложение увидит что нажаты все три клавиши [Win]+[Ctrl]+[A] и не обработает такое сочетание. Этот весьма неприятный баг было не просто обнаружить, так как не помогала даже опция --clearmodifiers для xdotool, которая, казалось бы, специально для такого случая и создана. В xkdbb подобного поведения замечено не было.

Начнем, пожалуй с xbindkeys. Отключем все CapsLock, NumLock и прочие модификаторы, запускаем:

Открывается окошко, в окошке нажимаем сочетание [Win]+[A], в терминале получаем такой вывод:

где Mod4 — это наша клавиша [Win]. Это же можно использовать для написания конфига xbindkeys:

/.xbindkeysrc и пишем:

Теперь запустим xbindkeys:

И попробуем нажать [Win]+[A], эффект будет такой-же как и если бы вы нажали [Ctrl]+[A]


Ок, с этим разобрались, но как нам передавать различные сочетания клавиш, при нажатии одних и тех же кнопок, в зависимости от программы с которой мы работем?
На помощь приходит все тот же xdotool и xprop, с помощью которых мы определяем является ли активное окно терминалом.

Давайте напишем простенький скрипт и положим его в /bin/copypaste.sh:

Используйте xprop, если вы не знаете какой класс использует ваша программа:
и клик на окне

Читайте также: