On 2/10/25 12:06 PM, Marvin Jones via tde-users wrote:
Whoopie! I had never learned of/about `kstart`
before.
But, also Whoopie! Because AI can probably help with lots of
'ordinary' Trinity issues that someone (newcomers) come up with.
Combining kstart and dcop you can do amazing things with konsole sessions.
I've got a short shell script that calls kstart to start a konsole session and
then starts 10 more sessions in tabs, renaming each tab and for remote
connection tabs, ssh'ing into the remote host - all from an icon in
Quicklancher in the task bar.
Well worth looking into dcop (yes old, yes it TDE only, ...) but it works
like magic in TDE/KDE3.
To get started, just:
$ dcop konsole*
konsole-2075
It's a chain, so you can see the capabilities below each entry simply by typing
$ dcop konsole-2075 (and next) (and next), etc...
For example:
$ dcop konsole-2075
qt
KBookmarkManager-/home/david/.kde/share/apps/konsole/bookmarks.xml
KBookmarkNotifier
MainApplication-Interface
konsole (default)
konsole-mainwindow#1
ksycoca
session-1
session-10
session-11
session-12
session-2
session-3
session-4
session-5
session-6
session-7
session-8
session-9
What can you do with 'qt'?
$ dcop konsole-2075 qt
QCStringList functions()
QCStringList interfaces()
QCStringList objects()
QCStringList find(QCString)
The "QCStringList" tells you what type value will be returned. The
"function()" (obvious) "interfaces()" and "object()" will
all list what is
available for that type that you can use -- generically with dcop.
What can you do with "dcop konsole-2075 konsole"? or the "dcop
konsole-2075
konsole-mainwindow#1"? have a look. For running open konsole sessions, if you
want to to it to a session, you can, e.g.
$ dcop konsole-2075 session-1
QCStringList interfaces()
QCStringList functions()
void feedSession(QString text)
void sendSession(QString text)
bool closeSession()
bool sendSignal(int signal)
void clearHistory()
void renameSession(QString name)
QString sessionName()
int sessionPID()
QString schema()
void setSchema(QString schema)
QString encoding()
void setEncoding(QString encoding)
QString keytab()
void setKeytab(QString keyboard)
QSize size()
void setSize(QSize size)
QString font()
void setFont(QString font)
You can literally control every aspect of konsole (or any TDE app) with
dcop. Very handy. Really easy too. If I want to know the size?
$ dcop konsole-2075 session-1 size
115x58
Or rename a session, use renameSession(QString name), so set the size of
the window, use setSize(QSize size), etc...
The only thing I haven't figured out a way to set is the tab-color, but
that's for another day.
--
David C. Rankin, J.D.,P.E.