controlling konsole with dcop

#!/bin/bash
 
# commands which should be executed in its own tab
cmds="echo hello;who;date"
IFS=';'
 
# start konsole and capture PID
konsole --script --ls &> /dev/null &
kpid=$!
 
# wait until konsole is started and dcop is up
ec=1
while [[ $ec -ne 0 ]]; do
  dcop 2>&1 | head -n1 | grep ^ERROR &> /dev/null
  [[ $? -eq 0 ]] && sleep 1 && continue
  dcop konsole-$kpid &> /dev/null
  ec=$?
  sleep 1
done
 
# create tabs and execute commands
s=1
for cmd in $cmds; do
  if [[ $s -eq 1 ]]; then
    session='session-1'
    dcop konsole-$kpid $session renameSession "$cmd"
    dcop konsole-$kpid $session sendSession "$cmd"
  else
    session=$(dcop konsole-$kpid default newSession)
    dcop konsole-$kpid $session renameSession "$cmd"
    dcop konsole-$kpid $session sendSession "$cmd"
  fi
  ((s++))
done
 
# activate first tab
dcop konsole-$kpid default activateSession 'session-1'
it/scripts/bash/konsole.txt · Zuletzt geändert: 01.05.2009 01:00 von da7a