sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #54831
kde dcop tip
Hejsa
Hvis du er KDE bruger og er som mig har det muligvis foresvævet dig at
der er noget der hedder dcop, som kan bruges til forskellige ting. Igår
tog jeg mig endelig sammen til at lave noget nyttigt med det. Her er to
scripts, der sammen kan åbne konsole'er med forskelligt navngivne sessions
i.
Det er måske gammel hat for nogen, men så kan de jo bruge lejligheden til
at give flere fede eksempler på ting man kan lave i dcop...
script 1 er et bash shell script, der spawner en konsole og kalder et perl
script for at sætte de forskellige sessions. Det er selvklart lidt tumpet
men der er nogen ting jeg kan i perl, nogen ting i bash, og jeg gad ikke
lige gøre mig umage:
script 1: konsole-session
-----------------------------
#!/bin/bash
# Script to set up a konsole session.
# Checks for a parameter, than spawns a konsole, and pass the ps
# of the konsole to a perl script, together with the config name
if test "x$1" == "x" ; then
echo "Usage: $0 <configuration>"
exit -1
fi
konsole &
konsole-session.pl $! $1
-----------------------------
Script 2, konsole-session.pl
-----------------------------
#!/usr/bin/perl -w
# Script to manipulate a "clean" konsole to contain a number of sessions
# Place to locate the configs
$configs = "/home/madsdyd/Bin/System/";
$konsole = shift(@ARGV);
$configuration = shift(@ARGV);
if (!defined $configuration || "" eq $configuration) {
print STDERR "Usage $0 <konsole-id> <configuration>\n";
exit -1;
}
$inputfile = $configs.$configuration;
open(INPUT, "<$inputfile") || die "Unable to open $inputfile";
# Make sure that the shell is ready
sleep(3);
$count = 1;
while(<INPUT>) {
if (m/^\#/) {
next;
}
if (m/^\s*$/) {
next;
}
# Create session, expect for the first time
if (1 != $count) {
`dcop konsole-$konsole konsole newSession`;
}
# Rename session
$session = $_;
chomp($session);
`dcop konsole-$konsole session-$count renameSession "$session"`;
$count++;
}
# Make sure we are in the first window
`dcop konsole-$konsole konsole nextSession`;
-----------------------------
Og, en konfigurationsfil kan f.eks. se sådan ud:
sslugbog:
-----------------------------
all
signatur
applikationer
doc
-----------------------------
hvis ovenstående fil er gemt i /home/madsdyd/Bin/System/sslugbog og man
så kører "konsole-session sslugbog", så får man (sørme) en ny konsole med
4 sessions i der hedder det der står i filen.
Smart ikke?! (Nu er der sikkert nogen der kan noget der er vildt meget
smartere, men det ville jo bare være fedt!)
Mads
--
Mads Bondo Dydensborg. madsdyd@xxxxxxxxxxxx
What I have done is to show that it is possible for the way the universe
began to be determined by the laws of science. In that case, it would not be
necessary to appeal to God to decide on how the universe began. This doesn't
prove that there is no God, only that God is not necessary.
- Stephen W. Hawking (Der Spiegel, 1989)