Gerd Kohlberger wrote:

The IN_MODIFY bit isn't really useful for text files.

If you watch the event sequence which get emited by inotify you'll see something like:

1) MOVE compiz.conf -> compiz.conf~
2) MOVE compiz.conf~ -> compiz.conf
3) DELETE compiz.conf~

So if you watch compiz.conf directly and you open it in a text editor it gets moved. After that inotify seems to loose track of that file and the kernel will send an IN_IGNORED event, which automatically removes the watch. This is why modify only works the first time.

I think the best solution would be to watch only the ~/.compiz/options dir and put all files in this directory. You could changed the filenames to something like <plugin>-<screen>.conf to represent the different screens.

Thanks for the advice, I have changed it to do exactly that and it now
seems to be working perfectly for all editors that I have.

It seems that I still need IN_MODIFY because without it I was only
receiving notifications on the temp file.

I think all the major problems are solved now, its just a case of tidying
up here and there.  I will probably need to add proper file locking but
it shouldn't cause too many problems.  What happens when a file is
deleted will still need to be resolved (at the moment it just writes it back)

http://www.anykeysoftware.co.uk/compiz/plugins/ini.c

I have ifdef'd out the MODIFY bit so it will still compile without the
IN_MODIFY patch.

Regards
Mike

_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to