xwm: add code to theoretically account for changes in WM_NORMAL_HINTS
[luccawm.git] / TODO
blob23c8b83e4a6cb6bb9ab54a927484271390457958
1 Tasks specified in task plan:
2 * Implement EWMH docking.
3 * Implement EWMH fullscreen hint.
4 * Implement keyboard controls.
5 * Write an Installation Guide (and probably an installation script).
6 * Write a User Guide.
8 Best-effort requirements:
9 * Respect size hints and try to respond to configure events.
10 * Do testing in common desktop environments: GNOME, KDE, XFCE.
11 * Allow some configuration (border width, focus model?)
12 * Make a package for Ubuntu.
13 * Set up a web site for continued collaboration with users and development. The project web site is not good enough for this.
15 Usability/Attractiveness:
16 * Do some usability testing.
17 * Find a better way for the user to activate the split tile operation.
18 * Get some icons for the split/close buttons.
19 * Draw more borders, and make the borders prettier.
20 * Draw a different-colored border around the active tile from the others.
21 * Provide some visual feedback when dragging/dropping windows.
22 * Provide visual feedback of which window is visible in a tile when that window is not focused.
23 * Make the focus model more consistent, motion events on titlebars should activate the tile's visible window.
25 Correctness/Misc.:
26 * Fix the "FIXME" comments in the code.
27 * Run valgrind or something similar to check for memory leaks.
28 * Implement all the stuff in the design. Some of it doesn't appear to be needed to meet the requirements, and I've been ignoring them.
29 * Check ICCCM/EWMH for correctness/features that should be implemented but aren't.
30 * Get someone who knows something about window managers and/or GTK to look at this stuff.
32 After project completion:
33 * Possibly revise the design of the window management library to contain some abstract base classes/interfaces. In particular, LuccaWindow would benefit from having separate LuccaXWindow, LuccaInternalWindow, and maybe even LuccaInternalManagedWindow classes.
34 * Set up an interface for MDI. This would test the design in weird situations (the wm root isn't the real root). It probably wouldn't be very useful otherwise.
35 * Windows port. It's not clear if this is even possible, but it'd be so cool if it were.
36 * Multiple monitors: find out what happens now and what would be sensible behavior.
37 * Really this depends on what users/potential users want.