1
0
Fork
You've already forked wmsquared
0
wmsquared is a minimal x11 window manager
  • C 99.1%
  • Makefile 0.9%
Find a file
2026年06月01日 16:24:04 +00:00
src fixed readme, changed cli args and WM_* in src/defs.h 2026年06月01日 16:24:04 +00:00
.gitignore initial commit 2026年05月30日 22:33:36 +00:00
LICENSE initial commit 2026年05月30日 22:33:36 +00:00
Makefile initial commit 2026年05月30日 22:33:36 +00:00
README fixed readme, changed cli args and WM_* in src/defs.h 2026年06月01日 16:24:04 +00:00
wm.desktop initial commit 2026年05月30日 22:33:36 +00:00
wmrc fixed readme, changed cli args and WM_* in src/defs.h 2026年06月01日 16:24:04 +00:00

wm2 [1.0] is a simple x11 window manager written in c, forked from github.com/uint23/sxwm. check sxwm out!
wm2 is split into three source files, and a config file that can be located in; (~/.config/wmrc, ~/.config/wm/wmrc, /usr/local/share/wmrc).
this window manager's config can be interpreted as a simple, key & value format. for example;
key : value
the keywords and possible values are explained below in the legend;
type keyword value (Description) <KeyBind1 + KeyBind2>
string mod_key : super/alt/ctrl/..(Main modifier key for wm2 binds, using mod_key is OPTIONAL)
int gaps : 1 (Pixel amount between the screen edges and windows)
int border_width : 1 (Thickness of window outlines, use 1 for a sharp look)
hex focused_border_color : #FFFFFF (Color of focused window outline)
hex unfocused_border_color : #000000 (Color of unfocused window outline)
hex swap_border_color : #000000 (Color of window outline while moving it)
int master_width : 65 (Percentage of master window width)
int resize_master_amount : 1 (Percentage to resize master width <l + ;>)
int resize_stack_amount : 1 (Percentage to resize stack width <, + .>)
int motion_throttle : 120 (Fps for mouse actions, set to you refresh rate)
int snap_distance : 5 (Pixels near the screen edge where the window will snap to it)
int move_window_amount : 10 (Pixels you move the window with <super + alt + arrow>)
int resizewindow_amount : 10 (Pixels you resize the window with <alt + shift + arrow>)
string start_fullscreen : "foo", "bar" (Binaries to start full screened)
string should_float : "foo", "bar" (Binaries to float after spawning)
bool new_win_focused : true/false (Focus on new window)
bool warp_cursor : true/false (Teleport cursor to center of new window)
bool floating_on_top : true/false (Floating windows stay on top of tiled ones)
bool info : true/false (Show workspace number and time in bottom left corner if no windows are open)
bool centre_on_resize : true/false (Center window on resize)
string exec : "foo" (Command to execute on startup)
string can_swallow : "bar" (Binaries that can stay on top of others)
string can_be_swallowed : "xyz" (Binaries that can stay under others)
next, let's present binds and calls to wm2, available modifiers are;
	- mod (declared earlier)
	- shift 
	- ctrl
	- alt
	- super
and, of course, these should get you far enough. to use these modifiers,
bind them to something or make a call to wm2.
what bind value
bind : foo + bar : "st"
call : foo + bar : function
workspace : foo + bar : move/swap WorkspaceNumber
available functions:
quit : Exit wm2
reload_config : Reload wm2 config
centre_window : Put window at center of screen
pull_window : Pull window to cursor
close_window : Close focused window
fullscreen : Fullscreen focused window
global_floating : Toggle floating between all windows
decrease_gaps : Decrease gaps between windows and screen
increase_gaps : Increase gaps between windows and screen
decrease_border_width : Decrease window outline thickness
increase_border_width : Increase window outline thickness
master_increase : Increase master size by resize_master_amount declared earlier
master_decrease : Decrease master size by resize_master_amount declared earlier
stack_increase : Increase stack size by resize_stack_amount declared earlier
stack_decrease : Decrease stack size by resize_stack_amount declared earlier
focus_next : Focus next window
focus_prev : Focus previous window
focus_next_mon : Focus next monitor
focus_prev_mon : Focus previous monitor
master_next : Move window between stack or master
master_prev : Move window between stack or master
move_next_mon : Move focused window to next monitor
move_prev_mon : Move focused window to previous monitor
resize_win_down : Resize focused window down
resize_win_left : Resize focused window left
resize_win_up : Resize focused window up
resize_win_right : Resize focused window right
switch_previous_workspace : Go to previous workspace
toggle_floating : Toggle between tiling and floating on focused window
brightness_down : Lower screen brightness with brightnessctl by 10%
brightness_up : Raise screen brightness with brightnessctl by 10%
volume_down : Lower volume with pactl by 10%
volume_up : Raise volume with pactl by 10%
TO DO:
empty
CONTACT:
mail me a suggestion at <xtnn59@gmail.com>
or send me a message on discord <xtncton>