Gnome (Ubuntu): วิธีนำหน้าต่างโปรแกรมมาไว้ข้างหน้าโดยใช้บรรทัดคำสั่งจากเทอร์มินัล


14

ฉันมีสภาพแวดล้อมการทำงานที่แน่นอนด้วย Windows หลายสิบแบบ ฉันจะนำชื่อ / ชื่อเรื่องที่รู้จักมาด้านหน้าหน้าต่างหรือใช้บรรทัดคำสั่งได้อย่างไร

คำตอบ:


12

ฉันเคยใช้wmctrl -a <name>ซึ่งใช้งานได้ดี แต่เพิ่งเปลี่ยนไปxdotoolเช่น:

xdotool search --name <name-or-regex-for-name> windowraise

มันมีคุณสมบัติอื่น ๆ อีกมากมายเช่นกัน

ติดตั้ง:

sudo apt-get install xdotool


5
xdotool windowraiseนำหน้าต่างไปไว้ด้านหน้า แต่ไม่ได้ให้ความสำคัญกับหน้าต่างหรือสลับไปที่เดสก์ท็อปด้วยหน้าต่าง แทนwindowactivateจะทำทั้งสาม
jozxyqk

6

ดีหลังจาก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

ซึ่งฉันพบที่นี่


4
ไม่จำเป็นต้องใช้วงเล็บและ backticks:if ! wmctrl -l | grep -q "$WINTITLE"
หยุดชั่วคราวจนกว่าจะมีประกาศ

wmctrlมี-iตัวเลือกซึ่งรองรับการทำงานกับหน้าต่างด้วยตัวระบุฐานสิบหก และคุณสามารถทำสิ่งนี้ได้wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai- ซึ่งจะทำสิ่งที่คล้ายกัน
vlad-ardelean

0

เมื่อใช้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 (ผู้เขียนต้นฉบับ) ไม่กระตือรือร้นเหมือนในอดีตดังนั้นอย่าลังเลที่จะมีส่วนร่วมในโครงการ


นี่เป็นสำเนาของคำตอบที่ฉันโพสต์ไว้บน AskUbuntuแต่ฉันคิดว่ามันเป็นลินุกซ์ที่เป็นอิสระดังนั้นมันอาจมีประโยชน์ที่นี่เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.