myvxwm

[fork] my vxwm config (optimised for my T480)
git clone https://git.lukeonline.net/repos/myvxwm
Log | Files | Refs | README | LICENSE

README.md (4185B)


      1 # vxwm
      2 
      3 vxwm - Versatile X Window Manager for X11 forked from `dwm`.
      4 
      5 ## About
      6 
      7 vxwm represents a significantly enhanced version of `dwm` that maintains its
      8 lightweight nature while offering modular flexibility. Instead of manually
      9 applying patches, you can toggle pre-installed features directly in the
     10 configuration by switching values between 0 and 1, it is all manageable via
     11 `modules.h`.
     12 
     13 The defining feature of vxwm is its implementation of infinite tags. While
     14 traditional tiling managers act like a slide projector, swapping one static view
     15 for another, vxwm treats the screen as a viewport over a vast, continuous
     16 canvas. Windows aren't hidden or layered; they exist on an infinite surface, and
     17 you simply move your perspective across it. You can slide your view to find more
     18 space, snap focus to a specific window, or return to the origin using the
     19 homecanvas bind. Even though this sounds complex, this isn't resource hungry and
     20 isn't hard to use.
     21 
     22 ### vxwm has repositories on
     23 
     24 - [Codeberg](https://codeberg.org/wh1tepearl/vxwm)
     25 - [GitHub (read-only mirror)](https://github.com/wh1tepearll/vxwm)
     26 
     27 ## Build and Requirements
     28 
     29 In order to build vxwm you need the `Xlib`, `Xft`, `Xinerama` header files and some sort of `make`.
     30 
     31 Arch Linux:
     32 
     33 ```bash
     34 sudo pacman -Sy libx11 libxft libxinerama make
     35 ```
     36 
     37 Void Linux:
     38 
     39 ```bash
     40 sudo xbps-install -S libX11 libX11-devel libXft libXft-devel libXinerama libXinerama-devel make
     41 ```
     42 
     43 Gentoo GNU/Linux:
     44 
     45 ```bash
     46 doas emerge -av x11-libs/libX11 x11-libs/libXft x11-libs/libXinerama make
     47 ```
     48 
     49 ## Installation
     50 
     51 Clone this repository and `cd` into it.
     52 
     53 ```bash
     54 git clone https://codeberg.org/wh1tepearl/vxwm.git
     55 cd vxwm
     56 ```
     57 
     58 Edit `config.mk` to match your local setup (vxwm is installed into
     59 the `/usr/local` namespace by default).
     60 
     61 Afterwards enter the following commands to build and install vxwm:
     62 
     63 ```bash
     64 make
     65 # yes, run make first and only then
     66 sudo make clean install
     67 ```
     68 
     69 ## Running vxwm
     70 
     71 You will need `startx` utility installed.
     72 
     73 Your `.xinitrc` should be something like this to start vxwm using `startx`:
     74 
     75 ```bash
     76 #!/bin/sh
     77 
     78 exec vxwm
     79 ```
     80 
     81 If you want to restart vxwm without losing your session or for hot configuration
     82 reload, add something like this to your `.xinitrc` should be something like this:
     83 
     84 ```bash
     85 #!/bin/sh
     86 
     87 vxwm &
     88 exec sleep infinity
     89 ```
     90 
     91 And then for restarting vxwm use the rvx utility.
     92 
     93 In order to connect vxwm to a specific display, make sure that the `DISPLAY`
     94 environment variable is set correctly, e.g.:
     95 
     96 ```bash
     97 DISPLAY=:1 exec vxwm
     98 ```
     99 
    100 > [!NOTE]
    101 > This will start vxwm on display :1
    102 
    103 In order to display status info in the bar, you can do something
    104 like this in your `.xinitrc`:
    105 
    106 ```bash
    107 while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
    108 do
    109 	sleep 1
    110 done &
    111 exec vxwm
    112 ```
    113 
    114 ## Configuration
    115 
    116 The configuration of vxwm is done by editing config.h and modules.h to match
    117 your preferences and (re)compiling the source code.
    118 
    119 ### Adding custom keybinds
    120 
    121 Add this to `config.h` and replace `yoursillyprogram` with the actual `cmd` that
    122 will be executed in hte keybind (recommended adding it right before keys array):
    123 
    124 ```c
    125 static const char *yoursillyprogramcmd[]  = { "yoursillyprogram", NULL };
    126 ```
    127 
    128 If your cmd uses multiple arguments, you should write them like this:
    129 
    130 ```c
    131 static const char *yoursillyprogramcmd[] = { "yoursillyprogram", "arg1", "arg2", NULL};
    132 ```
    133 
    134 etc...
    135 
    136 And then add this to keys massive:
    137 
    138 ```c
    139 { MODKEY|ShiftMask,	XK_u, spawn, {.v = yoursillyprogramcmd } }, 
    140 ```
    141 
    142 ### Modules
    143 
    144 Enable/disable (0/1) modules you need/don't need, thats it.
    145 
    146 > [!NOTE]
    147 > After any change in config/modules recompile vxwm and restart using rvx.
    148 
    149 ## Acknowledgements
    150 
    151 - `vxwm` was made by `wh1tepearl`, many thanks to [suckless.org] and the [dwm]
    152 developers for making dwm in first place.
    153 - Thanks 5element developer and hevel wayland compositor developers
    154 for the inspiration of infinite tags.
    155 
    156 Also try:
    157 
    158 - hevel wayland compositor: <https://git.sr.ht/~dlm/hevel>
    159 - 5element: <https://hg.sr.ht/~ohmu/5element>
    160 
    161 ## Community
    162 
    163 - If you encounter any bugs - **please make an issue!**
    164 - If you want something added - **please make an issue!**
    165 - If you want to change something - **please make an issue!**