Làm cách nào để chuyển sang chương trình đã chạy bằng thiết bị đầu cuối?
Đối với đề thi:
firefox mở cửa sổ firefox mới.
Có một lệnh sẽ tập trung vào cửa sổ firefox đã mở?
Làm cách nào để chuyển sang chương trình đã chạy bằng thiết bị đầu cuối?
Đối với đề thi:
firefox mở cửa sổ firefox mới.
Có một lệnh sẽ tập trung vào cửa sổ firefox đã mở?
Câu trả lời:
Giả sử bạn đã cài đặt wmctrl (chạy sudo apt-get install wmctrlnếu không):
Lệnh:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Sẽ nâng cửa sổ mở cuối cùnggedit . Thay thế nó bằng bất kỳ ứng dụng khác.
pgrep gedit
được pid của gedit
wmctrl -lp
liệt kê tất cả các cửa sổ và pid chúng thuộc về
awk '{ print $1 }'
tách ra khỏi id cửa sổ (chuỗi đầu tiên trong dòng)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
do đó tìm id cửa sổ của cửa sổ được tạo cuối cùng của gedit(đầu ra của wmctrl -lpdanh sách các cửa sổ theo thứ tự thời gian tạo, nếu ứng dụng có nhiều cửa sổ, tail -1trả về cửa sổ cuối cùng).
wmctrl -ia
sau đó tăng cửa sổ bằng nó window-id
... được chạy với ứng dụng làm đối số:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shChạy nó như (ví dụ)
/path/to/switchto.sh firefox
Về mặt lý thuyết lệnh:
xdotool search --class gedit windowactivate
nên làm (loại) giống nhau; nó sẽ nâng cửa sổ tìm thấy đầu tiêngedit trong trường hợp này.
Có vẻ như ít mạnh mẽ hơn. Trên hệ thống của tôi (Unity) nó không làm gì cả.
Nếu bạn đã chạy firefox bằng cách sử dụng, firefox &bạn có thể sử dụng jobsđể xem số của nó. Để đưa nó vào foreground ghi %n firefoxđó nlà viết tắt của số của nó. Thí dụ:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Ngoài ra, bạn có thể "giết" chương trình:
sabrina@ubuntu:~$ kill %1