Làm cách nào để thiết lập macro bàn phím?


20

Trong cuộc sống hàng ngày, tôi luôn gõ <kbd>Keyboard Character</kbd>và tôi muốn thiết lập một macro trong Ubuntu để tự động nhập <kbd> </kbd>.

Tôi muốn gán nó để nói Shift+ Control+ Khoặc bất kỳ tổ hợp ký tự điều khiển bàn phím nào không được gán và đã được Ubuntu sử dụng.

Quay lại ngày TSR (Chấm dứt và cư trú) các chương trình MS-DOS điều này là có thể. Chắc chắn nó cũng phải có trong Ubuntu?

Tôi có phải viết một daemon để thực hiện điều này?


Tôi tìm thấy các câu hỏi khác mà không có câu trả lời: Làm cách nào tôi có thể gán macro cho các phím bàn phím của mình trên Ubuntu, tương tự như Macros Bàn phím Razer trong Windows? , một máy ghi macro chuột / bàn phím tốt là gì?

Tôi tìm thấy một câu hỏi tương tự với một câu trả lời: Tôi có thể sử dụng Phím tắt để triển khai macro văn bản không? . Tuy nhiên câu hỏi đó quy định câu trả lời không thể được AutoKey.


Điểm để tăng TSR :-)
drudru

Câu trả lời:


17

Tôi đã làm một số việc và tìm thấy một chương trình có tên AutoKey (Autokey - tiện ích Linux cho các phím nóng thay thế văn bản ) ở gần đầu danh sách.

Thay vì một phím nóng bằng cách sử dụng Ctrl+ Shift+, Ktôi đã chọn gán tên viết tắt kzđược tự động mở rộng thành <kbd></kbd>+.

Nó được cài đặt đơn giản bằng cách sử dụng:

sudo apt install autokey-gtk

Nó cài đặt trong Launcher và màn hình khá đơn giản để sử dụng:

Khóa tự động


14

Điều gì cũng có thể được thực hiện là sử dụng xdotoolvới typecờ, như vậy:

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

Chuyển đến Cài đặt hệ thống-> Bàn phím-> Phím tắt -> Tùy chỉnh và liên kết lệnh đó với bất kỳ phím tắt nào bạn muốn. Tôi đã chọn CtrlSuperK. Điều xảy ra ở đây là chúng tôi cung cấp cho người dùng độ trễ 0,5 giây để phát hành phím tắt và sau đó xdotoolsẽ gõ các thẻ đánh dấu chính giống như bạn đang tự làm trên bàn phím. Cách tiếp cận rất dễ dàng và đơn giản. Trong thực tế, tôi đang sử dụng nó ngay bây giờ để đặt trong 3 phím trên.

Lưu ý rằng xdotoolkhông đi kèm với Ubuntu theo mặc định, vì vậy bạn sẽ phải cài đặt nó quasudo apt-get install xdotool


Bạn cũng có thể làm cho con trỏ chèn trở lại để nó sẽ nằm giữa <kbd></kbd>?
Công lý cho Monica

4
Tôi đang sử dụng bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'để có được con trỏ văn bản giữa các thẻ mã.
Công lý cho Monica

1

Nếu bạn có tệp soạn thảo, bạn có thể sử dụng nó làm tiện ích chèn văn bản của người nghèo.

Bạn có thể sử dụng một vài công cụ sửa đổi trong X. Rõ ràng bạn có thể sử dụng Shiftlàm công cụ sửa đổi:

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

Nhưng điều này không hoạt động, ít nhất là trên máy của tôi.

Cũng không làm việc này (bỏ qua Shift, viết hoa K):

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

Tuy nhiên, bạn có thể sử dụng CtrlCtrl+ Alt:

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

Đặt con trỏ chính xác

Các ánh xạ trên sẽ đặt con trỏ sau chuỗi ( |biểu thị con trỏ):

<kbd></kbd>|

Tôi cho rằng không thể có giải pháp cho mục đích chung để đặt con trỏ bên trong thẻ; cho rằng bạn sẽ cần phải sử dụng một công cụ phù hợp cho mục đích. Nhưng bạn có thể con trỏ đi vào bên trong thẻ trong một số ứng dụng nhất định.

Tôi sử dụng gnome-terminalvới Bash sử dụng keybindings (giống như Emacs). Ctrl-blà keybinding để đi ngược một ký tự. Trong thiết bị đầu cuối của tôi, tôi có thể nhập Ctrl+v bvà nhận ký tự điều khiển ^B(U + 0002 (Bắt đầu văn bản)). Vì vậy, nhập sáu trong số các ký tự này ở cuối chuỗi:

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

Con trỏ sẽ được đặt bên trong thẻ nếu bạn ở trong một ứng dụng diễn giải ^Bchính xác (ví dụ: thiết bị đầu cuối và Emacs):

<kbd>|</kbd>

Sử dụng phím soạn

Tất nhiên bạn có thể sử dụng khóa soạn thảo ( <Multi_key>) để đạt được điều tương tự. Ví dụ: sử dụng t(Thẻ tag chà) và k(Bàn phím bàn phím):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.