[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Über Skript mehrere Tabs in Konsole öffnen



Servus zusammen,

mit diesem [¹] Schnippsel versuche ich, eine konsole (also das
KDE-Konsolen-Programm) und darin dann mehrere Tabs zu öffnen.
Anschließend sollen ssh-Verbindungen auf allerlei Server hergestellt
werden.

Das funktioniert im Prinzip auch soweit. Allerdings öffnen sich die Tabs
nicht in einer neu gestarteten konsole, sondern in irgend einer konsole,
die gerade irgendwo offen ist.


Hat jemand eine Idee, wie ich erreichen kann, daß die Tabs in einer
bestimmten, extra neu gestarteten Konsole öffnen?

Danke, und viele Grüße!



[1]

#!/bin/bash

if [[ ! "$profile" ]]; then
    profile=Shell
fi

sessions=(
    ssh1  $profile   'clear; ssh server1'
    ssh2  $profile   'clear; ssh server2'
    ssh3  $profile   'clear; ssh server3'
    )

nsessions=0

#####################################################################
# Start sessions in konsole.
function start_sessions()
{
    local session_count=${#sessions[*]}
    local i=0

    while [[ $i -lt $session_count ]]
    do
        local name=${sessions[$i]}
        let i++
        local profile=${sessions[$i]}
        let i++
        local command=${sessions[$i]}
        let i++

        echo "Creating $name: $command"
        # Starting with a specific profile appears to be broken.
        #local session_num=$(qdbus org.kde.konsole /Konsole newSession
                                                       $profile $HOME)
        local session_num=$(qdbus org.kde.konsole /Konsole newSession)
        sleep 0.1
        qdbus org.kde.konsole /Sessions/$session_num setTitle 0 $name
        sleep 0.1
        qdbus org.kde.konsole /Sessions/$session_num setTitle 1 $name
        sleep 0.1
        qdbus org.kde.konsole /Sessions/$session_num sendText "$command"
        sleep 0.1
        qdbus org.kde.konsole /Sessions/$session_num sendText $'\n'
        sleep 0.1

        let nsessions++
    done
}

read -p "Create konsoles? " ans
if [[ "${ans:0:1}" == 'y' ]]; then
    start_sessions

    # Activate first session.
    while [[ $nsessions -gt 1 ]]
    do
        qdbus org.kde.konsole /Konsole prevSession
        let nsessions--
    done
fi





-- 
Andre Tann


Reply to: