monopolising the whole process by outputting a lot of text.
- try to work around linux first breaking sched_yield and now breaking
the only known workaround.
+ - new option -icon, resource iconFile (based on patch by Frank Schmitt).
9.05 Sun Jun 15 20:09:20 CEST 2008
- new option --cd/chdir to set the starting working directory.
on some backgrounds. Maximum radius value is 128. Compile I<afterimage>;
resource I<blurRadius>.
+=item B<-icon> I<file>
+
+Compile I<afterimage>: Use the specified image as application icon. This
+is used by many window managers, taskbars and pagers to represent the
+appliation window; resource I<iconFile>.
+
=item B<-bg> I<colour>
Window background colour; resource B<background>.
=item B<blurRadius:> I<number>
-Apply Gaussian Blurr with the specified radius to the transparent
+Apply gaussian blur with the specified radius to the transparent
background image; option B<-blr>.
+=item B<iconFile:> I<file>
+
+Set the application icon pixmap; option B<-icon>.
+
=item B<scrollColor:> I<colour>
Use the specified colour for the scrollbar [default #B2B2B2].
XmbSetWMProperties (dpy, top, NULL, NULL, (char **)argv, argc,
&szHint, &wmHint, &classHint);
+#if ENABLE_EWMH
+# ifdef HAVE_AFTERIMAGE
+ /*
+ * set up icon hint
+ * rs [Rs_iconfile] is path to icon, asv has been created in init_resources
+ */
+ if (rs [Rs_iconfile] && asv)
+ {
+ ASImage *im = file2ASImage (rs [Rs_iconfile], 0xFFFFFFFF, SCREEN_GAMMA, 0, NULL);
+ if (im)
+ {
+ int w = im->width;
+ int h = im->height;
+ long* buffer = (long *)malloc ((2 + w * h) * sizeof (long));
+ ASImage *result = scale_asimage (asv, im,
+ w, h, ASA_ARGB32,
+ 100, ASIMAGE_QUALITY_DEFAULT);
+ destroy_asimage (&im);
+
+ if (buffer && result)
+ {
+ ARGB32 *asbuf = result->alt.argb32;
+ buffer [0] = w;
+ buffer [1] = h;
+
+ for (unsigned int i = 0; i < w * h; ++i)
+ buffer [i + 2] = asbuf [i];
+
+ destroy_asimage (&result);
+ XChangeProperty (dpy, top, xa[XA_NET_WM_ICON], XA_CARDINAL, 32,
+ PropModeReplace, (const unsigned char*) buffer, 2 + w * h);
+ free (buffer);
+ }
+ else
+ {
+ if (!buffer)
+ rxvt_warn ("Memory allocation for icon hint failed, continuing without.\n");
+
+ if (!result)
+ rxvt_warn ("Icon image transformation to ARGB failed, continuing without.\n");
+ }
+ }
+ else
+ rxvt_warn ("Loading image icon failed, continuing without.\n");
+ }
+# endif
+#endif
#if ENABLE_FRILLS
if (mwmhints.flags)
#ifdef HAVE_AFTERIMAGE
def (blendtype)
def (blurradius)
+ def (iconfile)
#endif
"_NET_WM_NAME",
"_NET_WM_ICON_NAME",
"_NET_WM_PING",
+ "_NET_WM_ICON",
#endif
#if USE_XIM
"WM_LOCALE_NAME",
XA_NET_WM_NAME,
XA_NET_WM_ICON_NAME,
XA_NET_WM_PING,
+ XA_NET_WM_ICON,
#endif
#if USE_XIM
XA_WM_LOCALE_NAME,
#endif
#ifdef HAVE_AFTERIMAGE
STRG (Rs_blendtype, "blendType", "blt", "string", "background image blending type - alpha, tint, etc..."),
- STRG (Rs_blurradius, "blurRadius", "blr", "HxV", "Gaussian Blur radii to apply to the root background"),
+ STRG (Rs_blurradius, "blurRadius", "blr", "HxV", "gaussian blur radii to apply to the root background"),
+# if ENABLE_EWMH
+ STRG (Rs_iconfile, "iconFile", "icon", "file", "path to aplication icon image"),
+# endif
#endif
INFO ("e", "command arg ...", "command to execute")
};