Jak zrobić skróty klawiaturowe takie jak macOS na Ubuntu?


12

Widziałem wiele pytań na ten temat, ale wszystkie wydają się robić remap kluczy, zamiast rzeczywistego zachowania macOS.

Moim głównym przypadkiem użycia byłoby „podzielenie” skrótów: na przykład chciałbym mieć Super+, Caby skopiować tekst i Ctrl+, Caby wysłać SIGINT do bieżącego programu.

W takim przypadku prosty remap lub zamiana Superi Ctrlnie działałby.

Uważam, że zachowanie Maca jest bardzo praktyczne, ponieważ wszystkie najpopularniejsze skróty używają Super, a słynny skrót kopiowania nie pokrywa się ze słynnym skrótem SIGINT .

Większość aplikacji terminalowych reaguje na Ctrlskróty - * i w większości pokrywają się one ze „standardowymi” skrótami. W GNOME Terminal musimy nacisnąć Ctrl+ Shift+, Caby skopiować tekst, podczas gdy w innych aplikacjach, takich jak Firefox, używany jest Ctrl+ C. Jest to dość kłopotliwe i niespójne w porównaniu z Super+ C.


Chciałbym wskazać inną odpowiedź na askubuntu: askubuntu.com/questions/521202/...
Gautam,

Odpowiedzi:


0

Można to osiągnąć za pomocą poleceń xmodmap:

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

Zapisz powyższe linie jako super_as_ctrl.xmodmap. Przetestuj przez wykonanie

xmodmap super_as_ctrl.xmodmap

Aby zmienić na stałe (przetrwanie przy ponownym logowaniu / ponownym uruchomieniu), po prostu zmień nazwę pliku na .Xmodmapw folderze domowym.

(Testowane na Ubuntu 14.x)

PS: Możesz także skorzystać z innego przycisku Windows. Nie jestem pewien, jak to zrobić.


To sprawia, że ​​Ctrl-C i Super-C oba wysyłają ^Cdo powłoki. Spodziewałem się, że jeden z nich będzie zachowywał się jak kopia. Testowany na elementarnym systemie operacyjnym
Benoit Duffez,

0

Aby utworzyć nowy skrót i usunąć stare, wystarczy przejść do ustawień systemowych >> klawiatura >> skróty . Tam możesz zobaczyć wszystkie skróty, edytować je, usuwać i tworzyć nowe.


0

Następujące żyje w moim $HOME/.uxSwapCapsLock-and-Ctrl. Skutecznie zamienia funkcjonalność klawiszy CapsLock i Ctrl dla dowolnej powłoki używanej w dowolnym systemie Linux przy każdym logowaniu i inicjowaniu interaktywnej sesji w powłoce w danym systemie. Jestem pewien, że możesz dowiedzieć się o stosownej nazwie klucza, którą próbujesz zmodyfikować, i do której odnosi się xmodmap, aby uzyskać pożądaną funkcjonalność. Ten kod jest inicjowany za każdym razem, gdy się loguję i mam sesję interaktywną przez .profile, ale w tym celu znajduje się w pliku .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

Jest to sprawdzenie .profile w celu dokonania wymiany:

if [ -f  "$HOME/.uxSwapCapsLock-and-Ctrl" ]; then
   .  $HOME/.uxSwapCapsLock-and-Ctrl
fi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.