Come posso impostare le macro della tastiera?


20

Nella mia vita quotidiana scrivo sempre <kbd>Keyboard Character</kbd>e mi piacerebbe impostare una macro in Ubuntu per entrare automaticamente <kbd> </kbd>.

Vorrei assegnarlo per dire Shift+ Control+ Ko qualsiasi combinazione di caratteri di controllo della tastiera non sia assegnata e già utilizzata da Ubuntu.

Ai tempi dei programmi MS-DOS TSR (Terminate and Stay Resident) questo era possibile. Certamente deve trovarsi anche in Ubuntu?

Devo scrivere un demone per realizzare questo?


Ho trovato altre domande senza risposte: come posso assegnare macro ai miei tasti della tastiera su Ubuntu, simili a Razer Keyboard Macros in Windows? , cos'è un buon registratore di macro per mouse / tastiera?

Ho trovato una domanda simile con una risposta: posso usare le scorciatoie da tastiera per implementare le macro di testo? . Tuttavia quella domanda stabiliva che la risposta non poteva essere AutoKey.


Punti per far apparire il TSR :-)
drudru il

Risposte:


17

Ho cercato su Google e ho trovato un programma chiamato AutoKey ( Autokey - Utilità Linux per i tasti di scelta rapida per la sostituzione del testo ) nella parte superiore dell'elenco.

Invece di un tasto di scelta rapida che utilizza Ctrl+ Shift+, Kho scelto di assegnare l'abbreviazione kzche si espande automaticamente in <kbd></kbd>+.

Si installa semplicemente usando:

sudo apt install autokey-gtk

Si installa in Launcher e lo schermo è piuttosto semplice da usare:

Autokey


14

Ciò che può anche essere fatto è usare xdotoolcon typeflag, in questo modo:

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

Vai su Impostazioni di sistema-> Tastiera-> Scorciatoie -> Personalizza e associa quel comando a qualsiasi scorciatoia da tastiera che desideri. Ho scelto CtrlSuperK. Quello che succede qui è che concediamo all'utente un ritardo di 0,5 secondi per rilasciare la scorciatoia da tastiera, e quindi xdotooldigiteremo i tag di marcatura dei tasti proprio come se lo stessi facendo sulla tastiera. Approccio molto facile e semplice. In effetti l'ho usato proprio ora per inserire quelle 3 chiavi sopra.

Nota che xdotoolUbuntu non viene fornito di default, quindi dovrai installarlo tramitesudo apt-get install xdotool


Puoi anche riportare indietro il puntatore di inserimento in modo che sia compreso tra <kbd>e </kbd>?
DK Bose,

4
Sto usando bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'per ottenere il cursore di testo tra i tag di codice.
DK Bose,

1

Se si dispone di un file di composizione , è possibile utilizzarlo come utilità per l'inserimento di testo di un uomo povero.

Puoi usare alcuni dei modificatori in X. Apparentemente puoi usare Shiftcome modificatore:

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

Ma questo non funziona, almeno sulla mia macchina.

Né funziona (omesso Shift, maiuscolo K):

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

Tuttavia, puoi usare Ctrle Ctrl+ Alt:

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

Posizionare il cursore correttamente

I mapping sopra posizioneranno il cursore dopo la stringa ( |indica il cursore):

<kbd></kbd>|

Suppongo che non ci possa essere una soluzione generica per mettere il cursore all'interno del tag; per questo è necessario utilizzare uno strumento adatto allo scopo. Ma puoi spostare il cursore all'interno del tag in alcune applicazioni.

Uso gnome-terminalcon Bash che utilizza i tasti di lettura readline (tipo Emacs). Ctrl-bè la combinazione di tasti per tornare indietro di un personaggio. Nel mio terminale posso digitare Ctrl+v be ottenere il carattere di controllo ^B(U + 0002 (inizio del testo)). Quindi digita sei di questi caratteri alla fine della stringa:

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

Il cursore verrà posizionato all'interno del tag se ci si trova all'interno di un'applicazione che interpreta ^Bcorrettamente (es. Terminali ed Emacs):

<kbd>|</kbd>

Usando la chiave di composizione

Ovviamente puoi usare il tasto compose ( <Multi_key>) per ottenere la stessa cosa. Ad esempio, utilizzare t("tag") e k("tastiera"):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
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.