ฉันได้ตั้งค่าตัวสลับพื้นที่ทำงาน 3x3 และฉันต้องการให้ตำแหน่งของฉันอยู่ตรงกลางโดยค่าเริ่มต้น เป็นไปได้ไหม?
ฉันได้ตั้งค่าตัวสลับพื้นที่ทำงาน 3x3 และฉันต้องการให้ตำแหน่งของฉันอยู่ตรงกลางโดยค่าเริ่มต้น เป็นไปได้ไหม?
คำตอบ:
wmctrl
ขอขอบคุณที่มาร์โกผมได้คิดหาวิธีใช้
เนื่องจากพื้นที่ทำงาน Compiz เป็นวิวพอร์ตจริงของเดสก์ท็อปเดียวดังนั้นโซลูชันคือการย้ายวิวพอร์ตปัจจุบันให้ครอบคลุมพื้นที่กึ่งกลางของเดสก์ท็อป
ก่อนอื่นให้โทรwmctrl -d
เพื่อรับข้อมูลเดสก์ท็อปปัจจุบัน:
read desktop_id _ast \
DG_ geometry \
VP_ viewport \
WA_ wa_off wa_size \
title \
< <(LANG=C wmctrl -d | grep '*')
geom_w=${geometry%x*}
geom_h=${geometry#*x}
# The workarea size isn't accurate, because the top/bottom panel is excluded.
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}
rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))
# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))
จากนั้นคำนวณต้นกำเนิดของวิวพอร์ตส่วนกลาง:
center_row=$((rows / 2))
center_col=$((cols / 2))
center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))
center_viewport=$center_x,$center_y
และย้ายวิวพอร์ตไปที่นั่น:
wmctrl -o $center_viewport
ใช่: ติดตั้งwmctrl
sudo apt-get install wmctrl
และสร้างไฟล์~/.config/autostart/wmctrl.desktop
ด้วยดังต่อไปนี้:
[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application
compiz-send.py
ในโฟลเดอร์บ้านของคุณpython compiz-send.py vpswitch switch_to_5_key
เพื่อให้แน่ใจว่าทำงานได้อย่างถูกต้อง ควรสลับคุณไปที่เวิร์กสเปซกลางหากใช้งานได้ให้สร้างไฟล์ที่เรียกว่า.switch_to_center_workspace.sh
ในโฟลเดอร์บ้านของคุณและวางไฟล์ต่อไปนี้ไว้ภายใน:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
แทนที่user
ด้วยชื่อผู้ใช้ของคุณ
เปิดการใช้งานเริ่มต้นระบบ -> Preferences -> การประยุกต์ใช้งานเริ่มต้น
คลิกเพิ่มและในคำสั่ง:/home/user/.switch_to_center_workspace.sh
ใส่รายการ ใส่สิ่งที่คุณต้องการในชื่อ:และหมายเหตุ:รายการ
ออกจากระบบและเข้าสู่ระบบอีกครั้งและตรวจสอบว่ามันใช้งานได้
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5
ส่วนของสคริปต์เป็นจำนวนที่สูงกว่าsleep 10
เพื่อให้แน่ใจว่า compiz กำลังทำงานอยู่เมื่อสคริปต์ทำงาน คุณกำลังใช้งาน compiz ใช่ไหม
ฉันจะถามคำถามที่คล้ายกัน แต่สำหรับพื้นที่ทำงานแนวนอน 3 แห่งและฉันก็กำลังเรียกใช้ compiz และwmctrl -d
เอาต์พุต (ต่อเวิร์กสเปซ) มีลักษณะดังนี้:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1
กว่าที่ฉันใช้wmctrl -o 1366,0
( ค่าVP ) เพื่อทำให้ศูนย์เป็นพื้นที่ทำงานเริ่มต้นของฉันเมื่อเริ่มต้น อาจไม่ทำงานสำหรับทุกคน แต่ในกรณี;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
เพิ่งทราบสั้น ๆ - ฉันใช้ Natty และด้วยคำตอบของ @ 谢继雷ฉันสังเกตเห็นว่ามีการรายงานต่อไปนี้โดยการย้ายเทอร์มินัลในแต่ละพื้นที่ทำงานใน Unity:
$ wmctrl -d
# top left
0 * DG: 2048x1200 VP: 0,0 WA: 0,24 1024x576 Workspace 1
# bottom left
0 * DG: 2048x1200 VP: 0,600 WA: 0,24 1024x576 Workspace 1
# top right
0 * DG: 2048x1200 VP: 1024,0 WA: 0,24 1024x576 Workspace 1
# bottom right
0 * DG: 2048x1200 VP: 1024,600 WA: 0,24 1024x576 Workspace 1
... นั่นคือพวกเขาไม่ได้แยกเดสก์ท็อปหรือพื้นที่ทำงาน - แค่เปลี่ยนวิวพอร์ต!
ดังนั้นหากต้องการเปลี่ยนระหว่างวิวพอร์ตทั้งสี่เพียงแค่เรียกwmctrl -o
คำสั่งโดยตรงด้วยVP
ค่าที่ระบุไว้ด้านบนเช่น:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
แก้ไข: อัพขออภัยเพิ่งเห็นว่านี่เป็นเช่นเดียวกับคำตอบของ @ wik - รวม / ลบตามความเหมาะสม ..
wmctrl
สามารถสลับวิวพอร์ตภายในเดสก์ท็อปได้ ดูคำตอบของฉันด้านล่าง