61 votes

Commande pour ouvrir une nouvelle fenêtre de terminal à partir du terminal actuel ?

J'ai installé xdotool en exécutant sudo apt-get install xdotool et de jeter xdotool key ctrl+alt+t pour ouvrir une nouvelle fenêtre de terminal à partir de la fenêtre actuelle, mais cela ne fonctionnait pas.

Quelle était la commande pour ouvrir une nouvelle fenêtre de terminal à partir du terminal gnome actuel ?

87voto

Wilf Points 28034

Cette commande suffira :

gnome-terminal

Normalement, si vous voulez qu'une commande s'ouvre depuis le terminal et que vous sépariez (pour revenir à l'invite sans avoir à fermer le programme ouvert) vous devez utiliser quelque chose comme ceci :

gnome-terminal & disown

Cependant, le terminal parent semble détecter que la même commande est utilisée, donc vous n'avez pas besoin de faire cela et gnome-terminal suffira. Cela semble également se produire lorsque vous exécutez xfce4-terminal depuis le terminal de Xfce, konsole à partir de celui de KDE (cela ne semble pas fonctionner lorsque l'on exécute xterm de xterm (voir aussi xterm xterm ) - Courant konsole à partir de Gnome/Unity et le terminal de Xfce fonctionne également mais pour le terminal de Xfce dans le terminal de gnome, il faut xfce4-terminal & disown ).

Pour en savoir plus, visitez gnome-terminal Page du manuel de l'entreprise :

 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]

10voto

Avinash Raj Points 72686

Commande permettant d'ouvrir une nouvelle fenêtre de terminal à partir du terminal actuel,

xdotool key ctrl+shift+n

Pour installer xdotool ,

sudo apt-get install xdotool

1voto

rocketmonkeys Points 398

Le script suivant ouvrira un nouvel onglet dans la fenêtre actuelle de gnome-terminal et donnera éventuellement un titre à cet onglet. Cela fonctionne depuis n'importe quelle fenêtre, vous n'avez pas besoin d'être dans une fenêtre gnome-terminal pour l'exécuter. Et, s'il n'y a pas de terminal gnome en cours d'exécution, il en lancera un. Le seul problème est que si vous avez changé la touche de raccourci pour l'ouverture d'un nouvel onglet, vous devrez peut-être changer la ligne suivante xdotool key ctrl+T pour utiliser votre touche de raccourci à la place.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X