Comment faire fonctionner le clavier comme OSX System Wide?


111

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 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.

Donc en bref, est là de toute façon pour moi à la carte seulement ces séquences clavier à ce qui suit, l' ensemble du système?

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

Je sais qu'il existe des moyens de le faire pour vim, et pour Firefox, et pour la plupart des applications, j'en suis sûr, mais je préférerais ne le faire qu'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.


4
Si tous les raccourcis clavier de Mac étaient composés, partager votre fichier de configuration serait génial! Merci
Dolan Antenucci

Hey! J'aurais aimé le faire encore, mais je travaille exclusivement sur Mac maintenant, car j'ai changé de travail ;-) Je n'ai donc pas ma vieille config partout
Brad Park

les solutions ne fonctionnent pas sur les systèmes d'exploitation élémentaires. '
Paschalis

Réponses:


38

Si vous installez le package xautomation, vous pouvez ajouter une commande dans Système / Préférences / Raccourcis clavier / Personnalisé, 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

Hey! cela semble très prometteur ... Je l'ai installé et je peux exécuter la commande xte ci-dessus à partir du terminal. Le résultat est "^ C" dans le terminal ... ce qui me convient! mais quand je mappe cela dans les raccourcis clavier, ça ne fait rien ... J'ai essayé de mapper un autre programme en Meta-C, et ça marche très bien (c.-à-d. que je lance très bien quand j'appuie sur Meta-C). J'ai également essayé de spécifier le chemin d'accès complet à xte (/ usr / bin / xte) et cela n'a pas fonctionné non plus ... pouvez-vous essayer ceci sur votre système et voir si cela fonctionne? Merci!
Brad parcs

1
Donc xte envoie les codes de clé correctement, mais apparemment, les applications voient la combinaison du raccourci clavier et des pressions de touche envoyées par xte (par exemple, Meta-Control-C). J'ai mis à jour ma réponse pour simuler le relâchement des touches de raccourci avant d'envoyer les pressions sur les touches.
cscarney

2
Après vérification rapide, cela fonctionne pour moi, mais j’ai trouvé une solution qui sera probablement plus fiable que xte (même si vous la faites fonctionner). Vérifiez la réponse révisée.
cscarney

1
Hey! merci @cscarney! votre "solution alternative" pour AutoKey fonctionne totalement! merci beaucoup pour vos efforts soutenus!
Brad parcs

1
Les solutions ne fonctionnent pas pour Ubuntu 18.04
JZ.

17

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)


Ne semble pas faire quoi que ce soit ou n'est pas un comportement Mac
chovy

Dans une nouvelle installation d'Ubuntu 16, cela semble nécessiter le démon gnome-settings-daemon, qui semble entraîner une traînée de paquets qui ne se sentent pas conçus pour être installés.
Tom Lianza

De loin l’option la plus directe si vous voulez juste que la touche de commande ressemble à la touche cmd dans mac, principalement pour copier et coller. Je suis sur ubuntu-gnome-desktop
lxm7

Cela fonctionne très bien pour les commandes de copier-coller et m'empêche d'ouvrir constamment le menu de recherche dans Ubuntu. Maintenant, je dois juste mapper Command-Tab à Alt-Tab
Ron Smith

1
Je ne vois pas Tweak Tool dans mes applications. Que devrais-je faire?
Jadda

13

Il existe un moyen de mapper Ctrlvers Win/ Superkey:

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

  2. onglet ouvert Layouts ,

  3. cliquez sur Options ... ,

  4. comportement ouvert Alt/ Winclé ,

  5. et sélectionnez Le contrôle est associé aux touches Win.

Et pour la console, un post sur le forum explique comment faire cela ici .

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

Cordialement


3
hé @danizmax - merci pour la réponse ... mais je voudrais spécifiquement éviter de modifier le comportement complet de Ctrl ... raccourcis clavier que j'ai mentionnés dans le post ... merci quand même!
Brad Park

Eh bien, le CTR + reste tel quel. Il ne fait que dupliquer tous les raccourcis Ctrl + vers Super +, il suffit donc d'ajouter le comportement Sauf si vous voulez vraiment changer uniquement ceux que vous avez mentionnés, vous devrez creuser beaucoup avec xmodmap et loadkeys. J'ai ajouté le lien vers le HOWTO général sur le clavier Linux. J'espère que cela vous aidera: P
danizmax

1
C'était la solution la plus simple parmi toutes les solutions proposées.
Datageek

1
Je ne vois plus les options "options" ou "alt / win key behavior" dans les paramètres système dans Ubuntu 15.10 wily.
user29020

1
c'est maintenant dans les réglages de gnome, "clavier et souris"
Yrogirg

8

Pour développer l'indice AutoKey de cscarney , je développe ma AutoKey configuration pour réaliser tout cela dans Ubuntu (OS-X comme <cmd>+c, <cmd>+v... Emacs style <ctrl>+f, <ctrl>+b...) dans mon repo dotfile .

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

Vous pouvez consulter READMEle bas pour obtenir des instructions sur la manière de le configurer.


le lien est cassé pour l'application
chifliiiii

@chifliiiii a corrigé les liens, mais notez que la configuration liée dans mes fichiers de points est très probablement dépassée, car je ne l'utilisais pas depuis des années.
Métakermite

5

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, sautez l'étape 4 et passez à l'étape 5

  4. Cherchez 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 en Ctrl et vice versa. ChercherTweaks 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 y parvenir, allez àSettings --> Keyboard --> Look for Switch Windows under navigation section --> Double Click it and press Windows+Tab when pop up appears


5

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

Voici le ~/.config/sxhkd/sxhkdrcfichier de configuration de base que j'ai produit.

Avancé: Ma dernière version est plus complète et peut envoyer différentes frappes au clavier pour différentes applications, mais elle nécessite un script externe et comporte probablement certaines liaisons que vous ne souhaitez 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 pendant 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.)


J'avais l'habitude d'utiliser bbkeysdans le passé, mais malheureusement, il n'est pas emballé sur autant de distributions ces jours-ci.
Joeytwiddle

4

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


Dans cet exemple, le terminal indique que le code d'activation de mon kest "45".

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

gedit ~ / .Xmodmap

Son contenu devrait ressembler à cet exemple:

keycode 64 = Alt_L Meta_L Alt_L Meta_L Keycode
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 de nom, kje devrais utiliser le "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 ;-)



1

Première
installation du CD d’invitations ( Devices->Insert Guest Additions CD image).

Activer le partage du presse-papiers
Puis après un redémarrage, dans Virtualbox, accédez à Machine->Settings->General->Advancedet définissez
Shared Clipboard: Bidrectional

Changer la clé de l’hôte VirtualBox
dans Vitualbox/Preferences/Input/Virtual Machine/Host Key Combination
choisissez sth différent alors

Key Mapping :
Pour cmd/ctrlma part, 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 Paramètres de disposition du clavier)
Sous Input sources to use:hit plus (+)
addEnglish (Macintosh)

Je suis sur Ubuntu 14.04.3 LTS 64bit dans VirtualBox 5.0.4


1

Voici une solution beaucoup plus simple, Kinto. Je travaille dessus depuis 3 ans maintenant… et je sens enfin que je peux contribuer quelque chose en raison de la qualité de son fonctionnement, contrairement à mes 2 dernières tentatives. Il est destiné aux distributions basées sur x11 et systemd, mais le concept restera inchangé à Wayland dès que je trouverai un bon moyen de le mettre en œuvre, malgré la sécurité renforcée qui rend le travail difficile.

1) Gist (pour ceux qui veulent juste voir la prémisse ou mettre en œuvre leur propre solution alternative, les cas extrêmes non couverts).

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

2) Le programme d'installation complet qui utilise systemd, bash et xprop. (Les boîtiers Edge, comme les Chromebooks, sont couverts, il était étonnamment difficile à gérer, mais j'apprécie le mien pour que tout le monde puisse en bénéficier!)

https://github.com/rbreaves/kinto

La raison de Kinto, le japonais pour Flip, est la suivante: même si vous perfectionniez une remappage de clé pour chaque application d'interface graphique normale à l'aide d'une autre méthode, vous n'allez pas avoir le même type d'expérience Terminal, sous Linux, que vous. sur un Mac. Et c'est regrettable, car les Mac nous gâchent les développeurs avec une keymap qui fonctionne étonnamment bien pour les applications Terminal. En changeant votre keymap en l'une des deux options de disposition via setxkbmap et l'application active utilisée, ce que j'ai fait, c'est que vous devez créer le moins de touches de raccourci supplémentaires spécifiques à une application particulière.

Essentiellement, avec cette solution, vous ne vous disputez pas pour créer correctement de nouvelles touches de raccourci ni pour éviter les conflits de raccourcis dans vos applications Terminal Server par rapport au reste de vos applications à interface graphique. Vous obtenez simplement le meilleur des deux mots, et cela fonctionne de manière aussi transparente que possible - au-delà de l'inclusion de fichiers de configuration de raccourci par défaut pour divers terminaux et éditeurs de texte populaires, que je pourrais inclure plus tard. Même les éditeurs de texte tels que Sublime n'échangent pas la touche Cmd avec chaque touche de raccourci, mais l'alignement est correct environ 95% ou plus du temps, à mon avis.

Et en parlant de Wayland, j'ai une preuve de concept sur la façon de faire fonctionner cette astuce de keymap clé sur KDE Plasma 5 avec un widget existant qui affiche les noms d'applications. Si quelqu'un a une meilleure solution, je suis tout ouïe, surtout si cela peut également fonctionner avec x11. Xprop est tout à fait suffisant sur x11, mais évidemment, aucune utilisation sur Wayland.

https://github.com/rbreaves/applet-window-title/commit/ff17e694579a52a9848d6bea87b2d11f22033718


0

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.


système-> préférences-> clavier-> mises en page-> options
Leo

salut leo ... je n'utilise pas de clavier Mac avec Ubuntu cependant ... J'utilise un clavier de PC standard, c'est-à-dire "Generic 105 key (intl) PC" a essayé de passer de mon "modèle de clavier" au vendeur Apple / Le modèle Apple, mais cela ne semble pas faire de différence ... J'ai aussi essayé le fournisseur Apple / Modèle Macbook et cela ne semblait rien changer non plus ...
brad parks

et pour ce que ça vaut, j’utilise aussi exactement le même clavier PC sur mon macmini, car je l’ai acheté d’occasion et il n’est pas livré avec un clavier mac. Merci encore.
Brad parcs les

0

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

1. Installez Autokeys

sudo apt install autokey-gtk

2. Configurer les 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 quekeyboard.send_keys("<ctrl>+x")

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

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

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

5. Facultatif, 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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.