As I understand $HOME/.adesklets file is to administrate
the position of a desklet. Correct? Thus setting it under
the control of different user prevents original user from
modifying it. This sounds very reasonable
That's correct. A cleaner way would be to change the code in
a way that the configuration file would be elsewhere
(
$pkgdatadir/adesklets.cfg
for instance). But I believe this is enough for
experimenting.
Regarding modidying adesklets_menu_Fire(), do I need to
do/apply the patch before it's compiled and installed? I
have everything compiled and installed already so I need to
redo it, don't I?
Yes, you need to apply it before compilation. It is
alteration to the source of adesklets: the only way is will
be taken into account is if you generate a new adesklets
binary out of the modified code. :-)
Before I go ahead to do it, I just want to make sure that
applying the patch is like this supposedly I have
adesklets_nomenu.diff in the folder where adesklets.c
is
patch < adesklets_nomenu.diff adesklets.c
Yes, that's it. You go into the
src/ directory of the newly extracted
adesklets 0.4.10 source package, use patch as mentionned,
giving the proper path to the diff file (no need that the
diff file be in the same directory. The "<" operator is
redirecting from stdin). You could as well do:
cat /path/to/desklets_nomenu.diff | patch /path/to/adesklets-0.4.10/src/adesklets.c
Once I have done recompiling and reinstalling it, do I just
start the desklet normally by giving it a comand adesklets?
Once I disable the context menu of a desklet if I need to
move a desklet around desktop I have to modify manually the
aforementioned file $HOME/.adesklets, right?
Once again, all this is correct. Alternatively, you could
just keep the two binaries side by side, and use a wrapper
script like:
#! /bin/sh
# Sample wrapper for kiosk use. Rename as $PREFIX/bin/adesklets .
#
# 'guest' is the name of the public usage account.
#
# /usr/bin/adesklets.nomenu contains the modified binary
# /usr/bin/adesklets.menu contains the original binary
#
case "`whoami`" in
guest ) BIN=/usr/bin/adesklets.nomenu ;;
* ) BIN=/usr/bin/adesklets.menu ;;
esac
exec $BIN $*
This way, the guest account would use the "menuless" version,
and everybody else would still have access to the original
one.
By the way, thanks for all hard-work creating adesklets
program and knownledge/help answering all my concerns. Much
appreciated.
You are very welcomed. This is always rewarding to know
people are using your work. :-)