- use XmbSetWMProperties instead of XSetWMProperties.
- properly update WM_LOCALE.
+ - implement _NET_WM_PING protocol.
5.2 Sun Feb 20 01:48:59 CET 2005
- new option -pty-fd that makes the terminal a slave
(possibly in combination with other switches) is:
MWM-hints
+ EWMH-hints (pid, utf8 names) and protocols (ping)
seperate underline colour
settable border widths and borderless switch
settable extra linespacing
- extra window properties (e.g. UTF-8 window names and PID)
iso-14755-2 and -3, and visual feedback
backindex and forwardindex escape sequence
window op and locale change escape sequences
<dd>
<pre>
MWM-hints
+ EWMH-hints (pid, utf8 names) and protocols (ping)
seperate underline colour
settable border widths and borderless switch
settable extra linespacing
- extra window properties (e.g. UTF-8 window names and PID)
iso-14755-2 and -3, and visual feedback
backindex and forwardindex escape sequence
window op and locale change escape sequences
.\" ========================================================================
.\"
.IX Title "rxvt 7"
-.TH rxvt 7 "2005-02-18" "5.2" "RXVT-UNICODE"
+.TH rxvt 7 "2005-02-20" "5.2" "RXVT-UNICODE"
.SH "NAME"
RXVT REFERENCE \- FAQ, command sequences and other background information
.SH "SYNOPSIS"
.Sp
.Vb 12
\& MWM-hints
+\& EWMH-hints (pid, utf8 names) and protocols (ping)
\& seperate underline colour
\& settable border widths and borderless switch
\& settable extra linespacing
-\& extra window properties (e.g. UTF-8 window names and PID)
\& iso-14755-2 and -3, and visual feedback
\& backindex and forwardindex escape sequence
\& window op and locale change escape sequences
in combination with other switches) is:
MWM-hints
+ EWMH-hints (pid, utf8 names) and protocols (ping)
seperate underline colour
settable border widths and borderless switch
settable extra linespacing
- extra window properties (e.g. UTF-8 window names and PID)
iso-14755-2 and -3, and visual feedback
backindex and forwardindex escape sequence
window op and locale change escape sequences
(possibly in combination with other switches) is:
MWM-hints
+ EWMH-hints (pid, utf8 names) and protocols (ping)
seperate underline colour
settable border widths and borderless switch
settable extra linespacing
- extra window properties (e.g. UTF-8 window names and PID)
iso-14755-2 and -3, and visual feedback
backindex and forwardindex escape sequence
window op and locale change escape sequences
# this is the configure script I use. It represents most of the features I
# support and is a good baseline :)
+# just set some compiler options
+if [ "x$HOSTNAME" = xcerebro -o "x$HOSTNAME" = xfuji ]; then
+ CC=ccache\ gcc-3.4
+ CXX=ccache\ g++-3.4
+ export CC CXX
+fi
+
./configure --prefix=/opt/rxvt --enable-utmp \
--enable-wtmp --enable-lastlog --disable-strings --enable-xim \
--disable-keepscrolling --enable-xft --enable-mousewheel \
case ClientMessage:
if (ev.xclient.format == 32
- && ev.xclient.message_type == xa[XA_WM_PROTOCOLS]
- && ev.xclient.data.l[0] == xa[XA_WM_DELETE_WINDOW])
- destroy ();
+ && ev.xclient.message_type == xa[XA_WM_PROTOCOLS])
+ {
+ if (ev.xclient.data.l[0] == xa[XA_WM_DELETE_WINDOW])
+ destroy ();
+#if ENABLE_EWMH
+ else if (ev.xclient.data.l[0] == xa[XA_NET_WM_PING])
+ XSendEvent (disp, ev.xclient.window = display->root,
+ False, SubstructureRedirectMask | SubstructureNotifyMask,
+ &ev);
+#endif
+ }
#if ENABLE_XEMBED
- else if (ev.xclient.format == 32
- && ev.xclient.message_type == xa[XA_XEMBED])
+ else if (ev.xclient.format == 32 && ev.xclient.message_type == xa[XA_XEMBED])
{
if (ev.xclient.data.l[1] == XEMBED_FOCUS_IN)
focus_in ();
"WM_DELETE_WINDOW",
"CLIPBOARD",
#if ENABLE_FRILLS
- "_NET_WM_PID",
"_MOTIF_WM_HINTS",
+#endif
+#if ENABLE_EWMH
+ "_NET_WM_PID",
"_NET_WM_NAME",
"_NET_WM_ICON_NAME",
+ "_NET_WM_PING",
#endif
#if USE_XIM
"WM_LOCALE_NAME",
}
}
else
- {
- mwmhints.flags = 0;
- }
+ mwmhints.flags = 0;
#endif
/* grab colors before netscape does */
XmbSetWMProperties (disp, top, NULL, NULL, (char **)argv, argc,
&szHint, &wmHint, &classHint);
- /* Enable delete window protocol */
- XSetWMProtocols (disp, top, &xa[XA_WM_DELETE_WINDOW], 1);
+ Atom protocols[] = {
+ xa[XA_WM_DELETE_WINDOW],
+#if ENABLE_EWMH
+ xa[XA_NET_WM_PING],
+#endif
+ };
-#if ENABLE_FRILLS
+ XSetWMProtocols (disp, top, protocols, sizeof (protocols) / sizeof (protocols[0]));
+
+#if ENABLE_EWMH
long pid = getpid ();
XChangeProperty (disp, top,
xa[XA_NET_WM_PID], XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)&pid, 1);
+
+ // _NET_WM_WINDOW_TYPE is NORMAL, which is the default
#endif
XSelectInput (disp, top,
rxvt_term::set_title (const char *str)
{
set_string_property (XA_WM_NAME, str);
-#if ENABLE_FRILLS
+#if ENABLE_EWMH
set_utf8_property (xa[XA_NET_WM_NAME], str);
#endif
}
rxvt_term::set_icon_name (const char *str)
{
set_string_property (XA_WM_ICON_NAME, str);
-#if ENABLE_FRILLS
+#if ENABLE_EWMH
set_utf8_property (xa[XA_NET_WM_ICON_NAME], str);
#endif
}
#if ENABLE_FRILLS
# define ENABLE_XEMBED 1
+# define ENABLE_EWMH 1
#endif
+
/*
*****************************************************************************
* SYSTEM HACKS
XA_WM_DELETE_WINDOW,
XA_CLIPBOARD,
#if ENABLE_FRILLS
- XA_NET_WM_PID,
XA_MOTIF_WM_HINTS,
+#endif
+#if ENABLE_EWMH
+ XA_NET_WM_PID,
XA_NET_WM_NAME,
XA_NET_WM_ICON_NAME,
+ XA_NET_WM_PING,
#endif
#if USE_XIM
XA_WM_LOCALE_NAME,