Cách liên kết các phím nóng toàn cầu với chương trình WINE trong Linux
Bạn đã bao giờ cài đặt một chương trình Windows trong Linux theo WINE, chỉ để phát hiện ra rằng nó không liên kết các phím nóng trên toàn hệ thống nữa? HTG có công việc xung quanh bạn đang tìm kiếm.
Hình ảnh bởi djeucalyptus
Tổng quan
Mọi người thậm chí đã nghĩ đến ý tưởng chuyển sang Linux, có lẽ đã rất nhanh gặp phải vấn đề là có một ứng dụng Windows mà bạn CẦN hoạt động. Chúng tôi đã cho bạn thấy rằng bạn có thể thực hiện điều này bằng cách sử dụng RƯỢU.
Đối với người viết bài này, ứng dụng này là một ứng dụng Chuyển văn bản thành giọng nói sử dụng công cụ Microsoft SAPI4. Cài đặt chương trình trong WINE rất đơn giản, tuy nhiên sau khi hoàn thành tôi đã nhanh chóng thấy rằng các phím nóng được sử dụng để kích hoạt các hành động khác nhau của chương trình (bắt đầu đọc, ngừng đọc, v.v.) không hoạt động và đây là một chức năng vấn đề với RƯỢU.
Tôi rất vui khi nói rằng sau nhiều lần tìm kiếm, cuối cùng tôi đã tìm thấy giải pháp dưới dạng tiện ích GNU có thể điều khiển giao diện X.org bằng các hàm riêng. Mặc dù không phải là loại duy nhất thuộc loại này, xdotool là loại dễ hoạt động nhất và đã có trong kho Ubuntu / Mint.
xdotool
Chương trình xdotool có thể thực hiện nhiều nhiệm vụ liên quan đến cửa sổ từ CLI, với điều đó nói rằng, hai thứ duy nhất chúng ta sẽ sử dụng là tìm kiếm trên đường ăn vặt và khóa key. Chức năng tìm kiếm trên các chức năng của Nhật Bản chỉ thực hiện điều đó, tìm kiếm ID cửa sổ / s theo các tham số bạn đặt cho nó. Chức năng khóa chính của Cameron cho phép bạn mô phỏng hành trình phím đến ID cửa sổ.
Cài đặt & cấu hình
Giả định rằng bạn đã cài đặt RƯỢU và chương trình bạn cần theo nó. Trong ví dụ này, chúng tôi sẽ sử dụng Balabolka làm ứng dụng Windows Windows vì đây là bản sao phần mềm miễn phí tốt của chương trình gốc mà tôi cần giải pháp này cho (trung tâm phát biểu thứ 2).
Nếu bạn cũng đã chọn sử dụng Balabolka, bạn cần kích hoạt khả năng phím nóng của nó.
Lưu ý: Bạn có thể muốn cài đặt TTSReader hoặc trung tâm phát biểu thứ 2 ngay cả trong chế độ demo, để giọng nói của SAPI sẽ được cài đặt.
Mở chương trình và đi đến cài đặt (Shift + F6) trong Tùy chọn trực tuyến -> Cài đặt cài đặt.
Chuyển đến tab phím nóng và đánh dấu vào hộp kiểm cho Sử dụng phím nóng toàn cầu.
Nhấn vào OK.
Để nó chạy ở chế độ nền để nó có thể thực hiện công việc của mình khi chúng ta móc các tổ hợp phím vào nó.
Cài đặt xdotool bằng cách phát hành:
sudo apt-get cài đặt xdotool
Liên kết toàn cầu
Bản thân chương trình xdotool không giúp chúng tôi liên kết toàn cầu với các phím nóng, nhưng chúng tôi có thể sử dụng hệ thống phím nóng hệ điều hành hiện có. Những gì chúng ta sẽ làm là tạo một tập lệnh đơn giản sử dụng xdotool để gửi tổ hợp phím mà chúng ta muốn đến chương trình Balabolka và gọi nó từ hệ thống phím nóng của hệ điều hành.
Tạo một tập lệnh có tên là start start_read.sh, với nội dung sau:
khóa xdotool --window $ (tìm kiếm xdotool --limit 1 --all --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F9"
Tạo một tập lệnh khác lần này có tên là stop stop_read.sh 'với nội dung sau:
khóa xdotool --window $ (tìm kiếm xdotool --limit 1 --all --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F7"
Lưu ý: Tôi biết đây là một lớp lót không yêu cầu tập lệnh, nhưng chương trình Phím tắt Mint / Bàn phím của Mint / Ubuntu, đã không hợp tác với việc chỉ gọi nó trực tiếp. Nếu bạn biết làm thế nào để làm điều đó, xin vui lòng chia sẻ trong các ý kiến dưới đây.
Phanh lệnh này cho các thành phần của nó, những gì chúng ta thấy là:
- Phần -pid -pid $ (pgrep balabolka), thực thi một phần pgrep INTERN trên chương trình mà chúng tôi muốn sử dụng để xác định ID tiến trình của nó. Điều này sẽ thu hẹp xdotool được đệ trình của Tìm kiếm trực tuyến vào chỉ số PID đó.
- Phần tìm kiếm xdotool -limit 1 -tất cả phần tên Balabolka, thu hẹp phần tìm kiếm của xdotool hơn nữa và giới hạn các câu trả lời được trả về 1. Như trong trường hợp của chúng tôi, ID của cửa sổ được trả về chương trình, giới hạn kết quả đóng vai trò là một công cụ định dạng cho lệnh khóa key của Mt. Bạn có thể thấy bạn cần xoa bóp phần này nhiều hơn nếu nó không quan trọng đối với chương trình mà bạn đang sử dụng.
- Khóa xdotool trên -thiết lập% WINDOW_ID% Phần ctrl + alt + F7 ", gửi tổ hợp phím mong muốn đến windowID mà các phần trước thu được.
Làm cho các kịch bản thực thi.
Bàn phím Linux Mint phím tắt
Trong Linux Mint, các phím nóng toàn cầu được đặt trong chương trình Phím tắt bàn phím kiểu Cameron.
Sau khi mở Nhấp vào trên Thêm Thêm để tạo một lối tắt tùy chỉnh mới:
Đặt tên cho nó và bên dưới Command Command, cung cấp đường dẫn đầy đủ cho một trong các tập lệnh chúng tôi đã tạo ở trên. Lặp lại quy trình cho tập lệnh thứ hai.
Bây giờ, trên Cột Short Short của Cột, hãy nhấp vào từ Từ bị vô hiệu hóa để nhận tùy chọn để đặt một tổ hợp phím mới.
Lưu ý: Bạn có thể, nếu bạn muốn, sử dụng cái gì đó khác thì mặc định của chương trình. Theo một nghĩa nào đó, việc tạo ra một bản remap trực tuyến cho các ràng buộc chính, tùy thuộc vào chương trình bạn sử dụng, nếu không sẽ nằm ngoài tầm kiểm soát của bạn.
Nhấn vào combo bạn đã chọn và nghe điều kỳ diệu.
Bàn phím Ubuntu
Trong Ubuntu, chương trình thiết lập các phím nóng toàn cầu chỉ được gọi là Bàn phím bàn phím.
Chuyển sang tab Phím tắt của Wikipedia và chọn Phím tắt tùy chỉnh.
Nhấp vào dấu cộng để thêm lối tắt. Đặt tên cho nó và bên dưới Command Command, cung cấp đường dẫn đầy đủ cho một trong các tập lệnh chúng tôi đã tạo ở trên. Lặp lại quy trình cho tập lệnh thứ hai.
Bây giờ, hãy nhấp vào từ Vô hiệu hóa từ chối để nhận tùy chọn thiết lập tổ hợp phím mới.
Lưu ý: Lặp lại ghi chú từ phần Mint, nếu bạn muốn, hãy sử dụng một cái gì đó khác sau đó là mặc định của chương trình. Theo một nghĩa nào đó, việc tạo ra một bản remap trực tuyến cho các ràng buộc chính, tùy thuộc vào chương trình bạn sử dụng, nếu không sẽ nằm ngoài tầm kiểm soát của bạn.
Ghi chú của tác giả
Mỗi lần tôi nghiêm túc cân nhắc việc chuyển sang Linux, vấn đề này là vấn đề đầu tiên trong danh sách các vấn đề của tôi. Không phải Linux không có vấn đề gì, nhưng đây là rào cản thực sự đối với tôi. Tôi đã cố gắng hết lần này đến lần khác, hỏi bạn bè / người trong lĩnh vực này và thậm chí biến nó thành một trò chơi tiền thưởng. Tôi rất vui vì câu chuyện này đã kết thúc và cuối cùng tâm hồn tôi có thể nghỉ ngơi.
Tôi hy vọng rằng tôi đã giúp được ai đó ngoài kia để không phải trải qua thử thách tương tự.
Doc Brown: Phải mất gần ba mươi năm và cả gia đình tôi mới có thể nhận ra tầm nhìn của ngày hôm đó. Chúa ơi, đã lâu chưa?