Imitación de teclas de comando / alt / control estilo Mac en Linux

12

Me encanta que Mac separe la tecla de comando de la tecla de control, permitiendo que los accesos directos del sistema operativo y los accesos directos de texto coexistan. Es increíblemente útil, especialmente porque permite accesos directos a emacs en todas partes .

He buscado en casi todas partes algún tipo de utilidad que pueda permitir esto y no pueda encontrar nada. ¿Alguna ayuda?

Nota: Quiero hacer algo más que reasignar mi teclado. Quiero dividir los accesos directos del sistema operativo y los accesos directos de texto. La única forma en que puedo ver eso es ir manualmente a través de cada acceso directo en Gnome y Compiz y cambiarlo.

Kenrick Rilee
fuente

Respuestas:

1

No lo he intentado yo mismo pero encontré esto en "Preguntar a Ubuntu":

Instalar AutoKey:

apt-get install autokey-gtk

y establece una frase para:

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

Vea aquí: ¿Cómo hacer que el teclado funcione como OSX System Wide?

Teórico
fuente
0

Actualización 02/03/2020

Kinto ahora ha sido reescrito en C para sistemas Ubuntu / Debian usando x11. También utiliza archivos de configuración json, lo que hace que sea más fácil de administrar y extender a otras aplicaciones que no sean solo terminales. La aplicación ya no se asigna a Super en las aplicaciones de Terminal, ahora se asignará correctamente a Ctrl + Shift para crear exactamente la misma sensación que tener una tecla Cmd.

Por favor revise la última versión. https://github.com/rbreaves/kinto

El cambio principal para permitir el cambio Super = Ctrl + Shift está en este archivo de símbolos.

default partial xkb_symbols "mac_levelssym" {
    key <LWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_L ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
    key <RWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_R ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
};

Puede encontrar que Kinto sea útil. Es un proyecto que creé recientemente, después de unos años de abordar este problema de diferentes maneras y ahora siento que es lo suficientemente sólido como para compartirlo.

El instalador de Kinto simplemente usa python para hacer la instalación inicial, después de eso es solo un servicio systemd, bash, xprop, setxkbmap y xkbcomp. En lo que a mí respecta, es la solución más rápida y nativa para este problema que encontrará.

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

Aquí también hay un Gist, si solo desea ver lo que está en el centro de todo, no alternará su mapa de teclas cuando sea necesario. El Gist tampoco incluye archivos de mapas de teclas xkb personalizados que configuran cursores de estilo macOS / manipulaciones de palabras que usan Cmd y las teclas de flecha.

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

contenido esencial

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
R Ben R
fuente
No publique la misma respuesta a varias preguntas. Si la misma información realmente responde ambas preguntas, entonces una pregunta (generalmente la más nueva) debería cerrarse como un duplicado de la otra. Puede indicar esto votando para cerrarlo como un duplicado o, si no tiene suficiente reputación para eso, levante una bandera para indicar que es un duplicado. De lo contrario, adapte su respuesta a esta pregunta y no solo pegue la misma respuesta en varios lugares.
DavidPostill
1
Si pensara que podría haber agregado algo sustancial a la pregunta formulada al adaptar la respuesta, entonces lo habría hecho. En general, esta es una pregunta bastante común y todos comparten bastante bien la misma respuesta. De cualquier manera, no estaba al tanto de la política de marcar o cerrar preguntas duplicadas. Lo tendré en cuenta para el futuro.
R Ben R