Cách xác định lớp wm cho các lệnh đầu cuối trong tệp .desktop
Tôi đang chơi với các tệp .desktop và kết thúc với tệp này:
[Desktop Entry]
Version=1.0
Name=Music Player (cmus)
Comment=Command Line Music Player
GenericName=Music Player
Exec=cmus
Terminal=true
X-MultipleArgs=false
Type=Application
StartupNotify=false
Mọi thứ đang hoạt động cho đến nay.
Bây giờ tôi cũng đang sử dụng i3wm và muốn gán ứng dụng vào một không gian làm việc cụ thể. Đó là cấu hình hiện tại của tôi:
assign [class="^cmus.*$"] 5:🎵
Thật không may, lớp chưa được thiết lập, vì nó chưa được định nghĩa.
Nó đang hoạt động khá tốt cho các ứng dụng khác chấp nhận một đối số, ví dụ như Firefox:
[Desktop Entry]
Version=1.0
Name=Twitter Profile - Firefox
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=firefox --class="Firefox Social Media" -P "Social Media" %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox
Với cấu hình i3wm:
assign [class="^Firefox Social Media$"] 10:🌐
Ai đó có thể cho tôi biết cách xác định lớp wm cho các mục nhập .desktop bắt đầu trong một thiết bị đầu cuối không? Tôi không thể tìm thấy bất cứ điều gì.
Trả lời
Bạn không thể thiết lập WM_CLASSqua .desktoptệp vì tùy thuộc vào ứng dụng để thiết lập riêng WM_CLASS.
Nhưng nhiều ứng dụng vẫn cho phép thay đổi lớp của chúng bằng cách sử dụng các phương thức tiêu chuẩn của bộ công cụ của chúng (GTK / Qt) nên hầu hết chúng sẽ tôn trọng --classtùy chọn dòng lệnh.
Tôi hiện đang sử dụng giải pháp sau đây mà tôi không coi là giải pháp thực sự.
Vì tôi đang sử dụng gnome-terminal, bạn có thể làm như sau để đặt wm_class:
[Desktop Entry]
Exec=gnome-terminal --class=cmus -e cmus
Terminal=false
Không hoạt động khi sử dụng trình giả lập x-terminal-trình giả lập trình bao bọc vì nó được liên kết với trình bao bọc không hỗ trợ lớp.