¿Cómo hacer que el teclado funcione como OSX System Wide?

111

Cambio constantemente entre dos computadoras:

  • OSX Snow Leopard
  • Ubuntu 10.10

Me gustaría poder hacer que Ubuntu use los mismos métodos abreviados de teclado que OSX System Wide , solo para las siguientes secuencias de teclado (es decir, no quiero hacer que Ctrl actúe como Super)

  • Super+C -> Copiar

  • Super+V -> Pegar

  • Super+T -> Abra una nueva pestaña en cualquier navegador en el que esté.

  • Super+W -> Cierra una pestaña en cualquier navegador en el que me encuentre.

En resumen, ¿hay alguna forma de que yo asigne solo estas secuencias de teclado a las siguientes, en todo el sistema?

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

Sé que hay formas de hacer esto para vim y Firefox, y estoy seguro específicamente para la mayoría de las aplicaciones ... ¡pero preferiría tener que hacer esto solo una vez y hacer que funcione de esa manera en todo el sistema !

Estoy usando un teclado de PC estándar, que es "Generic 105 key (intl) PC" en Ubuntu. También estoy usando el mismo teclado en mi Mac mini.

parques de brad
fuente
44
Si ha marcado esto para todos los atajos de teclado de Mac, ¡compartir su archivo de configuración sería excelente! Gracias
Dolan Antenucci
¡Oye! Me gustaría todavía lo hice, pero estoy trabajando exclusivamente en Mac ahora, como he movido empleos ;-) Así que no tengo mi configuración antigua alrededor de cualquier parte ...
parques clavito
las soluciones no funcionan en sistemas operativos elementales ".
Paschalis

Respuestas:

38

Si instala el paquete xautomation, puede agregar un comando en Sistema / Preferencias / Atajos de teclado / Personalizado como:

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

y mapear eso a Meta-C.


Solución alternativa:

Instale AutoKey (apt-get install autokey-gtk) y establezca una frase para:

Phrase Text: <ctrl>+C (actually type out the <ctrl>+ here)
Paste Using: Keyboard
Abbreviation: None
Hotkey: <super>+v
Window Filter: None
cscarney
fuente
¡Oye! esto parece muy prometedor ... lo he instalado y puedo ejecutar el comando xte anterior desde el terminal, y genera "^ C" en el terminal ... ¡lo cual me parece bien! pero cuando lo mapeo en atajos de teclado, no hace nada ... Intenté mapear otro programa a Meta-C, y funciona bien (es decir, se inicia bien cuando presiono Meta-C). También intenté especificar la ruta completa a xte (/ usr / bin / xte) y eso tampoco funcionó ... ¿puedes probar esto en tu sistema y ver si funciona? ¡Gracias!
Brad Park
1
Entonces xte envía los códigos de tecla correctamente, pero aparentemente las aplicaciones ven la combinación del atajo y las pulsaciones de teclas enviadas por xte (por ejemplo, Meta-Control-C). He actualizado mi respuesta para simular la liberación de las teclas de acceso directo antes de enviar las pulsaciones de teclas.
cscarney el
2
En la comprobación rápida, funciona para mí, pero he encontrado una solución que probablemente sea más confiable que xte (incluso si lo haces funcionar). Verifique la respuesta revisada.
cscarney el
1
¡Oye! gracias @cscarney! ¡su "Solución alternativa" para AutoKey funciona totalmente! ¡Muchas gracias por su continuo esfuerzo en esto!
Brad Park
1
Las soluciones no funcionan para Ubuntu 18.04
JZ.
17

Para Ubuntu 14 o posterior puedes hacer esto:

sudo apt-get install gnome-tweak-tool

Luego, busque Herramienta de ajustes> Escribir> Comportamiento de teclas Alt / Win

Y verifique: Ctrl se asigna a las teclas Win (y las teclas Ctrl habituales)

Caio Lopes
fuente
Parece que no hace nada o no es comportamiento de Mac
chovy
En una nueva instalación de Ubuntu 16, instalar esto parece requerir gnome-settings-daemon, lo que parece conducir a una serie de paquetes que no parecen estar destinados a ser instalados.
Tom Lianza
Con mucho, la opción más sencilla si solo desea que la tecla de comando sea como la tecla cmd en mac, principalmente para copiar y pegar. Estoy en ubuntu-gnome-desktop
lxm7
Esto funciona muy bien para los comandos copiar y pegar y me impide abrir constantemente el menú de búsqueda en Ubuntu. Ahora solo necesito asignar Command-Tab a Alt-Tab
Ron Smith
1
No veo Tweak Tool en mis aplicaciones. ¿Qué tengo que hacer?
Jadda
13

Hay una manera de asignar Ctrla Win/ Superclave:

  1. vaya a sistema-> preferencias-> teclado ,

  2. abrir pestaña Diseños ,

  3. haga clic en Opciones ... ,

  4. comportamiento abierto Alt/ Winclave ,

  5. y seleccione Control asignado a teclas Win

Y para la consola hay una publicación en el foro sobre cómo hacer eso aquí .

Para más excavación, consulte el COMO general del teclado Linux aquí .

Saludos

danizmax
fuente
3
Hola, @danizmax: gracias por la respuesta ... pero me gustaría específicamente evitar cambiar el comportamiento completo de Ctrl ... Me parece que no funciona con otras cosas si lo hago ... Realmente me gustaría mapear solo el atajos de teclado que mencioné en la publicación ... ¡aunque gracias!
Brad Park
Bueno, Ctr + permanece como está. Solo duplica todas las teclas Ctrl + a Super +, por lo que solo debe agregar el comportamiento. A menos que realmente quiera cambiar solo los que mencionó, tendrá que cavar mucho con xmodmap y loadkeys. He agregado el enlace al COMO del teclado general de Linux. Espero que ayude: P
danizmax
1
Esta fue la solución más fácil de todas las propuestas.
Datageek
1
Ya no veo la opción "opciones" o "comportamiento de clave alt / win" en la configuración del sistema en Ubuntu 15.10 astutamente.
user29020
1
eso está ahora en ajustes de gnomos, "teclado y mouse"
Yrogirg
8

Para ampliar el toque de AutoKey cscarney , estoy desarrollando mi AutoKey configuración para lograr todo esto en Ubuntu (OS X-como <cmd>+c, <cmd>+v, ... Emacs de estilo <ctrl>+f, <ctrl>+b...) en mi repo dotfile .

No uso frases básicas (donde el filtrado de ventanas está roto actualmente ), sino scripts de Python, para poder desactivar AutoKey en aplicaciones como Emacs, Eclipse, Vim, gnome-terminal ... donde no quiero meterme arriba los atajos existentes.

Puede consultar READMEla parte inferior para obtener instrucciones sobre cómo configurarlo.

metakermit
fuente
el enlace está roto para la aplicación
chifliiiii
@chifliiiii arregló los enlaces, pero tenga en cuenta que la configuración vinculada en mis archivos de puntos probablemente esté desactualizada, porque no la he estado usando en años.
metakermit
5

Algunas de las soluciones anteriores son antiguas y no funcionan con Ubuntu 18.04. Aquí hay una respuesta actualizada

  1. Instale ajustes de gnome si no está instalado en el sistema

    sudo apt-get install gnome-tweaks

  2. Abra la lista de aplicaciones presionando Mostrar aplicaciones en la parte inferior izquierda.

  3. Tenga en cuenta que esto solo cambiará el comportamiento de la tecla WINDOWS a la tecla CMD y mantendrá la tecla CTRL igual que antes (tendrá 2 teclas CTRL). Si no le gusta esto, omita el paso 4 y vaya al paso 5

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

  5. Omita este paso si completó el paso 4. Este paso cambiará el comportamiento de la tecla de Windows a Ctrl y viceversa. BuscarTweaks application --> Keyboard and Mouse --> Additional Layout options --> Ctrl Position --> Select Swap Left Win with Left Ctrl

  6. Una cosa más que extraño de macOS es la capacidad de cambiar ventanas con CMD + Tab (en este caso Windows + Tab). Para lograr esto, vaya aSettings --> Keyboard --> Look for Switch Windows under navigation section --> Double Click it and press Windows+Tab when pop up appears

Jadda
fuente
5

Quería una solución que funcionara en cualquier entorno de escritorio / administrador de ventanas, así que combiné la sugerencia de cscarney de usar xautomation con el SXHKD (el simple demonio X hotkey).

Aquí está el ~/.config/sxhkd/sxhkdrcarchivo de configuración básica que produje.

Avanzado: mi última versión es más completa y puede enviar diferentes teclas para diferentes aplicaciones, pero requiere un script externo y probablemente tiene algunos enlaces que no desea.

Aquí hay un fragmento:

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

  • Como puede ver, si presiono la tecla modificadora original antes de realizar el trazo virtual, la presiono nuevamente. Esto significa que el usuario puede repetir la tecla presionada sin tener que soltar y presionar la tecla modificadora nuevamente. En otras palabras, después de presionar Alt-W, el sistema ve que la tecla Alt está presionada.

Advertencias:

  • Eso puede ser un problema (especialmente en máquinas más lentas) si suelta la tecla Alt mientras el comando xte aún se está ejecutando . ¡Terminará con una tecla Alt "pegajosa", porque xte la ha presionado!

  • Con este enfoque, los disparadores no se repetirán si se mantiene presionada la tecla. (Por lo tanto, no puede mover 12 palabras manteniendo presionada Super-Izquierda).

joeytwiddle
fuente
Solía ​​usar bbkeysen el pasado, pero lamentablemente no está empaquetado en tantas distribuciones en estos días.
joeytwiddle
4

Esta es una tarea fácil una vez que sabes cómo hacerlo.

1) Verifique el código clave de la suya. Ejecute este programa en la terminal.

xev


En este ejemplo, el terminal muestra que el código clave para mi kes "45".

2) Cámbielos como desee al crear este archivo:

gedit ~ / .Xmodmap

Su contenido debería verse así:

código clave 64 = Alt_L Meta_L Alt_L Meta_L
código clave 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift

(Cambie el número del código clave según sea necesario; consulte el paso "1")

Ilustración:
(Obs .: si quiero cambiar mi kdebería usar el "código clave 45" como se muestra en el paso "1").

4) Cerrar sesión y volver a iniciar sesión o reiniciar o ejecutar esto:

xmodmap ~ / .Xmodmap

Espero que lo disfrutes ;-)

desgua
fuente
1

Primero
instale el CD Guest Additions ( Devices->Insert Guest Additions CD image).

Activar el uso compartido del portapapeles
Luego, después de reiniciar, en Virtualbox, vaya Machine->Settings->General->Advancedy configure
Shared Clipboard: Bidrectional

Cambiar la clave de host de VirtualBox
en Vitualbox/Preferences/Input/Virtual Machine/Host Key Combination
elegir algo diferente de

Asignación de teclas :
para la cmd/ctrlasignación, agregar el teclado en inglés (Macintosh) parece ser la solución más cómoda :)

Vaya a Ubuntu Settings->Text Entry
(supongo que en versiones anteriores podría estar en Configuración de diseño del teclado)
En Input sources to use:hit plus (+)
addEnglish (Macintosh)

Estoy en Ubuntu 14.04.3 LTS 64bit en VirtualBox 5.0.4

Todo es uno
fuente
1

Aquí hay una solución mucho más simple, Kinto. He estado trabajando en esto durante 3 años ... y finalmente siento que puedo contribuir con algo por lo bien que funciona, a diferencia de mis últimos 2 intentos. Está diseñado para x11 y distribuciones basadas en systemd, pero el concepto se trasladará a Wayland una vez que encuentre una buena manera de implementarlo, a pesar de la mayor seguridad que hace que sea difícil trabajar con él.

1) Gist (para aquellos que solo quieren ver la premisa o implementar su propia solución alternativa, los casos límite no están cubiertos).

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

2) El instalador completo que hace uso de systemd, bash y xprop. (Los casos de borde, como los Chromebooks están cubiertos, fue sorprendentemente difícil de soportar, ¡pero disfruto el mío para que todos puedan beneficiarse!)

https://github.com/rbreaves/kinto

La razón de Kinto, japonés para flip, es esta: incluso si perfeccionó una reasignación de clave para cada aplicación GUI normal utilizando algún otro método, no tendrá el mismo tipo de experiencia de Terminal, fácilmente, en Linux que usted. en una Mac Y eso es desafortunado, porque las Mac nos estropean a los desarrolladores con un mapa de teclas que funciona sorprendentemente bien para las aplicaciones de Terminal. El punto de lo que he hecho, al cambiar su mapa de teclas a 1 de 2 opciones de diseño a través de setxkbmap y la aplicación activa en uso, es que tiene que crear la menor cantidad de teclas de acceso directo adicionales específicas para cualquier aplicación en particular.

Esencialmente, con esta solución no estás luchando sobre cómo crear correctamente nuevas teclas de acceso directo o tratando de evitar conflictos de acceso directo en tus aplicaciones de Terminal frente al resto de tus aplicaciones GUI. Simplemente obtienes lo mejor de ambas palabras, y funciona tan perfectamente como puede, más allá de incluir archivos de configuración de acceso directo predeterminados para varios terminales y editores de texto populares, que puedo incluir más adelante. Incluso los editores de texto como Sublime no simplemente cambian la tecla Cmd con Ctrl en cada acceso directo, sino que se alinean correctamente aproximadamente el 95% o más de las veces, diría.

Y hablando de Wayland, tengo una prueba de concepto de cómo hacer que este truco de intercambio de teclas del mapa de teclas funcione en KDE Plasma 5 con un widget existente que extrae los nombres de las aplicaciones. Si alguien tiene una mejor solución, entonces soy todo oídos, especialmente si también puede funcionar en x11. Xprop es completamente suficiente en x11, pero obviamente no sirve en Wayland.

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

R Ben R
fuente
0

No tengo Ubuntu a mano (Mac está aquí, Ubu está en la oficina) pero uso un teclado Mac allí y por las mismas razones que usted, quería hacer esto.

Lo primero es asegurarse de que su teclado esté instalado como un teclado Mac. Creo que puedes cambiar esto en sistema-> preferencias-> teclado. Mientras esté allí, una de las pestañas lo llevará a una página de asignación de teclas donde puede configurar cómo funciona la tecla cmd.

Como digo, no puedo recordar exactamente: puedo señalar los bits en mi pantalla aquí, pero eso no funciona porque no estoy allí.

Si todavía estás atrapado mañana, volveré a mirar.

León
fuente
sistema-> preferencias-> teclado-> diseños-> opciones
Leo
hola leo ... aunque no estoy usando un teclado Mac con Ubuntu ... Estoy usando un teclado de PC estándar, es decir, "Generic 105 key (intl) PC" intenté cambiar mi "modelo de teclado" a Vendor Apple / modelo de Apple, pero eso no parece hacer ninguna diferencia .... también trataron de proveedores de Apple / modelo de Macbook y que no parecen cambiar nada tampoco ...
parques clavito
y para lo que vale, también uso el mismo teclado de PC en mi Macmini, ya que lo compré de segunda mano y no venía con un teclado Mac. gracias de nuevo.
Brad Park
0

Las teclas automáticas funcionaron para mí. Ahora win + c (v, x, a) funcionan en mi sistema tal como lo esperaba.

1. Instalar teclas automáticas

sudo apt install autokey-gtk

2. Configurar autokeys

  1. Agregue la carpeta raíz, llámela como MacKeys o lo que sea
  2. Creará 4 scripts allí para ctrl-c, v, xy a
  3. asignar a cada script teclas de acceso rápido super-c, super-v, etc.
  4. complete los scripts con el código a continuación (reemplace la letra c por otros 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. Para CmdZ, CmdA o CmdX funcionan con secuencias de comandos más simples comokeyboard.send_keys("<ctrl>+x")

3. Agregue / usr / bin / autokey-gtk a las aplicaciones de inicio

4. Desactive win-A en la configuración del teclado

Normalmente win-a cambia a una vista general.

5. Opcional, evite completamente win para cambiar la visión general

Probablemente querrás eliminarlo. Instale gnome-tweak-tool, vaya al teclado y vuelva a vincular el cambio del escritorio a la descripción general. Eso funcionó para mi gnome ubuntu 16.04.

Lauri
fuente