Bagaimana cara mengatur makro keyboard?

20

Dalam kehidupan sehari-hari saya, saya selalu mengetik <kbd>Keyboard Character</kbd>dan saya ingin mengatur makro di Ubuntu untuk masuk secara otomatis <kbd> </kbd>.

Saya ingin menetapkannya untuk mengatakan Shift+ Control+ Katau kombinasi karakter kontrol keyboard apa pun yang tidak ditetapkan dan sudah digunakan oleh Ubuntu.

Kembali pada hari TSR (Terminate and Stay Resident) program MS-DOS ini mungkin. Tentunya harus di Ubuntu juga?

Apakah saya harus menulis dasmon untuk mencapai ini?


Saya menemukan pertanyaan lain tanpa jawaban: Bagaimana saya bisa menetapkan makro untuk tombol keyboard saya di Ubuntu, mirip dengan Macro Keyboard Razer di Windows? , apa itu perekam makro mouse / keyboard yang baik?

Saya menemukan pertanyaan serupa dengan jawaban: Dapatkah saya menggunakan Pintasan Keyboard untuk mengimplementasikan makro teks? . Namun pertanyaan itu menyatakan jawabannya tidak mungkin AutoKey.

WinEunuuchs2Unix
sumber
Poin untuk memunculkan TSR :-)
drudru

Jawaban:

17

Saya melakukan beberapa googling dan menemukan sebuah program yang disebut AutoKey ( Autokey - Linux utility untuk hotkey substitusi teks ) di dekat bagian atas daftar.

Daripada hotkey menggunakan Ctrl+ Shift+ Ksaya memilih untuk menetapkan singkatan kzyang secara otomatis diperluas menjadi <kbd></kbd>+.

Itu hanya diinstal menggunakan:

sudo apt install autokey-gtk

Ini menginstal di Launcher dan layar cukup mudah digunakan:

Autokey

WinEunuuchs2Unix
sumber
14

Apa juga bisa dilakukan adalah dengan menggunakan xdotooldengan typebendera, seperti:

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

Pergi ke Pengaturan Sistem-> Keyboard-> Pintasan -> Kustom dan ikat perintah itu ke pintasan keyboard apa pun yang Anda inginkan. Saya memilih CtrlSuperK. Apa yang terjadi di sini adalah bahwa kami memberikan waktu tunda pengguna 0,5 detik untuk melepaskan pintasan keyboard, dan kemudian xdotoolakan mengetikkan tag markup kunci seperti jika Anda melakukannya sendiri di keyboard. Pendekatan yang sangat mudah dan sederhana. Sebenarnya saya baru saja menggunakannya untuk memasukkan 3 kunci di atas.

Catatan yang xdotooltidak disertakan bersama Ubuntu secara default, jadi Anda harus menginstalnya melaluisudo apt-get install xdotool

Sergiy Kolodyazhnyy
sumber
Bisakah Anda juga membuat pointer penyisipan kembali sehingga akan berada di antara <kbd>dan </kbd>?
DK Bose
4
Saya menggunakan bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'untuk mendapatkan kursor teks di antara tag kode.
DK Bose
1

Jika Anda memiliki file penulisan, Anda dapat menggunakannya sebagai utilitas penyisipan teks orang miskin.

Anda dapat menggunakan beberapa pengubah dalam X. Rupanya Anda dapat menggunakan Shiftsebagai pengubah:

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

Tapi ini tidak berhasil, setidaknya di mesin saya.

Ini juga tidak berfungsi (dihilangkan Shift, dikapitalisasi K):

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

Namun, Anda dapat menggunakan Ctrldan Ctrl+ Alt:

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

Menempatkan kursor dengan benar

Pemetaan di atas akan menempatkan kursor setelah string ( |menunjukkan kursor):

<kbd></kbd>|

Saya rasa tidak ada solusi tujuan umum untuk meletakkan kursor di dalam tag; untuk itu Anda perlu menggunakan alat yang sesuai untuk tujuan. Tetapi Anda dapat kursor masuk ke dalam tag di aplikasi tertentu.

Saya menggunakan gnome-terminaldengan Bash yang menggunakan keyline binding readline (seperti Emacs). Ctrl-badalah kunci untuk mundur satu karakter. Di terminal saya, saya bisa mengetik Ctrl+v bdan mendapatkan karakter kontrol ^B(U + 0002 (Mulai Teks)). Jadi ketikkan enam karakter ini di akhir string:

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

Kursor akan ditempatkan di dalam tag jika Anda berada di dalam aplikasi yang menafsirkan ^Bdengan benar (misalnya terminal dan Emacs):

<kbd>|</kbd>

Menggunakan tombol tulis

Anda tentu saja dapat menggunakan kunci penulisan ( <Multi_key>) untuk mencapai hal yang sama. Misalnya, gunakan t("tag") dan k("keyboard"):

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