This build is not fully feature ready.
- Low Memory Usage (~4-7 MiB) (When compiled in Release Mode)
- Low CPU usage (~.1-2%) idle
- Low CPU usage when doing expensive stuff (mapping windows) (~4-10%)
- Doesnt use C++
- XCB
- dmenu
- st
- xorg
- xorg-xinit
- libxcb
- xcb-proto
- xcb-util
- xcb-util-errors
- xcb-util-cursor
- xcb-util-image
- xcb-util-keysyms
- xcb-util-wm
- xcb-util-xrm
- PulseAudio
- Playerctl
- Brightnessctl
sudo pacman -S --needed dmenu xorg xorg-xinit libxcb xcb-util xcb-util-errors xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-wm xcb-util-xrm && yay -S st
sudo pacman -S --needed pipewire-pulse pulseaudio playerctl brightnessctl
To use the wm you must first compile it.
Afterwards you must put exec vox-wm
in your ~/.xinitrc
file. See Below.
- Clone this repository.
git clone https://github.com/DerjenigeUberMensch/vox-wm.git
- Change Directory to vox-wm.
cd vox-wm
- Checkout the Experimental branch. (Legacy support)
git checkout origin/Experimental
- Configure it See Configuration (Optional)
- Compile using Make
make
- Install on system, install location '/usr/local/bin'
sudo make install
- Done.
- Change Directory to vox-wm.
cd vox-wm
- Uninstall using Make
sudo make uninstall
- Compile, See Compiling.
- Choose option(s) below.
- Locate binary
- if installed should be "vox-wm"
- else should be located under "bin/release/" folder as "vox-wm"
- Put "exec YOUR_BINARY_LOCATION" in ~/.xinitrc or similiar XServer configuration.
- if it doesnt work make sure that no window-manager/desktop manager is run before.
- Start a Xephyr server.
- Example:
Xephyr :1 -ac c 25 +xinerama -resizeable -screen 680x480 &
- Example:
- After locating the binary location make sure you are in the correct display server.
- Example:
export DISPLAY=:1
- Example:
- After setting the correct external xserver display variable simply run the binary file.
- Example:
./bin/release/vox-wm
orvox-wm
- Example:
Currently Configuration is not (GUI/conf file) supported in this version of vox-wm
If you know a bit of C you can change dmenu colours and some keybinds under the directory vox-wm/include/keybinds.h
There is limited config file support under ~/.config/vox-wm/settings.cfg
Do note that these changes only apply after a hard restart or killing and running the window manager again.
These are the default mousebinds currently used within vox-wm, they are not planned to change (defaults), but will be when or if a configuration is implemented.
- RMB: Right Mouse Button.
- LMB: Left Mouse Button.
- MMB: Middle Mouse Button.
Button | Action |
---|---|
SUPER+RMB | Activates Window Resizing of the Clicked Window. (Must be Held) |
SUPER+ALT+RMB | See above, does not apply ANY window restrictions, these include: minimum size, maximimum size, base size, inc size, etc... |
SUPER+LMB | Activates Window Moving of the Clicked Window. (Must be Held) |
These are the default keybinds currently used within vox-wm, they are not currently planned to change, but will be when or if a configuration is implemented.
- SUPER: The "Windows" key (next to fn/ctrl, usually the left side of the keyboard).
- RETURN: The Enter key (Right above right SHIFT, Not the numlock Enter key)
Key | Action |
---|---|
SUPER+n | Debug/Unused |
SUPER+d | exec dmenu |
SUPER+RETURN | exec st |
SUPER+e | exec thunar |
SUPER+b | Hide/Show Task bar (if applicable) |
SUPER+SHIFT+q | Exit Current Window |
CTRL+ALT+q | Terminate Current Window |
SUPER+w | Maximize Current Window |
SUPER+SHIFT+p | Quit (exit window manager) |
SUPER+CTRL+p | Soft Restart |
CTRL+ALT+p | Hard Restart |
SUPER+CTRL+z | Make the current Window Sticky |
SUPER+z | Change Layout To Tiling |
SUPER+x | Change Layout To Floating |
SUPER+c | Change Layout To Monocle |
SUPER+g | Change Layout To Grid |
SUPER+1 | Set Current Desktop To 1 |
SUPER+2 | Set Current Desktop To 2 |
SUPER+3 | Set Current Desktop To 3 |
SUPER+4 | Set Current Desktop To 4 |
SUPER+5 | Set Current Desktop To 5 |
SUPER+6 | Set Current Desktop To 6 |
SUPER+7 | Set Current Desktop To 7 |
SUPER+8 | Set Current Desktop To 8 |
SUPER+9 | Set Current Desktop To 9 |
SUPER+0 | Set Current Desktop To 10 |
These are actions that expected supporting basic keyboard support.
Key | Action |
---|---|
F11 | Fullscreen On The Current Window |
Increase Volume | Increase Volume Controls |
Decrease Volume | Decrease Volume Controls |
Increase Brightness | Increase Brightness Controls |
Decrease Brightness | Decrease Brightness Controls |
Mute | Sound Mute Functionality |
Play | Inverts Playing Status (play-pause) |
Pause | Inverts Playing Status (play-pause) |
Next | Next Audio Playback |
Prev | Previous Audio Playback |
This is an experimental build and may contain bugs, Screen tearing can be mitigated by using a compositor or by enabling it in your driver setting
If you have any major issues with the current commit you can revert to a previous commit for a generally stabler version. Or you can open an issue about it.
- Panel that user can just click buttons or type values to configure windows (kinda like a dev panel).
- Fully Extend XCB-TRL to use other features.
- More modularity
- Less Complex Code Base
- Better Documentatin (Likely when I finish implementing the usability part of the Window manager (AKA when I switch over to this.))