haveaniceday
Hacker
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.
Haveaniceday
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