Timeline
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

197 check-ins using file CMakeLists.txt version d664af03d2

2013-08-04
21:30
  • Updated changelog, release notes, home page, and version.
  • Tagged as v0.2.0.
Leaf check-in: 006f915258 user: manuv tags: rel1.x, v0.2.0
19:39
Replaced ckout with rel1.x in documentation prior to 0.2.0 release. check-in: d8eada88df user: manuv tags: rel1.x
10:54
Added new documentation to version control. check-in: 8561cd9213 user: mvnathan tags: rel1.x
10:44
Updated documentation prior to 0.2.0 release. check-in: 6c304fa76f user: mvnathan tags: rel1.x
09:47
Merged from dev1.x to rel1.x in anticipation of 0.2.0 release. check-in: a7356e4e43 user: manuv tags: rel1.x
09:28
Added rectangle to minx.layout.full constructor. Leaf check-in: 49f4a20229 user: manuv tags: dev1.x
08:43
Updated design notes. check-in: 3f11394238 user: manuv tags: dev1.x
2013-08-03
01:51
Updated milestones to reflect current idea of how to proceed. check-in: 38c4e0baf0 user: manuv tags: dev1.x
00:39
Added layouts section to main API page. check-in: 2c9b74f1ab user: manuv tags: dev1.x
00:27
Updated various bits of documentation (most of it concetrated in minx.core.hooks and minx.core.layman). check-in: d1c87b1563 user: manuv tags: dev1.x
2013-08-01
19:12
  • Added some basic info about layouts to minx.core.wm doc string.
  • Updated hooks-list.wiki with info about new hooks.
  • Fixed a bug in layman.receptive_layout(): have to add layout returned by receptive_layout_hook to layouts list.
  • In layman.find(), added ability to search for layouts based on their names. (Noticed we needed this ability when writing sample code to illustrate layouts usage.)
  • Removed unnecessary warnings from minxlib::window, which were simply cluttering the log.
  • Other minor edits elsewhere.
check-in: 3740586cc4 user: manuv tags: dev1.x
2013-07-31
01:06
Minor updates to make doxygen work without warnings. check-in: 690640b8e9 user: manuv tags: dev1.x
2013-07-30
01:54
Some minor reorganization of the X event handlers:
  • Moved focus change event handlers from minx.core.xevents to minx.layout.base.
  • Removed reparent notification handler from minx.core.xevents in favour of handling the event entirely from minx.layout.base.

This should pretty much all the code that's needed for the 0.2.0 release. Now to tackle the documentation... check-in: 4dc459e610 user: manuv tags: dev1.x

00:21
Make full layout occupy entire area of its parent window. Until now, we were leaving a little space on each side for debugging; that doesn't seem necessary any more... check-in: b66fd70acf user: manuv tags: dev1.x
00:17
Added a function and default key binding to quit Minx. check-in: 33a1e31904 user: manuv tags: dev1.x
2013-07-28
14:56
  • Added support for end-user hook to create layouts before managing existing windows and entering event loop.
  • Made the display and root_windows members of the minx.core.wm class public (i.e., removed leading underscore) so that they can be accessed by the init_hook.
  • Removed unnecessary layout creation in wm.start() because the default layout logic in the layman.receptive_layout() method takes care of this already.
check-in: ac0236beec user: manuv tags: dev1.x
13:06
  • Forgotten to register exception translators for protocol errors.
  • Add exception handler for generic protocol errors in minx.core.wm event loop.
check-in: fa872bf983 user: manuv tags: dev1.x
12:49
Centralized Boost.Python converter registration in python.cc because, for example, both minxlib::display and minxlib::window return STL vectors of window objects and we would like to avoid registering duplicate converters for the same types, a situation more likely to arise when the converters are registered from the pythonize() functions of the different classes. check-in: 471330b4ef user: manuv tags: dev1.x
12:14
Fixed the sporadic recognitions of key bindings, especially the ones with modifiers. The problem turned out to be a lack of additional grabs with the various combinations of the lock modifiers; without these, the Caps Lock, Num Lock, etc. totally screw up the key binding logic because the X server doesn't even recognize them and, therefore, doesn't generate the necessary keyboard events.

Got the idea for this from a cursory perusal of the code for xbindkeys. And now (at long last) key bindings work flawlessly! Getting close to the 0.2.0 release... check-in: 17ccc163e4 user: manuv tags: dev1.x

01:29
Added support for making layouts invisible. check-in: d02dcfd679 user: manuv tags: dev1.x
2013-07-22
17:40
Added Xinerama support to minxlib::window::screen() so that it returns the screen index based on a window's location, i.e., this function now always returns the physical screen a window is on. check-in: 083960bf79 user: manuv tags: dev1.x
2013-07-19
01:39
Added compile-time check for Xinerama. check-in: 6bd2c2f038 user: manuv tags: dev1.x
2013-07-18
22:30
Added support for multi-head configurations with Xinerama. check-in: 657794f774 user: manuv tags: dev1.x
2013-07-15
18:22
Instead of checking to see if the layout's parent matches a prospective client window's parent to ascertain whether the layout can manage that window, we now check that both are on the same screen. Otherwise, for example, a layout nested within another will never return True when it is checked for receptivity. check-in: 231a2aedce user: manuv tags: dev1.x
2013-07-14
09:11
Added support for multiple screens. Next: Xinerama. check-in: 923fc7a655 user: manuv tags: dev1.x
00:02
  • Since we often need to meddle with a window's geometry, changed minxlib::window::geometry() so it returns a list rather than (an immutable) tuple.
  • Fixed a bug in minx.layout.full.configure_request() that was offsetting window placement within the layout window.
check-in: 60d774f64f user: manuv tags: dev1.x
2013-07-13
09:41
Removed hard-coded adjustment for window borders in full layout. A deceptively small requirement that ended up touching quite a bit of code! check-in: ee58a49b66 user: manuv tags: dev1.x
2013-07-10
22:16
Reworked map and unmap handlers to use layman.find() to ascertain whether or not the event's target window is a top-level window. check-in: b1689f3074 user: manuv tags: dev1.x
20:26
Moved top-level window map request handling from xevents to layout classes. check-in: 53f2e7de4d user: manuv tags: dev1.x
19:13
Moved top-level window configure request handler from xevents into the layout classes. check-in: f345bdb173 user: manuv tags: dev1.x
2013-07-09
20:33
Moved reparent notification handling from xevents to the layout related classes. check-in: 890341f86e user: manuv tags: dev1.x
2013-07-08
20:51
Added a base class for layouts. check-in: 5cf0e450c9 user: manuv tags: dev1.x
19:33
Preliminary version of a layout manager (part of the ongoing effort to refactor the code for better layout-related encapsulation/abstraction). check-in: 2fa8845df1 user: manuv tags: dev1.x
2013-06-21
19:06
Semi-fix for compound key bindings (e.g., M4-D) being ignored when non-Minx windows have focus. Had to add key press mask for these application windows. So now, at least for the terminals, these key bindings work.

However, target window still gets the key press event (e.g., a terminal window types 'd' when M4-D is pressed). Also, it doesn't work for all windows (e.g., xmessage doesn't respond). So there's still some work to be done here... check-in: bfb7417666 user: manuv tags: dev1.x

2013-06-12
02:21
Moved some of the layout code out from minx.core.wm into a newly added minx.layout.full. Event processing, however, is still concentrated in minx.core.xevents and should be refactored out so that it's in the right place.

But at least now we have some basic infrastructure for a separate layouts directory/subpackage. check-in: 0a84c4d950 user: manuv tags: dev1.x

2013-06-09
06:05
Cleaned up and documented the code a little bit. Also fixed the bug of focus not being handed off properly when a window dies (the problem was due to exceptions not being handled; logging the exceptions in the event loop quickly revealed the issue). check-in: 527f28cf40 user: manuv tags: dev1.x
2013-05-26
08:35
Preliminary support for the full layout. Code is in bad shape and there are some obvious bugs that have to be fixed. Long way to go before we can release version 0.2.0...

Next steps:

  • Code clean-up and documentation.
  • Bug fix: killing a window doesn't focus another.
  • Bug fix: some key bindings are not recognized when a window has focus.
  • Extract and abstract layout functionality currently in wm and xevents.
  • Remove hard-coded border adjustments when resizing windows to fit layout.
  • Add support for multiple screens and Xinerama.
  • End-user hooks for creating custom layouts before launching window manager.
  • Layout windows need to be transparent/invisible.
  • Documentation for all of this (design notes, HOWTO's, etc.).

That's when we'll be ready to hit 0.2.0. check-in: ab72e115ad user: manuv tags: dev1.x

00:02
Don't manage the layout window. This way, it doesn't get added to the focus list; consequently, it is never focused, which, in turn, means that killing it isn't possible via key bindings and, so, the window manager won't nuke itself like that.

Eventually, should implement layouts so that killing them doesn't take down the window manager. check-in: 0d21ae6035 user: manuv tags: dev1.x

2013-05-19
07:35
Got rid of minxlib::display::xlib() and just pass a Display* to the minxlib::window and various minxlib::event classes.

Also: various minor edits. check-in: fa47a47a48 user: manuv tags: dev1.x

05:09
Added support for setting window properties. This will allow us to mark layouts so that we can then handle X events for them properly.

Also some minor fixes to:

  • minxlib/factory.hh: figured out Boost iterator adaptor weirdness in factory_map::iterator::dereference().
  • minxlib/exception.cc: corrected a stale comment.
check-in: 024080cf2b user: manuv tags: dev1.x
2013-05-17
07:27
The first stirrings of support for layouts (finally). After much thought and some abortive attempts (never checked in), it looks like the way forward is to implement and treat layouts as windows. While this approach does not have the attractiveness of a more abstract design (wherein layouts simply manage rectangles and know nothing of actual windows), it does offer certain distinct, practical advantages:
  • Minx doesn't have to maintain internal mappings of which windows a layout is managing, their respective geometries, etc. Instead, we can simply query the X server for this info when we need it.
  • It is much easier to implement layout nesting (again because the X server already provides the necessary infrastructure for creating and managing hierarchies of windows).
  • Because layouts are simply top-level windows, entire arrangements of tiled windows can be easily layered and moved around. That is, instead of a single floating layer, we can have multiple layers.
  • Moving windows between layouts is a simple matter of reparenting the window. X will generate appropriate events, which Minx can handle to update any internal state (which is already minimal).
  • If Xinerama is available, moving windows and entire layouts across screens should be fairly straightforward to implement (useful, for example, for laptop un/docking).

Seriously, what's not to like?

Now, having touted the numerous benefits and basic soundness (genius, anyone?) of the layouts-as-windows idea, a few words about this check-in:

It begins the long and winding road leading to the grand vision described above. At this stage, of course, little of any real use is available. minxlib provides an API for creating new windows and the main window manager object uses it to create a black, top-level window the same size as the root window.

That's pretty much it; no window management, tiling, multiple screen support, etc., just yet. In fact, the layout window is just another window that Minx manages. Killing it, hilariously enough, nukes the window manager. check-in: df1a814742 user: manuv tags: dev1.x

2013-04-17
22:42
Added header comment to logo generation program. check-in: c6e6e8982d user: manuv tags: dev1.x
21:15
  • Added an Asymptote program to generate the Minx logo.
  • Updated makefile in wiki/img to generate logo.
  • Added the logo itself to version control.
check-in: dd752c8b15 user: manuv tags: dev1.x
2013-04-14
12:48
Released version 0.1.9, which has support for forcibly killing applications that claim to support the WM_DELETE_WINDOW protocol but botch it. check-in: 797b95bcc3 user: mvnathan tags: rel1.x, v0.1.9
12:33
Merged from dev1.x to rel1.x in preparation for version 0.1.9 release. check-in: cdd3b7b3cb user: mvnathan tags: rel1.x
12:26
Added support for nuking windows, i.e., killing them brutally instead of softly (in other words: bypass WM_DELETE_WINDOW). check-in: e9d8811169 user: mvnathan tags: dev1.x
11:45
Updated changelog, release notes, home page, and version number for 0.1.8 and tagged. check-in: 19551c698b user: mvnathan tags: rel1.x, v0.1.8
11:30
Merged from dev1.x to rel1.x in preparation for release of version 0.1.8. check-in: a856d91c82 user: mvnathan tags: rel1.x
11:25
Updated FAQ and Key Bindings HOWTO with examples of binding keys to the window manager's spawn function. check-in: 984a1e82af user: mvnathan tags: dev1.x
10:46
Added support for launching applications via key bindings. check-in: 6402597f91 user: mvnathan tags: dev1.x
07:25
Bumping up version number to 0.1.7 and tagging as v0.1.7. check-in: f2ef7cdaeb user: mvnathan tags: rel1.x, v0.1.7
07:20
In the previous merge, forgot to update the hooks list with details about the A-F4 key binding for killing windows. So, had to switch back to the dev1.x branch, add the relevant documentation, and then merge to rel1.x again prior to the 0.1.7 release. check-in: f7d7145b4f user: mvnathan tags: rel1.x
07:17
Documented default key binding for killing windows. check-in: 6a7820dfef user: mvnathan tags: dev1.x
07:12
Updated home page, release notes, and changelog for version 0.1.7. check-in: a77b60d09b user: mvnathan tags: rel1.x
06:42
Merged from dev1.x to rel1.x in preparation for release of version 0.1.7.

This commit also adds the updated API documentation for the stuff that changed. check-in: 8ea4412bae user: mvnathan tags: rel1.x

06:26
Added support for WM_DELETE_WINDOW protocol for killing windows. check-in: f6bbf20f61 user: mvnathan tags: dev1.x
2013-02-13
02:06
Added Doxygen comments. check-in: f9266c9f37 user: mvnathan tags: dev1.x
2013-02-12
16:28
Preliminary version of window killing support.

TODO:

  • Check for and use WM_DELETE_WINDOW protocol if supported.
  • Add Doxygen comments for new code.
check-in: 7b249f468b user: mvnathan tags: dev1.x
2013-02-10
14:52
Added a step to the release process to ensure against forgetting to update the embedded doc paths from ckout to rel1.x. check-in: ef108d4645 user: mvnathan tags: dev1.x
14:30
Updated paths to embedded documentation from ckout to rel1.x. Forgot to do this before the [ccdac4aaac|previous commit], which then was mistakenly tagged as v0.1.6 for the release.

This check-in marks the release of version 0.1.6. check-in: defde8c2a2 user: mvnathan tags: rel1.x, v0.1.6

14:18
  • Updated news section of home page, release notes, and changelog for version 0.1.6.
  • Bumped up version number to 0.1.6.
check-in: ccdac4aaac user: mvnathan tags: rel1.x
13:49
Updated API documentation on release branch prior to releasing version 0.1.6. check-in: 240004ffb3 user: mvnathan tags: rel1.x
13:42
Merged from dev1.x in preparation of release of version 0.1.6. check-in: 47bdcddb0d user: mvnathan tags: rel1.x
13:31
  • Fixed minxlib::keymap so its Doxygen documentation will be generated.
  • Added link to minxlib::keymap documentation on Doxygen main page.
  • Added _minxlib to grp_* labels for minxlib::event and minxlib::exception. Fixed reference in minxlib::display to use new label.
  • Added table showing mapping between minxlib and Xlib names for minxlib::protocol_error::failed_request_reason enum.
check-in: 4d31115cf7 user: mvnathan tags: dev1.x
12:52
Updated design notes with brief description of minxlib::keymap. check-in: aebd97de46 user: mvnathan tags: dev1.x
12:24
Updated Build and Test HOWTO: F1 is no longer the focus cycling key binding. check-in: 3e66dc5c33 user: mvnathan tags: dev1.x
12:03
Added a Key Bindings HOWTO and updated other related docs as required. Pretty much ready to release 0.1.6 now... check-in: 7b20fa1faf user: mvnathan tags: dev1.x
08:46
  • Added a FAQ about key bindings.
  • Added default key bindings to the hooks list.
check-in: 0074d5e1cd user: mvnathan tags: dev1.x
07:41
Added support for removing as well as renaming existing hooks. check-in: 5774edf933 user: mvnathan tags: dev1.x
06:39
Documented minx.core.wm.focus_next() and focus_prev(). check-in: 9a8c27eacb user: mvnathan tags: dev1.x
03:46
Ignore lock modifiers when translating key events to key bindings. Otherwise, the modifier mask used to setup key bindings will differ from the one received with key events, which messes up the key binding look-up in minxlib/keymap.cc.

For example, if Num Lock is configured as Mod2, all key events will reported with Mod2 set in case Num Lock is on. Thus, simple F1 presses will be reported and interpreted as Mod2 + F1. If there's no such key binding, Minx will ignore it; if there is such a key binding, Minx will end up executing the wrong function!

This commit solves the problem described above. check-in: 7a3edcd1c4 user: mvnathan tags: dev1.x

2013-02-09
07:17
  • Moved focus cycling code from xevents to wm.
  • Removed hard-coded F1 for focus cycling.

TODO: Document minx.core.wm.focus_next() and focus_prev(). check-in: 4aac700f62 user: mvnathan tags: dev1.x

06:31
Added support for ALT and META in key binding specification. check-in: cee77eb8a8 user: mvnathan tags: dev1.x
2013-02-08
08:12
Updated API documentation to redress the deficiency pointed out in the [afb577d64d|previous commit's] log message. check-in: 5b6e50d49a user: mvnathan tags: dev1.x
2013-02-07
09:50
Added support for key bindings. With just a little more rearranging (as recorded in wiki/todo.wiki), we should be pretty much ready to release version 0.1.6.

NOTE: Code is in sore need of documentation; many functions have none and, even worse, some of it is downright wrong! check-in: afb577d64d user: mvnathan tags: dev1.x

2013-02-03
03:34
  • Updated changelog and release notes for version 0.1.5.
  • Updated home page for version 0.1.5.
  • Bumped up version number to 0.1.5.

Tagging the release as v0.1.5. check-in: 45c8645a94 user: mvnathan tags: rel1.x, v0.1.5

03:32
Updated embedded documentation paths from ckout to rel1.x. check-in: e33d5df56f user: mvnathan tags: rel1.x
02:58
Updated API documentation for version 0.1.5. check-in: da1c34003c user: mvnathan tags: rel1.x
02:50
Merged [bca46583e9|bug fix] from development branch prior to release of version 0.1.5. check-in: c3a3c6c8d1 user: mvnathan tags: rel1.x
02:48
Caught a serious bug in pre-release testing for v0.1.5: minxlib::window::properties() should always return a map containing the "name", "icon_name", "class", and "res_name" keys. If the window in question is missing any of these properties, the value corresponding to that key should be an empty string; however, the key should always be present.

Otherwise, end-user code will fail if it doesn't check for the existence of these keys in the dictionary returned by the properties() method or fails to handle the resulting KeyError.

The problem became apparent when launching an XFCE Terminal, which creates hidden top-level windows without the above properties. The end-user manage_hook then bombs out when it examines the properties map for these hidden windows. check-in: bca46583e9 user: mvnathan tags: dev1.x

02:17
Merged from dev1.x branch in preparation for release of version 0.1.5. check-in: c68f9265d0 user: mvnathan tags: rel1.x
01:48
Corrected hooks related code snippets (have to define the hook function before passing to minx.core.hooks.hooks.add()). check-in: 808704c65d user: mvnathan tags: dev1.x
01:34
  • Added HOWTO for hooks and a page documenting currently supported hooks.
  • Updated home page to include links to above documentation.
check-in: 06f296c892 user: mvnathan tags: dev1.x
2013-02-02
22:20
Updated Doxygen documentation for the minx.core.hooks module so that all the classes in it are grouped together properly. check-in: 59835ff323 user: mvnathan tags: dev1.x
2013-02-01
08:50
Updated build and logging HOWTO's and design notes to keep up with latest developments. check-in: 665ddfdc58 user: mvnathan tags: dev1.x
07:40
Minor updates to documentation. check-in: a16d54c577 user: mvnathan tags: dev1.x
2013-01-30
08:46
Updated Fossil question. check-in: ba02d23032 user: mvnathan tags: dev1.x
08:05
Added a question briefly describing Minx's support for customization via hooks. check-in: cd709cb36d user: mvnathan tags: dev1.x
02:02
Updated simple customization question. check-in: 12928f69de user: mvnathan tags: dev1.x
01:53
Went back from 80 columns to 72 because that's easier to edit and is more readable in vi in an 80-column terminal window. check-in: 3c2c6cd929 user: mvnathan tags: dev1.x
2013-01-27
09:22
  • Added minxlib::window::properties() to return WM_NAME, WM_ICON_NAME, and WM_CLASS window properties via an STL map (which gets converted to a Python dict when passed back to Minx's Python core).
  • Souped up the documentation of some of the stuff in the minxlib/window module.
  • Added a converter in minxlib/python.hh to convert STL maps to Python dicts.
  • Updated TODO list for version 0.1.5. Now, only documentation tasks remain for the release...
check-in: 7dfd6372d0 user: mvnathan tags: dev1.x
03:13
Split monolithic minx.core.wm constructor into smaller functions to allow end-users to setup their hooks before starting the window manager. check-in: 817c3d7310 user: mvnathan tags: dev1.x
2013-01-26
10:59
Added support for short-circuiting hooks. check-in: 34f1184f36 user: mvnathan tags: dev1.x
09:47
Added ability to query minx.core.hooks for min, max, and default hook priorities and restricted piority range to [1, 100]. check-in: f5eb497218 user: mvnathan tags: dev1.x
07:46
  • Added ability to send arbitrary number of arguments to minx.core.hooks.hooks.trigger().
  • Added logging to and updated documentation in minx.core.hooks module.
  • Updated TODO list.
check-in: 52569018ac user: mvnathan tags: dev1.x
2013-01-25
08:10
Reworked minx.core.hooks.hooks.trigger() to return a list of just the hook return values rather than a list of pairs containing both the hook itself and its return value. It's not clear that we actually need the hook functions to be returned and having just the return values on hand seems more than enough (at least for now). check-in: ab8ff22e20 user: mvnathan tags: dev1.x
07:49
  • Added support for manage_hook to minx.core.xevents so that newly created windows are filtered through the manage_hook.
  • Updated documentation in minx.core.hooks module.
  • Updated TODO list for version 0.1.5.
check-in: 823d023f96 user: mvnathan tags: dev1.x
2013-01-24
22:31
Added support for triggering manage hook in minx.core.wm. check-in: 3ada943789 user: mvnathan tags: dev1.x
22:00
Added hook return value collection to minx.core.hooks.hooks.trigger(). Also fixed syntax errors in previous commit (didn't test before check-in! BAD). check-in: 745b988464 user: mvnathan tags: dev1.x
21:28
Added and updated Doxygen comments to minx.core.hooks module. check-in: c89d9cc666 user: mvnathan tags: dev1.x
2013-01-23
16:39
Added support for hook priorities. Although this feature is unused at the moment, it allows us to provide a mechanism whereby end-users can order their hooks easily without knowing exactly what hooks are currently registered.

The code seems to work fine. It needs to be documented (especially, minx.core.hooks). check-in: c8b873c392 user: mvnathan tags: dev1.x

2013-01-22
08:51
Updated TODO list for version 0.1.5. check-in: 0d0e91498a user: mvnathan tags: dev1.x
2013-01-20
04:18
  • Updated changelog, release notes, and home page for version 0.1.4.
  • Bumped up version number to 0.1.4 and tagging as v0.1.4.
check-in: b3ec43b293 user: mvnathan tags: rel1.x, v0.1.4
04:04
Updated API documentation for version 0.1.4. check-in: e17bba25c5 user: mvnathan tags: rel1.x
04:03
Merged from dev1.x branch in for version 0.1.4 release. check-in: 7818b608ef user: mvnathan tags: rel1.x
03:32
Updated documentation for core/wm.py, minxlib/python.hh, and minxlib::window.

Looks like we're ready now to release 0.1.4... check-in: 598d484968 user: mvnathan tags: dev1.x

02:08
Refactored duplicated code in minx.core.wm.wm() and minx.core.xevents._on_map_request() into a new function minx.core.wm.add_to_focus_list().

Code still needs to be properly documented before we can release 0.1.4. check-in: 7849be1f8d user: mvnathan tags: dev1.x

00:56
Added support for taking over management of extant top-level windows created before window manager is started.

Code needs to be refactored and documented. check-in: 4cfdf7dc3c user: mvnathan tags: dev1.x

2013-01-19
04:54
Minor enhancement to implementation of minxlib::display::get_top_level_windows(). check-in: c763fb2412 user: manuv tags: dev1.x
2013-01-18
03:57
Added minxlib::display::get_top_level_windows().

Next step: make minx.core.wm actually manage the returned list of windows before it goes into its event loop. check-in: ea3a1fb457 user: manuv tags: dev1.x

2013-01-14
01:03
Updated version number to 0.1.3 and tagged rel1.x branch as v0.1.3. check-in: 53b2796e0e user: mvnathan tags: rel1.x, v0.1.3
00:55
Updated changelog, release notes, and home page for version 0.1.3. check-in: 86de79e9bf user: mvnathan tags: rel1.x
00:25
Updated paths in wiki pages to rel1.x instead of ckout. check-in: a7d0bb66ce user: mvnathan tags: rel1.x
00:03
Updated Doxygen documentation for version 0.1.3. check-in: dff962c285 user: mvnathan tags: rel1.x
2013-01-13
23:45
Merged from dev1.x branch in preparation for release of version 0.1.3. check-in: 2642ae6725 user: mvnathan tags: rel1.x
12:35
Minor update to Doxygen main page. check-in: d8d136dc16 user: mvnathan tags: dev1.x
12:18
Added link to minx.version to Doxygen main page. check-in: bbc02791af user: mvnathan tags: dev1.x
12:13
Added API documentation for minx.version. check-in: 8a9d84a794 user: mvnathan tags: rel1.x
11:44
Updated API documentation for minx.core.wm to include basic info about minx.core.config. check-in: 9b1f0288f7 user: mvnathan tags: dev1.x
11:04
Updated FAQ to include link to logging HOWTO in the customization question. Also added a question about how to determine Minx's version. check-in: aa14f1c1e9 user: mvnathan tags: dev1.x
10:29
  • Added wiki/logging.wiki and updated home page to point to it.
  • Updated version 0.1.3 TODO list.
check-in: 660f7605f6 user: mvnathan tags: dev1.x
07:12
Updated design notes with info on the minxlib::logging module. check-in: 624b2d1903 user: mvnathan tags: dev1.x
2013-01-08
08:14
Updated TODO list with pending tasks for version 0.1.3 release. check-in: ce81e1d323 user: mvnathan tags: dev1.x
07:46
  • Added a filter to the Minx logging configuration to remove the "minx." prefix from logger names and to remove the line numbers and function names from log records generated by the minxlib module.
  • Minor fixes to logging statements in minxlib::window.
check-in: 9f6a0d8538 user: mvnathan tags: dev1.x
2013-01-07
10:03
X's focus change events are weird and unpredictable! So, instead of relying on focus change events to take care of changing the border colors and sizes of active and inactive windows, we go back to setting border attributes in the map, unmap, and key press handlers defined in minx.core.xevents.

This solves both these bugs that were introduced with the switch to window border updates via focus handlers:

  • [Focus reverts to root]
  • [Terminal Window Border Flashes on Focus Changes]
check-in: b6d0c49c75 user: mvnathan tags: dev1.x
2013-01-06
17:10
Removed debug statement from minxlib::window constructor. These objects are created often and clutter the log, making it confusing to follow what's going on. check-in: 672c81b799 user: mvnathan tags: dev1.x
14:28
Changed boilerplate macro name for declaring subclasses of minxlib::protocol_error. check-in: 70478868f4 user: mvnathan tags: dev1.x
14:23
Added logging statements to minxlib::event. check-in: 347c09b6d0 user: mvnathan tags: dev1.x
14:05
Added logging statements to minxlib::window. check-in: 3f2784306b user: mvnathan tags: dev1.x
13:35
Added link to documentation of minxlib::logging to main Doxygen page. check-in: 05e1b738ea user: mvnathan tags: dev1.x
13:24
Added INFO, WARNING, ERROR, and CRITICAL levels to minxlib's logging API. Also minor updates to logging in minxlib::display. check-in: f342f3b2e1 user: mvnathan tags: dev1.x
12:46
Added a minxlib::logging class to make Python-based logging available to all minxlib classes. check-in: 247129e98b user: mvnathan tags: dev1.x
02:01
Since it is used in quite a few files, moved the repeated definitions of the py namespace alias into minxlib/python.hh. check-in: ba05abb47b user: mvnathan tags: dev1.x
2013-01-05
11:14
Quick experiment to make logging work in minxlib. Have to refactor and generalize this into a minxlib::logger class that provides an easy-to-use logging API for all the minxlib classes. check-in: 9a0bffac99 user: mvnathan tags: dev1.x
09:40
Minor change to log message format: put the line number between module name and function name instead of in parentheses after function name. check-in: ab0cde9262 user: mvnathan tags: dev1.x
08:21
Minor updates to minx.core logging. check-in: 78baac72b2 user: mvnathan tags: dev1.x
04:23
Added logging statements to minx.core.xevents. check-in: 4eb81ac0b6 user: mvnathan tags: dev1.x
2013-01-04
10:25
Added logging statements to minx.core.window. check-in: 00f9384f97 user: mvnathan tags: dev1.x
08:46
Added documentation for the logging support in minx.core.config. check-in: dc55b63c0b user: mvnathan tags: dev1.x
06:49
Added convenience functions for configuring logging. check-in: 008f76e7d0 user: mvnathan tags: dev1.x
06:48
Added logging directives to minx.core.wm. check-in: af2cb9fae7 user: mvnathan tags: dev1.x
2013-01-03
09:06
Preliminary support for logging. check-in: 9e33531336 user: mvnathan tags: dev1.x
2013-01-01
14:37
Updated version number to 0.1.2 and tagged rel1.x branch as v0.1.2. check-in: 561f550d43 user: mvnathan tags: rel1.x, v0.1.2
14:35
Updated changelog, release notes, and news section of home page for version 0.1.2. check-in: 77422af4a9 user: mvnathan tags: rel1.x
14:01
Added Doxygen-generated pages for minx.core.config. check-in: 3e09ff1314 user: mvnathan tags: rel1.x
13:57
Built documentation for version 0.1.2. check-in: 8e223b481b user: mvnathan tags: rel1.x
13:51
Merged from dev1.x in preparation for release of version 0.1.2. check-in: a369194f6e user: mvnathan tags: rel1.x
13:33
Updated build and test instructions to include dual-monitor testing with Xdmx. Also added various caveats. check-in: 768c2c9796 user: mvnathan tags: dev1.x
10:13
Updated design notes to show the minx.core.config object. check-in: 4d572e2324 user: mvnathan tags: dev1.x
09:24
Updated FAQ to include information about customizing border color and size. check-in: f7a9609a65 user: mvnathan tags: dev1.x
2012-12-30
12:14
Added support for specifying the border size of active and inactive windows. check-in: 479e3b6c30 user: mvnathan tags: dev1.x
10:52
Added attributes to minx.core.config for specifying the border color of active and inactive windows. check-in: 0314117942 user: mvnathan tags: dev1.x
09:42
Added link to minx.core.config in the API docs main page. check-in: 76012416f7 user: mvnathan tags: dev1.x
09:36
Added a config object to allow users to make simple customizations to the window manager. check-in: 59c3d9a543 user: mvnathan tags: dev1.x
01:06
  • Updated wiki/milestones.wiki to reflect Minx's ability to already work across multiple screens and a new sequence of patches in the 0.1.x series.
  • Updated wiki/todo.wiki to show steps for getting to version 0.1.2.
check-in: 65e4116e4a user: mvnathan tags: dev1.x
2012-12-27
09:34
Updated version number to 0.1.1 and tagged as v0.1.1. check-in: 0f94c53446 user: mvnathan tags: rel1.x, v0.1.1
09:29
  • Added new API docs to release branch.
  • Added missing images for Doxygen-generated pages.
check-in: 11ea76c728 user: mvnathan tags: rel1.x
09:07
Updated changelog, release notes, and home page for release of version 0.1.1. check-in: 402c839c4b user: mvnathan tags: rel1.x
07:53
Merged from dev1.x for version 0.1.1 release. check-in: db8059588f user: mvnathan tags: rel1.x
07:38
Worked around Doxygen's reluctance to generate documentation for package-level functions by defining a group instead. check-in: fd68c3530a user: mvnathan tags: dev1.x
2012-12-26
22:37
Updated design notes and object diagram to reflect the latest situation. check-in: 45b12c8f06 user: mvnathan tags: dev1.x
09:15
Updated TODO list to be current for version 0.1.1 release. check-in: fb60e13e46 user: mvnathan tags: dev1.x
08:49
Added change_window_attributes to minxlib's exception hierarchy to be able to catch and ignore the protocol error that results from attempting to set a destroyed window's border color.

Should now be ready to release 0.1.1. check-in: c016b10619 user: mvnathan tags: dev1.x

07:33
  • Added focus_in and focus_out events to minxlib's event hierarchy.
  • Reworked focus-related border color change so that the minx.core.window module does it via handlers for the above events.

NOTE: This mostly works. But there's a problem every now and then when a window is destroyed and, in between the resulting unmap and destroy notifications, is a focus_out event that causes a BadWindow X_ChangeWindowAttributes protocol error when the focus_out handler tries to set the border color of the window (which has been destroyed) to the inactive border color.

To fix this, we need a minxlib.change_window_attributes protocol error that the event loop can ignore. That should be coming up in the next check-in (or thereabouts)... check-in: 1b644ead0b user: mvnathan tags: dev1.x

05:58
Moved the map and unmap notification handlers from minx.core.window to minx.core.xevents. Top-level windows should not be deciding the window manager's focus policy by themselves. check-in: 6d825aab1c user: mvnathan tags: dev1.x
03:34
Souped up minx.core.window.exists() to accept parameters of different types and updated its callers accordingly. check-in: 7588b7ec0e user: mvnathan tags: dev1.x
03:20
Revamped the hooks infrastructure to make it available more widely within the system:
  • Added several relevant X event handlers to minx.core.window. This architectural change will eventually allow focus border color changes to be handled by minx.core.window, thus, ensuring that we don't end up with one module (viz., minx.core.xevents) that becomes a do-all monstrosity.
  • Removed top-level window tracking from minx.core.wm. This is now done in minx.core.window.
  • Made sure that minx.core.hooks.append() doesn't create duplicate entries in the list of hooks for some key.
check-in: 16218233cb user: mvnathan tags: dev1.x
2012-12-25
23:41
Moved the triggering of event hooks from minx.core.xevents to minx.core.wm and removed xevents.handle(). check-in: aa4460ea48 user: mvnathan tags: dev1.x
23:20
Moved hooks from minx.core.xevents to minx.core.wm as a first step in making callbacks a fundamental approach to reacting to different situations all throughout the window manager. check-in: dce127dc7b user: mvnathan tags: dev1.x
03:28
Minor documentation updates:
  • Added reference to minxlib::version to Doxygen's main page.
  • Made release steps in wiki/process.wiki more accurate.
  • Minor fixes to home page.
check-in: f7e177d15d user: mvnathan tags: dev1.x
00:26
Minor documentation updates:
  • Disabled header file generation; don't really need these as end-users should, firstly, be concerned mostly with Minx's Python core and not care much about minxlib.
Secondly, only the headers are documented. Generating HTML for the code would only make sense if we wanted people to look at the implementations of different classes and functions. Minx's API docs are only for its public interfaces. If someone is interested in seeing how things are implemented, they can just look at the code in an editor (if syntax highlighting is desired, which is pretty much the only point of having Doxygen generate HTML for the source and header files).
  • Changed @code block in the minx.core.wm.wm class's doc string to a @verbatim block. Doxygen links minx.core.wm inside the code block to a non-existent file. While the verbatim block lacks the prettiness of syntax highlighting, at least it isn't pointing off to nowhere.
Note: Using a % sign does not suppress Doxygen's automatic link generation inside @code blocks. The [317806fcf7|previous check-in] made that mistake (didn't test it; just checked it in:).
check-in: 0fedf51cf2 user: mvnathan tags: dev1.x
2012-12-24
23:02
Initial implementation of window borders for visual feedback about which window is currently focused. Just need to think about whether or not to do this using FocusIn and FocusOut events, i.e., through focus-specific event handlers instead of in the map and key event handlers. Otherwise, we're almost at version 0.1.1. check-in: 317806fcf7 user: mvnathan tags: dev1.x
08:02
Updated version number to 0.1.0. This is it; should be ready now to tag and, thereby, formalize the release... check-in: a7c80f429f user: mvnathan tags: rel1.x, v0.1.0
07:56
Added Doxygen-generated API docs to rel1.x branch. check-in: deccb48d56 user: mvnathan tags: rel1.x
07:02
  • Added changelog and release notes for version 0.1.0.
  • Updated home page with a spot of news about upcoming release.
check-in: f5f318455b user: mvnathan tags: rel1.x
04:09
Added version numbering API to release branch. check-in: 6ebe6128b3 user: mvnathan tags: rel1.x
02:39
Merged version.cc detection from dev1.x branch to rel1.x to minimize future merge conflicts while retaining the ability to maintain the versioning API solely on the release branch. check-in: c51aea45aa user: mvnathan tags: rel1.x
02:35
Added release branch detection to build system to have the version number module built during releases but not in development. check-in: 4530e1c33a user: mvnathan tags: dev1.x
2012-12-23
15:49
  • Merged from dev1.x to rel1.x in preparation for release of version 0.1.0.
  • Updated home.wiki, faq.wiki, and copyright.wiki to use rel1.x instead of ckout for links to embedded doc pages.
check-in: d58d589d46 user: mvnathan tags: rel1.x
14:26
Updated wiki/build.wiki to use correct path for cloning from chiselapp.com. check-in: 939548a0fa user: mvnathan tags: dev1.x
13:12
  • Disabled the JavaScript-based search engine for the Doxygen-generated API documentation. Don't want to check-in all that stuff into the release branch.
  • Changed the Doxygen header to use a relative path to get back to the Minx home page. Should be one less conflict when merging from dev1.x to rel1.x.
  • Updated embedded doc paths in some of the wiki pages to use ckout rather than tip. These will have to replaced with rel1.x when releasing (i.e., always conflict when merging from dev to rel branch).
check-in: e27cabdf55 user: mvnathan tags: dev1.x
11:15
Minor updates to the wiki pages. check-in: aedcb854de user: mvnathan tags: dev1.x
10:42
Minor updates to Doxygen documentation. Done with this for now! Should be able to move release of version 0.1.0 soon... check-in: 5ea4b3d15c user: mvnathan tags: dev1.x
10:09
Made minx.core.hooks slightly more generic (so it's not tied to minxlib.event) and documented it. check-in: 7fd3746e37 user: mvnathan tags: dev1.x
09:39
Documented minx.core.xevents. check-in: 6688e34634 user: mvnathan tags: dev1.x
08:49
Added documentation for minx.core.focus_list. check-in: 314bc49a1f user: mvnathan tags: dev1.x
08:18
Documented minx.core.wm and minx.core.window. check-in: b51115c1ce user: mvnathan tags: dev1.x
07:04
Minor tweaks to documentation of minxlib::display and minxlib::window. check-in: 13bc1c45d5 user: mvnathan tags: dev1.x
06:40
Spruced up documentation for minxlib's exception hierarchy. check-in: c5921d190d user: mvnathan tags: dev1.x
04:01
Looks like the documentation for the minxlib event hierarchy and the object factory framework is ready. Should now move on to the minxlib exception hierarchy. And then there's all the Python stuff to document... check-in: 7d5cd79235 user: mvnathan tags: dev1.x
2012-12-22
11:02
Created a Doxygen group for the minxlib event classes so that they'd all show up listed on one page. check-in: 75e4071f63 user: mvnathan tags: dev1.x
06:43
Minor update to have each Doxygen-generated page link to the API docs main page. check-in: 0205d54e17 user: mvnathan tags: dev1.x
2012-12-21
09:49
Added a dummy/unused header file for the main page of the API docs. Also customized the Doxygen header and footer. Still nowhere near being like the Fossil look, but whatever! check-in: 627a2bd30c user: mvnathan tags: dev1.x
03:31
Added link to GPL v3 on Minx's home page. check-in: 62abb58460 user: mvnathan tags: dev1.x
03:22
Changed all the backslashes in Doxygen mark-up in the C++ headers to @ so that we're consistent with the mark-up in C++ as well as Python (could use \ in Python, but that would have to be \\; easier to just convert to using @ instead of \). check-in: 7dd81713e5 user: mvnathan tags: dev1.x
2012-12-20
10:13
Minor updates to the copyright page to fix some formatting issues. check-in: f53da7b042 user: mvnathan tags: dev1.x
09:50
  • Moved top-level COPYRIGHT file to an embedded wiki page.
  • Updated all the sources to reflect above move.
  • Added link to copyright page on Minx's home page.
  • Updated TODO list to indicate what needs to happen on the Doxygen front at this time (viz., making the API docs look like the other Fossil pages).
check-in: 395e780bc4 user: mvnathan tags: dev1.x