Skoncentruj istniejący terminal za pomocą skrótu `Ctrl-Alt-T`


16

Często używam terminala,

Zastanawiam się więc, czy istnieje sposób, aby Ctrl+ Alt+ Tustawić fokus na istniejącym terminalu, jeśli taki istnieje, inaczej utworzyć nowy terminal?

Odpowiedzi:


24

Utwórz mały skrypt, który podniesie terminal GNOME:

echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

lub jeśli chcesz sprawdzić, czy Terminal już działa, użyj:

echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

Spowoduje to utworzenie skryptu ~ / raiterminal.sh z następującą zawartością:

if ps aux | grep "[g]nome-terminal" > /dev/null                                                                                                                                                                                
 then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)                                                                                                                                            
 else gnome-terminal&                                                                                                                                                                                                          
fi          

Otwórz preferencje, aby skonfigurować niestandardowy skrót klawiaturowy i ustaw polecenie na /home/$USER/raiseterminal.sh, ale pamiętaj, aby zmienić $ USER na rzeczywistą nazwę użytkownika.

Jeśli chcesz podnieść terminal tylko na określonym ekranie lub pulpicie, zobacz xdotool search --helpwięcej informacji, jak to zrobić.

Istnieją również różne inne metody, które działają lepiej z innymi menedżerami okien.


Możesz dodać | head -n1po przeszukaniu okien terminala gnome, aby uniknąć błędu, jeśli znaleziono więcej niż jedno okno
ggalmazor

8

dlaczego nie spróbujesz tildalub guakeoba są dostępne w repozytoriach ubuntu. Chociaż nie robią dokładnie tego, czego szukasz, jestem pewien, że to jest to, czego szukałeś, ale nie wiedziałem, że istnieje. ;)

EDYCJA : ok, byłem trochę niejasny, więcej informacji poniżej:

z wikipedii :

Tilda to emulator terminala GTK +. Jego konstrukcja została zainspirowana konsolami w grach komputerowych, takich jak Quake, które zsuwają się z góry ekranu po naciśnięciu klawisza, zazwyczaj tyldą, i zsuwają się z powrotem po ponownym naciśnięciu klawisza.

Uruchomienie Tilda może być szybsze niż uruchomienie nowego terminala za pomocą skrótu klawiaturowego, ponieważ program jest już załadowany do pamięci; może być przydatny dla osób, które często otwierają i zamykają terminale dla nieparzystych zadań.

guake to naprawdę to samo, jedyną różnicą, którą zauważyłem, jest to, że nie mogłem otwierać linków http za pomocą klawiszy Ctrl + kliknięcie, co było dla mnie denerwujące


1

Moja wersja (=

Skrypt do uruchomienia / podniesienia dowolnej aplikacji:

PID=$$
xdotool search --class $1 | while read line
do
  echo "$line"
  if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
    then
    kill $PID
    exit
  fi
done
## Launch the program if we reach here
$1 & disown

na przykład

sh ~/raise.sh chromium

0

próbować

sudo apt-get install wmctrl
wmctrl -xa 'gnome-terminal-server.Gnome-terminal'

przejdź do ustawień systemu - Keyborad, dodaj niestandardowy skrót i wklej tam polecenie wmctrl. To działa.

skąd pochodzi ciąg gnome-terminal- *

wmctrl -xl

0

Jeszcze inna opcja: uruchom lub zmień. Skrypt polega na wmctrl, aby sprawdzić, czy okno jest już otwarte. Jeśli tak, skrypt przełącza się na istniejący, dając pierwszeństwo istniejącemu oknu na bieżącym pulpicie. W przeciwnym razie zostanie otwarte nowe okno. Ten skrypt został opublikowany przez Vaughna Dicksona .

#!/bin/sh

terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"

# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
    $terminal_exec &
else
    # search for existing terminals on current desktop
    current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
    term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
    if [ -n "$term_on_this_desk" ]; then
        wmctrl -i -a $term_on_this_desk
    else
        # no terminals on current desktop, so just open the first one we find
        wmctrl -x -a $terminal_wm_class
    fi;
fi;

Umieść ten skrypt w folderze bin w folderze domowym i ustaw go jako wykonywalny. Następnie w obszarze Skróty klawiaturowe (Ustawienia - Klawiatura) wyłącz istniejący skrót klawiszowy „Uruchom terminal” w sekcji „Wyrzutnie”: kliknij go, a następnie naciśnij klawisz Backspace, aby wyłączyć bieżące przypisanie. Następnie w sekcji „Skróty niestandardowe” utwórz nowy niestandardowy skrót, klikając ikonę +. Wpisz nazwę swojego skryptu jako „polecenie” i przypisz mu skrót Ctrl+ Alt+ t.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.