ปุ่มลัดเพื่อนำเทอร์มินัลที่เปิดอยู่ด้านหน้า


17

หลังจากฉันนำทางไปยังหน้าเว็บหรือโปรแกรมแก้ไขมีวิธีใดที่จะนำเทอร์มินัลที่เปิดอยู่ทั้งหมดกลับไปด้านหน้าในตำแหน่งเดิมได้หรือไม่? มันเป็นความเจ็บปวดเล็กน้อยเมื่อคลิกที่ไอคอนเทอร์มินัลแล้วนำแต่ละอันกลับมาทีละอัน

ขอบคุณ!

ตัวอย่าง:

  • Pre-ทางลัด:

ทางลัดก่อนภาพ


  • โพสต์ทางลัด:

ทางลัดโพสต์ภาพ


1
+1 คำถามที่น่าสนใจมากคุณอาจพบคำตอบสำหรับคำถามที่ไม่เกี่ยวข้องนี้มีประโยชน์ - โปรแกรม devilspie อาจเกี่ยวข้องกับปัญหานี้หากไม่มีเครื่องมือ GUI ที่มีอยู่
evilsoup

สำหรับที่เก็บถาวร: gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545dfสคริปต์ที่เคารพแอปพลิเคชันที่ใช้ล่าสุด
Psi

คำตอบ:


9

คุณสามารถกดAlt+ Tabเพื่อสลับไปข้างหน้าระหว่าง windows และAlt+ Shift+ Tabเพื่อสลับกลับไปมาระหว่าง windows ช็อตคัตนี้สร้างขึ้นเพื่อทำงานในระบบปฏิบัติการกราฟิกเกือบทั้งหมด คุณสามารถใช้ปุ่มSuper+ Wและลูกศรเพื่อจุดประสงค์เดียวกันได้

หลังจากที่คุณนำหน้าต่างเทอร์มินัลหนึ่งอยู่ด้านหน้าแล้วกดAlt+ ~เพื่อนำหน้าต่างเทอร์มินัลอื่นทั้งหมดมาด้านหน้าหนึ่งต่อหนึ่ง:

เปลี่ยนเป็น windows


หากต้องการนำเทอร์มินัลที่เปิดอยู่ด้านหน้าโดยอัตโนมัติ (ไม่ใช่ทีละอย่างตามที่ฉันอธิบายไว้ก่อนหน้านี้) คุณจะต้องเพิ่มแป้นพิมพ์ลัดสำหรับสคริปต์ต่อไปนี้ (สคริปต์ที่นำมาจากคำตอบของAdobeและปรับปรุงให้ดีขึ้น สำหรับฉัน):

#!/bin/bash

if [ $# -ne 1 ];then
  echo -e "Usage: `basename $0` PROGRAM_NAME\n
           For example:\n\t
           '`basename $0` gnome-terminal' for Terminal\n\t
           '`basename $0` firefox' for Firefox\n\t
           '`basename $0` chromium-browser' for Chromium\n\t..."
  exit 1
fi

pids=" $(pidof $@) "

if [ "$pids" = "  " ]; then # the string "  " contain two spaces
    echo "There is no program named '$@' opened at the moment."
    exit 1
fi

wmctrl -lp | while read identity desktop_number PID window_title; do 
    if [ "${pids/ $PID }" != "$pids" ]; then
        wmctrl -ia $identity
    fi
done

อย่าลืมทำให้สคริปต์ใช้งานได้:

chmod +x /path/to/script/script_name

หลังจากที่คุณทดสอบสคริปต์ในเทอร์มินัลคุณต้องดู:


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

"ภาพหน้าจอจะถูกถ่ายใน 1 วินาที" ... อืมมีใครบางคนโกหกที่นี่ ...
Carlos Campderrós

1
@Tomcelic ดูการแก้ไขใหม่ของฉัน ต้องการที่จะบอกว่าฉันกำลังทำงานกับสคริปต์ในขณะที่Adobeได้โพสต์วิธีการตอบของเขา(ซึ่งสำหรับฉันไม่ได้ทำงาน) ดังนั้นโปรดอย่าใช้สิ่งนี้ในทางที่ผิด
Radu Rădeanu

8

นี่คือสคริปต์ทุบตีขนาดเล็กซึ่งนำหน้าต่างทั้งหมดที่มีชื่อตรงกับ ARG มาไว้ด้านหน้า:

bring-all-windows.bash ARG

บท:

#!/bin/bash

Program=$@

wmctrl -l | while read Window; do
    if [[ "$Window" == *"$Program"* ]]; then
        echo "DEBUG: I bring $Window"
        code=`echo "$Window" | cut -f 1 -d " "`
        wmctrl -i -a $code
    fi
done

คุณสามารถผูก

bring-all-windows.bash Terminal

ไปยังฮอตคีย์ (อย่าลืมใส่สคริปต์ในพา ธ ของเชลล์ล็อกอินหรือเขียนพา ธ แบบเต็ม)

ต้องwmctrlติดตั้งสคริปต์

แก้ไข :

หากต้องการเรียกใช้บางสิ่งจากเทอร์มินัลให้ไปที่ dir ที่คุณวางสคริปต์ไว้

chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal

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


ฟังดูดี! ฉันจะลองสักครู่แล้วกลับมาหาคุณ ฉันยังงงอยู่เล็กน้อยว่าทำไมไม่มีวิธีดั้งเดิมสำหรับสิ่งนี้ดูเหมือนว่ามันควรเป็นธรรมชาติ
TomSelleck

@ Tomcelic: มีwmctrlและbash: นั่นเป็นธรรมชาติ
Adobe

จริง แต่ไม่ใช่คนพื้นเมือง: P
TomSelleck

มีโอกาสใดบ้างไหมที่คุณจะใช้งานสคริปต์นี้? ฉันได้สร้างสคริปต์และบันทึกไว้ในโฟลเดอร์บ้านของฉันและเพิ่มเส้นทางไปยัง / etc / shells ฉันยังได้เพิ่มทางลัดในการตั้งค่าแป้นพิมพ์ด้วยชื่อ bring_terminals_forward และคำสั่งคือ bash /home/michael/Scripts/bring-all-windows.bash Terminal
TomSelleck

การรันสคริปต์โดยตรงจากเทอร์มินัลที่กำลังทำงานดูเหมือนจะไม่ทำงาน ... มันใช้งานได้กับโปรแกรมอย่าง gedit แต่ไม่ใช่สำหรับ Terminal
TomSelleck

0

xdotoolอีกวิธีหนึ่งคือการใช้ คุณควรติดตั้งก่อนจึงsudo apt-get install xdotoolจำเป็นต้องมี

xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@

ดูครั้งแรกสำหรับไบนารีใด ๆ ที่เรียกว่า*terminal*, รูปลักษณ์ที่สองสำหรับหน้าต่างใด ๆ *braiam@bt*ที่มีชื่อ ถ้าคุณใส่มันลงในสคริปต์ทุบตี:

#!/bin/bash

set -e
program=$@

xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@

คุณสามารถทราบข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ในxdotoolคู่มือ


0

กราฟิกในเดสก์ท็อป Ubuntu ของฉันฉันมีไอคอนของฉันเรียงตามแนวตั้งที่ขอบด้านซ้ายของเดสก์ท็อปของฉัน หากคุณคลิกซ้ายที่ไอคอนเทอร์มินัลคุณจะเห็นหน้าต่างเทอร์มินัลทั้งหมด จากนั้นคุณสามารถเลือกได้ว่าจะใช้อันไหนถ้าคลิกขวาที่ไอคอนเทอร์มินัลคุณจะเห็นรายการเมนูที่มี "เทอร์มินัลใหม่" อยู่ด้านบนและเทอร์มินัลเปิดทั้งหมดของคุณในส่วนล่างของรายการ คุณสามารถเลือกสิ่งที่จะเป็นสถานีที่ใช้งานของคุณ

วิธีเดียวกันนี้ควรใช้ได้กับแอปพลิเคชันอื่นเช่นเบราว์เซอร์ของคุณ

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