Conozco varias formas de reasignar combinaciones de teclas en Ubuntu a nivel mundial (por ejemplo, reasignar globalmente Ctrl + S para enviar Ctrl + D o algo así), como la aplicación xbindkeys . Sin embargo, lo que necesito es una forma de hacer esto solo para una aplicación específica . Por ejemplo, algo así como "Reasignar Ctrl + S para enviar Ctrl + D, pero solo en Chrome ". ¿Hay alguna forma de lograr esto?
shortcut-keys
x11
Derek Thurn
fuente
fuente
Respuestas:
Su idea de usar xbindkeys suena bien:
en su
.xbindkeysrc
agregar una nueva combinación de teclas:Esto se ejecutará
"app_specific_keys.sh"
cuando presionectrl+s
.Ahora necesita definir el script. Debería obtener la ventana activa y de ahí el nombre de la aplicación que actualmente tiene el foco:
Esto haría el truco: le pide a xdotool la ventana activa, luego le pide a xprop todas las propiedades de la ventana con la identificación dada, y luego reduce la salida muy detallada al nombre de la aplicación (en realidad, su clase). Si ejecuta esto en una terminal gnome obtendría
Ahora necesita definir acciones para sus aplicaciones:
Así que juntos, el guión
"app_specific_keys.sh"
podría verse así:Esto debería funcionar, pero como en esta pregunta , tengo que admitir que no. Probablemente porque uno de Compiz, Unity, Global Menu no funciona bien con la
--clearmodifiers
opción de xdotool. Una solución alternativa sería agregar una suspensión frente a su secuencia de comandos para poder liberar las claves usted mismo: en su.xbindkeysrc
cambio a esta combinación de teclas:Como nota al margen: esto no funcionará si desea cambiar las claves de los programas que se ejecutan en un terminal (por ejemplo, vi o emacs en modo consola). La clase de aplicación devuelta seguiría siendo "Gnome-terminal".
Espero que ayude.
fuente
xvkbd -xsendevent -text "\Cs"
. Esto no parece sufrir los problemas que estaba viendo con xdotool.f
llamarxdotool key f
. Todavía estoy buscando una manera de hacer esto.xdotool type --window $(xdotool getwindowfocus) [keys]
usando la opción --window y enviando a la ventana activa actualmente NO conducirá a un comportamiento recursivo.autokey es como AutoHotkey para Ubuntu. Puede escribir scripts en python y hacer que se ejecuten mediante un método abreviado de teclado y un filtro de Windows (lo que lo hace específico para la pseudo-aplicación). Su secuencia de comandos puede controlar los eventos del teclado y el mouse e incluso mover las ventanas como un toque adicional.
fuente
autokey
es MUCHO más rápido quexbindkeys
, incluso con el modo de detección de ventanas activado: se toman medidas inmediatas. Desventaja: las asignaciones de los botones del mouse parecen no funcionar (creo que es un error)