-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
404 lines (282 loc) · 15.3 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
# $Id$ -*- outline -*-
See also doc/dev/scwm-1.0-release-todo
* Right click to get at cancel/window-selection menu during interactive-selections
-> also permit escape to cancel a window selection
-> right-click could bring up a window-list menu with a first option "Cancel"
* make nonant selection permit using only ternants --01/05/00 gjb
* constraints
** Improve error handling in constraint solver
** right-click menus for toolbar
** debug timer-hook problems
** use ternant-only selection for alignment constraints. --01/05/00 gjb
** Reorder widgets in constraint investigator --01/05/00 gjb
** make label draw visualization in constraint investigator --01/05/00 gjb
* Copyright issues -- get release from UW
* Leader windows and window groups could be made implicit
* make scwmrepl take options w/ getopt. e.g., -v for a startup message
re: documentation and apropos and autoloading of (app scwm doc) module
* Improvements to ScwmButtons
;;; o Extend ScwmButtons to permit animated icons when mouse is over button
;;; (like ui-constraints buttonbar)
;;; o Extend ScwmButtons to have a right-click menu for
;;; -> turning on/off tooltips
;;; -> changing orientation
;;; -> changing auto-orientation
* layers support for GNOME
* path-cache.scm -- test w/o zsh
* Revisit all FIXME lines
* improve look of scwm-options-dialog, expose more options.
** (copy econf's widget layout?)
** reflection module and optargs support for more information about procedures
* Integrate menus, icons, cursor-pixmaps w/ theme infrastructure
* window style options dialog ala KDE (i.e., improve the stylist module)
* face.c (add_spec_to_face_x) should use color objects, not strings, for gradients; see also colors.c (AllocLinearGradient)
* Improve esound wrapper
* Test proplist module better
* multi-window animated move/resize; scheme level slower, not-synchronous, anim. move/resize
** do this with constraint solver and a "t" variable? Super cool!
* make gravity of windows visible somehow
* Finish C-level API review, renaming things, adding getters, etc
* Finish documenting scheme procedures
* Module-global docstring, and module scanning for preferences support
* beta testing
Maciej has access to ensure it builds and runs on Linux, NetBSD, Irix,
Solaris and SunOS. On each of this try compiling and running guile-1.3.1
(should we test both w/ and w/o threads?); see BUILD-PLATFORMS
After Scwm 1.0:
* Integrate z-ordering constraints
* better dynamic linking test for platforms like HP/UX?
* Advice (like emacs) mechanism for augmenting procedures
** (Robert has done some work on this)
* interactive declarations
* rewrite configure.in
* Multi-line message windows -- maybe just use gtk for this...
* Autoloading, and ##autoload scanning
* separate frame-size and client-size; introduce client-offset window parameter
-> like fvwmscroll
* Generalize stickiness -- permit windows to appear on multiple desktops,
but not all (can we do anything funky for viewports, too?)
* Generalize stays-on-top -- Layers code from fvwm2? shadows for showing
depth? Needs to have this for GNOME support!
* overlay plane support (or grab server during constraint draws)
** http://www.motifzone.com/tmd/articles/Overlay/oplanes.html
* event rewrite
** Read about Tk's multi-event sequences:
> The relevant user-level documentation is in the bind manpage (man 3tk
> bind); in particular, the section "multi-event sequences and ignored
> events" describes how multi-event bindings are matched against
> events. The implementation is in tkBind.c:Tk_BindEvent().
-- says Carl Witty
* decorations rewrite
* finish window struct rewrite.
* split into on-demand loaded modules of primitives
Other Stuff
* Documentation stuff
** denoting user-options variables, and /**VAR markers
** extra sections in manual
*** high-level scwm introduction
*** docs on scwmexec/scwmrepl, emacs interface
*** brief intro to scheme
*** command-line arguments --done 09/07/98 gjb
** documentation strings in scwm scheme modules --done August 1998 gjb
* Organize and automate testing of scheme/tests/*.scm files
** can we use xlab? http://www.alphalink.com.au/~mvertes/xlab.html
* Constraint embedding
** Flesh out ui-constraints-classes -- Jeff N.
** Use toolbar widget, not hbox - guile-gtk is incomplete here
** Enable/disable checkboxes (instead of menu)
** animated windows to new position when resolve
** make ClVariables always connect to a scheme level object --done 09/05/98 gjb
*** Screen (for clv-s part of the pssci)
*** window (for clv-s part of the Psw-s)
*** cl-variable (for bare cl-variables)
** consider using cleaner subclassing w/ partial wrap model, instead of C-like void pointers
** virtual desktop and sticky interaction with the constraint variables
** z-order stacking constraints to replace add-hoc stays-on-top, raisewindow, lowerwindow
** See also ../cassowary/local/TODO
** rubberband-resizing fixes -- generalization of the rubberband
* Add delays for reducing the number of configurenotify events
that a client receives when being resized opaquely
* WM_ATTENTION patch for xterms (from Robert Bihlmeyer), integration with zsh instead?
* Gnome clue proposal support
* General cleanup
** more static function hidden behind modules
** pervasive use of VALIDATE macros
** fewer primitives that do work themselves
instead they should just process arguments and call C functions that do
the real work -- those C functions would then be the core of a WM library
** better naming conventions for these C-level functions
specifically, I'd like the non-primitive C-level functions to all start
with capital letters. Obviously I prefer Hungarian!
** fewer global variables, fewer function static variables
** separation of of initialization work (may be overkill)
separate init_MODULE which registers the SMOB, and
init_MODULE_LATER_WORK which needs to be called after all SMOB types
exist and the X11 connection and screen information have been
initialized. (init_MODULE functions should ideally not have an order
dependence as they do now -- especially if it's not documented, as it
isn't now).
* Primitive for XGetCommand, XrmParseCommand, XrmGetResource (see AddWindow())
* Add checks about redefining keystrokes, if not already done
* only move mouse with moving window if a keyboard command, or forced to -- allow user to control this + update man page for menustyle animated
* accelerating mouse movements w/ keyboard shortcuts
* Layers support (staysonbottom, etc.)
** constraints could do this nicely, too
* X Selection support
** Gtk have functions? Wrap Xt Instrinsics (libXt)?
* Better error handling -- this may be more of a guile problem
** more consistent use, especially abstractions for argument type checking
** Warn if ')' encountered when reading top-level -- don't die!
* Other useful primitives/procedures --08/02/98 gjb (inspired by GWM, other wms)
** (meminfo) ; Return string describing memory usage information
** (current-screen), (screen-count)
** (list-of-screens) ; list of managed screens (multi-screen support is iffy?)
** (last-key) ; return last key pressed
** (set-mouse-acceleration! ACCEL), (set-mouse-acceleration-threshold! PIXELS)
** (set-colormap-focus! WINDOW) -- rename set-colormap-focus! and colormap-focus to [set-]colormap-focus-policy
** (window-client-size) (window-client-position) (window-client-borderwidth) ;dimensions for the client (application top-level window, not the wm frame)
** (window-user-set-position? WIN), (window-user-set-size? WIN) ; tell if user specified position/size on command line
** (window-program-set-position? WIN), (window-program-set-size? WIN) ; tell if client programmatically specified position/size on command line
- I thought I added these! Will fix ASAP - Maciej
** (windows-at-position X Y), (windows-at-virtual-position X Y) ; return in stacking order
- Could just be an abstraction on top of get-stacking-order (see above) - MS
** visibility change hooks (fully-obscured, partially-obscured, unobscured) -- subsumed by event rewrite --08/07/98 gjb
* Message (size/position) window needs to be more dynamic, customizable
** permit control of its position
** nestable stack of these for displaying messages
* administrative b.s.
** cvsweb
** gnats for problem reporting
* Memory profiling -- instrument NEW and FREE and keep track of
alloc/dealloc to see where the memory is going... guile support for this?
* getters for setter functions
* Better error handling system -- gettext?
* color scheme wrappers need reference counting; whole rewrite like image?
* replace ColorPair struct w/ scheme-bject based
* New event handling mechanism
** event objects?
** event binding objects?
* Menu functionality
** placement of side-menus 'top, 'middle, 'bottom (Todd Larason?)
** existence testing for menu items
** side images should have optional alignment to top, center, or bottom
** pie menus
** auto splitting
** sticky menus (like button-bar)
** cacade-menu vs. popup-menu
** make-menu-item, make-menu
** horizontal vs. vertical vs. matrix
** auto-cascade vs. auto-matrix when too long
** reverting mouse position when only keyboard used
** extra-information list of properties (e.g, options for drawing, behaviour)
** animation
** keyboard short cuts using the new event model
** smarter placement of menus that is aware of the context of the popup-menu (or give args to popup-menu so button decorations can do inform popup-menu of a left edge or right edge constraint)
** pinup menus? e.g. like the button bars
** multi-columns?
** horizontal?
** keyword argument checking -- give me errors instead of silently failing --done!
** get a line number! -- done!
** Don't crash and burn so often -- done!
** keep trying on .scwmrc especially! -- done!
* New threads stuff & widget embedding -- GTk?
* Add a hook to the scwm_error handler routine passing the request error and event type; provide a module to make these human readable -- see X-error-describe
* scwm.h has some stuff that belongs in window.h; separate these out better
* add_window.c, borders.c seem to duplicate some functionality
** figure out what each should do and remove extraneous stuff
** modularize the window decorations as C functions
* figure out dynamic loading issues
** what is guile's support for this?
** test with the drawmenu.c functions
** menu objects should be able to specify a .o file containing the functions they want to use to do the drawing
* Write some graphical reconfiguration tools.
* Interactive move/resize should permit using a real color, not just an xor-value, as an option (hard w/o an overlay plane)
* Quote key feature -- like C-q in Emacs, C-v in shells
* rewrite of remaining copyrighted code to allow release under GPL
* Refine undo feature
** DONE STUFF
* GNOME icons are not positioned --09/29/99 gjb
* use ms, not usec for timer hooks --09/26/99 gjb
* Rename scwm/scwm directory to scwm/src --09/26/99 gjb
* quoting keystroke support-- must ungrab keystrokes or do something w/ synch grabbing
* Web Link to bug tracker
* XTest module
* Make sure that scwm and guile-gtk interoperate reasonably well;
provide some example uses of guile-gtk for scwm.
** ask-string implementation
** guile-gtk imitation of fvwm-buttons
* Improve the gravity handling stuff.
** Respect gravity on program resize
** Respect gravity on resize-to
** Let user get/set gravity.
* Support for custom cursors --done 07/03/99 gjb
** (keycode->keysym KEYCODE), (keysym->keycode KEYSYM) --07/04/99 gjb
*** window closing hook? (upon removal of the window?) -- done 09/17/98 gjb
*** (with-window WINDOW) to make WINDOW be the implicit target of (get-window) primitive -- done 09/17/98 gjb
Maybe should have set-window-context! and window-context routines that with-window is just a syntax around --09/02/98 gjb
*** (window-shaped? WINDOW), (window-icon-shaped? WIN) --done 09/02/98 gjb
*** (rotate-cut-buffers) --done 09/02/98 gjb
*** (invert-color COLOR) ; return a new color by inverting COLOR --done 09/02/98 gjb
*** (elapsed-time) ; get running time of scwm --done 09/02/98 gjb
*** (X-resource-get NAME CLASS), (X-resource-put NAME VALUE) --done 08/07/98 gjb
*** (window-client-machine-name WINDOW) ; name of host on which client is running -- done --08/05/98 gjb
*** (make-string-usable-for-resource-key STRING) ; replace [.*& ] with _'s -- use regexp --done [in flux] 08/05/98 gjb
*** (lower-window-below LOWERWINDOW BELOWWINDOW) ; lower LOWERWINDOW to just below BELOWWINDOW done --08/02/98 gjb
*** (raise-window-above RAISEWINDOW ABOVEWINDOW) ; (these two in terms of restack-windows) done --08/02/98 gjb
*** (color->string COLOR) ; return an X11 string representation for COLOR (e.g., #cc88cc) done --08/02/98 gjb
*** (get-wm-command WIN) ; get WM_COMMAND property (in terms of window-xproperty) -- done [in flux] 08/05/98 gjb
DONE --04/14/99 gjb
* generalize select-window to permit proc to be called when would-be-selected win changes
* Add session manager support
** TEST IT! Add hooks to scheme code for various messages, etc.
*** Robert said he could do this
** configure test for libSM, libICE, link with -lSM -lICE and #define XSM
** #include <X11/SM/SMlib.h>
** initialization routines in scwm-smc.c
** call initSM() from scwm.c
** main loop processing of ICE messages, i/o multiplexing w/ select
* Fix up style handling a bit; make more convenient ways to match
styles only on one of resource class/resource instance/ window title,
and add convenient ways to match on certain other things.
* Promote generally useful things from flux.scm to somewhere supported
* use real hook for auto-raise module (window-focus-change-hook)
* window-group feature (at scheme level) for applying operations to multiple windows
* Done for scwm 0.8:
* Add a `get-stacking-order' primitive -- renamed `list-all-windows-in-stacking-order'
** returns the window list in the stacking order. done --08/03/98 gjb
* Make lsm file -- [needs final update of file size] done --08/04/98 gjb
* Done:
* Fix Perry Metzger's long-standing bug with all the timing-related
things on NetBSD. --8/31/98 gjb
- Implement error reporting and output redirection for the scwmexec
protocol, and make setting the SCWMEXEC_REQWIN property safe against
race conditions; with these, scwmrepl should be a total replacement of
the --interactive option.
- get rid of sun-headers.h -- we should just include the proper files
- Opaque resize -- afterstep and others do this --07/25/98 gjb
- use placement function for window placement (suggested by Sam Steingold <[email protected]>)
- Make scwm work with automake, and libtool where appropriate; this
should make setting up loadable modules much easier.
- Clean out all of the artifacts of the FVWM function system.
[ I think that stuff is all gone now - MS ]
- Respond to scwmsend-s via some reasonable iccm
- libICE?
- ToolTalk?
[ both of these are way too complicated, the new X properties
method is lightweight but should be able to support what
we need - MS]
- legacy module interface -- see utilities/dev/fvwm2-pager-demo
[ done, see the fvwm-module module - MS ]
- replace MyFont struct w/ scheme-object based -- font scheme wrappers
still use the MyFont garbage; clean this up [ done - MS ]
- Finish implementing (useful) Fvwm functions as Scheme procedures.
[this is mostly the style, decor, desk and path stuff,
modules should be punted.]
- Make scwm work with autoconf.
- Synthetic mouse presses
- Synthetic key presses
- Animated window shades --gjb 11/9/97
;;; Local Variables:
;;; eval: (require 'filladapt)
;;; eval: (hide-sublevels 1)
;;;