128 votes

Comment ouvrir un nouvel onglet dans le terminal GNOME à partir de la ligne de commande ?

J'utilise Ubuntu 9.04 x64 et quand j'écris :

gnome-terminal --tab

Dans le terminal, je m'attends à ce qu'il ouvre un nouvel onglet dans la même fenêtre du terminal. Mais il ouvre une nouvelle fenêtre à la place.

J'ai découvert que son intention est d'ouvrir un nouvel onglet dans une nouvelle fenêtre, c'est-à-dire si j'écris :

gnome-terminal --tab --tab

Cela ouvrira une nouvelle fenêtre avec deux onglets.

Donc, la question est la suivante : comment puis-je ouvrir un nouvel onglet dans l'onglet actuel en utilisant une commande dans gnome-terminal ?

4 votes

Si vous écrivez le terminal gnome de toute façon, pourquoi ne pas simplement appuyer sur ctrl+shift+t pour ouvrir un nouvel onglet ;)

15 votes

Et comment suis-je censé appuyer Ctrl+Shift+T lorsque la commande est exécutée à partir d'un fichier script ? (J'ai entendu dire que quelque chose appelé D-Bus peut le faire) !

22 votes

Chaque fois que je démarre mon PC, j'ai besoin d'ouvrir quelques onglets dans mon terminal gnome. Et automatisation de qui me fera me sentir un peu plus geek. (Comme on dit) La paresse est une caractéristique des programmeurs.

71voto

mystic Points 466
#!/bin/sh

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID

Cela déterminera automatiquement le terminal correspondant et ouvrira l'onglet en conséquence.

3 votes

Merci, ça marche bien. En bonne forme - WID= xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}'; xdotool windowfocus $WID; xdotool key ctrl+shift+t $WID

0 votes

Si ça marche, ça mettra fin à tant de mois de frustration. Merci beaucoup.

0 votes

Xdotool, une excellente ressource. Je cherchais l'équivalent d'AutoIt de Windows, mais pour Linux.

71voto

Chase Seibert Points 7609

Vous pouvez également faire en sorte que chaque onglet exécute une commande définie.

gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"

11 votes

Je reçois le message "There was an error creating the child process for this terminal" en réponse à la question suivante gnome-terminal --tab -e "cd /tmp"

3 votes

Le hérisson, j'ai une solution pour ça : gnome-terminal --tab --working-directory="/home/user/X/Y/" . Je ne sais pas pourquoi, mais "~/X/Y/" n'a pas fonctionné.

1 votes

J'ai des problèmes avec mes commandes, si j'utilise seulement --tab, cela fonctionne mais si j'utilise --tab -e "mon_bash_shorcut", cela ne fonctionne pas. Savez-vous pourquoi ?

1voto

Jemini Points 11

Pour tous ceux qui cherchent une solution qui n'utilise pas la ligne de commande : ctrl+shift+t

11 votes

Ils demandent une ligne de commande pour automatiser les choses. Ces raccourcis sont rarement utiles.

0 votes

C'était exactement ce que je cherchais. La question posée dans le titre n'est pas limitée aux "solutions automatisées" @EAGER_STUDENT et, pour être honnête, j'ai du mal à trouver un cas d'utilisation où j'ai besoin d'une interface graphique automatisée. C'est comme faire une opération à cœur ouvert par la colonne vertébrale.

6 votes

@SteffenWinkler Je suis heureux que cette solution vous ait aidé. Mais puisque la question disait 'utiliser la ligne de commande', j'ai supposé qu'il fallait utiliser des commandes automatisées, quelque chose comme les réponses les plus votées... Quoi qu'il en soit, la réponse elle-même précise "Pour toute personne cherchant une solution qui n'utilise pas la ligne de commande". .... Bravo pour la réponse.... En outre, "J'ai du mal à trouver un cas d'utilisation où j'ai besoin d'une interface graphique automatisée". Disons que j'ai toujours besoin que 5 onglets soient ouverts au démarrage. Dans ce cas, ce serait utile. Mais dans ce cas aussi, nous pouvons utiliser un raccourci pour automatiser de toute façon ;)

0voto

Mike McQuaid Points 4675

Je n'ai pas installé gnome-terminal mais vous devriez être en mesure de le faire en utilisant un appel DBUS sur la ligne de commande en utilisant dbus-send .

0voto

user25643 Points 36

Envisagez d'utiliser Roxterm à la place.

roxterm --tab

ouvre un onglet dans la fenêtre actuelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X