• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

kde4 + dbus + konsole scripten

Hallo Ihr,
ich hab diesen schönen Artikel gefunden: http://www.linuxjournal.com/content/start-and-control-konsole-dbus
Darin wir beschrieben, wie man die konsole Skripten kann.
Leider scheint KDE zur Zeit dafür keine Aufrufe zu haben, um dieses alles in einem neuen Fenster zu machen.
Alles läuft in der ersten Konsole ab.
Mein Beispiel, wie ich mit den Ideen aus den Comments für mich eine Lösung gefunden habe,
möchte ich euch nicht vorenthalten. Ich hab einfach eine konsole mit --nofork & mit einer bekannten PID erzeugt.
Für das neue Fenster sind die NewSessions dann einfach zu managen.

Code:
#!/bin/bash
#
# Create my standard konsole windows.

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

sessions=(
    sh1   $profile   'clear; echo I am at sh1'
    sh2   $profile   'clear; echo I am at sh2'
    su1   $profile   'clear; su'
    ssh1  $profile   'clear; ssh 127.0.0.1'
    )

nsessions=0

#####################################################################
# Start sessions in konsole.
function start_sessions()
{
    local session_count=${#sessions[*]}
    local i=0
    local j=0
    # The first session exists, cause it is a konsole --nofork
    local session_num=1

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

        echo "Creating $name: $command"
        # The first session is from the "kon
        [ $j -gt 1 ] && local session_num=$(qdbus org.kde.konsole-$mykons /Konsole newSession)
        sleep 0.1
        qdbus org.kde.konsole-$mykons /Sessions/$session_num setTitle 0 $name >/dev/null 
        qdbus org.kde.konsole-$mykons /Sessions/$session_num setTitle 1 $name >/dev/null 
        qdbus org.kde.konsole-$mykons /Sessions/$session_num sendText "$command"$'\n' >/dev/null 
        let nsessions++
    done
}

read -p "Create konsoles? " ans
if [[ "${ans:0:1}" == 'y' ]]; then
    # Start a new konsole to have a valid identifier
    konsole --nofork 2>/dev/null &
    mykons=$!
    start_sessions

    # Activate first session.
    while [[ $nsessions -gt 1 ]]
    do
        qdbus org.kde.konsole-$mykons /Konsole prevSession
        let nsessions--
    done
fi
# vim: tabstop=4: shiftwidth=4: noexpandtab:
# kate: tab-width 4; indent-width 4; replace-tabs false;

Haveaniceday
 
Oben