linux - tab - xfce4 terminal set title




Öffnen Sie eine neue Registerkarte in gnome-terminal über die Befehlszeile (6)

Wenn ich schreibe

gnome-terminal --tab

Am Terminal erwarte ich, dass es im selben Terminalfenster eine neue Registerkarte öffnet. Aber es öffnet sich stattdessen ein neues Fenster.

Ich habe herausgefunden, dass es eine neue Registerkarte in einem neuen Fenster öffnen soll, dh wenn ich schreibe

gnome-terminal --tab --tab

Es öffnet sich ein neues Fenster mit zwei Tabs.

Also, die Frage ist, wie kann ich eine neue Registerkarte im aktuellen Fenster mit einem Befehl in gnome-terminal öffnen?

Ich benutze Ubuntu 9.04 x64.


Eine etwas aufwendigere Version (aus einem anderen Fenster zu verwenden):

#!/bin/bash

DELAY=3

TERM_PID=$(echo `ps -C gnome-terminal -o pid= | head -1`) # get first gnome-terminal's PID
WID=$(wmctrl -lp | awk -v pid=$TERM_PID '$3==pid{print $1;exit;}') # get window id

xdotool windowfocus $WID
xdotool key alt+t # my key map
xdotool sleep $DELAY # it may take a while to start new shell :(
xdotool type --delay 1 --clearmodifiers "[email protected]"
xdotool key Return

wmctrl -i -a $WID # go to that window (WID is numeric)

# vim:ai
# EOF #

Erwägen Sie stattdessen, Roxterm zu verwenden.

roxterm --tab

Öffnet eine Registerkarte im aktuellen Fenster.


Ich habe Gnome-Terminal nicht installiert, aber Sie sollten in der Lage sein, dies zu tun, indem Sie einen DBUS-Aufruf in der Befehlszeile mit dbus-send .


Ich habe den einfachsten Weg gefunden:

gnome-terminal --tab -e 'command 1' --tab -e 'command 2'

Ich benutze tmux statt Terminal direkt zu verwenden. Also, was ich will, ist wirklich eine einzige und einfache Befehl / Shell-Datei, um die Entwicklung env mit mehreren tmux Windows zu bauen. Der Shell-Code ist wie folgt:

#!/bin/bash
tabs="adb ana repo"
gen_params() {

    local params=""
    for tab in ${tabs}
    do  
        params="${params} --tab -e 'tmux -u attach-session -t ${tab}'"
    done
    echo "${params}"
}
cmd="gnome-terminal $(gen_params)"
eval $cmd

Um ein vim new_tab.sh verschiedene Punkte oben zusammen zu bringen, hier ist ein Skript, das alle Argumente vim new_tab.sh die an das Skript vim new_tab.sh :

#!/bin/bash
#
# Dependencies:
#   sudo apt install xdotool

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1; xdotool type --delay 1 --clearmodifiers "[email protected]"; xdotool key Return;

Als nächstes mach es ausführbar: chmod +x new_tab.sh

Jetzt können Sie es verwenden, um was auch immer Sie in einem neuen Tab ./new_tab.sh "watch ls -l" : ./new_tab.sh "watch ls -l"


Um mehrere Tabs im selben Terminalfenster zu öffnen, können Sie folgende Lösung verwenden.

Beispielskript:

pwd='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/bin'
pwdlog='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/logs'
pwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/bin'
logpwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/standalone/log'

osascript -e "tell application \"Terminal\"" \

-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwd\" in front window" \
-e "do script \"./startup.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwdlog\" in front window" \
-e "do script \"tail -f catalina.out \" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $pwd1\" in front window" \
-e "do script \"./standalone.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
-e "do script \"cd $logpwd1\" in front window" \
-e "do script \"tail -f core.log \" in front window" \
-e "end tell"
> /dev/null 




terminal