Как сделать сочетания клавиш типа macOS в Ubuntu?

12

Я видел много вопросов по этому поводу, но все они, кажется, переделывают ключи, вместо фактического поведения macOS.

Моим основным вариантом использования было бы «разделить» ярлыки: например, я хотел бы иметь Super+ Cдля копирования текста и Ctrl+ Cдля отправки SIGINT в текущую программу.

В этом случае, просто переназначить или своп Superи Ctrlне будет работать.

Я считаю, что поведение Mac очень практично, потому что используются все самые распространенные ярлыки Super, а известный ярлык копирования не перекрывает знаменитый ярлык SIGINT .

Большинство терминальных приложений реагируют на Ctrlярлыки - *, и в большинстве случаев они перекрываются «стандартными» ярлыками. В GNOME Terminal мы должны нажимать Ctrl+ Shift+ Cдля копирования текста, тогда как в других приложениях, таких как Firefox, используется Ctrl+ C. Это довольно громоздко и противоречиво по сравнению с Super+ C.

Бенуа Даффез
источник
Хотелось бы указать на другой ответ на аскубунту: askubuntu.com/questions/521202/…
Гаутам

Ответы:

0

Вы можете достичь с помощью команд xmodmap:

remove mod4 = Super_L
keysym Super_L = Control_L
add Control = Control_L

Сохраните вышеуказанные строки как super_as_ctrl.xmodmap. Тест по выполнению

xmodmap super_as_ctrl.xmodmap

Чтобы сделать изменение постоянным (повторный вход в систему / перезагрузка), просто переименуйте файл .Xmodmapв вашей домашней папке.

(Проверено на Ubuntu 14.x)

PS: Вы также можете использовать другие кнопки Windows. Не уверен, как это сделать.

abhinandanbr
источник
Это заставляет Ctrl-C и Super-C отправлять ^Cв оболочку. Я ожидал, что один из них будет вести себя как копия. Проверено на элементарной ОС
Benoit Duffez
0

Чтобы создать новый ярлык и удалить старые, просто перейдите в настройки системы >> клавиатура >> ярлыки . Там вы можете увидеть все ярлыки, редактировать их, удалять и создавать новые.

Аарогья Риял
источник
0

Следующее живет по моему $HOME/.uxSwapCapsLock-and-Ctrl. Он эффективно меняет функциональность клавиш CapsLock и Ctrl для любой оболочки, используемой в любой системе Linux, всякий раз, когда я вхожу в систему и инициирую интерактивный сеанс в оболочке в данной системе. Я уверен, что вы можете узнать о подходящем имени ключа, которое вы пытаетесь изменить, и на которое ссылается xmodmap, чтобы получить желаемую функциональность. Этот код инициируется каждый раз, когда я вхожу в систему и выполняю интерактивный сеанс через .profile, но для этой цели он находится в файле .ps1.

#!bin/bash
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "remove Control = Control_L"
xmodmap -e "keysym Control_L = Caps_Lock"
xmodmap -e "keysym Caps_Lock = Control_L"
xmodmap -e "add Lock = Caps_Lock"
xmodmap -e "add Control = Control_L"
#End script

Это проверка .profile, чтобы выполнить обмен:

if [ -f  "$HOME/.uxSwapCapsLock-and-Ctrl" ]; then
   .  $HOME/.uxSwapCapsLock-and-Ctrl
fi
odoncaoa
источник