Compare commits

...
Sign in to create a new pull request.

36 commits

Author SHA1 Message Date
Fedora Release Engineering
567ba344cd Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:53:32 +00:00
Fedora Release Engineering
e7ddb586a0 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 20:19:44 +00:00
Fedora Release Engineering
a3bb65153c Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:30:24 +00:00
Fedora Release Engineering
b0f3cb0238 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 15:11:28 +00:00
Miroslav Suchý
3a0853d914 convert license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-09-04 22:48:03 +02:00
Fedora Release Engineering
a3655e6821 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 09:29:16 +00:00
Software Management Team
4b7f42eb2a Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:46:49 +02:00
Fedora Release Engineering
8632487e9a Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-29 11:17:13 +00:00
Fedora Release Engineering
24b0e38824 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 09:01:58 +00:00
Fedora Release Engineering
9ab0dbb3f0 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 18:19:22 +00:00
Fedora Release Engineering
4b9550edc7 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 06:56:31 +00:00
Fedora Release Engineering
544b6a7850 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 12:34:24 +00:00
Fedora Release Engineering
86544937b5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 04:37:04 +00:00
Fedora Release Engineering
9c937f1fed - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 21:05:08 +00:00
Fedora Release Engineering
dca45af2e3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 23:37:16 +00:00
Tom Stellard
f9f3d0a2b4 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 01:00:08 +00:00
Fedora Release Engineering
e241f8abb5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 14:16:23 +00:00
Fedora Release Engineering
c9e9b985ab - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 03:52:22 +00:00
Fedora Release Engineering
e1c741ac6d - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 03:38:37 +00:00
Fedora Release Engineering
245bdcd69d - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 11:52:09 +00:00
bca577030c Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:55 +01:00
Gabriel L. Somlo
efdd9c8eef Add "BuildRequires: gcc-c++" (#1606700) 2018-07-23 12:11:59 -04:00
Fedora Release Engineering
1ebf3da655 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 08:57:05 +00:00
Jason Tibbitts
54321bb12c Remove needless use of %defattr 2018-07-10 01:39:16 -05:00
274e28e1b1
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 09:14:09 +01:00
9711bb8717 Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 00:49:03 +01:00
Fedora Release Engineering
63de701a40 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 21:05:26 +00:00
Fedora Release Engineering
110b11f6fe - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 10:21:52 +00:00
Fedora Release Engineering
4e852c332a - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 21:42:58 +00:00
Fedora Release Engineering
892e4fc130 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 17:29:24 +00:00
Fedora Release Engineering
c894e3fb35 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-05 03:06:48 +00:00
Dennis Gilmore
75b1d87f1c - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-19 02:31:34 +00:00
Kalev Lember
e74ceb72ec Rebuilt for GCC 5 C++11 ABI change 2015-05-02 18:36:31 +02:00
Gabriel L. Somlo
2ff6abbebd update to version 8 2014-11-20 11:40:38 -05:00
9769845764 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-18 08:51:05 +00:00
Dennis Gilmore
94b368b4ac - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 23:45:28 -05:00
5 changed files with 110 additions and 638 deletions

2
.gitignore vendored
View file

@ -3,3 +3,5 @@ wmx-7.tar.gz
/wmx-7.tar.gz
/wmx-defaults-1.tar.gz
/wmx-defaults-2.tar.gz
/wmx-8.tar.gz
/wmx-defaults-3.tar.gz

View file

@ -1,2 +1,2 @@
e8eda438f5dda09d11ba7de1dcf9e501 wmx-7.tar.gz
70892929426891facc252520784d9840 wmx-defaults-2.tar.gz
52a0e31b9a77e227eb6dc732f7941f15 wmx-8.tar.gz
d5d5e760039fce77133abff54ce97cc1 wmx-defaults-3.tar.gz

View file

@ -1,612 +0,0 @@
diff -NarU5 wmx-7/Channel.C SVN/wm2-2012-01-09/trunk/wmx/Channel.C
--- wmx-7/Channel.C 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Channel.C 2012-01-09 11:05:39.676384280 -0500
@@ -16,96 +16,102 @@
{ " ### ", "# #", "# #", " ### ", "# #", "# #", " ### " },
{ " ### ", "# #", "# #", " ####", " #", " # ", " ## " }
};
-void WindowManager::flipChannel(Boolean statusOnly, Boolean flipDown,
- Boolean quickFlip, Client *push)
+Window WindowManager::createNumberWindow(int screen, const char *colour)
{
- int x, y, i, sc;
- if (!CONFIG_CHANNEL_SURF) return;
-
- for (sc = 0; sc < screensTotal(); sc++)
- {
- if (!m_channelWindow[sc]) {
-
- XColor nearest, ideal;
-
- if (!XAllocNamedColor(display(), DefaultColormap(display(), sc),
- CONFIG_CHANNEL_NUMBER, &nearest, &ideal)) {
+ XColor nearest, ideal;
+
+ if (!XAllocNamedColor(display(), DefaultColormap(display(), screen),
+ colour, &nearest, &ideal)) {
- if (!XAllocNamedColor(display(), DefaultColormap(display(), sc),
- "black", &nearest, &ideal)) {
+ if (!XAllocNamedColor(display(), DefaultColormap(display(), screen),
+ "black", &nearest, &ideal)) {
- fatal("Couldn't allocate green or black");
- }
- }
-
- XSetWindowAttributes wa;
- wa.background_pixel = nearest.pixel;
- wa.override_redirect = True;
-
- m_channelWindow[sc] = XCreateWindow
- (display(), mroot(sc),
- 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent,
- CopyFromParent, CWOverrideRedirect | CWBackPixel, &wa);
- }
+ fatal("Couldn't allocate requested numeral colour or black");
+ }
}
+
+ XSetWindowAttributes wa;
+ wa.background_pixel = nearest.pixel;
+ wa.override_redirect = True;
+
+ Window w = XCreateWindow
+ (display(), mroot(screen),
+ 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent,
+ CopyFromParent, CWOverrideRedirect | CWBackPixel, &wa);
- int nextChannel;
+ return w;
+}
- if (statusOnly) nextChannel = m_currentChannel;
- else {
- if (!flipDown) {
- nextChannel = m_currentChannel + 1;
- if (nextChannel > m_channels) nextChannel = 1;
- } else {
- nextChannel = m_currentChannel - 1;
- if (nextChannel < 1) nextChannel = m_channels;
- }
- }
+int WindowManager::shapeNumberWindow(Window w, int n, int minDigits)
+{
+ int i, x, y;
XRectangle r;
Boolean first = True;
char number[7];
- sprintf(number, "%d", nextChannel);
+ sprintf(number, "%0*d", minDigits, n);
for (i = 0; i < (int)strlen(number); ++i) {
for (y = 0; y < 7; ++y) {
for (x = 0; x < 5; ++x) {
if (numerals[number[i]-'0'][y][x] != ' ') {
-/*
- r.x = i * 110 + x * 20; r.y = y * 20;
- r.width = r.height = 20;
- */
+
r.x = 10 + (i * 6 + x) * CONFIG_CHANNEL_NUMBER_SIZE;
r.y = y * CONFIG_CHANNEL_NUMBER_SIZE;
r.width = r.height = CONFIG_CHANNEL_NUMBER_SIZE;
- for(sc = 0; sc < screensTotal(); sc++)
- {
+
XShapeCombineRectangles
- (display(), m_channelWindow[sc], ShapeBounding,
+ (display(), w, ShapeBounding,
0, 0, &r, 1, first ? ShapeSet : ShapeUnion,
YXBanded);
- }
+
first = False;
}
}
}
}
- for(sc = 0; sc < screensTotal(); sc++) {
-/*
- XMoveResizeWindow(display(), m_channelWindow[sc],
- DisplayWidth(display(), sc) - 30 -
- 110 * strlen(number), 30, 500, 160);
- */
+ return (5 * CONFIG_CHANNEL_NUMBER_SIZE + 10) * strlen(number);
+}
+
+
+void WindowManager::flipChannel(Boolean statusOnly, Boolean flipDown,
+ Boolean quickFlip, Client *push)
+{
+ int wid, i, sc;
+ if (!CONFIG_CHANNEL_SURF) return;
+
+ for (sc = 0; sc < screensTotal(); sc++) {
+ if (!m_channelWindow[sc]) {
+ m_channelWindow[sc] = createNumberWindow(sc, CONFIG_CHANNEL_NUMBER);
+ }
+ }
+
+ int nextChannel;
+
+ if (statusOnly) nextChannel = m_currentChannel;
+ else {
+ if (!flipDown) {
+ nextChannel = m_currentChannel + 1;
+ if (nextChannel > m_channels) nextChannel = 1;
+ } else {
+ nextChannel = m_currentChannel - 1;
+ if (nextChannel < 1) nextChannel = m_channels;
+ }
+ }
+
+ for (sc = 0; sc < screensTotal(); sc++) {
+
+ wid = shapeNumberWindow(m_channelWindow[sc], nextChannel, 1);
XMoveResizeWindow(display(), m_channelWindow[sc],
- DisplayWidth(display(), sc) - 30 -
- (5 * CONFIG_CHANNEL_NUMBER_SIZE + 10) *
- strlen(number), 30, 500, 160);
+ DisplayWidth(display(), sc) - 30 - wid,
+ 30, 500, 160);
+
XMapRaised(display(), m_channelWindow[sc]);
}
if (!statusOnly) {
@@ -228,5 +234,38 @@
if (m_channels <= channel) {
m_channels = channel + 1;
netwmUpdateChannelList();
}
}
+
+void
+WindowManager::updateClock()
+{
+ time_t t;
+ struct tm *lt;
+
+ fprintf(stderr, "updateClock\n");
+
+ time(&t);
+ lt = localtime(&t);
+
+ if (!m_clockWindow[0]) {
+ m_clockWindow[0] = createNumberWindow(0, CONFIG_CLOCK_NUMBER);
+ m_clockWindow[1] = createNumberWindow(0, CONFIG_CLOCK_NUMBER);
+ }
+
+ shapeNumberWindow(m_clockWindow[0], lt->tm_hour, 2);
+ shapeNumberWindow(m_clockWindow[1], lt->tm_min, 2);
+
+ XMoveResizeWindow(display(), m_clockWindow[0],
+ 30, 30, 500, 160);
+
+ XMoveResizeWindow(display(), m_clockWindow[1],
+ 30, 9 * CONFIG_CHANNEL_NUMBER_SIZE + 30, 500, 160);
+
+ XMapWindow(display(), m_clockWindow[0]);
+ XLowerWindow(display(), m_clockWindow[0]);
+
+ XMapWindow(display(), m_clockWindow[1]);
+ XLowerWindow(display(), m_clockWindow[1]);
+}
+
diff -NarU5 wmx-7/Config.h SVN/wm2-2012-01-09/trunk/wmx/Config.h
--- wmx-7/Config.h 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Config.h 2012-01-09 11:05:39.679384449 -0500
@@ -77,12 +77,11 @@
// Spawn a temporary new shell between the wm and each new process?
#define CONFIG_EXEC_USING_SHELL False
// What to run to get a new window (from the "New" menu option)
#define CONFIG_NEW_WINDOW_LABEL "New"
-#define CONFIG_NEW_WINDOW_COMMAND "xterm"
-//#define CONFIG_NEW_WINDOW_COMMAND "/home/ccannam/.wmx/terminal"
+#define CONFIG_NEW_WINDOW_COMMAND "x-terminal-emulator"
#define CONFIG_NEW_WINDOW_COMMAND_OPTIONS 0
// or, for example,
//#define CONFIG_NEW_WINDOW_COMMAND_OPTIONS "-ls","-sb","-sl","1024",0
// alternatively,
#define CONFIG_DISABLE_NEW_WINDOW_COMMAND (DynamicConfig::config.disableNew())
@@ -146,10 +145,18 @@
// if False, behaviour will be as in wm2 (stretching the background
// image only).
#define CONFIG_RESIZE_UPDATE True
+// If USE_COMPOSITE is true, wmx will enable composite redirects for
+// all windows if the Composite extension is present. This should
+// make no difference at all to the appearance or behaviour of wmx,
+// but it may make it substantially faster with modern video cards
+// that optimise rendering more than old-fashioned window operations.
+
+#define CONFIG_USE_COMPOSITE True
+
// If RAISELOWER_ON_CLICK is True, clicking on the title of the
// topmost window will lower instead of raising it (patch due to
// Kazushi (Jam) Marukawa)
#define CONFIG_RAISELOWER_ON_CLICK False
@@ -253,14 +260,12 @@
// at all, define it to CONFIG_NO_BUTTON.
#define CONFIG_NO_BUTTON 999
#define CONFIG_CLIENTMENU_BUTTON Button1
#define CONFIG_COMMANDMENU_BUTTON Button2
#define CONFIG_CIRCULATE_BUTTON Button3 // switch window, when over frame
-#define CONFIG_PREVCHANNEL_BUTTON CONFIG_NO_BUTTON // flip channel, when over frame
-#define CONFIG_NEXTCHANNEL_BUTTON CONFIG_NO_BUTTON
-//#define CONFIG_PREVCHANNEL_BUTTON CONFIG_NO_BUTTON
-//#define CONFIG_NEXTCHANNEL_BUTTON CONFIG_NO_BUTTON
+#define CONFIG_PREVCHANNEL_BUTTON Button5 // flip channel, when over frame
+#define CONFIG_NEXTCHANNEL_BUTTON Button4 // flip channel, when over frame
// ==============================
// Section III. Colours and fonts
// ==============================
@@ -321,10 +326,11 @@
#define CONFIG_TAB_BACKGROUND (DynamicConfig::config.tabBackground())
#define CONFIG_FRAME_BACKGROUND (DynamicConfig::config.frameBackground())
#define CONFIG_BUTTON_BACKGROUND (DynamicConfig::config.frameBackground())
#define CONFIG_BORDERS "black"
#define CONFIG_CHANNEL_NUMBER "green"
+#define CONFIG_CLOCK_NUMBER "gray90"
#define CONFIG_MENU_FOREGROUND (DynamicConfig::config.tabForeground())
#define CONFIG_MENU_BACKGROUND (DynamicConfig::config.tabBackground())
#define CONFIG_MENU_BORDERS "black"
@@ -361,14 +367,14 @@
#define CONFIG_USE_CHANNEL_MENU False
// FLIP_DELAY is the length of time the big green number stays in the
// top-right when flipping channels, before the windows reappear.
// QUICK_FLIP_DELAY is the equivalent figure used when flipping with
-// the Alt-Fn keys. Milliseconds.
+// the Alt-Fn keys or mouse wheel. Milliseconds.
#define CONFIG_FLIP_DELAY 1000
-#define CONFIG_QUICK_FLIP_DELAY 200
+#define CONFIG_QUICK_FLIP_DELAY 500
// Set MAD_FEEDBACK for skeletal representations of windows when
// flicking through the client menu and changing channels. The DELAY
// is how long skeletal feedback has to persist before wmx decides to
// post the entire window contents instead; if it's negative, the
@@ -377,30 +383,36 @@
// delay of 0ms.
#define CONFIG_MAD_FEEDBACK (DynamicConfig::config.useFeedback())
#define CONFIG_FEEDBACK_DELAY (DynamicConfig::config.feedbackDelay())
-// Groups are fun. you can bind a bunch of windows to a number key
-// and when you press CONFIG_ALT_KEY_MASK and the number key
-// all the windows of that group are raised.
-
// Position of the geometry window:
// X < 0 left, X > 0 right, X = 0 center
// Y < 0 top, Y > 0 bottom, Y = 0 center
#define CONFIG_GEOMETRY_X_POS 0
#define CONFIG_GEOMETRY_Y_POS 0
+// Groups are fun. you can bind a bunch of windows to a number key
+// and when you press CONFIG_ALT_KEY_MASK and the number key
+// all the windows of that group are raised.
+
// You bind a window to a group by pressing the
// CONFIG_ALT_KEY_MASK + CONFIG_GROUP_ADD + a number key
// if you press CONFIG_ALT_KEY_MASK + CONFIG_GROUP_REMOVE_ALL
// + a number key that group is cleared of all windows.
#define CONFIG_GROUPS True
#define CONFIG_GROUP_ADD ControlMask
#define CONFIG_GROUP_REMOVE_ALL ShiftMask
+// Set CLOCK if you want wmx to display a clock permanently in the
+// background at top-left of screen 0. Use CONFIG_CLOCK_NUMBER
+// to control the colour of the clock digits.
+
+#define CONFIG_CLOCK False
+
// This lets you choose whether to keep the regular wmx
// mouse button behaviour, or go w/ the GNOME-described one.
// If this is True, the left mouse button (button1) lets you
// select 1 or more gmc 'icons' and drag them around etc,
// the right mouse button (button3) pops up the GNOME
diff -NarU5 wmx-7/configure SVN/wm2-2012-01-09/trunk/wmx/configure
--- wmx-7/configure 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/configure 2012-01-09 11:05:39.668383824 -0500
@@ -3018,10 +3018,87 @@
fi
+{ echo "$as_me:$LINENO: checking for XCompositeQueryExtension in -lXcomposite" >&5
+echo $ECHO_N "checking for XCompositeQueryExtension in -lXcomposite... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xcomposite_XCompositeQueryExtension+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXcomposite $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XCompositeQueryExtension ();
+int
+main ()
+{
+return XCompositeQueryExtension ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ ac_cv_lib_Xcomposite_XCompositeQueryExtension=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_Xcomposite_XCompositeQueryExtension=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xcomposite_XCompositeQueryExtension" >&5
+echo "${ECHO_T}$ac_cv_lib_Xcomposite_XCompositeQueryExtension" >&6; }
+if test $ac_cv_lib_Xcomposite_XCompositeQueryExtension = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXCOMPOSITE 1
+_ACEOF
+
+ LIBS="-lXcomposite $LIBS"
+
+else
+
+ echo "Warning: Xcomposite library not found"
+ echo "Please either install the Xcomposite library and headers, or ensure you have CONFIG_USE_COMPOSITE set to False in Config.h"
+
+fi
+
+
+
{ echo "$as_me:$LINENO: checking for SmcOpenConnection in -lSM" >&5
echo $ECHO_N "checking for SmcOpenConnection in -lSM... $ECHO_C" >&6; }
if test "${ac_cv_lib_SM_SmcOpenConnection+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
diff -NarU5 wmx-7/configure.in SVN/wm2-2012-01-09/trunk/wmx/configure.in
--- wmx-7/configure.in 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/configure.in 2012-01-09 11:05:39.674384166 -0500
@@ -37,10 +37,16 @@
AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [], [
echo "Warning: Xpm library not found"
echo "Please either install the Xpm library and headers, or ensure you have CONFIG_USE_PIXMAPS set to False in Config.h"
])
+dnl Composite is necessary if CONFIG_USE_COMPOSITE
+AC_CHECK_LIB(Xcomposite, XCompositeQueryExtension, [], [
+ echo "Warning: Xcomposite library not found"
+ echo "Please either install the Xcomposite library and headers, or ensure you have CONFIG_USE_COMPOSITE set to False in Config.h"
+ ])
+
dnl SM and ICE are necessary if CONFIG_USE_SESSION_MANAGER
AC_CHECK_LIB(SM, SmcOpenConnection)
AC_CHECK_LIB(ICE, IceConnectionNumber)
dnl Freetype: actually only needed if CONFIG_USE_XFT
diff -NarU5 wmx-7/Events.C SVN/wm2-2012-01-09/trunk/wmx/Events.C
--- wmx-7/Events.C 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Events.C 2012-01-09 11:05:39.672384052 -0500
@@ -142,15 +142,23 @@
if (!m_signalled) {
waiting:
- if (m_channelChangeTime > 0) {
+ if (m_channelChangeTime > 0 || CONFIG_CLOCK) {
+
Time t = timestamp(True);
- if (t >= m_channelChangeTime) {
+
+ if (m_channelChangeTime > 0 && t >= m_channelChangeTime) {
instateChannel();
}
+
+ if (CONFIG_CLOCK && (m_clockUpdateTime == CurrentTime ||
+ t >= m_clockUpdateTime + 60000)) {
+ m_clockUpdateTime = t;
+ updateClock();
+ }
}
if (QLength(m_display) > 0) {
XNextEvent(m_display, e);
return;
diff -NarU5 wmx-7/Makefile.in SVN/wm2-2012-01-09/trunk/wmx/Makefile.in
--- wmx-7/Makefile.in 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Makefile.in 2012-01-09 11:05:39.670383938 -0500
@@ -43,10 +43,15 @@
cp wmx @bindir@/wmx
-chmod 0755 @bindir@/wmx
-chown root:wheel @bindir@/wmx
-rm -f @bindir@/wmx.old
+install-rpm:
+ mkdir -p $(DESTDIR)/usr/bin/
+ cp wmx $(DESTDIR)/usr/bin/wmx
+
+
# DO NOT DELETE -- make depend depends on it
Border.o: Border.C Border.h General.h Config.h Rotated.h Client.h \
Manager.h listmacro.h background.xpm
Buttons.o: Buttons.C Manager.h General.h Config.h listmacro.h Client.h \
Border.h Rotated.h Menu.h
diff -NarU5 wmx-7/Manager.C SVN/wm2-2012-01-09/trunk/wmx/Manager.C
--- wmx-7/Manager.C 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Manager.C 2012-01-09 11:05:39.678384393 -0500
@@ -13,10 +13,14 @@
#include <sys/wait.h>
#include "Cursors.h"
#include <X11/cursorfont.h>
+#ifdef CONFIG_USE_COMPOSITE
+#include <X11/extensions/Xcomposite.h>
+#endif
+
Atom Atoms::wm_state;
Atom Atoms::wm_changeState;
Atom Atoms::wm_protocols;
Atom Atoms::wm_delete;
Atom Atoms::wm_takeFocus;
@@ -285,10 +289,12 @@
m_channels = 2;
m_currentChannel = 1;
m_channelChangeTime = 0;
m_channelWindow = 0;
+ m_clockWindow = 0;
+ m_clockUpdateTime = CurrentTime;
Atoms::wm_state = XInternAtom(m_display, "WM_STATE", False);
Atoms::wm_changeState= XInternAtom(m_display, "WM_CHANGE_STATE", False);
Atoms::wm_protocols = XInternAtom(m_display, "WM_PROTOCOLS", False);
Atoms::wm_delete = XInternAtom(m_display, "WM_DELETE_WINDOW", False);
@@ -338,11 +344,22 @@
initialiseScreen();
if (m_screensTotal > 1) {
fprintf(stderr, "\n Detected %d screens.", m_screensTotal);
}
-
+
+#ifdef CONFIG_USE_COMPOSITE
+ int ev, er;
+ if (XCompositeQueryExtension(m_display, &ev, &er)) {
+ fprintf(stderr, "\n Enabling composite extension.\n");
+ for (int i = 0; i < m_screensTotal; ++i) {
+ XCompositeRedirectSubwindows(m_display, RootWindow(m_display, i),
+ CompositeRedirectAutomatic);
+ }
+ }
+#endif
+
XSetSelectionOwner(m_display, Atoms::wmx_running,
None, timestamp(True)); // used to have m_menuWindow
XSync(m_display, False);
m_initialising = False;
m_returnCode = 0;
@@ -517,11 +534,12 @@
m_root = (Window *) malloc(m_screensTotal * sizeof(Window));
m_defaultColormap = (Colormap *) malloc(m_screensTotal * sizeof(Colormap));
// m_minimumColormaps = (int *) malloc(m_screensTotal * sizeof(int));
m_channelWindow = (Window *) malloc(m_screensTotal * sizeof(Window));
-
+ m_clockWindow = (Window *) malloc(2 * sizeof(Window));
+
for (i = 0 ; i < m_screensTotal ; i++) {
m_screenNumber = i;
m_channelWindow[i] = 0;
@@ -570,10 +588,14 @@
XChangeWindowAttributes(m_display, m_root[i], CWCursor | CWEventMask, &attr);
XSync(m_display, False);
}
+ for (i = 0; i < 2; ++i) {
+ m_clockWindow[i] = 0;
+ }
+
m_screenNumber = 0;
}
unsigned long WindowManager::allocateColour(int screen, const char *name,
diff -NarU5 wmx-7/Manager.h SVN/wm2-2012-01-09/trunk/wmx/Manager.h
--- wmx-7/Manager.h 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Manager.h 2012-01-09 11:05:39.682384620 -0500
@@ -150,16 +150,22 @@
int m_channels;
int m_currentChannel; // from 1 to ...
void flipChannel(Boolean statusOnly, Boolean flipDown,
Boolean quickFlip, Client *push); // bleah!
+ Window createNumberWindow(int screen, const char *colour);
+ int shapeNumberWindow(Window w, int number, int minDigits); // returns width in pixels
void instateChannel();
void createNewChannel();
void checkChannel(int);
Time m_channelChangeTime;
Window *m_channelWindow;
+ void updateClock();
+ Window *m_clockWindow;
+ Time m_clockUpdateTime;
+
Boolean m_looping;
int m_returnCode;
static Boolean m_initialising;
static int errorHandler(Display *, XErrorEvent *);
diff -NarU5 wmx-7/Menu.C SVN/wm2-2012-01-09/trunk/wmx/Menu.C
--- wmx-7/Menu.C 2009-01-09 06:18:03.000000000 -0500
+++ SVN/wm2-2012-01-09/trunk/wmx/Menu.C 2012-01-09 11:05:39.673384109 -0500
@@ -54,10 +54,14 @@
tokstr = 0;
FcPattern *pattern = FcPatternCreate();
FcPatternAddString(pattern, FC_FAMILY, (FcChar8 *)fi);
FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
+
+#ifndef FC_WEIGHT_REGULAR
+#define FC_WEIGHT_REGULAR FC_WEIGHT_MEDIUM
+#endif
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_REGULAR);
FcPatternAddInteger(pattern, FC_PIXEL_SIZE, CONFIG_MENU_FONT_SIZE);
FcConfigSubstitute(FcConfigGetCurrent(), pattern, FcMatchPattern);
FcResult result = FcResultMatch;

View file

@ -1,6 +1,6 @@
diff -NarU5 wmx-7.orig/Config.h wmx-7/Config.h
--- wmx-7.orig/Config.h 2012-01-09 16:07:03.610039637 -0500
+++ wmx-7/Config.h 2012-01-09 16:07:46.408474496 -0500
diff -NarU5 wmx-8.orig/Config.h wmx-8/Config.h
--- wmx-8.orig/Config.h 2014-11-16 14:34:19.000000000 -0500
+++ wmx-8/Config.h 2014-11-20 09:41:54.238623357 -0500
@@ -77,11 +77,11 @@
// Spawn a temporary new shell between the wm and each new process?
#define CONFIG_EXEC_USING_SHELL False

124
wmx.spec
View file

@ -1,23 +1,20 @@
%define checkout 20120109svn
Name: wmx
Version: 7
Release: 12.%{checkout}%{?dist}
Version: 8
Release: 28%{?dist}
Summary: A really simple window manager for X
License: BSD
Group: User Interface/X
# Automatically converted from old format: BSD - review is highly recommended.
License: LicenseRef-Callaway-BSD
URL: http://www.all-day-breakfast.com/wmx/
Source0: http://www.all-day-breakfast.com/wmx/%{name}-%{version}.tar.gz
Source1: wmx-defaults-2.tar.gz
Source1: wmx-defaults-3.tar.gz
Source2: background.xpm
Source3: wmx.desktop
Source4: Xclients.wmx.sh
Patch0: wmx-7-20120109svn.patch
Patch1: wmx-7-cfg.patch
Patch0: wmx-8-cfg.patch
#wmx's 'New' button is hardcoded to start an xterm, better make sure we have it:
Requires: xterm
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: xorg-x11-proto-devel libX11-devel libXpm-devel libXext-devel libXaw-devel libXt-devel libXcomposite-devel freetype-devel libXft-devel
BuildRequires: make
BuildRequires: gcc-c++ xorg-x11-proto-devel libX11-devel libXpm-devel libXext-devel libXaw-devel libXt-devel libXcomposite-devel freetype-devel libXft-devel
%description
A really simple window manager for X, based on wm2, with a minimal set of
@ -27,8 +24,7 @@ configurable options.
%setup -q
%setup -q -a 1
%{__install} -p -m 0644 %{SOURCE2} .
%patch0 -p1
%patch1 -p1
%patch -P0 -p1
%build
%configure --x-libraries=%{_libdir} --x-includes=%{_includedir}/X11 LIBS=-lfontconfig
@ -38,16 +34,12 @@ configurable options.
%{__rm} -rf %{buildroot}
%{__install} -D -m 0755 wmx %{buildroot}%{_bindir}/wmx
%{__install} -d -m 0755 %{buildroot}%{_datadir}/%{name}
%{__install} -m 0755 wmx-defaults-2/* %{buildroot}%{_datadir}/%{name}
%{__install} -m 0755 wmx-defaults-3/* %{buildroot}%{_datadir}/%{name}
%{__chmod} 0644 %{buildroot}%{_datadir}/%{name}/startup
%{__install} -D -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/xsessions/wmx.desktop
%{__install} -D -m 0755 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xinit/Xclients.d/Xclients.wmx.sh
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,root,root)
%doc README* UPDATES TODO.netwm rsharman-patch/
%{_bindir}/*
%{_datadir}/%{name}
@ -55,6 +47,96 @@ configurable options.
%{_sysconfdir}/X11/xinit/Xclients.d/*
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 8-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 8-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Sep 04 2024 Miroslav Suchý <msuchy@redhat.com> - 8-24
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jan 29 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jul 23 2018 Gabriel Somlo <somlo@cmu.edu> 8-10
- add "BuildRequires: gcc-c++" (#1606700)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 8-2
- Rebuilt for GCC 5 C++11 ABI change
* Thu Nov 20 2014 Gabriel Somlo <somlo@cmu.edu> 8-1
- update to 8
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7-14.20120109svn
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7-13.20120109svn
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7-12.20120109svn
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
@ -111,10 +193,10 @@ configurable options.
* Fri Sep 08 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-14
- rebuilt for FC6MassRebuild
* Wed Jun 08 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-13
* Thu Jun 08 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-13
- rebuild
* Wed Jun 08 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-12
* Thu Jun 08 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-12
- more X11 buildrequires (thanks tibbs@math.uh.edu and Jarod Wilson)
* Wed Jun 07 2006 Gabriel Somlo <somlo@cmu.edu> 6pl1-11
@ -169,5 +251,5 @@ configurable options.
* Tue Aug 09 2005 Gabriel Somlo <somlo@cmu.edu> 6pl1-0
- rebuilt for Fedora Core 4
* Wed May 23 2004 Gabriel Somlo <somlo@acns.colostate.edu>
* Sun May 23 2004 Gabriel Somlo <somlo@acns.colostate.edu>
- initial spec and packages.