Создание ярлыков Mac (например, Cmd-C) для работы с linux

Есть ли способ сопоставления Cmd + C для копирования в Linux? (вместо Ctrl + C)

Было бы неплохо, если бы у меня также были стили emacs, такие как Ctrl + B, чтобы перемещаться налево одним символом.

Ответ 1

Есть ли способ в Linux/X сопоставить определенные комбинации клавиш с другими ключевыми комбо?

В традиции всех проектов с открытым исходным кодом нет пути, их несколько. На самом низком уровне у вас есть ядро ​​keybindings, которое, вероятно, не то, что вы хотите. На уровне X-сервера у вас есть xkb с его многочисленными утилитами. И тогда кажется, что каждый оконный менеджер - gnome, kde, xfce или другой - также имеет утилиту сопоставления клавиш. Похоже, что xkb имеет множество utils и таких вокруг него, и, скорее всего, более полно, чем любой случайный диспетчер клавиш для создания окон, поэтому я бы посмотрел на это в первую очередь.

Ответ 2

KDE 3, вероятно, является наиболее гибким здесь; существует заранее определенная комбинация клавиш с именем "Mac Scheme". Вы можете установить его через KControl Control Center > Regional & Accessibility > Keyboard Shortcuts или kcmshell keys, и он будет действовать практически на все приложения KDE. Вы можете пропустить некоторые из этих Emacs-подобных "Ctrl- *" ярлыков, которые есть в OS X, но это в стороне, оно работает хорошо (пока ваши X-модификаторы отображаются правильно). И если это вам не по вкусу, оно легко настраивается.

Вы также можете установить Control Center > Desktop > Behavior, чтобы включить контекстную строку в Mac OS; все приложения KDE будут совместно использовать меню в верхней части экрана вместо того, чтобы быть индивидуально прикрепленным к каждому окну.

Ответ 3

Не совсем.

Если я поменял Cmd и Ctrl, то нажатие Cmd-C будет действовать как Ctrl-C или скопировать.

Однако нажатие Ctrl-B будет действовать как Cmd-B, который ничего не делает (тогда как нажатие Ctrl-B на Mac OS X перемещает один символ вперед).

Возможно, я смогу использовать ваше решение. Есть ли способ в Linux/X сопоставить некоторые ключевые комбо с другими ключевыми комбо?

Затем я попытаюсь сделать карту (и, конечно, отправьте ее здесь).

Ответ 4

Вы получите почти весь путь туда, если вы переключите Cmd и Ctrl

Ответ 5

Правильный ответ Pjz состоит в том, что решение xkb было бы идеальным, к сожалению, немногие пошли по этому пути, скорее всего, из-за сложности изучения xkb, и, похоже, многие пошли по пути использования файлов Xmodmap, которые устарели, пока мы находимся на наш путь в Уэйленд.

Этот ответ может быть на несколько лет позже, но здесь есть какие-то способы.

Kinto - инструмент, который я недавно создал, который решает эту проблему и делает это с помощью xkb и слушая, какое приложение вы используете в данный момент, так как оно также меняет раскладку клавиатуры при использовании терминалов, так что опыт, подобный mac, может быть согласованным.

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

Здесь также Gist, если вы просто хотите увидеть, что лежит в основе всего этого, он не будет чередовать вашу раскладку клавиш при необходимости. Gist также не содержит пользовательских файлов ключей xkb, которые устанавливают курсоры в стиле macOS/манипуляции со словами, использующие Cmd и клавиши со стрелками.

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

Редактировать: размещение содержания суть также. Я не могу реально опубликовать содержание Kinto.

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#

Ответ 6

xmodmap -e "keycode 63 = Control_L"

Таким образом, Cmd будет Control. Никакие другие клавиши не будут заменены.

Отредактировано: Я забыл "-e"