Man, this is tricky...
rename
/usr/sbin/wizardwizard
to
/usr/sbin/wizardwizard0
copy
/etc/ld.so.preload
to
/etc/ld.so.preload-MU
create a new script
/usr/sbin/wizardwizard
Code: Select all
#!/bin/sh
rm -f /etc/ld.so.preload
wizardwizard0 &
sleep 2
cp /etc/ld.so.preload-MU /etc/ld.so.preload
make it executable with this command:
chmod 755 /usr/sbin/wizardwizard
That's it.
Explanation:
xvnkb creates /etc/ld.so.preload.
It has this entry:
/lib/xvnkb.so.0.2.9-1
This means, BEFORE any application loads, this library is loaded.
This library manipulates the input-streams to grab the keystrokes, when you type characters on the keyboard.
The problem:
Gtkdialog uses streams itself, to pass shell-commands to Gtk (somehow, don't ask me Details
).
This gets broken, when another program like xvnkb.so.0.2.9-1 uses this, too.
I only found one solution:
instead of wizardwizard, you run my new script.
It deletes /etc/ld.so.preload, so that xvnkb.so.0.2.9-1 will not start, when we run the next command wizardwizard0 (what is Puppys wizard).
Then we wait 2 seconds, and restore /etc/ld.so.preload, so that all other programs will use it again.
Maybe there is a cleaner solution to prevent a program from using preload, but I don't know that
So see my description as a "workaround", not as a solution how things should be done, if you would write a book about it.
Mark