¿Cómo configuro las macros del teclado?

20

En mi vida diaria siempre estoy escribiendo <kbd>Keyboard Character</kbd>y me gustaría configurar una macro en Ubuntu para ingresar automáticamente <kbd> </kbd>.

Me gustaría asignarlo para decir Shift+ Control+ Ko cualquier combinación de caracteres de control de teclado que no esté asignada y que Ubuntu ya no use.

En el día de los programas de MS-DOS TSR (Terminar y permanecer residente) esto era posible. ¿Ciertamente también debe estar en Ubuntu?

¿Tengo que escribir un demonio para lograr esto?


Encontré otras preguntas sin respuestas: ¿Cómo puedo asignar macros a las teclas de mi teclado en Ubuntu, similar a las Macros de Razer Keyboard en Windows? , ¿qué es una buena grabadora de macros de mouse / teclado?

Encontré una pregunta similar con una respuesta: ¿Puedo usar atajos de teclado para implementar macros de texto? . Sin embargo, esa pregunta estipulaba que la respuesta no podía ser AutoKey.

WinEunuuchs2Unix
fuente
Puntos por mencionar el TSR :-)
drudru

Respuestas:

14

Lo que también se puede hacer es usar xdotoolcon typeflag, así:

bash -c ' sleep 0.5; xdotool getactivewindow  type "<kbd></kbd>"'

Vaya a Configuración del sistema-> Teclado-> Accesos directos -> Personalizado y vincule ese comando al atajo de teclado que desee. He elegido CtrlSuperK. Lo que sucede aquí es que le damos al usuario un retraso de 0.5 segundos para liberar el atajo de teclado, y luego xdotoolescribiremos las etiquetas de marcado de teclas como si lo estuviera haciendo usted mismo en el teclado. Enfoque muy fácil y simple. De hecho, lo estoy usando justo ahora para poner esas 3 teclas anteriores.

Tenga en cuenta que xdotoolno viene con Ubuntu de forma predeterminada, por lo que deberá instalarlo a través desudo apt-get install xdotool

Sergiy Kolodyazhnyy
fuente
¿También puede hacer que el puntero de inserción retroceda para que quede entre <kbd>y </kbd>?
DK Bose
44
Estoy usando bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'para obtener el cursor de texto entre las etiquetas de código.
DK Bose
1

Si tiene un archivo de composición , puede usarlo como una utilidad de inserción de texto para personas pobres.

Puede usar algunos de los modificadores en X. Aparentemente puede usarlo Shiftcomo modificador:

! Ctrl Shift <k> : "<kbd></kbd>"

Pero esto no funciona, al menos en mi máquina.

Tampoco funciona (omitido Shift, en mayúscula K):

! Ctrl <K> : "<kbd></kbd>"

Sin embargo, puede usar Ctrly Ctrl+ Alt:

! Ctrl Alt <k> : "<kbd></kbd>"
! Ctrl <k> : "<kbd></kbd>"

Colocando el cursor correctamente

Las asignaciones anteriores colocarán el cursor después de la cadena ( |indica el cursor):

<kbd></kbd>|

Creo que no puede haber una solución de propósito general para colocar el cursor dentro de la etiqueta; para eso necesitaría usar una herramienta adecuada para su propósito. Pero puede el cursor ir dentro de la etiqueta en ciertas aplicaciones.

Lo uso gnome-terminalcon Bash, que utiliza la combinación de teclas readline (como Emacs). Ctrl-bes la combinación de teclas para retroceder un personaje. En mi terminal puedo escribir Ctrl+v by obtener el carácter de control ^B(U + 0002 (Inicio de texto)). Entonces escriba seis de estos caracteres al final de la cadena:

! Ctrl Alt <k> : "<kbd></kbd>^B^B^B^B^B^B"

El cursor se colocará dentro de la etiqueta si está dentro de una aplicación que interpreta ^Bcorrectamente (por ejemplo, terminales y Emacs):

<kbd>|</kbd>

Usando la tecla componer

Por supuesto, puede usar la tecla componer ( <Multi_key>) para lograr lo mismo. Por ejemplo, use t("etiqueta") y k("teclado"):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
Guildenstern
fuente