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

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

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

Лучше всего упомянуть, используете ли вы gnome / kde / somethingelse, поскольку настройки ярлыков обычно лучше всего устанавливать сверху вниз.

wds 17.01.2009 21:42

@chris Мне очень нравится вопрос из личного интереса (Mac дома, Arch с xfce4 на работе). Однако я должен согласиться с wds. Очень важно упомянуть среду рабочего стола (хороший список здесь на выбор): wiki.archlinux.org/index.php/Desktop_environment)

Jonathan Komar 17.09.2015 15:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
2
9 625
5

Ответы 5

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

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

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

Согласен - мне удалось заставить Konqueror и Konsole вести себя так же, как Safari и Terminal, что меня очень порадовало. Я даже могу использовать alt-shift-Q для выхода.

Nicholas Riley 08.04.2009 22:34

Is there a way, on Linux/X, to map certain key combos to other key combos?

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

xmodmap -e "код клавиши 63 = Control_L"

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

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

Обновление 02.03.2020

Kinto теперь переписан на C для систем Ubuntu / Debian с использованием x11. Он также использует файлы конфигурации json, что упрощает управление и расширение для других приложений, а не только для терминалов. Приложение больше не сопоставляется с Super в приложениях терминала, теперь оно будет правильно сопоставляться с Ctrl + Shift, чтобы создать такое же ощущение, как при использовании клавиши Cmd.

Пожалуйста, проверьте последнюю версию. https://github.com/rbreaves/kinto

Основное изменение, позволяющее изменить Super = Ctrl + Shift, находится в этом файле символов.

default partial xkb_symbols "mac_levelssym" {
    key <LWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_L ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
    key <RWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_R ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
};

Ответ 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!
#

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

R Ben R 06.08.2019 23:30

Я отклонил этот ответ, потому что, хотя это хороший ответ, сам вопрос не по теме для Stack Overflow. В 2009 году все было хорошо, но 10 лет спустя есть сайты Stack Exchange специально для этого типа общих вопросов по вычислениям. В идеале этот вопрос должен быть закрыто.

Daniel Mann 06.08.2019 23:50

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

R Ben R 07.08.2019 00:06

@RBenR Я думаю, ты значительно улучшил свой ответ.

Anton Menshov 07.08.2019 18:18

Другие вопросы по теме