Hello, Recently I have been trying to convert my modifications to sawfish into a tree/graph of Git commits; in order to improve the quality as well.
It's a very difficult task(1). Anyway, for the interested I want to provide a preview of the features/fixes in the current situation, as probably something can be understood already. I have chosen Gitorious to publish the changes. I created a project which mirrors the official SF repo, and my repo is a clone of that, with the modifications. http://gitorious.org/~mmaruska/sawfish-mirror/mmaruskas-sawfish Get the mmc-all branch, and care only about tags between it and master. I have started with the modifications to the C part, as that is more important. The changes on Gitorious are really the minimum, to get basic things working. I want to provide here some comments on the "feature branches", commit messages maybe provide more. I use the "click" focus mode --- I indeed change focus mostly by keyboard, and would hate it changed by pointer position. That means that I care a lot about correct key-event processing. Git tags divide the graph into segments and merges. Comments for the following tags try to explain the segment (sequence of commits) from previous/ancestor tag or merge up to the tag itself: * mmc-bugfixes ... only 1 real fix. * mmc-delete-window ... a different strategy to treat windows which are gone I think this fixes many bugs. * mmc-focus ... changing focus synchronized with ungrabbing ... probably goes in hand with: * mmc-keys ... several important bugfixes & _correct_ strategy for Grabs * mmc-stacking Well, this is useful for x-cycle commands. It allows the Lisp code to make any changes to the stacking-order, and "commit" the change in an optimized way --- the C part finds minimum sequence of transpositions. * mmc-start ... (coded recently, not clear how SF could work without it) ... a sensible way to start managing windows; that is ignore events generated by own actions at start-up * mmc-events (probably depends on mmc-delete-window) ... definitely not final cut :( * mmc-thk anything that relies _only_ on XCheckTypedWindowEvent is buggy for me. * mmc-cache some optimization. * mmc-selection --- setting X selection (might be useful for rewriting the selection, before using in commands) * mmc-functions .. * mmc-image ... * mmc-x.c ... some simple extensions, maybe not so useful. And some indispensable changes in this "scheme/lisp" (2): * mmc-lisp .. modifications due to the change in Grabbing strategy * mmc-ws ... my extension of the concept of viewport/workspace. For now it does not contain enhancements done by others in recent years. As always, I am reachable on #sawfish on IRC/freenode. Michal notes: (1) the modifications were made years ago, while learning Xlib/X11, and no Git was available to me. Now I try to separate the modifications into logical steps, and keep developing a tool, which rebases all the "ancestor" commits when needed. (2) My future wish for Sawfish, is to get away from librep, to some proper Scheme. As a first step I re-implemented years ago sawfish-ui using gauche (& gauche-gtk).
