ลอง:
wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`
ให้ฉันอธิบาย: ในความช่วยเหลือของ wmctrl แสดงให้เห็น
-r <WIN> -t <DESK> Move the window to the specified desktop.
<DESK> A desktop number. Desktops are counted from zero.
<WIN> This argument specifies the window. By default it's
interpreted as a string. The string is matched
against the window titles and the first matching
window is used. The matching isn't case sensitive
and the string may appear in any position
of the title.
The -i option may be used to interpret the argument
as a numerical window ID represented as a decimal
number. If it starts with "0x", then
it will be interpreted as a hexadecimal number.
wmctrl -d
สามารถแสดงรายการพื้นที่ทำงานทั้งหมดในคอมพิวเตอร์ของฉันจะแสดงดังต่อไปนี้:
0 - DG: 1600x900 VP: N / A WA: รหัส 0,0 1600x868
1 * DG: 1600x900 VP: 0,0 WA: เล่น 0,0 1600x868
2 - DG: 1600x900 VP: N / A WA: การวิจัย 0,01600x868
* หมายถึงพื้นที่ทำงานปัจจุบัน
BTW wmctrl -l
คือการแสดงรายการหน้าต่างทั้งหมด (ซึ่งคุณรู้จักอยู่แล้ว) ในคอมพิวเตอร์ของฉันตอนนี้มันคือ:
0x05400008 1 user-LinuxMint Terminal
0x03a0008e ผู้ใช้ 0 คน LinuxMint Mozilla Firefox
เนื่องจาก "DESK" ต้องเป็นตัวเลขฉันจึงใช้grep “workspace name” | cut -d" " -f1
เพื่อรับมัน
ตัวอย่างเช่นถ้าฉันต้องการย้าย Firefox ไปยังพื้นที่ทำงาน "รหัส" ฉันสามารถใช้:
wmctrl -r "firefox" -t 0
หรือ
wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`
แต่
wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`
แค่ทำงานฉันสักครั้งแล้วก็ไม่รู้ว่าทำไม!