VXWM(1)

πŸ“¦ version 2.3-unstable-2026-08, in nixpkgs unstable

πŸ’… General Commands Manual: vxwm(1) β€” Versatile X Window Manager (dwm fork) πŸ’…

πŸ¦‹ NAME πŸ¦‹

vxwm β€” Versatile X Window Manager (dwm fork)

✨ SYNOPSIS ✨

vxwm [-v]

πŸŽ€ DESCRIPTION πŸŽ€

okay so vxwm is a versatile dynamic window manager for X, and she's forked from dwm 🫢. She adds quality-of-life features like 8-sided resize, cursor warping, enhanced floating toggle, gaps, fullscreen support and more β€” all of which can be enabled or disabled at compile time via simple defines in modules.h (similar in spirit to dwm-flexipatch). No cap, it's giving β€œdwm but with self-care” πŸ’–.

She manages windows in three layouts: tiled, monocle and floating. Layouts can be switched dynamically to optimize for the current task or application β€” main character energy only ✨.

In tiled layout, windows are arranged in a master area (left, one window by default) and a stacking area (right). The number of master windows and master area size are adjustable. Monocle maximizes all windows to screen size. Floating allows free moving and resizing. Dialogs and certain window types are always managed as floating β€” periodt.

Windows are organized by tags 🌸. Each window can have one or multiple tags; viewing a tag (or set of tags) shows all windows with matching tags. It's literally matching-energy.

The status bar (per screen) displays tags, current layout symbol, focused window title, and root window name text (set via xsetroot(1)). Selected tags use different colors; occupied tags and focused window tags are indicated with squares. A small border around windows shows focus state β€” subtle but iconic πŸ‘‘

βš™οΈ OPTIONS βš™οΈ

  • -v β€” prints version information to stderr, then exits.

🫢 USAGE 🫢

🌈 Status bar 🌈

  • X root window name β€” is read and displayed in the status area (set with xsetroot(1)).
  • Button1 β€” on tag β†’ view only that tag; on layout symbol β†’ toggle tiled ↔ floating.
  • Button3 β€” on tag β†’ add/remove that tag from view.
  • Mod4-Button1 β€” on tag β†’ apply tag to focused window.
  • Mod4-Button3 β€” on tag β†’ toggle tag on focused window.

⌨️ Keyboard commands (default MODKEY = Mod4) ⌨️

  • Mod4-Shift-Return β€” Start st(1).
  • Mod4-p β€” Spawn dmenu(1) for launching programs.
  • Mod4-b β€” Toggle bar visibility.
  • Mod4-j / Mod4-k β€” Focus next / previous window.
  • Mod4-i / Mod4-d β€” Increase / decrease number of master windows.
  • Mod4-h / Mod4-l β€” Decrease / increase master area factor.
  • Mod4-Return β€” Zoom focused window to/from master area (tiled layouts only).
  • Mod4-0 β€” View previously selected tags.
  • Mod4-t / Mod4-f / Mod4-m β€” Set layout tiled / floating / monocle.
  • Mod4-space β€” Cycle to next layout.
  • Mod4-Shift-space β€” Toggle focused window floating ↔ tiled.
  • Mod4-Shift-c β€” Close focused window.
  • Mod4-[1-9] β€” View windows on tag 1–9.
  • Mod4-Tab β€” View all windows (all tags).
  • Mod4-Control-[1-9] β€” Toggle tag 1–9 into/out of view.
  • Mod1-[1-9] β€” Apply tag 1–9 to focused window.
  • Mod4-Shift-0 β€” Apply all tags to focused window.
  • Mod4-, / Mod4-. β€” Focus previous / next monitor.
  • Mod4-Shift-, / Mod4-Shift-. β€” Send focused window to previous / next monitor.
  • Mod4-Shift-q β€” Quit vxwm.

🐭 Mouse commands 🐭

  • Mod4-Button1 β€” Drag to move focused window (toggles tiled β†’ floating).
  • Mod4-Button2 β€” Toggle floating state of focused window.
  • Mod4-Button3 β€” Drag to resize focused window (toggles tiled β†’ floating).
    • When BETTER_RESIZE is enabled, resizing works from all 8 sides/corners.

πŸ› οΈ CUSTOMIZATION πŸ› οΈ

vxwm is configured by editing config.h (keys, colors, rules, bar, etc.) and modules.h (enabling/disabling patches and features), then recompiling. This approach keeps vxwm fast, minimal and secure πŸ”₯.

πŸ‘€ SEE ALSO πŸ‘€

dwm(1), dmenu(1), st(1), xsetroot(1)

😭 ISSUES 😭

Java applications using XToolkit/XAWT may show only grey windows due to ICCCM non-compliance assumptions in older JDK versions.

Not the vibe, honestly πŸ’€

Workarounds:

  • set AWT_TOOLKIT=MToolkit
  • run wmname LG3D or xprop -root -f _NET_WM_NAME 32a -set _NET_WM_NAME LG3D
  • for OpenJDK: _JAVA_AWT_WM_NONREPARENTING=1

πŸ› BUGS πŸ›

Report bugs and send patches to the maintainer (wh1tepearl) via the repository: https://codeberg.org/wh1tepearl/vxwm 🫢


xoxo, you've reached the footer πŸ’– β€” source/version: vxwm-2.3, date: the manpage footer's timestamp, periodt ✨

πŸ“¦ where this page comes from