Lệnh Shell để đưa một cửa sổ chương trình trước một cái khác?


12

Có một lệnh shell tồn tại để mang lại một chương trình đã bắt đầu trong gnome ở phía trước của một chương trình khác.

I E:

Gedit và Nautilus được bắt đầu. Nautilus ở trong nền và Gedit ở phía trước.

Làm thế nào để tôi mang Nautilus ở phía trước bằng lệnh shell?


Câu trả lời:


14
  • Cài đặt wmctrl Cài đặt wmctrl

    wmctrl -a <name>

  • Bạn cũng có thể sử dụng xdotool Cài đặt xdotool

Ghi chú:

  • Thông tin thêm về xdotool có thể được tìm thấy ở đây .

Chắc chắn chỉnh sửa bài viết của bạn giống như tôi đang soạn bài của tôi ... :()
frabjous

Bạn có thể tìm thấy tên cửa sổ của mình bằng wmctrl -l Tên là văn bản sau dấu gạch ngang cuối cùng: <ID cửa sổ> <ID máy tính để bàn> <máy khách> <tiêu đề cửa sổ>
jorfus

8

Một tùy chọn khác là xdotool :

xdotool search --class Nautilus windowactivate


2
Thất bại với tôi vớiXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino

Có lẽ lỗi ở đây - theo kinh nghiệm của tôi - classname hoặc --name (nếu biết) đôi khi hoạt động khi - class không.
frabjous

Trong trường hợp của tôi, có thể nâng một cửa sổ bằng cách sử dụng ID từ đó xwininfovà ban hành một số xdotoollệnh khác nhau (mà tôi không còn nhớ nữa). Khi tôi cố gắng tự động hóa điều đó (để loại bỏ xwininfo) tôi đã nhận được các tạo tác trực quan do các cửa sổ ẩn khác cũng được chọn. Tôi chỉ đơn giản tìm thấy không có cách chung để giải quyết các cửa sổ tùy ý một cách chính xác. Sau khi chuyển sang wmctrl -amọi thứ ngay lập tức hoạt động hoàn hảo ra khỏi hộp mà không cần điều chỉnh thêm. Xin lưu ý rằng tôi thích xdotool, nhưng dường như rất khó để chỉ nâng đúng cửa sổ với nó.
Tino

2

Khi sử dụng xdotool, có vẻ khó mang ra phía trước tất cả các cửa sổ cho một ứng dụng hoặc lớp nhất định chỉ bằng một lệnh. Tôi cuối cùng có kết quả tốt hơn bằng cách gói nó trong một forvòng lặp ở cấp độ vỏ. Sử dụng Bash:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

Vài nhận xét:

  • Theo mặc định, xdotool searchsẽ tìm kiếm mẫu (ở đây Firefox) trong tên cửa sổ, lớp và tên lớp. Nếu bạn muốn hạn chế không gian tìm kiếm của bạn, sử dụng có liên quan --class, --namehoặc --classnametùy chọn.
  • Các --desktop 0tùy chọn giới hạn tìm kiếm máy tính để bàn đầu tiên. Đây có vẻ là một cách giải quyết để tránh XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)đề cập trong một số ý kiến.
  • Tại thời điểm viết bài này, xdotooldự án bị đình trệ từ năm 2015. Mặc dù vậy, nó vẫn là công cụ lựa chọn của tôi. Vì lý do cá nhân, Jordan Sissel (tác giả gốc) không hoạt động như anh ấy, vì vậy đừng ngần ngại đóng góp cho dự án.
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.