Tôi khá chắc chắn là không thể làm được. Lý do là các môi trường cửa sổ như Gnome mong muốn phần mềm xử lý việc này và các nhà sản xuất phần mềm mong đợi các môi trường cửa sổ sẽ xử lý việc này.
Devilspie là một ý tưởng tốt, nhưng nó phù hợp với mô hình (ví dụ: if name == 'google-chrome'). Vậy chuyện gì xảy ra nếu tôi mở hai trình duyệt? Cả hai được chuyển đến cùng một không gian làm việc? Tôi có 6x3 = 18 không gian làm việc, mỗi không gian có một phiên bản chrome cụ thể. Sẽ rất hữu ích nếu tôi có thể đổi tên các chương trình này (ví dụ: 'google-chrome1', 'google-chrome2' ...) nhưng tôi không thể tìm ra cách để làm điều đó. Vì vậy, chúng ta phải sử dụng wmctrl.
wmctrl là một b / c tốt hơn một chút ngoài việc sử dụng tiêu đề cửa sổ, bạn cũng có thể sử dụng ID cửa sổ hoặc chỉ sử dụng cửa sổ hiện được tô sáng. ID cửa sổ là một nỗi đau để có được b / c chúng không được tạo ngay lập tức. Xem bên dưới
gedit 1.txt
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
nhưng sau đó điều khiển không được trả về dòng lệnh cho đến khi SAU thoát khỏi gedit. Tất cả chúng ta phải làm để có được điều này là đặt một &
dấu hiệu
gedit 1.txt &
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
nhưng bây giờ kiểm soát là 99,999% thời gian, được trả về dòng lệnh TRƯỚC KHI các trình quản lý cửa sổ khởi chạy cửa sổ và không có cách nào để tìm id cửa sổ. Người ta phải thiết lập một kỹ thuật lặp rất phức tạp để kiểm tra xem có cửa sổ mới nào được tạo không, và để đoán xem đó có phải là cửa sổ mà chúng ta đang tìm kiếm không.
Kiểm tra cửa sổ hoạt động thông qua cờ :ACTIVE:
có cùng một vấn đề, nó không chờ chương trình chạy xong.
wmctrl
đình công tôi là một chương trình rất kỳ lạ. Có vẻ như nó được thiết kế cho những người không có chuột hoặc không thể kéo chương trình của họ qua các không gian làm việc.