Comando per aprire una nuova finestra del terminale dal terminale corrente?


46

Ho installato xdotool eseguendo sudo apt-get install xdotoole lanciando il xdotool key ctrl+alt+tcomando per aprire una nuova finestra del terminale da quella corrente, ma non funzionava.

Qual era il comando per aprire una nuova finestra del terminale dall'attuale gnome-terminal?


1
ctrl + maiusc + n
wim

Risposte:


67

Solo questo comando farà:

gnome-terminal

Normalmente se vuoi che un comando si apra dal terminale e si separi (quindi ritorna al prompt senza dover chiudere il programma aperto) , devi usare qualcosa del genere:

gnome-terminal & disown

Tuttavia, il terminale genitore sembra rilevare che viene utilizzato lo stesso comando, quindi non è necessario farlo e gnome-terminalsarà sufficiente. Questo sembra anche accadere durante l'esecuzione xfce4-terminalda Xfce del terminale, konsoleda KDE di così (non sembra al lavoro durante l'esecuzione xtermda xterm(vedi anche xterm xterm) - Running konsoleda opere terminale di GNOME / Unity & Xfce di così , ma per Xfce del terminale in gnome terminale che si bisogno xfce4-terminal & disown).

Per maggiori informazioni visita gnome-terminalla pagina del manuale :

 gnome-terminal  [-e,  --command=STRING]   [-x, --execute ]  [--window-with-profile=PROFILENAME]  [--tab-with-profile=PRO‐
       FILENAME]    [--window-with-profile-internal-id=PROFILEID]    [--tab-with-profile-internal-id=PROFILEID]    [--role=ROLE]
       [--show-menubar]   [--hide-menubar]   [--geometry=GEOMETRY]   [--disable-factory]  [-t, --title=TITLE]  [--working-direc‐
       tory=DIRNAME]  [--usage]  [-?, --help]

1
Probabilmente si desidera eseguire in background, così: gnome-terminal &. In caso contrario, il terminale corrente sarà inutilizzabile, poiché sarà occupato a eseguirne l'altro - quindi si finisce con un solo terminale utilizzabile, che potrebbe non avere il punto.
Rafał Cieślak,

1
Interessante. Apparentemente hai ragione, tuttavia, non ho sbagliato neanche io :) L'ho appena verificato nei dettagli. Se corro gnome-terminal mentre un'altra istanza è già in esecuzione (potrebbe essere quella che sto usando per lanciare questo comando) - finisce davvero immediatamente, perché invece di eseguire una nuova istanza gnome-terminal, dice che attualmente in esecuzione una per aprire una nuova finestra. Difficile. Ma se corro gnome-terminalda qualsiasi altra cosa e non ci sono altri casi di gnome-terminalesecuzione, fa come ho spiegato nel commento precedente, bloccando il terminale utilizzato per avviarlo.
Rafał Cieślak,

1
@ RafałCieślak - comunque, konsolenon sembra affatto necessario ... strano. Non ho idea del perché questa domanda / risposta sia così popolare :)
Wilf,

2
Grazie mille, se vuoi aprire un terminale con la stessa directory potresti farlo,gnome-terminal .
kisanme

1
Se sei su Ubuntu MATE (es. 16.x) èmate-terminal
Frank Nocke il

8

Comando per aprire una nuova finestra del terminale dal terminale corrente,

xdotool key ctrl+shift+n

Per installare xdotool,

sudo apt-get install xdotool

4
Ctrl + Maiusc + T aprirà una nuova scheda terminale.
GabrielF,

2
È un nuovo terminale ... ma in una nuova scheda anziché in una nuova finestra.
GabrielF,

1
Non vedo alcun motivo per usare xdotool key ctrl+shift+nmentre usi gnome-terminalhai molte altre opzioni; vedi man gnome-terminalin questo senso.
Radu Rădeanu,

1
Ctrl + Maiusc + N aprirà una nuova finestra del terminale.
Siddhartha,

Continuo a pensare che sia pulito :) esiste un equivalente per Mir o Wayland (per implementazioni non compatibili con roba server X)
Wilf

0

Il seguente script aprirà una nuova scheda nella finestra corrente di gnome-terminal e opzionalmente assegnerà un titolo a quella scheda. Funziona da qualsiasi finestra, non è necessario trovarsi in una finestra di gnome-terminal per eseguirlo. E, se non ci sono gnome-terminal in esecuzione, ne avvierà uno. L'unica avvertenza è che se si modifica il tasto di scelta rapida per l'apertura di una nuova scheda, potrebbe essere necessario modificare la linea xdotool key ctrl+Tper utilizzare invece il tasto di scelta rapida.

#!/bin/bash

DELAY=1
# get title we are going to set tab too, default to Terminal
title="Terminal"
if [ $# -eq 1 ]; then
    title="$1"
fi    

# get pid of running terminal server
TPID=$(ps -C gnome-terminal-server -o pid | tail -1 | sed -e's/\s//g')
if [ ${TPID} == "PID" ]; then
    # no terminal process running yet, so just start one
    gnome-terminal -t "$title" --tab
    exit 0
fi

# there is a terminal, get window id of the running terminal server
WID=$(wmctrl -lp | awk -v pid=$TPID '$3==pid{print $1;exit;}')
# get title of currently active tab
TTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
if [ "$TTITLE" == "\"Terminal\"" ]; then
    # so we don't go into an infinite loop later
    TTITLE="we had a terminal named terminal $$"
fi
# get focus on active terminal tab
xdotool windowfocus $WID
# use keyboard shortcut to open new tab
xdotool key ctrl+T

# see if we have created tab and are in terminal
NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
waited=0
while [ "$TTITLE" == "$NTITLE" ]; do
    # sleep for 1 second before we try again
    xdotool sleep 1
    NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
    if [ $waited == 0 ]; then
    echo "Waiting "
    waited=1
    fi
    echo -n "."
done    
if [ $waited == 1 ]; then
    echo ""
fi    

# active tab is the new one we created, wait DELAY seconds just to be sure we can type into it to set tab name
xdotool sleep $DELAY
xdotool type --clearmodifiers "termtitle $title"
xdotool key Return
# make tab the active window and raise it to top
wmctrl -i -a $WID
exit 0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.