web-dev-qa-db-fra.com

Comment faire fonctionner le clavier comme OSX System Wide?

Je permute constamment entre deux ordinateurs:

  • OSX Snow Leopard
  • Ubuntu 10.10

J'aimerais pouvoir faire en sorte qu'Ubuntu utilise les mêmes raccourcis clavier que OSX System Wide, uniquement pour les séquences de clavier suivantes (c'est-à-dire que je ne veux pas que Ctrl agisse comme un super)

  • Super+C -> Copier

  • Super+V -> Coller

  • Super+T -> Ouvrez un nouvel onglet dans le navigateur dans lequel je suis.

  • Super+W -> Fermer un onglet dans le navigateur dans lequel je suis.

Bref, est-il possible pour moi de mapper simplement ces séquences de clavier sur les éléments suivants, à l'échelle du système?

  • Super+C -> Ctrl+C
  • Super+V -> Ctrl+V
  • Super+T -> Ctrl+T
  • Super+W -> Ctrl+W

Je sais que je peux le faire pour vim, et pour Firefox, et pour la plupart des applications, j'en suis sûr, mais je préférerais le faire une seule fois et que cela fonctionne ainsi à l'échelle du système !

J'utilise un clavier de PC standard, à savoir "Generic 105 key (intl) PC" sur Ubuntu. J'utilise également le même clavier sur mon Mac mini.

108
brad parks

Si vous installez le paquet xautomation, vous pouvez ajouter une commande dans Système/Préférences/Raccourcis clavier/Personnaliser, comme suit:

xte "keyup Meta_L" "keyup c" "keydown Control_L" "key c" "keyup Control_L"

et mapper cela à Meta-C.


Solution alternative:

Installez AutoKey (apt-get install autokey-gtk) et définissez une phrase sur:

Phrase Text: <ctrl>+C (actually type out the <ctrl>+ here)
Paste Using: Keyboard
Abbreviation: None
Hotkey: <super>+v
Window Filter: None
37
cscarney

Pour Ubuntu 14 ou plus récent, vous pouvez faire ceci:

Sudo apt-get install gnome-Tweak-tool

Ensuite, cherchez Outil Tweak> Saisie> Comportement de la touche Alt/Win

Et vérifiez: Ctrl est associé aux touches Win (et aux touches Ctrl habituelles)

17
Caio Lopes

Il y a un moyen de mapper Ctrl à Win/Super clé:

  1. allez dans système-> préférences-> clavier ,

  2. onglet ouvert Layouts ,

  3. cliquez sur Options ... ,

  4. ouvert Alt/Win comportement clé ,

  5. et sélectionnez le contrôle est mappé sur les touches Win

Et pour la console il y a un post sur le forum comment faire cela ici .

Pour plus de détails, consultez le HOWTO relatif au clavier Linux général ici .

cordialement

13
danizmax

Pour développer astuce AutoKey de cscarney , je développe ma configuration AutoKey pour réaliser tout cela sous Ubuntu (<cmd>+c, <cmd>+v, ... comme Emacs, à la manière de <ctrl>+f, <ctrl>+b, ...) dans mon repo de fichier de points .

Je n'utilise pas d'expressions de base (où le filtrage de fenêtre est actuellement interromp ), mais Python scripts, pour pouvoir désactiver la clé automatique dans des applications telles que Emacs, Eclipse, Vim, gnome -terminal ... où je ne veux pas gâcher les raccourcis existants.

Vous pouvez consulter le README au bas de la page pour savoir comment le configurer.

8
metakermit

Je voulais une solution qui fonctionnerait dans n’importe quel environnement de bureau/gestionnaire de fenêtres, j’ai donc combiné la suggestion de cscarney d’utiliser xautomation avec le SXHKD (le simple démon de raccourci clavier X).

Voici le fichier de base ~/.config/sxhkd/sxhkdrc que j'ai produit.

Avancé: Mon dernière version est plus complet et peut envoyer différentes frappes au clavier pour différentes applications, mais il nécessite un script externe et comporte probablement certaines liaisons que vous ne voulez pas.

Voici un extrait:

# Reload this config
control + alt + shift + r
  killall -USR1 -u "$USER" sxhkd && echo 'sxhkd config reloaded'

# Cut, copy and paste
alt + x
  xte "keyup x" "keyup Meta_L" "keydown Control_L" "key x" "keyup Control_L" "keydown Meta_L"
alt + c
  xte "keyup c" "keyup Meta_L" "keydown Control_L" "key c" "keyup Control_L" "keydown Meta_L"    
alt + v
  xte "keyup v" "keyup Meta_L" "keydown Control_L" "key v" "keyup Control_L" "keydown Meta_L"

# Open tab, close tab, restore closed tab
alt + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"
alt + w
  xte "keyup w" "keyup Meta_L" "keydown Control_L" "key w" "keyup Control_L" "keydown Meta_L"    
alt + shift + t
  xte "keyup t" "keyup Meta_L" "keydown Control_L" "key t" "keyup Control_L" "keydown Meta_L"

# Move to home/end
alt + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"
alt + shift + Left
  xte "keyup Meta_L" "keyup Left" "key Home" "keydown Meta_L"
alt + shift + Right
  xte "keyup Meta_L" "keyup Right" "key End" "keydown Meta_L"

# Move one Word
super + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"
super + shift + Left
  xte "keyup Super_L" "keyup Left" "keydown Control_L" "key Left" "keyup Control_L" "keydown Super_L"
super + shift + Right
  xte "keyup Super_L" "keyup Right" "keydown Control_L" "key Right" "keyup Control_L" "keydown Super_L"

Remarque:

  • Comme vous pouvez le constater, si je modifie la touche de modificateur d'origine avant d'exécuter le trait virtuel, je la répète ensuite. Cela signifie que l'utilisateur peut répéter sa frappe sans avoir à relâcher et appuyer à nouveau sur la touche de modification. En d'autres termes, après avoir appuyé sur Alt-W, le système voit que la touche Alt est enfoncée.

Mises en garde:

  • Cela peut poser problème (en particulier sur les machines les plus lentes) si vous relâchez la touche Alt alors que la commande xte est toujours en cours d'exécution . Vous allez vous retrouver avec une touche Alt "collante", car xte l'a appuyée pour vous!

  • En utilisant cette approche, les déclencheurs ne se répéteront pas si la touche est maintenue enfoncée. (Vous ne pouvez donc pas déplacer 12 mots en maintenant Super-Gauche.)

5
joeytwiddle

C'est une tâche facile une fois que vous savez comment le faire.

1) Vérifiez le code de clé de votre clé. Exécutez ce programme au terminal.

xev


À cet exemple, le terminal indique que le code d'activation de mon k est "45".

2) Modifiez-les au fur et à mesure de la création de ce fichier:

gedit ~/.Xmodmap

Son contenu devrait ressembler à cet exemple:

code de clé 64 = Alt_L Meta_L Alt_L Meta_L
code clé 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift

(Modifiez le numéro de code si nécessaire - consultez l'étape "1")

Illustration: 
(Obs.: Si je veux changer mon k Je devrais utiliser "keycode 45" comme indiqué à l'étape "1").

4) Déconnectez-vous et reconnectez-vous ou redémarrez ou exécutez ceci:

xmodmap ~/.Xmodmap

Espérons que vous apprécierez ;-)

4
desgua

Certaines des solutions ci-dessus sont anciennes et ne fonctionnent pas avec Ubuntu 18.04. Voici une réponse mise à jour

  1. Installez gnome-tweaks s'il n'est pas installé sur le système

    Sudo apt-get install gnome-tweaks

  2. Ouvrez la liste des applications en appuyant sur Afficher les applications en bas à gauche.

  3. Notez que cela ne modifiera que le comportement de la clé WINDOWS en clé CMD et conservera la clé CTRL comme précédemment (vous aurez 2 clés CTRL). Si vous n'aimez pas cela, ignorez l'étape 4 et passez à l'étape 5

  4. Recherchez Tweaks application --> Keyboard and Mouse --> Additional Layout options --> Alt/Win behavior --> Select Control is mapped to Win keys and the usual Ctrl Keys.

  5. Ignorez cette étape si vous avez terminé l'étape 4. Cette étape consiste à permuter le comportement de la clé Windows à Ctrl et vice versa. Recherchez Tweaks application --> Keyboard and Mouse --> Additional Layout options --> Ctrl Position --> Select Swap Left Win with Left Ctrl

  6. Une autre chose qui me manque de macOS est la possibilité de changer de fenêtre avec CMD + Tab (dans ce cas, Windows + Tab). Pour ce faire, allez à Settings --> Keyboard --> Look for Switch Windows under navigation section --> Double Click it and press Windows+Tab when pop up appears

4
Jadda

Semblable à et basé sur l'excellent travail des autres, j'ai fait une prise en pension avec mes raccourcis Autokey et les instructions pour obtenir cette configuration:

https://github.com/bliles/autokey-macos

2
bliles

Premier
Installez le CD d’additions d’invités (Devices->Insert Guest Additions CD image).

Activer le partage du presse-papier
Après un redémarrage, dans Virtualbox, accédez à Machine->Settings->General->Advanced et définissez
Shared Clipboard: Bidrectional

Changer la clé de l'hôte VirtualBox
In Vitualbox/Preferences/Input/Virtual Machine/Host Key Combination
choisissez qch différent alors 

Key Mapping:
Pour le mappage cmd/ctrl, ajouter le clavier anglais (Macintosh) semble être la solution la plus pratique :)

Allez à Ubuntu Settings->Text Entry
(Je suppose que dans les anciennes versions, cela pourrait être dans les paramètres de disposition du clavier)
Sous Input sources to use: hit plus (+)
ajouter English (Macintosh)

Je suis sur Ubuntu 14.04.3 LTS 64bit dans VirtualBox 5.0.4

1
Allisone

Je n'ai pas Ubuntu à la main (les Mac ici, Ubu au bureau), mais j'utilise un clavier Mac là-bas et pour les mêmes raisons que vous, je voulais le faire.

La première chose à faire est de vous assurer que votre clavier a été installé en tant que clavier Mac. Je pense que vous pouvez changer cela dans le système-> Préférences-> Clavier. Pendant que vous y êtes, l’un des onglets vous mènera à une page de mappage de clés où vous pourrez configurer le fonctionnement de la clé cmd.

Comme je l'ai dit, je ne me souviens pas exactement - je peux indiquer les éléments de mon écran ici, mais cela ne fonctionne pas car je n'y suis pas.

Si vous êtes toujours coincé demain, je regarderai encore.

0
Leo

Autokeys a fonctionné pour moi. Maintenant, win + c (v, x, a) contourne mon système comme je l’attendais.

1. Installer autokeys

Sudo apt install autokey-gtk

2. Configurer autokeys

  1. Ajoutez un dossier racine, appelez-le quelque chose comme MacKeys ou autre chose
  2. Vous allez créer 4 scripts ici pour ctrl-c, v, x et un
  3. attribuer à chaque script un raccourci clavier super-c, super-v, etc.
  4. remplissez les scripts avec le code ci-dessous (remplacez la lettre c pour les autres combos)

winClass = window.get_active_class() keys = "<ctrl>+c" if winClass == "gnome-terminal-server.Gnome-terminal": keys = "<ctrl>+<shift>+c"; keyboard.send_keys(keys)

4a. Pour CmdZ, CmdA ou CmdX fonctionnent avec un script plus simple tel que keyboard.send_keys("<ctrl>+x").

. Ajouter/usr/bin/autokey-gtk aux applications de démarrage

4. Désactive Win-A dans les paramètres du clavier

Normalement, win-a fait passer à la vue d'ensemble.

5. En option, empêche complètement de gagner pour changer la vue d'ensemble

Vous voudrez probablement l'enlever. Installez gnome-Tweak-tool, accédez au clavier et reliez de nouveau le bureau à la vue d'ensemble. Cela a fonctionné pour mon gnome Ubuntu 16.04.

0
Lauri