จะปิดย่อขนาดและขยายหน้าต่างที่ระบุจากเทอร์มินัลได้อย่างไร


17

ฉันใช้ Ubuntu GNOME 15.10 กับ GNOME 3.18 และฉันสงสัยว่าถ้ามีวิธีปิดเทอร์มินัลย่อเล็กสุดย่อขยายใหญ่สุดและยกเลิกการขยายหน้าต่างที่ระบุหรือไม่

หมายเหตุ - ฉันได้ดูคำถาม & คำตอบนี้แล้ว - ฉันถามว่าจะทำอย่างไรจาก Terminal ... ไม่ใช่วิธีเพิ่มปุ่ม ... ปุ่มมีอยู่แล้วฉันไม่ต้องการเพิ่ม



@Anastasia: นี่เป็นวิธีการที่ซ้ำกันได้อย่างไร เพียงแค่ถามเกี่ยวกับการย่อให้เล็กสุด ... ฉันถามเกี่ยวกับสิ่งอื่น ๆ ทั้งหมดเช่นกันซึ่งไม่ได้รับการตอบที่นั่น

ฉันคิดว่าการกระทำเหล่านั้นมีความสัมพันธ์อย่างใกล้ชิดที่การตอบแบบใดแบบหนึ่งควรนำไปสู่การทำแบบอื่นทั้งหมด แต่คุณพูดถูกที่อาจเป็นการกวาดในวงกว้าง ตอนนี้ฉันยังสงสัยในคำถามย่อย ๆ ที่อาจถูกพิจารณาว่าซ้ำซ้อน
Anastasia

@Anastasia: เอาละเพราะคำตอบของคำถามอื่นไม่ได้พูดถึงว่าจะทำอย่างไรถึงแม้ว่าพวกเขาจะช่วยฉันมันก็ยังไม่ซ้ำกับคำถามนั้น ยิ่งกว่านั้นหากคำตอบของคำถามอื่นตอบคำถามของฉันคำถามของฉันยังไม่ได้ถามในสิ่งเดียวกันกับคำถามอื่น

สวัสดีฉันหวังว่าคำถามจะยังคง "เปิด" ภาพรวม ...
Jacob Vlijm

คำตอบ:


18

มีสองเครื่องมือที่สำคัญในการจัดการกับหน้าต่างจากมีcli; และxdotool wmctrlเครื่องมือทั้งสองซ้อนทับกันในฟังก์ชันการทำงาน แต่คำสั่งที่สำคัญที่สุดที่อ้างถึงคำถามของคุณ:

ในภาพรวม (ไม่ต้องสงสัยเลยไม่สมบูรณ์) ให้แสดงรายการคำสั่งที่ฉันใช้บ่อยที่สุด:

ปิดหน้าต่าง

wmctrl:

wmctrl -ic <window_id>

การย่อขนาดหน้าต่างให้เล็กสุด

xdotool:

xdotool windowminimize <window_id>

เลิกย่อขนาดหน้าต่าง

wmctrl:

การลดขนาดอย่างมีประสิทธิภาพทำได้โดย:

wmctrl -ia <window_id>

ฉันพูดถึงได้อย่างมีประสิทธิภาพเนื่องจากคำสั่งย้ายไปยังเดสก์ท็อปที่สอดคล้องกันลดขนาดและเพิ่มหน้าต่าง แต่คำสั่งก็ทำเช่นนั้นบนหน้าต่างที่ไม่ย่อเล็กสุด

การขยายหน้าต่างให้ใหญ่สุด

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

เปิดหน้าต่างให้ใหญ่สุด:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

หมายเหตุ

  • ทั้งสองxdotoolและwmctrlไม่ได้อยู่ในระบบของคุณโดยค่าเริ่มต้น:

    sudo apt-get install xdotool wmctrl
    
  • ในการรันคำสั่งใด ๆ บนหน้าต่างที่ใช้งานอยู่ในปัจจุบัน:

    • สำหรับwmctrlคำสั่งลบ-iตัวเลือกแทนที่<window_id>โดย:ACTIVE:

    • สำหรับxdotoolคำสั่ง: แทนที่<window_id>ด้วย$(xdotool getactivewindow)

  • ในหลายกรณีคำสั่งสามารถทำงานโดยใช้ID หน้าต่างหรือชื่อหน้าต่าง -iในตัวเลือกที่wmctrlบอกว่าwmctrlจะใช้รหัสหน้าต่าง ฉันขอแนะนำไม่ให้ใช้ชื่อของหน้าต่างเป็นตัวระบุเพื่อป้องกันการปะทะกันของชื่อ มันเกิดขึ้นได้ง่ายกว่าที่คุณคาดหวัง

  • จากประสบการณ์ของฉันเองการใช้สคริปต์ให้เกิดประโยชน์สูงสุด ใช้wmctrlเพื่อเพิ่ม / unmaximize สามารถเป็นรถบิตทั้งบนUnityและGnomeในขณะที่xdotoolตัวเลือกที่ทำงานได้มีประสิทธิภาพมากขึ้นในประสบการณ์ของผม ในสคริปต์ส่วนใหญ่ผมจะจบลงในการใช้การผสมผสานของทั้งสองและwmctrlxdotool

ข้อมูลเพิ่มเติมเกี่ยวกับman wmctrlและman xdotool (ส่วนใหญ่เป็นคำสั่ง: คำสั่ง WINDOW )


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม! แต่คุณจะยกเลิกการย่อขนาดหน้าต่างได้อย่างไร

1
@ParanoidPanda ดูคำตอบของฉัน :) การปรับปรุง
จาค็อบ Vlijm

1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzไม่ทำงานใน gnome 3.20
user41209

4

กำลังเพิ่มคำตอบของ Jacob Vlijm:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

ใช้ได้กับการลบขนาดหน้าต่างด้วย อนิเมชั่นนั้นเร็วกว่าสำหรับฉัน

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