Come far funzionare la tastiera come OSX a livello di sistema?


111

Passo avanti e indietro tra due computer costantemente:

  • OSX Snow Leopard
  • Ubuntu 10.10

Mi piacerebbe essere in grado di fare in modo che Ubuntu utilizzi le stesse scorciatoie da tastiera di OSX System Wide , solo per le seguenti sequenze di tastiere (ovvero non voglio che Ctrl si comporti come Super)

  • Super+C -> Copia

  • Super+V -> Incolla

  • Super+T -> Apri una nuova scheda in qualunque browser mi trovi.

  • Super+W -> Chiudi una scheda in qualunque browser mi trovi.

Quindi, in breve, c'è comunque un modo per mappare solo queste sequenze di tasti sulla seguente, a livello di sistema?

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

So che ci sono modi per farlo per vim e Firefox, e sono sicuro in particolare per la maggior parte delle applicazioni ... ma preferirei farlo solo una volta e farlo funzionare a livello di sistema !

Sto usando una tastiera standard per PC, ovvero "Generic 105 key (intl) PC" su Ubuntu. Sto anche usando la stessa tastiera sul mio Mac mini.


4
Se hai ottenuto questo comando per tutte le scorciatoie da tastiera del Mac, condividere il tuo file di configurazione sarebbe fantastico! Grazie
Dolan Antenucci il

Hey! Vorrei ancora averlo fatto, ma sto lavorando esclusivamente su Mac ora, poiché ho spostato i lavori ;-) Quindi non ho la mia vecchia configurazione in giro da nessuna parte ...
Brad Parks

le soluzioni non funzionano su sistemi operativi elementari. '
Paschalis,

Risposte:


38

Se installi il pacchetto xautomation, puoi aggiungere un comando in Sistema / Preferenze / Scorciatoie da tastiera / Personalizzato come:

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

e mappalo su Meta-C.


Soluzione alternativa:

Installa AutoKey (apt-get install autokey-gtk) e imposta una frase su:

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

Hey! questo sembra molto promettente ... ho installato e posso eseguire il comando xte sopra dal terminale, e genera "^ C" nel terminale ... che mi sta bene! ma quando lo mappa nelle scorciatoie da tastiera, non fa nulla ... Ho provato a mappare un altro programma su Meta-C, e funziona benissimo (cioè si avvia bene quando premo Meta-C). Ho anche provato a specificare il percorso completo di xte (/ usr / bin / xte) e neanche quello ha funzionato ... puoi provare questo sul tuo sistema e vedere se funziona? Grazie!
Brad Park,

1
Quindi xte invia i codici chiave correttamente, ma a quanto pare le applicazioni vedono la combinazione del collegamento e dei tasti premuti da xte (ad esempio Meta-Control-C). Ho aggiornato la mia risposta per simulare il rilascio dei tasti di scelta rapida prima di inviare i tasti premuti.
cscarney,

2
Su un controllo rapido funziona per me, ma ho trovato una soluzione che probabilmente sarà più affidabile di xte (anche se riesci a farlo funzionare). Controlla la risposta rivista.
cscarney,

1
Hey! grazie @cscarney! la tua "soluzione alternativa" per AutoKey funziona totalmente! grazie mille per il tuo continuo impegno su questo!
Brad Park,

1
Le soluzioni non funzionano per Ubuntu 18.04
JZ.

17

Per Ubuntu 14 o versioni successive puoi fare questo:

sudo apt-get install gnome-tweak-tool

Quindi, cerca lo strumento Modifica> Digitazione> Alt / Win

E controlla: Ctrl è associato ai tasti Win (e ai normali tasti Ctrl)


Non sembra fare nulla o non è un comportamento Mac
Chovy

In una nuova installazione di Ubuntu 16, l'installazione di questo sembra richiedere gnome-settings-daemon che sembra portare a una scia di pacchetti che non sembrano pensati per essere installati.
Tom Lianza,

Di gran lunga l'opzione più semplice se vuoi solo che il tasto comando sia come il tasto cmd in mac, principalmente per copia e incolla. Sono su Ubuntu-gnome-desktop
lxm7

Funziona benissimo per i comandi copia-incolla e mi impedisce di aprire costantemente la cosa del menu di ricerca in Ubuntu. Ora ho solo bisogno di mappare Command-Tab su Alt-Tab
Ron Smith

1
Non vedo Tweak Tool nelle mie app. Cosa dovrei fare?
Jadda,

13

C'è un modo per mappare Ctrla Win/ Superkey:

  1. vai su sistema-> preferenze-> tastiera ,

  2. scheda aperta Layout ,

  3. fai clic su Opzioni ... ,

  4. comportamento aperto Alt/ Winchiave ,

  5. e selezionare Il controllo è associato ai tasti Win

E per console c'è un post sul forum su come farlo qui .

Per ulteriori scavi, controlla la tastiera generale Linux HOWTO qui .

Saluti


3
hey @danizmax - grazie per la risposta ... ma mi piacerebbe in particolare evitare di modificare il comportamento completo di Ctrl ... Trovo che si rovini con altre cose se lo faccio ... Mi piacerebbe davvero mappare solo il scorciatoie da tastiera che ho citato nel post ... grazie comunque!
Brad Park,

Bene, il Ctr + rimane com'è. Duplica solo tutto Ctrl + su Super +, quindi aggiungi semplicemente il comportamento. A meno che tu non voglia davvero cambiare solo quelli che hai menzionato, dovrai scavare molto con xmodmap e loadkeys. Ho aggiunto il link al generale HOWTO sulla tastiera Linux. Spero che sia d'aiuto: P
danizmax,

1
Questa è stata la soluzione più semplice tra tutte le proposte.
Datageek,

1
Non vedo più l'opzione "opzioni" o "comportamento chiave alt / win" nelle impostazioni di sistema in Ubuntu 15.10 astutamente.
user29020

1
questo è ora in gnome tweaks, "tastiera e mouse"
Yrogirg

8

Per espandere il Chiave automatica accenno di cscarney , sto sviluppando il mio Chiave automatica di configurazione per realizzare tutto questo in Ubuntu (OS X-like <cmd>+c, <cmd>+v... Emacs-style <ctrl>+f, <ctrl>+b, ...) nel mio Dotfile repo .

Non uso frasi di base (dove il filtraggio delle finestre è attualmente interrotto ), ma gli script Python, per poter disabilitare AutoKey in app come Emacs, Eclipse, Vim, gnome-terminal ... dove non voglio fare casino le scorciatoie esistenti.

Puoi dare un'occhiata READMEin fondo per le istruzioni su come configurarlo.


link non funzionante per l'app
chifliiiii

@chifliiiii ha corretto i collegamenti, ma nota che la configurazione collegata nei miei dotfile è molto probabilmente obsoleta, perché non lo uso da anni.
metakermit,

5

Alcune delle soluzioni di cui sopra sono vecchie e non funzionano con Ubuntu 18.04. Ecco una risposta aggiornata

  1. Installa gnome-tweaks se non è installato nel sistema

    sudo apt-get install gnome-tweaks

  2. Apri l'elenco delle applicazioni premendo Mostra applicazioni in basso a sinistra.

  3. Nota che questo cambierà solo il comportamento della chiave WINDOWS in chiave CMD e manterrà la chiave CTRL come prima (avrai 2 chiavi CTRL). Se non ti piace, salta il passaggio 4 e vai al passaggio 5

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

  5. Salta questo passaggio se hai completato il passaggio 4. Questo passaggio sostituirà il comportamento del tasto Windows in Ctrl e viceversa. CercareTweaks application --> Keyboard and Mouse --> Additional Layout options --> Ctrl Position --> Select Swap Left Win with Left Ctrl

  6. Un'altra cosa che mi manca di macOS è la possibilità di cambiare finestra con CMD + Tab (in questo caso Windows + Tab). Per raggiungere questo, vai aSettings --> Keyboard --> Look for Switch Windows under navigation section --> Double Click it and press Windows+Tab when pop up appears


5

Volevo una soluzione che funzionasse in qualsiasi ambiente desktop / gestore di finestre, quindi ho combinato il suggerimento di cscarney di usare xautomation con SXHKD (il semplice demone X hotkey).

Ecco il ~/.config/sxhkd/sxhkdrcfile di configurazione di base che ho prodotto.

Avanzato: la mia ultima versione è più completa e può inviare sequenze di tasti diverse per applicazioni diverse, ma richiede uno script esterno e probabilmente ha alcuni collegamenti che non desideri.

Ecco uno snippet:

# 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"

Nota:

  • Come si può vedere, se si esegue il keyup del tasto modificatore originale prima di eseguire il tratto virtuale, successivamente lo si esegue nuovamente. Ciò significa che l'utente può ripetere la pressione del tasto senza rilasciare e premere nuovamente il tasto modificatore. In altre parole, dopo aver premuto Alt-W, il sistema vede il tasto Alt premuto.

Avvertenze:

  • Questo può essere un problema (specialmente su macchine più lente) se rilasci il tasto Alt mentre il comando xte è ancora in esecuzione . Ti ritroverai con un tasto Alt "appiccicoso", perché xte lo ha premuto per te!

  • Usando questo approccio, i trigger non si ripeteranno se si tiene premuto il tasto. (Quindi non puoi spostare 12 parole tenendo premuto Super-Sinistra.)


Usavo bbkeysin passato, ma purtroppo non è confezionato in così tante distribuzioni in questi giorni.
Joeytwiddle,

4

Questo è un compito facile una volta che sai come farlo.

1) Controlla il codice chiave della tua chiave. Esegui questo programma sul terminale.

xev


In questo esempio, il terminale mostra che il codice chiave per my kè "45".

2) Modificali come preferisci creare questo file:

gedit ~ / .Xmodmap

Il suo contenuto dovrebbe assomigliare a questo esempio:

keycode 64 = Alt_L Meta_L Alt_L Meta_L keycode
108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift

(Modificare il numero di codice chiave secondo necessità - guardare il passaggio "1")

Ilustration:
(Obs .: se voglio cambiare il mio kdovrei usare "keycode 45" come mostrato al passaggio "1").

4) Disconnettersi e riconnettersi o riavviare o eseguire questo:

xmodmap ~ / .Xmodmap

Spero ti diverta ;-)



1

Per prima cosa
installare Guest Additions CD ( Devices->Insert Guest Additions CD image).

Attiva la condivisione degli appunti
Quindi dopo un riavvio, in Virtualbox vai Machine->Settings->General->Advancede imposta
Shared Clipboard: Bidrectional

Cambio VirtualBox Host Key
In Vitualbox/Preferences/Input/Virtual Machine/Host Key Combination
scegliere qc diverso allora

Key Mapping :
per la cmd/ctrlmappatura per me l'aggiunta della tastiera inglese (Macintosh) sembra essere la soluzione più comoda :)

Vai a Ubuntu Settings->Text Entry
(suppongo che nelle versioni precedenti potrebbe essere in Impostazioni layout tastiera)
Sotto Input sources to use:hit plus (+)
aggiungiEnglish (Macintosh)

Sono su Ubuntu 14.04.3 LTS a 64 bit in VirtualBox 5.0.4


1

Ecco una soluzione molto più semplice, Kinto. Ci sto lavorando da 3 anni ormai .. e finalmente mi sento di poter contribuire con qualcosa a causa di come funziona bene, a differenza dei miei ultimi 2 tentativi. È inteso per x11 e distribuzioni basate su systemd, ma il concetto passerà a Wayland una volta trovato un buon modo per implementarlo, nonostante la sicurezza avanzata che rende difficile lavorare con.

1) Gist (per coloro che vogliono solo vedere la premessa o implementare la propria soluzione alternata, casi limite non coperti).

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

2) Il programma di installazione completo che utilizza systemd, bash e xprop. (I casi limite, come i Chromebook sono coperti, è stato sorprendentemente difficile da supportare, ma mi piace il mio in modo che tutti possano trarne vantaggio!)

https://github.com/rbreaves/kinto

Il motivo di Kinto, giapponese per il flip, è questo: anche se hai perfezionato un rimappatura chiave per ogni normale app GUI usando qualche altro metodo, non avrai lo stesso tipo di esperienza Terminale, facilmente, su Linux come fai tu su un Mac. E questo è un peccato - perché i Mac ci rovinano gli sviluppatori con una mappa chiave che funziona sorprendentemente bene per le app Terminal. Il punto di ciò che ho fatto, cambiando la tua keymap in 1 di 2 opzioni di layout tramite setxkbmap e l'app attiva in uso, è che ti costringe a creare il minor numero di tasti di scelta rapida aggiuntivi specifici per una particolare app.

In sostanza, con questa soluzione non stai combattendo su come creare correttamente nuovi tasti di scelta rapida o cercando di evitare conflitti di collegamenti nelle app Terminale rispetto alle altre app GUI. Ottieni semplicemente il meglio di entrambe le parole e funziona nel modo più semplice possibile, oltre a includere i file di configurazione di scelta rapida predefiniti per vari terminali e editor di testo popolari, che potrei includere in seguito. Anche gli editor di testo come Sublime non cambiano semplicemente il tasto Cmd con Ctrl su ogni scorciatoia, ma si allinea correttamente circa il 95% o più delle volte che direi.

E parlando di Wayland, ho una prova del concetto di come far funzionare questo trucco keymap sul keymap su KDE Plasma 5 con un widget esistente che estrae i nomi delle app. Se qualcuno ha una soluzione migliore, allora sono tutto orecchi, specialmente se può funzionare anche su x11. Xprop è completamente sufficiente su x11, ma ovviamente non è utile su Wayland.

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


0

Non ho Ubuntu a portata di mano (Mac è qui, Ubu è in ufficio) ma uso una tastiera Mac lì e per gli stessi motivi per cui volevi farlo.

La prima cosa è assicurarsi che la tastiera sia installata come tastiera Mac. Penso che puoi cambiarlo in tastiera di sistema-> preferenze->. Mentre ci sei, una delle schede ti porterà a una pagina di mappatura dei tasti in cui puoi impostare come funziona il tasto cmd.

Come ho detto, non ricordo esattamente: posso indicare i bit sul mio schermo qui, ma non funzionano perché non ci sono.

Se domani sei ancora bloccato, guarderò di nuovo.


sistema-> preferenze-> tastiera-> layout-> opzioni
Leone

ciao leo ... non sto usando una tastiera Mac con Ubuntu però ... sto usando una tastiera standard per PC, ovvero "PC con 105 tasti (intl) generico" ha provato a cambiare il mio "modello di tastiera" con il fornitore Apple / Modello Apple ma questo non sembra fare alcuna differenza ... Ho anche provato il venditore Apple / Modello Macbook e che non sembra aver cambiato nulla ...
Brad Parks

e per quello che vale, uso esattamente la stessa tastiera per PC sulla mia macmini, poiché l'ho acquistata di seconda mano e non è stata fornita con una tastiera per Mac. grazie ancora.
Brad Parks,

0

Autokeys ha funzionato per me. Ora win + c (v, x, a) lavora attorno al mio sistema proprio come me lo aspettavo.

1. Installa autokeys

sudo apt install autokey-gtk

2. Configurare autokeys

  1. Aggiungi la cartella principale, chiamala come MacKeys o altro
  2. Creerai 4 script lì per ctrl-c, v, x e a
  3. assegnare a ogni script tasto di scelta rapida super-c, super-v ecc
  4. riempi gli script con il codice qui sotto (sostituisci la lettera c per altre combo)

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

4a. Per CmdZ, CmdA o CmdX funzionano con script più semplici comekeyboard.send_keys("<ctrl>+x")

3. Aggiungi / usr / bin / autokey-gtk alle applicazioni di avvio

4. Disabilita win-A nelle impostazioni della tastiera

Normalmente win-a passa alla panoramica.

5. Opzionale, impedire completamente la vittoria per cambiare la panoramica

Probabilmente vorrai rimuoverlo. Installa gnome-tweak-tool, vai sulla tastiera e ricollega il passaggio dal desktop alla panoramica. Ha funzionato per il mio gnome Ubuntu 16.04.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.