* fvwm/fvwm2.1: Fixup wording in EWMHIconicStateWorkaround.
[fvwm.git] / docs / TODO
blobbcb3a16e3facf321b355d3b3de134573e9dc8aec
1 **********************************************************************
2                        TO-DO list for fvwm 2.xx
3 **********************************************************************
5 Please note that not everything on this list will be done, in
6 particular the ones that end in '?' which are really just meant to be
7 'think about this and perhaps investigate'.  But they are things that
8 I didn't want to lose track of.  It may periodically get out of date
9 too...
11 ----------------------------------------------------------------------
13 Cleanups:
15   - Modules should be installed with 'install-exec', rather than
16     'install-data' target.  This requires putting 'exec' in the
17     automake variable for the module directory; i.e. moduledir -->
18     moduleexecdir?
20 ----------------------------------------------------------------------
22 Bugfixes:
24   - Colormaps and xlock -install -mode blank (& swirl) interaction still
25     isn't 100% correct?
27 ----------------------------------------------------------------------
29 New stuff:
31   - Allow resizing to leave the x/y ratio intact?
33   - Multi column menus? (for LONG lists)  Or scrolling menus?
35   - Access to certain window attribs from .fvwm2rc funcs, and
36     simple if/else capabilities (or perhaps a module to do so)??
37   - Simple static variables for .fvwm2rc functions (for toggles, etc)??
39   - Resurrect StubbornPlacement style
40   - Add StickyOnDesk <number> style, to allow stickyness on certain
41     desks only, or perhaps a StaysOnDesk <num> style, to replace
42     StartsOnDesk and work with the Sticky attribute, I'm not sure...
43     Either way, multiple values need to be allowed
45   - Easy module name changes from .fvwm2rc (either using changes in
46     module exec code & rc parser, or in modules themselves)
48   - Improved FvwmPager (add/rename desktops on fly)
49   - A module that just has buttons for the active desktops, like desktop
50     switcher in dtwm (COSE).  Could be munged into FvwmPager.
51   - See if it's possible to drop windows onto the pager ala olvwm?
52   - Add option to not show sticky windows in pager.  Perhaps also add
53     ability to filter out windows based on name/class/resource?
55   - Module to X Select window Name, Class, Resource, ID, etc...??
56   - FvwmMsgLog module to pop up a log of fvwm error msgs?
58   - Support for cut in FvwmForm text fields. (It has paste.)
59   - Make FvwmForm have Resource & Class values (All modules should have
60     Class=FvwmModule and Resource=Module_name (not the alias)
62   - Add to module communications to pass titlebar & button window ids to
63     allow modules to muck with those windows (for animation, or whatever)?
65   - Implement (or at least investigate) dynamic loading of functions
66     on systems that support it?
67         AIX - load
68         Linux - dld (gnu) or dlopen (ELF)
69         SunOS, Solaris, OSF - dlopen
70         HP-UX - shl_*
71     I don't know how much of a win this is over modules though.  Less
72     portable.  Could be useful for changing border and menu styles or
73     adding complex functions to the rc language dynamically.
74       (Actually, this might be a big win for some modules, like the
75       pager, autoraise, and the preprocessor modules - it would
76       eliminate time delays in socket comm.  Idea - dynloaded modules
77       add hook functions that module comm functions invoke.  Gives
78       modules greater access to fvwm internals, although generic
79       functions should be provided to actually access them.  Both
80       types of modules, socket & dyn, could be supported
81       simultaneously?)
83   - A WindowGravity option that controlls placement direction choices
84     for SmartPlacement (and perhaps RandomPlacement)?  Perhaps make it
85     a Style option??
87   - Allow bitmap/mask files to define buttons as well?
88     (Better: new alternate def like hl(x1,y1,x2,y2) sh(x1,y1,x2,y2))
90   - Add a WaitForExec to force waiting for the last Exec command to
91     finish, or an ExecAndWait function that doesn't return until
92     command is finished (perhaps call it 'System', to match the C function)
94   - Investigate internationalization issues (handling of compound
95     text, messages placed in a message catalog, etc) to see if they
96     should be added at some point.