Phím tắt để đưa tất cả các thiết bị đầu cuối mở ra phía trước


17

Sau khi tôi điều hướng đến một trang web hoặc trình soạn thảo, có cách nào để đưa tất cả các thiết bị đầu cuối mở trở lại phía trước ở vị trí ban đầu của chúng không? Đó là một chút đau đớn khi nhấp vào biểu tượng thiết bị đầu cuối và sau đó đưa từng người trở lại riêng lẻ.

Cảm ơn!

Thí dụ:

  • Phím tắt trước:

Phím tắt trước hình ảnh


  • Phím tắt:

Phím tắt hình ảnh


1
+1 câu hỏi rất thú vị, bạn có thể thấy câu trả lời này cho một câu hỏi không liên quan hữu ích - chương trình devilspie có thể liên quan đến vấn đề này nếu không có công cụ GUI hiện có.
evilsoup

Đối với kho lưu trữ: gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545df Một tập lệnh tôn trọng các ứng dụng được sử dụng gần đây
Psi

Câu trả lời:


9

Bạn có thể nhấn Alt+ Tabđể chuyển tiếp giữa các cửa sổ và Alt+ Shift+ Tabđể chuyển trở lại giữa các cửa sổ. Phím tắt này được tạo ra để hoạt động trong hầu hết các hệ điều hành đồ họa. Yow cũng có thể sử dụng phím Super+ Wvà mũi tên cho cùng một mục đích.

Sau khi bạn mang một cửa sổ đầu cuối ở phía trước, nhấn Alt+ ~để đưa tất cả các cửa sổ đầu cuối khác ở phía trước lần lượt:

chuyển sang cửa sổ


Để tự động đưa tất cả các thiết bị đầu cuối đang mở ở phía trước (không phải từng cái một như tôi đã mô tả trước đây), bạn sẽ cần thêm một phím tắt cho tập lệnh sau (tập lệnh được lấy từ câu trả lời của Adobe và được cải thiện khi phiên bản tập lệnh không hoạt động cho tôi):

#!/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

Đừng quên làm cho tập lệnh thực thi:

chmod +x /path/to/script/script_name

Sau khi bạn kiểm tra tập lệnh trong thiết bị đầu cuối, bạn phải xem:


3
Cảm ơn nhưng về cơ bản giống như nhấp vào biểu tượng thiết bị đầu cuối và chọn từng cái để đưa ra phía trước. Tôi có nghĩa là một cắt ngắn sẽ đưa tất cả các thiết bị đầu cuối mở ra phía trước. Một ví dụ là tôi có thể viết mã bằng gedit, muốn biên dịch nó trong một thiết bị đầu cuối trong khi xem đầu ra của một bản ghi trong một thiết bị đầu cuối khác.
TomSelleck

"Ảnh chụp màn hình sẽ được thực hiện trong 1 giây" ... hmm ai đó vừa nói dối ở đây ...
Carlos Campderrós

1
@Tomcelic Xem các chỉnh sửa mới của tôi. Muốn nói rằng tôi đã làm việc với một kịch bản như vậy trong khi Adobe đã đăng Cách trả lời của anh ấy (mà đối với tôi đã không hoạt động), vì vậy xin đừng hiểu sai về điều này.
Radu Rădeanu

8

Đây là một tập lệnh bash nhỏ đưa tất cả các cửa sổ có tiêu đề khớp với ARG lên phía trước:

bring-all-windows.bash ARG

Kịch bản:

#!/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

Bạn có thể ràng buộc

bring-all-windows.bash Terminal

vào một phím nóng (đừng quên đặt tập lệnh vào vỏ đăng nhập PATH hoặc viết đường dẫn đầy đủ đến nó).

Kịch bản yêu cầu wmctrlphải được cài đặt.

Chỉnh sửa :

Để chạy một cái gì đó từ thiết bị đầu cuối, điều hướng đến thư mục nơi bạn đặt tập lệnh, sau đó

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

Khi bạn chắc chắn rằng nó hoạt động từ thiết bị đầu cuối, hãy thử liên kết nó với một phím nóng, đưa ra đường dẫn đầy đủ. Khi bạn chắc chắn rằng nó hoạt động với một phím nóng và đường dẫn đầy đủ đến tập lệnh, sau đó thử thêm thư mục của nó vào vỏ đăng nhập PATH và xem nó có hoạt động theo cách đó không.


Nghe được đấy! Tôi sẽ thử ngay sau đó và lấy lại cho bạn. Tôi vẫn còn hơi bối rối về lý do tại sao không có phương pháp riêng cho việc này, có vẻ như đó là điều tự nhiên.
TomSelleck

@Tomcelic: Có một wmctrlbash: đó là điều tự nhiên.
Adobe

Đúng nhưng nó không phải là bản địa: P
TomSelleck

Có bất kỳ cơ hội nào bạn sẽ nhớ khi chạy qua cách sử dụng tập lệnh này không ?? Tôi đã tạo tập lệnh và lưu nó trong thư mục nhà của tôi và thêm đường dẫn đến / etc / shell. Tôi cũng đã thêm một lối tắt trong cài đặt bàn phím với tên bring_terminals_forward và lệnh là bash
/home/michael/Scripts/bring-all-windows.bash

Chạy tập lệnh trực tiếp từ thiết bị đầu cuối đang chạy dường như cũng không hoạt động ... Nó hoạt động cho các chương trình như gedit, nhưng không phải cho Terminal
TomSelleck

0

Một cách khác là sử dụng xdotool. Bạn nên cài đặt nó trước vì vậy sudo apt-get install xdotoollà bắt buộc.

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

Cái nhìn đầu tiên cho bất kỳ nhị phân được gọi là *terminal* , cái thứ hai tìm bất kỳ cửa sổ nào có tiêu đề *braiam@bt*. Sau đó, nếu bạn đặt nó vào một tập lệnh bash:

#!/bin/bash

set -e
program=$@

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

Bạn có thể biết thêm về điều này trong xdotool hướng dẫn.


0

Về mặt đồ họa trong máy tính để bàn Ubuntu của tôi, tôi có các biểu tượng của mình được sắp xếp theo chiều dọc ở lề bên trái của máy tính để bàn. Nếu bạn nhấp chuột trái vào biểu tượng thiết bị đầu cuối, bạn sẽ thấy tất cả các cửa sổ đầu cuối. Sau đó, bạn có thể chọn bất kỳ cái nào để làm việc. Nếu bạn nhấp chuột phải vào biểu tượng thiết bị đầu cuối, bạn sẽ thấy một danh sách các menu có "Thiết bị đầu cuối mới" ở trên và tất cả thiết bị đầu cuối mở của bạn ở phần dưới của danh sách. Bạn có thể chọn bất cứ điều gì là thiết bị đầu cuối hoạt động của bạn.

Phương pháp tương tự này sẽ hoạt động cho bất kỳ ứng dụng nào khác như trình duyệt của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.