That sounds good. Or you can create a little daemon. Cyberfish came
up with this about 2 years ago. Call it monitor_wacom.c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <assert.h>
void log_msg(const char *msg) {
FILE *log_file = fopen(".monitor_wacom.log", "a");
if (log_file) {
time_t time_g;
time(&time_g);
char date_str[100];
strcpy(date_str, asctime(localtime(&time_g)));
date_str[strlen(date_str) - 1] = '\0'; /* get rid of the \n */
fprintf(log_file, "%s : %s\n", date_str, msg);
}
fclose(log_file);
}
void run_script(const char *filename) { /* only run xsetwacom lines */
FILE *script_file = fopen(filename, "r");
if (!script_file) {
log_msg("Failed to open script (double check your entry in
Startup
Applications). Terminating.");
exit(1);
}
char buf[1024];
char l_buf[1024];
int count = 0;
while ((fgets(buf, 1023, script_file))) {
if (strstr(buf, "xsetwacom")) {
int r = system(buf);
if (r != 0) {
sprintf(buf, "xsetwacom returned error on line
- %s", buf);
log_msg(l_buf);
}
++count;
}
}
sprintf(l_buf, "Script ran. %d matching lines executed.", count);
log_msg(l_buf);
}
int main(int argc, char **argv) {
char script_name[1024];
if (argc != 2) {
log_msg("Script not specified, using .xinitrc");
strcpy(script_name, ".xinitrc");
} else {
strcpy(script_name, argv[1]);
}
run_script(script_name);
FILE* in = popen("dbus-monitor --session
type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'",
"r");
if (!in) {
log_msg("Cannot spawn dbus-monitor process. Terminating.");
return 1;
}
while (1) {
char buf[1024];
assert(fgets(buf, 1023, in));
if (buf[0] == 's' /* early exit optimization */ && strstr(buf,
"ActiveChanged") != NULL) {
assert(fgets(buf, 1023, in));
if (strstr(buf, "false") != NULL) {
/* resumed */
log_msg("Exit from screensaver detected.
Running script.");
run_script(script_name);
} else {
/* put to sleep */
}
}
}
}
gcc -O2 monitor_wacom.c -o .monitor_wacom
And then in Startup Applications:
/home/yourusername/.monitor_wacom /home/yourusername/.xinitrc
Favux
On Tue, Jan 25, 2011 at 2:06 PM, Cedric Sodhi <[email protected]> wrote:
> Hello, this is the same for all devices, I think. At least it's the same
> for my Intuos4. But I think that's okay.
>
> It's not the responsibility of the driver to re-initialize the device
> with the old settings - the driver is simply the method to communicate
> with it, it shall not offer any "special service" such as remembering
> options. You should use a dedicated tool for that.
>
> There is a certain problem though, which, however, is not to blame on
> the wacom but rather on X11 polcies, that is, usually UDEV should handle
> hotplugging these days but udev (or anything started from it) will have
> problems with setting xinput props because it lacks the authz to do so.
>
> I suggest you set up a simple bash script which is started with xinit
> and will listen for the wacom being plugged or not. Most easily, you
> could do this by setting up an udev rules which provides a user-readable
> switch (such as a file /tmp/wacom_is_plugged) when the wacom is up and
> removes it if it isnt.
>
> The bash script can simply run in a loop (with sleep 1000 or so) and
> execute your wacom_set_props.sh script if udev communicates it that the
> device has been plugged.
>
> I've a similar setup (not for the wacom but for an external) monitor and
> it works flawlessly and, best of all, is very flexible.
>
> regards,
> Cedric
>
> On Tue, Jan 25, 2011 at 11:48:53AM -0800, Steven L. Seed wrote:
>> Has anyone noticed that when you hotplug a Cintiq that has been calibrated
>> with the wacomcpl, you lose the calibration (it resets) after you hotplug
>> the tablet? This is particularly problematic in our environment where the
>> tablets are attached via kvm switches to work with multiple systems. We
>> are on RHEL6 running Xorg 1.7.7-26 and the wacom driver version 0.10.5-8.
>>
>> --
>> [1][IMG]
>>
>> References
>>
>> Visible links
>
>
>
>> ------------------------------------------------------------------------------
>> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
>> Finally, a world-class log management solution at an even better price-free!
>> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
>> February 28th, so secure your free ArcSight Logger TODAY!
>> http://p.sf.net/sfu/arcsight-sfd2d
>
>> _______________________________________________
>> Linuxwacom-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>
>
> ------------------------------------------------------------------------------
> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
> Finally, a world-class log management solution at an even better price-free!
> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
> February 28th, so secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsight-sfd2d
> _______________________________________________
> Linuxwacom-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel