Как переназначить сочетания клавиш Ubuntu в соответствии с OSX?

28

Я использую Ubuntu в VirtualBox на Mac. Поскольку я часто переключаюсь, я хотел бы использовать те же ярлыки. Пожалуйста, кто-нибудь знает, как использовать такие же ярлыки на Ubuntu, как на Mac? В частности, я хотел бы скопировать, вставить, выделить все, ... работать с Cmd + C, Cmd + V, Cmd + A, ... (даже в терминале - без Ctrl + Shift, просто Ctrl).

Я пытался изменить раскладку клавиатуры на Apple Laptop, но это не помогло.

user209499
источник
Является ли клавиша Cmd альтернативой Ctrl или Alt?
Сет
Если я правильно помню, Cmd равен ctrl.
Каз Вулф
2
cmd равен функциональной клавише windows (тогда как клавиша cmd находится рядом с пробелом). В большинстве случаев между Ctrl и Alt.
Прогулка

Ответы:

8

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

Установите xbindkeys

sudo apt-get install xbindkeys

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

Для создания файла конфигурации по умолчанию вы используете команду:

xbindkeys --defaults

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

xbindkeys --defaults > $HOME/.xbindkeysrc

Который печатает значения по умолчанию в скрытый файл с именем .xbindkeysrc, расположенный в доме.

Теперь, чтобы реально изменить привязки клавиш, нам сначала нужно узнать, как называется или называется ключ этих клавиш. xbindkeys позволяет нам использовать дескриптор -k, чтобы найти имя клавиши или комбинации клавиш. Бег:

xbindkeys -k

Теперь нажмите Ctrl (из CMD) и проверьте вывод

Попробуйте нажать Ctrl + C (после отключения этого ярлыка в терминале, используя вторую часть этого объяснения)

Он скажет вам название клавиши / комбинации клавиш.

Теперь нам нужно указать linux вызывать cmd при нажатии Ctrl.

для этого нам понадобится дополнительное программное обеспечение, так как xbindkeys не поддерживает его самостоятельно. Я знаю две программы, которые мы можем использовать, xdotool и xte. Я предпочитаю xte, поэтому я собираюсь использовать это.

Установите это:

sudo apt-get install xautomation

(Для вызова одной клавиши нажмите: xte 'key keyName'

Чтобы вызвать комбинацию клавиш: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

Для получения дополнительной информации вы можете прочитать руководство man xte )

Позволяет открыть файл конфигурации, который вы сделали ранее: (тот, который вы сделали, используя xbindkeys --defaults > $HOME/.xbindkeysrc)

gedit .xbindkeysrc

Вы получите что-то вроде этого:

#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll). 
#

# The release modifier is not a standard X modifier, but you can  
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

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

"xte 'ctrl'" Cmd (или что-то подобное зависело от имени, данного вам xbindkeys)

Добавьте это в свой скрипт xbindkeys и сохраните.

Вы заметите, что это не работает (пока). Это потому, что xbindkeys еще не запущен. запустите его с помощью следующей команды.

xbindkeys

Ваши команды должны работать сейчас. Если это не сработает, вы можете попробовать добавить команды к комбинациям клавиш, такие как копирование и вставка. Если это не работает, есть альтернатива, но это довольно много написания. Вы также можете попробовать xmodmap или xkeycaps.

Я хотел бы отметить, что xbindkeys и xte не всегда хорошо работают вместе.

Что касается ярлыков вашего терминала: вы можете изменить их ВСЕ, открыв свой терминал и нажав кнопку редактирования в верхней панели. Затем нажмите сочетание клавиш и измените значение для копирования и вставки под заголовком «изменить» в Ctrl (или в вашем случае cmd) + c и Ctrl + V

Akisame
источник
2
Это решения для решения вашей проблемы внутри vmbox. Возможно, вы сможете обмениваться определенными кодами ключей, настроив таблицу обмена кодами в вашем vmbox, но у меня нет никакого опыта работы с vmboxes
Akisame
Это так близко, как я когда-либо получал привязки Mac на Linux. Однако, похоже, что xte 'key Home'он не работает, когда привязан к любому нажатию клавиши в файле .xbindkeysrc. Я пробовал различные варианты, такие как «Shift + I». Я также видел, как это работает, выполняя `sleep 15 && xte 'key Home'" (переключаясь на gedit и видя домашнюю работу). Наибольшую обратную связь я получаю, когда у меня есть настройки, настроенные с помощью "Alt + Left" для дома, это вспышка курсора. Любая помощь в этом? gist.github.com/Kikketer/658d89661a044121279afbba04a511fa
Крис
8

Нет необходимости использовать xbindkeysдля достижения OSX-подобного раскладки клавиатуры в Ubuntu. Это встроенная опция:

  1. Зайдите в настройки Ubuntu
  2. Перейдите к КлавиатураНастройки раскладки клавиатуры
  3. добавить английский (Macintosh)
boulder_ruby
источник
7
Я не вижу Keyboard Layout Settingsна Ubuntu 14.0.4
Чови
Это не работает на VirtualBox. Все, что я получил, было сжатое окно, когда я попытался скопировать / вставить.
Чови
LOL, после стольких попыток найти другие решения, это очень просто и сразу сработало. (Ubuntu 14.04.3 LTS 64bit в VirtualBox 5.0.4). Спасибо
Allisone
Это не работает для меня, на виртуальной коробке.
Питер Брукс
3
Этот ответ явно больше не работает для более новых версий Ubuntu. Какой бы ни была последняя версия Ubuntu в 2014 году, она работала для этого.
boulder_ruby
3

Это обновленный ответ для всех, кто борется с этой проблемой с более свежими версиями Ubuntu.

Я только что установил Ubuntu 16.04.1 через VirtualBox и не смог настроить параметры клавиатуры в соответствии с моим MacBook.

Вот что я сделал, чтобы это исправить:

  1. Перейдите в настройки системы .
  2. Выберите ввод текста (т.е. не клавиатуры ).
  3. Под списком с заголовком Используемые источники ввода: есть знак плюс и минус - нажмите на знак плюс.
  4. В текстовом поле « Выберите тип источника ввода » в требуемой раскладке клавиатуры (в моем случае я выбираю английский (Великобритания, macintosh).
  5. Используйте стрелку вверх, чтобы сделать ее стандартной раскладкой клавиатуры в Ubuntu.
  6. Удалите другие раскладки клавиатуры. Только когда я удалил другие макеты, изменения вступили в силу.
Дэвид Брауэр
источник
1
Каков эффект этого? Например, клавиша управления на Macintosh находится в том же месте, что и на обычной клавиатуре. Поскольку ctrl-c / v по-прежнему остаются системными командами копирования и вставки по умолчанию, это не ответит на первоначальный вопрос о переназначении этих видов общесистемных ярлыков, поэтому он имитирует Mac.
Колжак
2

Я нахожусь на Ubuntu 16.04, VirtualBox 5.1.22, и ни один из этих ответов не работал для меня - включая , к сожалению, Дэвида Брауэра .

Вот что сделало, чтобы моя левая клавиша OSX Command работала (постоянно!):

  1. Во-первых, вы должны убедиться, что VirtualBox не использует Left ⌘ в качестве ключа хоста.
    • В верхней строке меню вашего окна VM выберите Input > Keyboard > Keyboard Settings..
    • В списке настроек найдите Комбинацию ключей хоста и измените ярлык на что-то, кроме Левого ⌘ (я просто использовал Правый ⌘, поскольку я никогда не использую его).
  2. Теперь, когда вы определенно можете использовать Left ⌘ в среде VM, переназначьте ключи с помощью XKB:
    • Откройте и (внимательно) отредактируйте: /usr/share/X11/xkb/symbols/pc
    • Я просто поменялись местами <LCTL>и <LWIN>вокруг, так что это выглядит следующим образом :
    • key <LCTL> { [ Super_L ] };
    • key <LWIN> { [ Control_L ] };
  3. Теперь удалите старые сопоставления из кэша xkb:
    • rm -rf /var/lib/xkb/*
  4. Перезапустите Ubuntu, чтобы изменения вступили в силу.

Предупреждение: я бы не стал вносить более одного изменения за один раз через xkb, если вы не знаете, что делаете, пара ключей, сопоставленных неправильно, может быть настоящей головной болью!

Полная благодарность Раду Котеску за инструкции по переназначению xkb - они были для ubuntu 14.04, однако они отлично работают для ubuntu 16.04.

danwild
источник
Убедитесь, что вы делаете снимок, прежде чем сделать это! К счастью, у меня была другая цель, и после этого Ubuntu не загружался должным образом. Я вернулся, и он снова начал работать. Я использую 18.04 для чего стоит.
Том
2

В поиске других вопросов я нашел этот инструмент для сопоставления Ctrl с клавиатурой Macbook CMD Left, чтобы выполнить CMD + C или CMD + V или что-то еще:

Установите приложение gnome-tweaks:

sudo apt-get install gnome-tweaks

Откройте приложение Applications -> Gnome Tweaksи сопоставьте CTRL с WIN (аналогично CMD в Mac), выполнив следующие действия:

  1. Клавиатура и мышь
  2. Дополнительные параметры макета (левый супер)
  3. Alt / Win key Поведение
  4. Ctrl отображается на Win и обычные клавиши Ctrl`

Наслаждайтесь CMD + C or CMD + Vв своем OSX VirtualBox с помощью виртуальной машины Ubuntu-18.

Хема Видаль
источник
Работал. <filler>
skwny
Это лишило меня возможности использовать ключ Win / Apple. Вместо этого я сделал следующий шаг за 3 и 4: (3) Ctrl position, (4) Swap Left Win with Left Ctrl.
Тургс
0

Я по-прежнему использую Ubuntu 12.04 по разным причинам, поэтому я не могу говорить о последующих итерациях, но попробуйте это:

Хорошо, во-первых, вы можете захотеть установить свой ключ хоста VB на что-то конкретное, например, на правильную команду или правую клавишу Alt ... что-то, что вы обычно не используете. Я думаю, что по умолчанию используется левая командная клавиша, которая будет мешать работе большинства людей.

Это можно сделать в настройках самого VirtualBox (а не внутри гостевого компьютера или в качестве какого-либо конкретного параметра). Открыв приложение VB (не окно VM), выберите VirtualBox-> Preferences-> Input, затем выберите ключ хоста в начале поля / списка отображения «Виртуальная машина».

Хорошо, после этого, внутри самой гостевой машины Ubuntu:

  1. Откройте настройки системы и выберите раскладку клавиатуры.
  2. Откройте вкладку Layouts.
  3. У вас, вероятно, будет только одна запись - английская (США) или такая. Выделите это и нажмите кнопку «Параметры» в правом нижнем углу.
  4. Откройте расширитель «Alt / Win Key Behavior».
  5. Выберите «Управление сопоставлено с клавишами Win (и обычными клавишами Ctrl)».

Вы должны обнаружить, что ваш командный ключ Mac теперь работает так, как вам нужно для command-C, command-V и т. Д.

кайтайн
источник
0

В случае с Kubuntu 18.04 с Plasma 5 у меня работало (в Системных настройках / Устройствах ввода / Клавиатурах) установка аппаратного обеспечения как «универсального 104-клавишного» и макет «английского (macintosh)».

lurscher
источник
-1

Это будет зависеть от программного обеспечения, которое вы используете для запуска вашей виртуальной машины. Например, я использую VMWare Fusion для запуска Ubuntu на моем Mac и для достижения того, что вы хотите, я зашел в «Настройки» VMWare Fusion и настроил сопоставление клавиш, которое я хотел внутри этой конкретной виртуальной машины (у меня может быть несколько установок, одна за каждую ВМ).

Я никогда не использовал VirtualBox, но я уверен, что вы можете сделать это в настройках VirtualBox.

Дэвид Лопес
источник