Tiny and powerful window manager for X11
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
libjb Fixed errors introduced by changes in jbxvt libconvert.scm work. Jul 24, 2017
.gitattributes Added language corrections. Jul 5, 2017
.gitignore Added config.mk. Nov 6, 2016
.indent.pro Reformatted sources. Make handling window gravity optional, seems of … Jan 31, 2016
INSTALL Rewrote for jbwm. Jul 3, 2017
JBWMAtomIndex.h Fixed errors introduced by changes in jbxvt libconvert.scm work. Jul 24, 2017
JBWMClient.h Split out resize_title_bar(). Renamed JBWMClientTitlebar to Oct 22, 2017
JBWMClientOptions.h Renamed option no_min to no_shade. Jul 9, 2017
JBWMClientTitleBar.h Split out resize_title_bar(). Renamed JBWMClientTitlebar to Oct 22, 2017
JBWMKeys.h Sort the cells in the intermediate representation, data, using compar… Jul 13, 2017
JBWMPixels.h Made shape and title bar support mandatory to ease development. Jul 9, 2017
JBWMPoint.h Added JBWM-specific geometry structures utilizing stdint types. Remov… Dec 19, 2016
JBWMRectangle.h Added get_antecedent to return the lvalue of asssignment in key_move(). Jul 5, 2017
JBWMScreen.h Reduced includes. Jul 12, 2017
JBWMSize.h Added JBWM-specific geometry structures utilizing stdint types. Remov… Dec 19, 2016
LICENSE Updated copyright year to 2017. Jan 1, 2017
Makefile Made shape and title bar support mandatory to ease development. Jul 9, 2017
Makefile.clang Updated copyright year to 2017. Jan 1, 2017
Makefile.small Use jbwm-specific make variables for jbwm_cflags, jbwm_ldflags and ob… Oct 24, 2016
README.md Added requirements section. Feb 10, 2018
TODO Simplified titlebar code. Buttons have their own window and no longer Sep 16, 2016
astylerc Reformatted sources. Make handling window gravity optional, seems of … Jan 31, 2016
button_event.c Made shape and title bar support mandatory to ease development. Jul 9, 2017
button_event.h Updated copyright year to 2017. Jan 1, 2017
client.c Consolidated leaf functions into jbwm_client_free. Added EWMH_ATOM ma… Jul 13, 2017
client.h Removed nonnull attributes. Jul 8, 2017
command_line.c Defined jbwm_init_screens, a recursive version of jbwm_init_screen. R… Jun 16, 2017
command_line.h Split command line argument handling to separate module. Jun 15, 2017
config.h Added needed include. Jan 2, 2017
configure Made shape and title bar support mandatory to ease development. Jul 9, 2017
dbg Added convenience script to start debug build and gdb session. Mar 21, 2016
debug.mk Unified JBWMClient::JBWMClientOptions::no_border and JBWMClient::border, Jul 7, 2017
debug_clang.mk Finalized clang warning list. Jul 10, 2017
debug_gcc.mk Added debug_clang.mk and debug_gcc.mk. Jul 3, 2017
depend.mk Split out resize_title_bar(). Renamed JBWMClientTitlebar to Oct 22, 2017
display.c Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
display.h Removed dependency on jbwm_get_display(). Removed jbwm_get_display(). May 7, 2017
drag.c Added comments to query_pointer(). Nov 2, 2017
drag.h Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
events.c Merged handle_configure_request() and jbwm_handle_ConfigureRequest(). Nov 4, 2017
events.h Removed jbwm_events_cliear_last_window(). Apr 30, 2017
ewmh.c Broke long line. Jul 17, 2017
ewmh.h Made ewmh support mandatory to ease development. Jul 9, 2017
ewmh.scm Fixed errors introduced by changes in jbxvt libconvert.scm work. Jul 24, 2017
ewmh_allowed.c Generated ewmh_allowed.c from ewmh.scm. Jul 14, 2017
ewmh_client.c Added automatic generation of ewmh atom list and corresponding name m… Jun 11, 2017
ewmh_client.h Made ewmh support mandatory to ease development. Jul 9, 2017
ewmh_init.c Added generated file. Jul 16, 2017
ewmh_state.c Adjusted range. This fixes chromium display bug. Jun 15, 2017
ewmh_state.h Made ewmh support mandatory to ease development. Jul 9, 2017
ewmh_wm_state.c Moved condition before dereference in set_state(). Jul 5, 2017
ewmh_wm_state.h Made ewmh support mandatory to ease development. Jul 9, 2017
exec.c Defined jbwm_start_terminal() as C99-style inline function in header. Jul 9, 2017
exec.h Defined jbwm_start_terminal() as C99-style inline function in header. Jul 9, 2017
font.c Opened font in main. Moved jbwm_error() to util. May 7, 2017
font.h Made shape and title bar support mandatory to ease development. Jul 9, 2017
geometry.c Used more descriptive variable names in get_center(). Additionally, used Jul 13, 2017
geometry.h Used jbwm_get_display_size() throughout for display size access. Jul 3, 2017
jbwm.1 Updated copyright year to 2017. Jan 1, 2017
jbwm.c Made shape and title bar support mandatory to ease development. Jul 9, 2017
jbwm.h Defined jbwm_init_screens, a recursive version of jbwm_init_screen. R… Jun 16, 2017
key_combos.h Generated JBWMKeys from keys.txt using keys.scm. Reformatted libconve… Jul 7, 2017
key_event.c Renamed cond_client_to_vdesk to cond_set_vdesk. Oct 21, 2017
key_event.h Moved key definitions to JBWMKeys.h. Moved key event processing to ke… May 9, 2017
key_masks.c Moved key mask storage to key_masks module. Created appropriate acces… May 9, 2017
key_masks.h Moved key mask storage to key_masks module. Created appropriate acces… May 9, 2017
keys.c Added const qualifier to grab_r()'s k. Jul 16, 2017
keys.h Used xlib's screen structure where possible. Used the default GC within May 22, 2017
keys.scm Reindented. Jul 21, 2017
keys.txt Generated JBWMKeys from keys.txt using keys.scm. Reformatted libconve… Jul 7, 2017
log.h Updated copyright year to 2017. Jan 1, 2017
macros.h Squashed 'libjb/' content from commit 8798653 Jul 17, 2017
main.c Removed unreachable code. Jul 10, 2017
max.c Unified JBWMClient::JBWMClientOptions::no_border and JBWMClient::border, Jul 7, 2017
max.h Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
move_resize.c Added comment. Jul 16, 2017
move_resize.h Fixed segmentation fault. Jun 18, 2017
mwm.c Added restrict qualifiers where possible. Defined variable o early to… Jul 10, 2017
mwm.h Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
mwm.mk Use jbwm-specific make variables for jbwm_cflags, jbwm_ldflags and ob… Oct 24, 2016
mwmproto.h Split mwm specific values into mwmproto.h. Apr 22, 2017
new.c Made ewmh support mandatory to ease development. Jul 9, 2017
new.h Removed jbwm_get_display() from jbwm_new_client(). May 6, 2017
pixel_t.h Replaced internal typedefs with library names. Dec 18, 2016
profile Track profile so that areas needing performance work may be known. Jul 3, 2017
screen.c Removed jbwm_get_current_root() and jbwm_get_current_xlib_screen(). Jul 7, 2017
screen.h Removed jbwm_get_current_root() and jbwm_get_current_xlib_screen(). Jul 7, 2017
screenshot.png Updated screenshot to reflect current state of development. Jan 1, 2017
select.c Made ewmh support mandatory to ease development. Jul 9, 2017
select.h Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
shape.c Unified JBWMClient::JBWMClientOptions::no_border and JBWMClient::border, Jul 7, 2017
shape.h Made shape and title bar support mandatory to ease development. Jul 9, 2017
snap.c Unified JBWMClient::JBWMClientOptions::no_border and JBWMClient::border, Jul 7, 2017
snap.h Store a copy of the display pointer in each client at initialization.… Jun 7, 2017
snap_algorithm Split out JBWMClientManager. Preferred forward declarations to hide Dec 12, 2016
sz Add script to test size. Apr 24, 2016
title_bar.c Split out resize_title_bar(). Renamed JBWMClientTitlebar to Oct 22, 2017
title_bar.h Made shape and title bar support mandatory to ease development. Jul 9, 2017
util.c Reverted back to using dummy variable in jbwm_get_pixel() to avoid th… Jul 10, 2017
util.h Refactored out last argument, btn, from jbwm_grab_button(). Added non… May 26, 2017
vdesk.c Consolidated point of return in jbwm_set_vdesk(). Jul 14, 2017
vdesk.h Split jbwm_set_vdesk into separate vdesk module. May 24, 2017
wm_state.c Removed extra semicolons. Jul 10, 2017
wm_state.h Added const qualifier. Jul 2, 2017
xeph Added display module for storage and initialization of display. Dec 11, 2016

README.md

JBWM

Screenshot

FEATURES of JBWM

  • Virtual desktops with Meta-{1-0}
  • Tiny binary size
  • Title bar support if wanted
  • Xft support if wanted
  • EWMH support if wanted
  • Window shading with title bar
  • Code cleanups, simpler UI and key bindings
  • Use of C99 features where possible.

DIRECTION

Though jbwm features small size, its main design goal is practical usefulness. If a change increases binary size but speeds execution, development, or user interaction, then the change is more than welcome. If you want to see a feature or contribute code, let me know. I use jbwm as my primary and sole window manager, however I may not see problems that fall outside of my usage patterns, so bug reports are also much appreciated.

RELEASES

Releases are made when sufficient changes are made to the code base. Releases fixing crashes are made as soon as possible--such releases will be as tertiary point releases, starting at x.x.1, if made soon after minor releases. Such releases may be delayed if a new minor release cycle has been started, unless a bug is reported.

INSTALLATION

Edit configuration options in Makefile and config.h, then build:

	$ ./configure
	$ make
	# make install

REQUIREMENTS

  • pkgconf
  • freetype2
  • libX11

ACKNOWLEDGMENTS

evilwm, by Ciaran Anscomb evilwm@6809.org.uk. http://www.6809.org.uk/evilwm/

The original code base for this project was that of aewm by Decklin Foster. His code is very clean and, in later versions, very well commented. http://www.red-bean.com/~decklin/aewm/