From dad6dc77433e661b54458978cb888fd38ae15a97 Mon Sep 17 00:00:00 2001 From: Nikita Langer Date: Mon, 6 Apr 2026 22:13:26 +0200 Subject: Initial commit --- README.md | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..22dd2cc --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# vxwm - Versatile X Window Manager for x11 forked from dwm + +# About +vxwm represents a significantly enhanced version of dwm that maintains its lightweight nature while offering modular flexibility. Instead of manually applying patches, you can toggle pre-installed features directly in the configuration by switching values between 0 and 1, it is all manageable via modules.def.h. + +The defining feature of vxwm is its implementation of infinite tags. While traditional tiling managers act like a slide projector, swapping one static view for another, vxwm treats the screen as a viewport over a vast, continuous canvas. Windows aren't hidden or layered; they exist on an infinite surface, and you simply move your perspective across it. You can slide your view to find more space, snap focus to a specific window, or return to the origin using the homecanvas bind. Even though this sounds complex, this isn't resource hungry and isn't hard to use. + +vxwm has repositories on: +[codeberg](https://codeberg.org/wh1tepearl/vxwm) +[github](https://github.com/wh1tepearll/vxwm) (readonly mirror) + +# Requirements + +In order to build vxwm you need the Xlib, Xft and Xinerama header files. + +## Deps Installation + +Arch Linux: + + sudo pacman -Sy libx11 libxft libxinerama + +Void Linux: + + sudo xbps-install -S libX11 libX11-devel libXft libXft-devel libXinerama libXinerama-devel + +Gentoo Linux: + + sudo emerge -av x11-libs/libX11 x11-libs/libXft x11-libs/libXinerama + +# Getting Started: + +## Installation + +Clone this repository and cd into it. + + git clone https://codeberg.org/wh1tepearl/vxwm.git + cd vxwm + +Edit config.mk to match your local setup (vxwm is installed into +the /usr/local namespace by default). + +Afterwards enter the following commands to build and install vxwm: + + make + sudo make clean install + +(yes, run make first and only then sudo make clean install) + +## Running vxwm + +You will need startx utility installed. + +Add the following line to your .xinitrc to start vxwm using startx: + + exec vxwm + +If you want to restart vxwm without losing your session +or for hot configuration reload, add something like this to your .xinitrc: + + vxwm & + exec sleep infinity + +And then for restarting vxwm use the rvx utility. + +In order to connect vxwm to a specific display, make sure that +the DISPLAY environment variable is set correctly, e.g.: + + DISPLAY=:1 exec vxwm + +(This will start vxwm on display :1) + +In order to display status info in the bar, you can do something +like this in your .xinitrc: + + while xsetroot -name "`date` `uptime | sed 's/.*,//'`" + do + sleep 1 + done & + exec vxwm + + +# Configuration + +The configuration of vxwm is done by editing config.h and modules.h to +match your preferences and (re)compiling the source code. + +## Adding custom keybinds + +Add this to config.h and replace yoursillyprogram with the actual cmd that will be executed in hte keybind (recommended adding it right before keys array): + + static const char *yoursillyprogramcmd[] = { "yoursillyprogram", NULL }; + +If your cmd uses multiple arguments, you should write them like this: + + static const char *yoursillyprogramcmd[] = { "yoursillyprogram", "arg1", "arg2", NULL }; + +etc. + +And then add this to keys massive: + + { MODKEY|ShiftMask, XK_u, spawn, {.v = yoursillyprogramcmd } }, + +## Modules + +Enable/disable (0/1) modules you need/don't need, thats it. + +> [!NOTE] +> After any change in config/modules recompile vxwm and restart using rvx. + +# Acknowledgements + +vxwm was made by wh1tepearl, many thanks to suckless.org and the [dwm] developers for making dwm in first place. +Thanks 5element developer and hevel wayland compositor developers for the inspiration of infinite tags. + +Also try: + +hevel wayland compositor: https://git.sr.ht/~dlm/hevel + +5element: https://hg.sr.ht/~umix11/5element + + + +> [!NOTE] +> If you encounter any bugs - **please make an issue!**
+> If you want something added - **please make an issue!**
+> If you want to change something - **please make an issue!** -- cgit