ฉันมีสภาพแวดล้อมการทำงานที่แน่นอนด้วย Windows หลายสิบแบบ ฉันจะนำชื่อ / ชื่อเรื่องที่รู้จักมาด้านหน้าหน้าต่างหรือใช้บรรทัดคำสั่งได้อย่างไร
ฉันมีสภาพแวดล้อมการทำงานที่แน่นอนด้วย Windows หลายสิบแบบ ฉันจะนำชื่อ / ชื่อเรื่องที่รู้จักมาด้านหน้าหน้าต่างหรือใช้บรรทัดคำสั่งได้อย่างไร
คำตอบ:
ฉันเคยใช้wmctrl -a <name>
ซึ่งใช้งานได้ดี แต่เพิ่งเปลี่ยนไปxdotool
เช่น:
xdotool search --name <name-or-regex-for-name> windowraise
มันมีคุณสมบัติอื่น ๆ อีกมากมายเช่นกัน
ติดตั้ง:
sudo apt-get install xdotool
ดีหลังจากsudo apt-get install wmctrl
ไอเอ็นจี, คุณสามารถเล่นกับสคริปต์ทุบตีนี้:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
ซึ่งฉันพบที่นี่
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
มี-i
ตัวเลือกซึ่งรองรับการทำงานกับหน้าต่างด้วยตัวระบุฐานสิบหก และคุณสามารถทำสิ่งนี้ได้wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
- ซึ่งจะทำสิ่งที่คล้ายกัน
เมื่อใช้xdotool
งานดูเหมือนว่าเป็นการยากที่จะนำหน้าwindows ทั้งหมดสำหรับแอปพลิเคชันหรือคลาสที่กำหนดโดยใช้คำสั่งเดียวเท่านั้น ฉันสิ้นสุดการมีผลลัพธ์ที่ดีขึ้นโดยการfor
วนเป็นวงกลมที่ระดับเชลล์ ใช้ Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
หมายเหตุน้อย:
xdotool search
จะค้นหารูปแบบ (ที่นี่Firefox
) ในชื่อหน้าต่างคลาสและชื่อคลาส หากคุณต้องการที่จะ จำกัด พื้นที่การค้นหาของคุณใช้ที่เกี่ยวข้อง--class
, --name
หรือ--classname
ตัวเลือก--desktop 0
ตัวเลือก จำกัด การค้นหาเพื่อสก์ท็อปเป็นครั้งแรก ดูเหมือนว่าจะเป็นการหลีกเลี่ยงปัญหาXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
ดังกล่าวในบางความคิดเห็นxdotool
โครงการจะหยุดชะงักตั้งแต่ปี 2015 มันยังคงเป็นเครื่องมือของฉันที่เลือก ด้วยเหตุผลส่วนตัว Jordan Sissel (ผู้เขียนต้นฉบับ) ไม่กระตือรือร้นเหมือนในอดีตดังนั้นอย่าลังเลที่จะมีส่วนร่วมในโครงการ
xdotool windowraise
นำหน้าต่างไปไว้ด้านหน้า แต่ไม่ได้ให้ความสำคัญกับหน้าต่างหรือสลับไปที่เดสก์ท็อปด้วยหน้าต่าง แทนwindowactivate
จะทำทั้งสาม