#!/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'