Tüm açık terminalleri öne getirmek için kısayol


17

Bir web sayfasına veya düzenleyiciye gittikten sonra, tüm açık terminalleri orijinal konumlarında öne getirmenin bir yolu var mı? Terminal simgesini tıklayıp her birini ayrı ayrı geri getiren bir acıdır.

Teşekkürler!

Misal:

  • Ön kısayol:

Görüntü öncesi kısayolu


  • Sonrası kısayol:

Görüntü sonrası kısayolu


1
+ 1 çok ilginç bir soru, ilgisiz bir sorunun bu cevabını yararlı bulabilirsiniz - mevcut bir GUI aracı yoksa devilspie programı bu sorunla ilgili olabilir.
evilsoup

Arşiv için: gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545df Son kullanılan uygulamalara saygı gösteren bir komut dosyası
Psi

Yanıtlar:


9

Tuşuna basabilirsiniz Alt+ Tabpencereler arasında ileri geçiş yapmak için Alt+ Shift+ Tabpencereler arasında geçiş yapmanız. Bu kısayol, neredeyse tüm grafik işletim sistemlerinde çalışmak için yapılmıştır. Yow Super+ Wve ok tuşlarını da aynı amaçla kullanabilir.

Bir terminal penceresini öne getirdikten sonra, diğer tüm terminal pencerelerini birer birer getirmek için Alt+ tuşuna basın ~:

pencerelere geç


Otomatik gerekecektir (daha önce açıklandığı gibi tek değil bir) önündeki tüm açık terminalleri getirmek bir klavye kısayolu eklemek alınan aşağıdaki komut (script için Adobe 'nin cevabı ve script bu sürümünü dikkate iyileştirilmiş işe yaramadı benim için):

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

Komut dosyasını yürütülebilir hale getirmeyi unutmayın:

chmod +x /path/to/script/script_name

Komut dosyasını terminalde test ettikten sonra şunları görmelisiniz:


3
Teşekkürler ama bu esas olarak terminal simgesine tıklamak ve öne getirmek için her birini seçmekle aynıdır. Tüm açık terminalleri öne getirecek bir kısayol demek istiyorum. Bir örnek ben gedit kod yazma olabilir, başka bir terminalde bir günlük çıkışını izlerken bir terminalde derlemek istiyorum.
TomSelleck

"Ekran görüntüsü 1 saniyede çekilecek" ... hmm birisi buraya yalan söyledi ...
Carlos Campderrós

1
@Tomcelic Yeni düzenlemelerimi görün. Ederken böyle bir senaryo üzerinde çalışıyordu söylemek ister Adobe gönderdi onun Yanıt Nasıl (benim için çalışmadığı), bu yüzden yanlış bir şekilde bunu al etmeyiniz.
Radu Rădeanu

8

Başlığı ARG ile eşleşen tüm pencereleri öne getiren küçük bir bash betiği:

bring-all-windows.bash ARG

Senaryo:

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

Bağlayabilirsin

bring-all-windows.bash Terminal

kısayol tuşuna (komut dosyasını bir giriş kabuğuna PATH koymayı veya tam bir yol yazmayı unutmayın).

Komut dosyasının wmctrlyüklenmesi gerekir.

Düzenle :

Terminalden bir şey çalıştırmak için, komut dosyasını koyduğunuz dizine gidin, ardından

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

Terminalden çalıştığından emin olduğunuzda, tam yolu veren bir kısayol tuşuna bağlamayı deneyin. Bir kısayol tuşuyla ve komut dosyasının tam yoluyla çalıştığından emin olduğunuzda, bu dosyayı direk giriş kabuğu PATH'a eklemeyi deneyin ve bu şekilde çalışıp çalışmadığına bakın.


Kulağa hoş geliyor! Kısa bir süre sonra tekrar deneyeceğim ve size geri döneceğim. Neden bunun için yerel bir yöntem olmadığı konusunda biraz şaşırdım, doğal olması gerektiği gibi görünüyor.
TomSelleck

@Tomcelic: Bir wmctrlve var bash: bu doğal.
Adobe

Doğru ama yerel değil: P
TomSelleck

Bu betiğin nasıl kullanılacağını aklınıza takan herhangi bir şans var mı ?? Komut dosyasını oluşturdum ve ana klasöre kaydettim ve / etc / shells yolunu ekledim. Ayrıca klavye ayarlarında bring_terminals_forward adıyla bir kısayol ekledim ve komut bash
/home/michael/Scripts/bring-all-windows.bash

Komut dosyasını doğrudan çalışan bir terminalden çalıştırmak da işe yaramıyor ... gedit gibi programlar için çalışıyor, ancak Terminal için değil
TomSelleck

0

Başka bir yol kullanmaktır xdotool. İlk önce yüklemelisiniz, bu yüzden sudo apt-get install xdotoolzorunludur.

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

İlk olarak adlandırılan herhangi bir ikiliyi *terminal*, ikincisi başlık olarak herhangi bir pencereyi arar *braiam@bt*. Sonra bunu bir bash betiğine koyarsanız:

#!/bin/bash

set -e
program=$@

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

Bununla ilgili daha fazla bilgiyi xdotoolkılavuzda bulabilirsiniz.


0

Grafik olarak Ubuntu masaüstümde, masaüstlerimin sol kenar boşluğuna dikey olarak yerleştirilmiş simgelerim var. Terminal simgesine sol tıklarsanız, tüm terminal pencerelerini göreceksiniz. Sonra hangisini çalışacağınızı seçebilirsiniz. Terminal simgesine sağ tıklarsanız, üstünde "Yeni terminal" olan menülerin bir listesini ve listenin alt kısmında tüm açık terminalinizi göreceksiniz. Etkin terminaliniz hangisini seçerseniz seçin.

Aynı yöntem, tarayıcınız gibi diğer tüm uygulamalar için de geçerli olmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.