commit 10cb704b2b927f0751103ddd57c74a77b10e6e23
parent 8393ee244d5f8c3a1e7304cfeb778b2dbdfcd7a5
Author: wh1tepearl <wh1tepearl@gmail.com>
Date: Tue, 3 Feb 2026 17:00:16 +0000
Support for slowing down animations
Diffstat:
2 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/modules.def.h b/modules.def.h
@@ -1,4 +1,4 @@
-#ifndef MODULES_H
+##ifndef MODULES_H
#define MODULES_H
/* vxwm compile-time options */
@@ -17,6 +17,20 @@
+/* Tagging */
+#define TAG_TO_TAG 0 // If you switch to tag where you already are, it'll switch to previous tag.
+#define SLOWER_TAGS_ANIMATION 0 // This slows down tags animation speed, which results in smoother tags animations (requires picom to see any difference).
+#define WINDOWMAP 0
+/* This makes the windows get mapped or unmapped in X11. This results in certain
+ behaviour being enabled, for example when you use a compositor like picom - your
+ windows will fade in and out when you switch dwm tags. */
+
+#define PDWM_LIKE_TAGS_ANIMATION 0
+/* This makes function showhide be like in pdwm, if using a compositor like picom,
+ this results in an alternative tags animation. */
+
+
+
/* Bar */
#define ALT_CENTER_OF_BAR_COLOR 0 // changes center of bar color to a dark color.
#define BAR_HEIGHT 0 // Support for changing bar height.
@@ -41,15 +55,6 @@
#define MOVE_IN_TILED 0 // Support for moving windows in tiled mode.
#define EWMH_TAGS 0 // Support for EWMH tags, recommended if you want to use external bars with less pain
#define ALWAYS_CENTER_NEW_FLOATING_WINDOWS 0 //so, basically, it does what it says.
-#define TAG_TO_TAG 0 // If you switch to tag where you already are, it'll switch to previous tag.
-#define WINDOWMAP 0
-/* This makes the windows get mapped or unmapped in X11. This results in certain
- behaviour being enabled, for example when you use a compositor like picom - your
- windows will fade in and out when you switch dwm tags. */
-
-#define PDWM_LIKE_TAGS_ANIMATION 0
-/* This makes function showhide be like in pdwm, if using a compositor like picom,
- this results in an alternative tags animation. */
diff --git a/vxwm.c b/vxwm.c
@@ -1891,13 +1891,21 @@ showhide(Client *c)
/* hide clients bottom up */
showhide(c->snext);
#if !WINDOWMAP
- #if !PDWM_LIKE_TAGS_ANIMATION
- XMoveWindow(dpy, c->win, WIDTH(c) * -2, c->y);
+ #if !PDWM_LIKE_TAGS_ANIMATION
+ #if !SLOWER_TAGS_ANIMATION
+ XMoveWindow(dpy, c->win, WIDTH(c) * -2, c->y); // fast
#else
- XMoveWindow(dpy, c->win, c->mon->wx + c->mon->ww / 2, -(HEIGHT(c)));
- #endif
+ XMoveWindow(dpy, c->win, WIDTH(c) * -1, c->y); // slow
+ #endif // SLOWER_TAGS_ANIMATION
+ #else // PDWM_LIKE_TAGS_ANIMATION
+ #if !SLOWER_TAGS_ANIMATION
+ XMoveWindow(dpy, c->win, c->mon->wx + c->mon->ww / 2, -(HEIGHT(c) * 3) / 2);
+ #else
+ XMoveWindow(dpy, c->win, c->mon->wx + c->mon->ww / 2, -(HEIGHT(c)));
+ #endif // close SLOWER_TAGS_ANIMATION
+ #endif // close PDWM_LIKE_TAGS_ANIMATION
#else
- window_unmap(dpy, c->win, root, 1);
+ window_unmap(dpy, c->win, root, 1);
#endif
}
}