Chương trình GUI không đọc từ đầu vào tiêu chuẩn của họ, họ nhận được đóng góp của họ từ các máy chủ X . Có các công cụ để gõ phím vào cửa sổ. xdotool là khá phổ biến và thuận tiện.
Bạn sẽ cần tìm ID cửa sổ mà bạn muốn gửi tổ hợp phím. Bạn có thể làm điều đó với xdotool. xdotool search --class Chrome
trả về danh sách ID cửa sổ của tất cả các cửa sổ Chrome. Nếu điều này trả về nhiều hơn một, bạn cần chọn cái bạn muốn. Bạn có thể sử dụng xdotool search --name
để khớp với tiêu đề thay vì lớp. Bạn cũng có thể phân tích đầu ra của wmctrl và trích xuất ID cửa sổ mong muốn.
Khi bạn đã tìm thấy ID cửa sổ phù hợp, bạn có thể gọi xdotool
để gõ phím. Thật không may, nhiều ứng dụng từ chối các sự kiện tổng hợp, tức là tổ hợp phím và sự kiện chuột được gửi bởi một ứng dụng khác. Đây là trường hợp với các phiên bản hiện tại của Chrome. Có thể tiêm một tổ hợp phím từ một ứng dụng khác bằng một cơ chế khác, nhưng điều đó đòi hỏi cửa sổ phải được tập trung. Bạn có thể làm tất cả những điều đó với xdotool, nhưng nó sẽ khiến tiêu điểm nhanh chóng nhấp nháy vào cửa sổ Chrome và quay lại. Đoạn mã sau sẽ gửi F5đến cửa sổ Chrome đầu tiên (theo thứ tự hơi tùy ý).
xdotool search --class Chrome windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
Hoặc với các phiên bản cũ hơn của xdotool:
xdotool windowactivate $(xdotool search --class Chrome) &&
xdotool key F5 &&
xdotool windowactivate $(xdotool getactivewindow)
Hãy nhớ rằng điều này sẽ gửi F5đến cửa sổ đó và tùy thuộc vào chương trình để quyết định phải làm gì với nó. Trong Chrome, điều này tải lại tab hiện tại.