Đây là một ví dụ cụ thể về một vấn đề chung mà tôi chưa thể tìm ra giải pháp.
Tôi có một chương trình (Trình quản lý thiết bị ảo Android) khởi chạy 'chương trình con' (cụ thể là trình giả lập hoặc thiết bị ảo) từ bên trong (cũng có thể được khởi chạy từ nơi khác). Tôi muốn mọi trường hợp EITHER của các chương trình này được nhóm lại dưới cùng một biểu tượng Unity.
Tôi đã tạo một .desktop
tệp để thử và thực hiện điều này nhưng không biết chính xác cách thực hiện. Các tập tin máy tính để bàn như sau:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Android Virtual Device
Icon=/home/ben/.icons/android.svg
Exec=/home/ben/usr/bin/android avd
StartupWMClass=Android Virtual Device Manager
Từ những gì tôi hiểu, StartupWMClass
là những gì tôi cần thiết lập để đạt được điều này một cách chính xác. Tôi đã nhận được hai tên lớp ('Trình quản lý thiết bị ảo Android' và 'trình giả xprop WM_CLASS
lập64 -arm') bằng cách sử dụng trên các cửa sổ lặp lại. Cả hai đều hoạt động riêng lẻ (biểu tượng trình khởi chạy được gắn chính xác vào chương trình cho dù nó được khởi chạy theo cách nào), nhưng tôi không thể làm cho nó hoạt động cho cả hai.
Tôi giả định rằng bằng cách nào đó tôi cần đặt hai giá trị cho StartupWMClass
nhưng không thể thực hiện chính xác (hoặc biết nếu đó là một hoạt động hợp lệ). Tôi đã thử, dấu hai chấm như biến môi trường, dấu phẩy được phân tách, dấu ngoặc kép, v.v. và tôi không thể tìm thấy bất kỳ gợi ý nào trong tài liệu chính thức .
Bất kỳ đề xuất?
CHỈNH SỬA:
Một ví dụ khác, mang tính mô phạm hơn, nhưng có lẽ dễ nhận biết hơn là với Matlab
. Tôi đang chạy 2013a và màn hình giật gân ban đầu hiển thị và chương trình có các WM_CLASS
giá trị hoàn toàn khác nhau . Điều này có nghĩa là, khi tôi nhấp vào trình khởi chạy cùng với StartupWMClass=com-mathworks-util-PostVMInit
nó, màn hình giật gân xuất hiện một Unity
biểu tượng khác (không xác định mặc định) , trong khi phần còn lại xuất hiện được nhóm lại dưới trình khởi chạy của tôi.
Bằng cách sử dụng xprop WMCLASS
và nhấp vào màn hình giật gân đầu tiên, sau đó lặp lại với một Matlab
phiên hoạt động tôi nhận được đầu ra thiết bị đầu cuối sau:
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "MATLAB", "MATLAB"
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit"
Nếu tôi có thể chỉ định một cái gì đó dọc theo dòng:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
Điều đó sẽ hoạt động hoàn hảo (vì cả hai hoạt động riêng biệt) nhưng tôi không biết cú pháp, nếu nó thậm chí còn tồn tại. Tôi chỉ biết không có gì tôi đã cố gắng đã làm việc cho đến nay.
Bất kỳ trợ giúp hoặc câu trả lời dứt khoát nào cũng sẽ rất tuyệt vì tôi tin rằng đây là một yếu tố cơ bản khá tốt của một máy tính để bàn hoạt động tốt.
Drawers
trong liên kết đó và từ những gì chúng hiển thị, nó chỉ đơn giản là nhóm các liên kết, khi bạn nhấp vào bất kỳ mục phụ nào, nó vẫn được tạo bằng biểu tượng riêng trong Unity
trình khởi chạy, đó là điều tôi đang cố gắng dừng