Skip to content
/ sara Public
forked from gitluin/sara

Originally a fork of catwm, now an offspring of dwm with a streamlined featureset.

License

Notifications You must be signed in to change notification settings

Matrimer/sara

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sara

    .-. .-.
  ..:  |  ;,.
 (___`.|.'___)
 (   .'|`.   )
  `'/  |  \`'
    `-' `-'                                                                    hjw, ascii.co.uk/art 

What Is, Why Do

sara is a very simple and lightweight tiling window manager. Originally started with the goal of making catwm actually work, it's now a slimmed down descendant of dwm. I will try to keep the source code as small and readable as possible.

Recent Statii

  • v1.0.1 - Fixed a bug with changecurrent on unmanage triggering. It caused clients to spawn unattached and wouldn't fix itself until a view call.
  • v1.0 - Oh my god I did it.
  • v0.9.{2-9.5} - Multiple monitor support, viewall, reduced redundant variables, solved many enternotify edge cases, moveclient works by visibility, updategeom a la dwm 6.1, implemented rules, transient popup support, proper client killing, proper float stacking, code cleanup, mouse move and resize, lots of time wasted on easy (but sometimes obscure) bugs.
  • v0.8.{1-7.7} - No drw and no alpha behavior for the bar. Can send clients to just a desktop, can view multiple desktops at once, enternotify works (maybe), gaps, window borders, bar boxes removed. Code cleanup. Memory freeing fixed. buttonpress works!
  • v0.7 - The dwm way of clients has been implemented, bug-free (I think)!
  • v0.6.{0-5} - There's a bar with alpha support! Tags in the bar are updated properly by client movement, floating windows always appear raised, manual fullscreen toggling, no more swindows (the buggy version).
  • v0.5.{0-5} - Windows can be destroyed any damn way, name change, better master_size, modular layouts, gaps implemented, individual client floating behavior.
  • v0.2.{0-8} - Tagging works (no asterisks), no phantom windows, revamp of data structures, variable gap sizes, improvements to C programming (non-Xlib specific stuff), swindows are the true owners of Windows.
  • v0.1.{0-5} - It compiles, there's a cursor icon, quit()ing is functional (but at what cost?), moving clients to other desktops works, tagging to other desktops "works" (it compiles & no segfaults), there are phantom windows after removing clients from the current desktop.

Features

Modes

  • Tiling mode (master window with right-hand vertical stack)
  • Monocle mode
  • Fullscreen mode (see limitations)

Behavior

  • dwm-like: tags
  • patch-like:
    • attachaside
    • emptyview
    • hide vacant tags
    • movestack
    • pertag-like: layouts, master_size
    • singular borders
  • worst
  • Multiple monitor support!

Design Limitations

  • No support for urgency coloring in the bar, because nothing I do is urgent.
  • No ICCCM (found thanks to dylan). This is mostly felt in the lack of the applysizehints behavior that dwm has (ex. cmatrix won't redraw using larger window bounds if you give it more space via togglefs, changemsize, etc.)
  • No EWMH support, because fullscreening manually isn't so bad (see config.h).
  • One bar. I don't like to look to a particular monitor for the time, just the same spot on any monitor.
  • No unicode support. If you provide unicode characters to the bar, behavior is undefined. I get junk for symbols. You might crash. Behave yourself.
  • No support for doing things through CapsLock or NumLock.

Why Use Sara Over Other Small WM, X?

A few examples I was able to find:

  • dminiwm No status bar. No XINERAMA support. Also, some of the code: compare add_window() to the combination of manage(), attachaside(), etc.
  • berry CLI-config vs. config.h. Extremely standards-compliant. Codebase is much larger as a consequence (wm.c is 1912 SLOC).
  • monsterwm No status bar (I appreciate the UNIX philosophy adherence, though). No XINERAMA support. Not a fan of the code formatting, but not a big deal unless you're in my position/writing patches.
  • I wrote a bar that goes along with it!

Help Me (Keybindings, Installation, Etc.)!

For more information, see the wiki!

Bugs

  • N O N E T H A T I K N O W O F !

To Do

  • My own art.
  • A wiki.

If you have some particular request, don't send me an e-mail, I won't do it! Bug reports are welcome, though!

About

Originally a fork of catwm, now an offspring of dwm with a streamlined featureset.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.2%
  • Makefile 0.8%