aboutsummaryrefslogtreecommitdiffstats
path: root/modules.def.h
diff options
context:
space:
mode:
authorNikita Langer <nikitalanger@icloud.com>2026-04-06 22:13:26 +0200
committerNikita Langer <nikitalanger@icloud.com>2026-04-06 22:13:26 +0200
commitdad6dc77433e661b54458978cb888fd38ae15a97 (patch)
treeed0ea2232063526124609e8e1fde67bdff72031d /modules.def.h
downloadvxwm-dad6dc77433e661b54458978cb888fd38ae15a97.tar.gz
vxwm-dad6dc77433e661b54458978cb888fd38ae15a97.tar.bz2
vxwm-dad6dc77433e661b54458978cb888fd38ae15a97.tar.xz
vxwm-dad6dc77433e661b54458978cb888fd38ae15a97.zip
Initial commitHEADmaster
Diffstat (limited to 'modules.def.h')
-rw-r--r--modules.def.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/modules.def.h b/modules.def.h
new file mode 100644
index 0000000..8917d99
--- /dev/null
+++ b/modules.def.h
@@ -0,0 +1,124 @@
+#pragma once
+
+/* vxwm compile-time options */
+
+/* KILLER FEATURES */
+#define INFINITE_TAGS 1
+/*
+Most tiling window managers (like the default dwm) treat your screen like a slide-projector. You click a button, and the current "slide" is swapped for another. If an window is off-screen, it doesn't exist.
+
+With infinite tags enabled, vxwm treats your screen like a magnifying glass over a giant wooden desk.
+
+1. The Canvas is Infinite
+Your windows aren't "on" tags. They are placed on a massive, invisible surface. Your monitor is just a small window through which you look at that surface.
+
+2. Move the View, Not Just the Windows
+Instead of managing "layers" or "hidden states," you manage position.
+
+Want more space? Slide the view over.
+Can't find a window? Switch your focus to it, and the world slides until that window is right under your nose.
+Lost? Hit the "homecanvas" keybind to snap your view back to the start.
+Even though this sounds complex, it is actually pretty lightweight, and is very easy to use.
+
+ */
+#define IT_SHOW_COORDINATES_IN_BAR 1 // Shows your coordinates in the bar, pretty impossible to use infinite tags without this.
+
+
+
+/* Move/Resize */
+#define BETTER_RESIZE 1 // Enables 8 sided window resize.
+#define BR_CHANGE_CURSOR 1 // When resizing windows while having BETTER_RESIZE set to 1, the cursor will change depending on from which side you are resizing.
+#define LOCK_MOVE_RESIZE_REFRESH_RATE 1 // Recommended to use on every pc, because cpu (software) rendered apps like ST will lag when resizing even if you have a good pc.
+#define USE_RESIZECLIENT_FUNC 0 // Use resizeclient function instead of resize function which ignores window's resize hints, not recommended.
+#define RESIZING_WINDOWS_IN_ALL_LAYOUTS_FLOATS_THEM 1 // yeah.
+#define MOVE_RESIZE_WITH_KEYBOARD 1 // Allows to move and resize windows with keyboard.
+
+
+
+/* Kind of eye candy */
+#define GAPS 1 // Gaps support.
+#define XRDB 1 // Xrdb support.
+
+
+
+/* Tagging */
+#define TAG_TO_TAG 1 // 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 1
+/* This makes the windows get mapped or unmapped in X11. This results in certain
+ behaviour being enabled, some examples are: fix issues with some applications
+ losing input forever after a tag change or 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 */
+/* Internal */
+#define ALT_CENTER_OF_BAR_COLOR 1 // changes center of bar color to a dark color.
+#define BAR_HEIGHT 1 // Support for changing bar height.
+#define BAR_PADDING 1 // Support for changing the bar padding.
+#define OCCUPIED_TAGS_DECORATION 0 // This provides the ability to use an alternative text for tags which contain at least one window aka occupied tags.
+
+/* External */
+#define EXTERNAL_BARS 1 // Support for external bars, essencial if you want to use external bars.
+#define EWMH_TAGS 1 // Support for EWMH tags, recommended if you want to use external bars with less pain
+
+
+
+/* Warp to client */
+#define WARP_TO_CLIENT 0 // Includes the warp to client function needed for all options below.
+#define WARP_TO_CENTER_OF_NEW_WINDOW 0 // Warps the cursor to center of the new window.
+#define WARP_TO_CENTER_OF_PREVIOUS_WINDOW 0 // Warps cursor to center of the previous window after closing a window.
+#define WARP_TO_CENTER_OF_ZOOMED_WINDOW 0 // Warps cursor to center of the window that was zoomed using zoom function.
+#define WARP_TO_CENTER_OF_WINDOW_AFFECTED_BY_INCNMASTER 0 // Warps the cursor to center of the window that gets affected in use of incnmaster.
+#define WARP_TO_CENTER_OF_WINDOW_AFFECTED_BY_ENHANCED_TOGGLE_FLOATING 0 // Warps cursor to center of the window that was affected by using enhancedtogglefloating function.
+#define WARP_TO_CENTER_OF_WINDOW_AFFECTED_BY_FOCUSSTACK 0 // Warps cursor to center of the window that was focused by using focusstack function.
+#define WARP_TO_CENTER_OF_WINDOW_MOVED_BY_KEYBOARD 0 // Warps cursor to center of the window that is moved by moveresize function.
+
+
+
+/* Misc */
+#define AUTOSTART 1 // Support for vxwm being able to start apps defined in config.h in startup.
+#define FULLSCREEN 1 // Support for toggling fullscreen.
+#define MOVE_IN_TILED 1 // Support for moving windows in tiled mode.
+#define DIRECTIONAL_FOCUS 1 // yeah.
+#define DIRECTIONAL_MOVE 1
+/* Makes moving windows in tiled layout possible with keyboard and it is directional,
+ bind for move is in #if MOVE_RESIZE_WITH_KEYBOARD section which makes it depending on
+ MOVE_RESIZE_WITH_KEYBOARD at the first sight but, it doesn't. You can bind the movedir
+ function manually which makes it independent like this:
+#if DIRECTIONAL_MOVE
+ { MODKEY|ALTERNATE_MODKEY, XK_Left, movedir, {.i = 0} }, // Left
+ { MODKEY|ALTERNATE_MODKEY, XK_Right, movedir, {.i = 1} }, // Right
+ { MODKEY|ALTERNATE_MODKEY, XK_Up, movedir, {.i = 2} }, // Up
+ { MODKEY|ALTERNATE_MODKEY, XK_Down, movedir, {.i = 3} }, // Down
+#endif
+*/
+
+
+
+/* Floating */
+/* Recomended to use with ALWAYS_CENTER_NEW_FLOATING_WINDOWS set to 1. */
+
+#define FLOATING_LAYOUT_FLOATS_WINDOWS 1
+/* By default, in floating layout, windows appear to be floating, but, for dwm,
+ they are not. Because of this, when switching to tiled layout after floating
+ layout, windows will be tiled, enable this if you don't want that behaviour. */
+
+#define ENHANCED_TOGGLE_FLOATING 1
+/* Support for enhanced toggle floating, when toggling floating window will
+ resize to its natural size, and in floating layout, window will be tiled.
+ REQUIRES "FLOATING_LAYOUT_FLOATS_WINDOWS" SET TO 1 TO WORK PROPERLY. */
+
+#define RESTORE_SIZE_AND_POS_ETF 1 // Restore previous size and position of window when toggling floating
+
+
+
+/* Dependency list */
+/* INFINITE_TAGS requires WINDOWMAP, please set WINDOWMAP to 1, if not, it will be automatically enabled.
+ * ENHANCED_TOGGLE_FLOATING requires FLOATING_LAYOUT_FLOATS_WINDOWS, please set FLOATING_LAYOUT_FLOATS_WINDOWS to 1, if not, it will be automatically enabled. */
+