src/clfswm-autodoc.lisp (produce-all-docs): Produce a documentation for all configura...
[clfswm.git] / ChangeLog
blob67022ade5179c805fd37198a1cde25470287102e
1 2011-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
3         * src/clfswm-autodoc.lisp (produce-all-docs): Produce a
4         documentation for all configurable variables in CLFSWM.
6         * src/clfswm-layout.lisp (set-gimp-layout): Display a notify
7         window with the help on the GIMP layout.
9 2011-03-12  Philippe Brochard  <pbrochard@common-lisp.net>
11         * src/menu-def.lisp: Menu update to prevent cursor keys clash.
13         * clfswm.asd: Change compilation order to prevent undefined
14         variables.
16         * src/clfswm-internal.lisp (show-child(frame)): Handle properly
17         the show-root-frame-p parameter.
19 2011-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
21         * src/clfswm-util.lisp (move-frame, resize-frame): Do not move or
22         resize a frame when it's the current root.
24 2011-03-10  Philippe Brochard  <pbrochard@common-lisp.net>
26         * src/clfswm-internal.lisp (show-all-children): Handle properly
27         duplicated child in multipe frames.
29 2011-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
31         * contrib/volume-mode.lisp (set-default-volume-keys): Add more
32         keybindings (up/down, right/left) to raise/lower the volume.
34         * src/clfswm-layout.lisp: Add a variable border size for frames
35         and windows.
37 2011-03-08  Philippe Brochard  <pbrochard@common-lisp.net>
39         * src/clfswm-util.lisp (cut-current-child, remove-current-child)
40         (delete-current-child): Hide the current child before doing the
41         action.
43         * src/clfswm-internal.lisp (show-all-children): Hide windows not
44         in the current root before displaying those in current root.
45         Remove all hide-all unnecessary calls.
47         * src/clfswm-configuration.lisp (save-variables-in-conf-file):
48         Save only variables with a different value than there original
49         value.
51 2011-03-07  Philippe Brochard  <pbrochard@common-lisp.net>
53         * src/clfswm-info.lisp (show-config-variable): Use the new
54         defconfig method.
56         * src/clfswm-autodoc.lisp (produce-configuration-variables): Use
57         the new defconfig method.
59         * src/clfswm-configuration.lisp (create-configuration-menu):
60         Change the config system with a more lispy one and a less string
61         based one: (defconfig name value group doc).
64 2011-03-06  Philippe Brochard  <pbrochard@common-lisp.net>
66         * src/clfswm-internal.lisp (show-all-children): Simplify the
67         selection method.
68         (show-child): Display an unmanaged window whe  it's the current
69         child.
70         (show-all-children): add the ability to display all child from
71         *root-frame* and hide all those who are not in *current-root*.
72         -> remove hide-all-children when needed.
74         * src/xlib-util.lisp (move-window,resize-window): Add a
75         *color-move-window* border when moving or resizing a window.
77 2011-03-04  Philippe Brochard  <pbrochard@common-lisp.net>
79         * src/clfswm-internal.lisp (show-all-children): Perform only one
80         recusion on the clfswm tree: calculate geometry and place child in
81         one pass.
83 2011-03-03  Philippe Brochard  <pbrochard@common-lisp.net>
85         * src/clfswm-internal.lisp (show-all-children): Rethink of display
86         child order to prevent very annoying flickering.
88 2011-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
90         * src/clfswm-util.lisp (query-yes-or-no): New function.
92         * src/clfswm-configuration.lisp (reset-all-config-variables): New
93         function and menu entry.
94         (query-conf-value): Add the ability to leave the field blank to
95         reset the variable to its default value.
97 2011-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
99         * src/clfswm-configuration.lisp
100         (add-all-configuration-default-value): Add a default value to
101         configurable variables.
103 2011-02-23  Philippe Brochard  <pbrochard@common-lisp.net>
105         * src/clfswm.lisp (main-unprotected): Create the configuration
106         menu only once at startup.
108 2011-02-22  Desmond O. Chang <dochang@gmail.com>
110         * contrib/amixer.lisp: Add a volume mode inspired by the emms
111         volume package. Alsa mixer interface.
113         * contrib/volume-mode.lisp: Add a volume mode inspired by the emms
114         volume package.
116 2011-02-22 Desmond O. Chang <dochang@gmail.com>
118         * src/clfswm.lisp (main): Use ASDF:SYSTEM-SOURCE-DIRECTORY instead
119         of *LOAD-TRUENAME*. *LOAD-TRUENAME* is only bound during a call to
120         LOAD. If one eval CLFSWM:MAIN in repl, BASE-DIR will be an empty
121         string. Use ASDF:SYSTEM-SOURCE-DIRECTORY to fix it.
123 2011-02-16  Philippe Brochard  <pbrochard@common-lisp.net>
125         * src/clfswm.lisp (main-unprotected): Add a close hook. And close
126         the notify window, the virtual keyboard and the clfswm terminal by
127         default.
129 2011-02-15  Philippe Brochard  <pbrochard@common-lisp.net>
131         * src/clfswm.lisp (main-unprotected): Destroy the notify window
132         before closing the display. This fix a bug when resetting/reloading
133         clfswm.
135 2011-02-12  Philippe Brochard  <pbrochard@common-lisp.net>
137         * src/xlib-util.lisp (equal-wm-class-fun, equal-wm-name-fun)
138         (raise-window-fun, raise-and-focus-window-fun): New functions.
140         * src/config.lisp (*clfswm-terminal-cmd*): Switch from xterm to
141         urxvt.
142         (*never-managed-window-list*): Structure change to be more
143         flexible. Let the choice to focus, raise and do nothing on never
144         managed windows.
146 2011-02-09  Philippe Brochard  <pbrochard@common-lisp.net>
148         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Take
149         care of never managed windows to move or resize them if the raise
150         parameter is true.
152         * src/clfswm-internal.lisp (in-frame, in-window, in-child): New
153         functions.
155 2011-02-08  Philippe Brochard  <pbrochard@common-lisp.net>
157         * src/clfswm.lisp (main-mode): Raise or not unmanaged windows
158         following request in *never-managed-window-list*.
160 2011-02-05  Philippe Brochard  <pbrochard@common-lisp.net>
162         * *: **** Release 1102 ****
164 2011-02-05  Desmond O. Chang <dochang@gmail.com>
166         * src/keysyms.lisp: Add extended keysyms from stumpwm.
168 2011-02-01  Desmond O. Chang <dochang@gmail.com>
170         * src/clfswm-util.lisp (run-or-raise): New function (thanks to
171         Desmond O. Chang).
173         * src/clfswm-internal.lisp (with-all-*): add a nil block.
175 2011-01-28  Desmond O. Chang <dochang@gmail.com>
177         * src/clfswm-util.lisp (xdg-config-home): XDG_CONFIG_HOME should
178         be $HOME/.config by default.
180 2010-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
182         * contrib/osd.lisp (display-doc): Add another method where a
183         CLFSWM native window is used to display the key documentation.
185 2010-12-27  Philippe Brochard  <pbrochard@common-lisp.net>
187         * src/xlib-util.lisp (with-xlib-protect): Force to revert to the
188         main mode state.
190 2010-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
192         * src/clfswm-second-mode.lisp (second-key-mode): Call the second
193         mode leave function only when the generic mode was ended.
195 2010-12-08  Philippe Brochard  <pbrochard@common-lisp.net>
197         * src/clfswm-second-mode.lisp (sm-leave-function): Do not use
198         *second-mode-program* anymore.
200 2010-12-07  Philippe Brochard  <pbrochard@common-lisp.net>
202         * src/clfswm-second-mode.lisp (*second-mode-leave-function*): New
203         variable bound to a function executed (when not null) on second
204         mode leaving.
206 2010-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
208         * src/clfswm-util.lisp (find-child-under-mouse): Do not find
209         hidden windows.
211 2010-11-13  Philippe Brochard  <pbrochard@common-lisp.net>
213         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
214         Do not display the accel window for unmanaged windows.
216 2010-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
218         * src/clfswm-internal.lisp (set-current-root): Handle
219         window-parent in set-current-root.
221         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Do not
222         focus the parent child when the current root is a window.
224 2010-11-09  Philippe Brochard  <pbrochard@common-lisp.net>
226         * src/clfswm-expose-mode.lisp (expose-windows-current-child-mode):
227         New function an bindings.
229         * src/clfswm-layout.lisp (tile-layout, set-tile-layout): Fill
230         blanks if needed.
232 2010-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
234         * src/clfswm-layout.lisp (tile-layout-ask-keep-position): New
235         function to let the user choose to keep child position with
236         tile layout.
238         * src/clfswm-internal.lisp (remove-frame-data-slot): New
239         function.
241 2010-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
243         * src/clfswm-internal.lisp (frame-select-next-child)
244         (frame-select-previous-child): New functions and bindings. Select
245         the next/previous child in the current frame.
247 2010-10-31  Philippe Brochard  <pbrochard@common-lisp.net>
249         * src/clfswm-query.lisp (query-mode-complet): New function: Handle
250         completion in query-mode.
252 2010-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
254         * src/clfswm-query.lisp (query-print-string): Handle long lines
255         correctly.
257 2010-10-27  Philippe Brochard  <pbrochard@common-lisp.net>
259         * src/clfswm-expose-mode.lisp (expose-create-window): Ensure that
260         all characters are printable.
262 2010-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
264         * contrib/server/server.lisp: Load clfswm client code in the main
265         program and let the user start it with a --client command line
266         option.
268         * src/package.lisp (*main-entrance-hook*): New hook executed after
269         loading configuration file and before opening the display.
271 2010-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
273         * src/xlib-util.lisp: Remove unnecessary xlib:display-finish-output.
275         * src/clfswm-internal.lisp (show-child): Show window only if not
276         hidden.
278         * src/clfswm-keys.lisp (binding-substitute-modifier): Utility to
279         change modifiers after binding definition.
281 2010-10-21  Philippe Brochard  <pbrochard@common-lisp.net>
283         * contrib/osd.lisp: New file: OSD (On Screen Display) for
284         presentations.
286         * src/clfswm-menu.lisp (open-menu): Modularise function.
288 2010-10-13  Philippe Brochard  <pbrochard@common-lisp.net>
290         * src/clfswm-info.lisp (show-first-aid-kit): Display the essential
291         key binding in main and second mode.
293 2010-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
295         * src/clfswm-util.lisp (open-notify-window): Convert hello-window
296         functions to a more generic Notify-window system.
298         * src/tools.lisp (add-timer): Add an id to identify the timer.
300 2010-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
302         * src/tools.lisp (erase-timer): New function.
304         * src/clfswm-util.lisp (display-hello-window): Add a timer to hide
305         the hello window. Add Configuration variables.
307 2010-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
309         * src/clfswm-util.lisp (): Add an Hello window at startup.
311         * src/tools.lisp (process-timers): Add a timer system.
313 2010-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
315         * src/clfswm-query.lisp (add-in-query-string): Handle correctly
316         the mod-5 modifier.
318 2010-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
320         * src/clfswm-query.lisp (query-print-string): Change cursor color
321         and show parenthesis matching with colors (on match and on
322         errors).
324 2010-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
326         * src/clfswm-internal.lisp (show-all-children): Do not raise a
327         child when its parent is hidden.
329 2010-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
331         * src/clfswm-circulate-mode.lisp (select-next-subchild): Add the
332         possibility to circulate over subchild of the current child.
334         * src/clfswm-expose-mode.lisp (expose-all-windows-mode)
335         (expose-windows-generic): Add an escape-body function to return to
336         the original state on escape key.
338         * src/clfswm-util.lisp (bind-on-slot): Add an optional parameter
339         to bind the current child from the configuration file.
341 2010-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
343         * src/clfswm-nw-hooks.lisp (absorb-window-nw-hook): Absorb new
344         window hook: the frame absorb all new windows that match
345         nw-absorb-test frame data slot.
347 2010-09-30  Philippe Brochard  <pbrochard@common-lisp.net>
349         * src/clfswm-expose-mode.lisp (expose-create-window): Show window
350         title in accel window.
352 2010-09-29  Philippe Brochard  <pbrochard@common-lisp.net>
354         * configure: Use the Xavier Maillard clfswm script in contrib to
355         build an executable in the standard way.
357 2010-09-26  Philippe Brochard  <pbrochard@common-lisp.net>
359         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
360         New functions. Add a window on each child in the expose mode to
361         quickly select them.
363         * src/clfswm-internal.lisp (child-x, child-y, child-width)
364         (child-height): New methods to get real child coordinates.
366 2010-09-25  Philippe Brochard  <pbrochard@common-lisp.net>
368         * src/clfswm-layout.lisp (*-layout): Use child-position.
370         * src/clfswm-internal.lisp (child-position): New function.
372         * src/clfswm-expose-mode.lisp (expose-windows-mode)
373         (expose-all-windows-mode): Use a generic mode.
375         * src/xlib-util.lisp (with-handle-event-symbol): Use a filled list
376         with handle-event-fun symbols instead of inspecting clfswm
377         internals symbols on each mode change.
379         * src/clfswm-expose-mode.lisp: Move and rename present*-windows in
380         a separate clfswm-expose-mode.lisp file.
382         * src/clfswm-util.lisp (speed-mouse-right, speed-mouse-down): Use
383         screen size instead of hardcoded test coordinates.
385 2010-09-24  Philippe Brochard  <pbrochard@common-lisp.net>
387         * src/clfswm-util.lisp (speed-mouse-reset, speed-mouse-left)
388         (speed-mouse-right, speed-mouse-up, speed-mouse-down)
389         (speed-mouse-undo, speed-mouse-first-history): New functions to
390         quickly move the mouse. Implemented for the second mode.
392 2010-09-16  Philippe Brochard  <pbrochard@common-lisp.net>
394         * contrib/clfswm: Move clfswm sources to $tmp_dir if there is no
395         write permission on $clfswm_asd_path. So anybody can start clfswm
396         even if there is no write permission on the source directory.
398 2010-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
400         * contrib/clfswm: Add support to cmucl, ccl and ecl.
402 2010-09-11  Philippe Brochard  <pbrochard@common-lisp.net>
404         * src/clfswm-util.lisp (set-hide-unmanaged-window)
405         (set-show-unmanaged-window, set-default-hide-unmanaged-window):
406         New functions and menu entry.
407         (set-globally-hide-unmanaged-window)
408         (set-globally-show-unmanaged-window): New functions and menu
409         entry.
411         * src/clfswm-internal.lisp (hide-unmanager-window-p): New
412         function.
413         (show-child): Add a data slot on frame to hide or not unmanaged
414         windows.
416         * src/clfswm-corner.lisp (present-clfswm-terminal)
417         (present-virtual-keyboard): Use a function (generic-present-body)
418         instead of a macro (generate-present-body).
420         * src/clfswm-util.lisp (update-menus): List all directories and
421         subdirectories in $XDG_DATA_DIRS/applications.
423 2010-09-10  Philippe Brochard  <pbrochard@common-lisp.net>
425         * src/clfswm-corner.lisp (generate-present-body): New macro.
426         (present-clfswm-terminal, present-virtual-keyboard): Use
427         generate-present-body.
429 2010-09-09  Philippe Brochard  <pbrochard@common-lisp.net>
431         * src/clfswm-util.lisp (update-menus): Follow XDG specifications
432         instead of the non-portable Debian update-menu.
434 2010-09-07  Philippe Brochard  <pbrochard@common-lisp.net>
436         * src/clfswm.lisp (error-handler): New function do handle
437         asynchronous errors and ignore them.
438         (open-display): Install the new error-handler on display.
440 2010-09-05  Philippe Brochard  <pbrochard@common-lisp.net>
442         * src/xlib-util.lisp (with-xlib-protect): Add a
443         with-simple-restart on top of body execution.
445 2010-09-04  Philippe Brochard  <pbrochard@common-lisp.net>
447         * src/clfswm.lisp (main-loop): Protect all xlib functions with an
448         with-xlib-protect.
450         * src/xlib-util.lisp (handle-event): use with-xlib-protect only in
451         handle-event. Add a with-simple-restart to prevent a
452         clisp/new-lisp infinite loop.
454 2010-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
456         * src/clfswm-corner.lisp (present-clfswm-terminal): Make the
457         clfswm terminal working even on xterm title changes.
459 2010-08-29  Philippe Brochard  <pbrochard@common-lisp.net>
461         * src/clfswm-util.lisp (run-other-window-manager): Update for
462         clisp compatibility.
464         * src/tools.lisp (do-execute): New parameter io to change the
465         input/output method.
467         * src/clfswm-util.lisp (hide-current-child): Prevent from removing
468         the current root.
470         * src/clfswm-internal.lisp (child-member): New predicate.
471         (child-remove): New function.
473         * src/*.lisp: Use child-member and child-remove everywhere it's
474         needed.
476 2010-08-28  Philippe Brochard  <pbrochard@common-lisp.net>
478         * src/clfswm.lisp (main-loop): Ensure that all events have been
479         processed after a process-event.
481         * src/clfswm-internal.lisp (is-in-current-child-p): New function.
483 2010-08-27  Philippe Brochard  <pbrochard@common-lisp.net>
485         * src/clfswm.lisp (main-mode:configure-request): Raise the window
486         only when present on the current child and focus it accordingly.
488 2010-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
490         * src/clfswm-circulate-mode.lisp (circulate-loop-function):
491         Use is-a-key-pressed-p.
493         * src/xlib-util.lisp (is-a-key-pressed-p): New predicate.
495         * src/clfswm-keys.lisp (define-ungrab/grab): Use all values
496         returned by xlib:keysym->keycodes.
498         * src/*.lisp: Use the new child-equal-p to compare children. This
499         prevent a bug with sbcl/cmucl when the standard equal function
500         does not work with xlib:window.
502         * src/clfswm-internal.lisp (child-equal-p): New predicate.
504 2010-08-25  Philippe Brochard  <pbrochard@common-lisp.net>
506         * src/clfswm-generic-mode.lisp (generic-mode): Use an
507         xlib:event-listen before processing event with
508         xlib:process-event. This prevent a bug with CLX threaded
509         implementation like sbcl.
511         * src/clfswm.lisp (main-loop): Use an xlib:event-listen before
512         processing event with xlib:process-event. This prevent a bug with
513         CLX threaded implementation like sbcl.
515 2010-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
517         * contrib/server/key.lisp (ushell-sh): Add ccl and ecl support.
519         * src/xlib-util.lisp (compress-motion-notify): Use a loop instead
520         of an event-case.
522         * src/clfswm-internal.lisp (with-find-in-all-frames): New macro.
523         (find-parent-frame, find-frame-window, find-frame-by-name)
524         (find-frame-by-number): Use with-find-in-all-frames to search in
525         frames in the right order.
527         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Fix an
528         unwanted flickering with unmanaged windows.
530 2010-08-16  Philippe Brochard  <pbrochard@common-lisp.net>
532         * src/package.lisp: Remove event handler hooks as they're not
533         needed anymore (To replace them: use closure and define-handler).
535         * src/xlib-util.lisp (move-window, resize-window)
536         (wait-mouse-button-release): Use a generic mode.
538         * src/*.lisp: Replace the case to handle event with a more (tricky)
539         lispy  method which bind a function to each keywords associated
540         to graphics events.
542 2010-07-23  Philippe Brochard  <pbrochard@common-lisp.net>
544         * src/clfswm-util.lisp (delete-current-child): Invert bindings and
545         menu entry between delete-current-child and remove-current-child.
546         ie: Delete a child and its children in all frames by default.
548 2010-07-21  Philippe Brochard  <pbrochard@common-lisp.net>
550         * src/package.lisp: Add a placement configuration group.
552         * src/binding*.lisp: Bind control+g to escape the current action
553         like emacs.
555         * src/clfswm-internal.lisp
556         (delete-child-and-children-in-all-frames): New function and
557         binding: Second mode - Control+Delete delete the current child and
558         its children in all frames (ie: close the current child and its
559         children).
561 2010-07-20  Philippe Brochard  <pbrochard@common-lisp.net>
563         * src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy
564         the frame window and the frame gc. Close a very annoying bug when
565         cuting/pasting a frame or moving a child over frames with the
566         mouse.
568         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
569         all children in *current-root* after moving/resizing a frame.
571 2010-07-18  Philippe Brochard  <pbrochard@common-lisp.net>
573         * src/clfswm-util.lisp (delete-focus-window)
574         (destroy-focus-window): Remove child in parent frame before
575         stopping it.
577 2010-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
579         * src/clfswm-util.lisp (identify-key): Add a timeout in
580         xlib:process-event.
581         (mouse-click-to-focus-generic): Use find-child-under-mouse instead
582         of the window passed by xlib:process-event.
584         * src/xlib-util.lisp (move-window, resize-window)
585         (wait-mouse-button-release): Add a timeout in xlib:process-event.
587 2010-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
589         * src/clfswm-util.lisp (run-other-window-manager): Add the ability
590         to launch an other window manager and to return to clfswm.
592 2010-03-18  Philippe Brochard  <pbrochard@common-lisp.net>
594         * src/clfswm-layout.lisp (set-tile-space-layout): Set default
595         to 1%.
597 2009-12-15  Philippe Brochard  <pbrochard@common-lisp.net>
599         * src/clfswm.lisp (main-loop): Add a *loop-hook* parameter and a
600         loop timeout.
602         * src/clfswm-generic-mode.lisp (generic-mode): Add a loop-hook
603         parameter and a loop timeout.
605 2009-12-05  Philippe Brochard  <pbrochard@common-lisp.net>
607         * src/clfswm.lisp (main): Add an alternate configuration filename
608         parameter.
610         * load.lisp: Add a debuging code example.
612 2009-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
614         * src/clfswm-configuration.lisp (create-configuration-menu): New
615         menu to configure all clfswm variables while clfswm is running.
617 2009-11-12  Philippe Brochard  <pbrochard@common-lisp.net>
619         * src/clfswm-util.lisp (save-configuration-variables): New
620         function to save all configuration variables in clfswmrc.
622 2009-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
624         * src/clfswm-info.lisp (info-mode): Begining of mouse support in
625         info mode.
626         (set-default-info-keys): Add cursor key support in info mode.
628 2009-11-08  Philippe Brochard  <pbrochard@common-lisp.net>
630         * contrib/reboot-halt.lisp: Add a Suspend/Reboot/Halt menu in
631         contrib.
633         * src/clfswm.lisp (main): Add a read-conf-file-p parameter to
634         prevent reading the configuration file (this may be useful to
635         produce the original documentation without user modifications
636         with the rc configuration file).
638 2009-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
640         * src/bindings-second-mode.lisp (set-default-second-keys):
641         Simplification of Escape key to close/kill/remove the focus window
642         and unhide all windows.
644         * src/bindings.lisp (set-default-main-keys): Simplification of
645         Escape key to close/kill/remove the focus window and unhide all
646         windows.
648         * src/clfswm-util.lisp (ask-close/kill-current-window): Add remove
649         focus and unhide all windows capabilities.
651 2009-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
653         * contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
655 2009-07-29  Philippe Brochard  <pbrochard@common-lisp.net>
657         * src/clfswm-layout.lisp (tile-layout, tile-horizontal-layout):
658         Keep child order and don't make unnecessary child movement.
659         (one-column-layout, one-line-layout): New layouts.
661 2009-06-29  Philippe Brochard  <pbrochard@common-lisp.net>
663         * *: **** Release 0906 ****
665         * contrib/cd-player.lisp: New file to handle the CD player.
667         * contrib/xmms.lisp: New file to handle the xmms player.
669 2009-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
671         * src/clfswm-layout.lisp (set-no-layout-remember-size): New layout:
672         Maximize windows in there frame - Leave frames to there actual
673         size.
675         * src/bindings-second-mode.lisp (set-default-second-keys): Bind
676         "o" on set-open-in-new-frame-in-parent-frame-nw-hook.
678 2009-06-27  Philippe Brochard  <pbrochard@common-lisp.net>
680         * contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
682 2009-06-24  Philippe Brochard  <pbrochard@common-lisp.net>
684         * contrib/mpd.lisp: Use a standard menu.
686         * src/clfswm-info.lisp: Use a standard menu for the help-menu.
688 2009-06-22  Philippe Brochard  <pbrochard@common-lisp.net>
690         * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
692 2009-06-19  Philippe Brochard  <pbrochard@common-lisp.net>
694         * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
695         number key cleanup.
697 2009-06-18  Philippe Brochard  <pbrochard@common-lisp.net>
699         * src/config.lisp (get-fullscreen-size):  One pixel adjustment
700         (again).
702         * src/clfswm-placement.lisp (*-child-placement): One pixel
703         adjustment (again).
705 2009-06-16  Philippe Brochard  <pbrochard@common-lisp.net>
707         * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
708         Ensure that all characters are printable.
710         * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
711         sizes.
713         * src/clfswm-placement.lisp (*-child-placement): Adjust
714         coordinates to one pixel in the current child.
716 2009-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
718         * src/clfswm-query.lisp (query-enter-function): Assign font before
719         width and height calculation.
721 2009-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
723         * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
724         bannish the pointer in an arbitrary place.
726         * src/clfswm-info.lisp (info-mode): Use with-placement macro to
727         place the info window in an arbitrary place.
729         * src/clfswm-query.lisp (query-enter-function): Use with-placement
730         macro to place the query window in an arbitrary place.
732         * src/clfswm-placement.lisp: New file. Allow to place info windows
733         or query windows on an arbitrary place. Allow to bannish the
734         pointer on an arbitrary place.
736 2009-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
738         * src/clfswm-circulate-mode.lisp (reorder-child)
739         (reorder-brother): Unfocus windows before reordering children or
740         brothers.
742 2009-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
744         * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
745         the parent is a frame.
747         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
748         motion with a default modifier.
750         * src/clfswm.lisp (handle-motion-notify): Handle motion with a
751         default modifier.
753         * src/clfswm-info.lisp (info-mode): Handle motion with a default
754         modifier.
755         (info-mode): Optimization in loop function.
757 2009-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
759         * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
760         root-frame correctly.
762         * clfswm.asd: Dependency fix for clfswm-generic-mode.
764         * src/clfswm-circulate-mode.lisp (reorder-child)
765         (reorder-brother): Handle empty frames.
766         (reorder-brother): Redisplay only the parent frame of the  current
767         child.
769         * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
770         parent frame of the  current frame.
772 2009-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
774         * src/clfswm-util.lisp (frame-toggle-maximize): New function:
775         Maximize/Unmaximize the current frame in its parent frame.
777         * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
778         windows and frames in there parent frame.
780 2009-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
782         * src/*.lisp: Add support for Clozure Common Lisp (CCL).
784         * src/clfswm-circulate-mode.lisp (reorder-child)
785         (reorder-brother): Reinitialise on circulate type change
786         child to brother or brother to child.
788         * src/*.lisp (*): Use map-window instead of xlib:map-window. So
789         calls xlib:display-finish-output on each map-request. So speed up
790         the window display.
792         * src/xlib-util.lisp (map-window): New function. Call
793         xlib:display-finish-output on each map request.
795 2009-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
797         * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
798         Optimisation when drawing second mode window.
800 2009-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
802         * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
803         window redraw.
805 2009-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
807         * src/clfswm-util.lisp (run-program-from-query-string): Launch
808         command only with a return validation.
810 2009-04-22  Xavier Maillard  <xma@gnu.org>
812         * src/clfswm-query.lisp (query-string): Use a generic mode.
814 2009-04-19  Xavier Maillard  <xma@gnu.org>
816         * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
818 2009-04-18  Xavier Maillard  <xma@gnu.org>
820         * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
821         to define all other modes.
823 2009-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
825         * src/package.lisp (): Use *default-font-string* for all
826         font-string.
828         * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
830 2009-02-17  Philippe Brochard  <pbrochard@common-lisp.net>
832         * src/xlib-util.lisp (null-size-window-p): Better check of null
833         sized windows.
835 2009-02-14  Philippe Brochard  <pbrochard@common-lisp.net>
837         * src/clfswm.lisp (handle-map-request): Add a fix to manage
838         correctly fullscreen windows (SDL particularly).
840 2008-12-20  Philippe Brochard  <pbrochard@common-lisp.net>
842         * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
843         a segfault with clisp/new-clx.
845         * src/clfswm.lisp (handle-motion-notify): Add a needed window
846         argument.
848         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
849         needed window argument.
851 2008-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
853         * src/xlib-util.lisp (wait-no-key-or-button-press)
854         (wait-a-key-or-button-press): Check buttons press/release correctly"
856 2008-10-28  Philippe Brochard  <pbrochard@common-lisp.net>
858         * src/menu-def.lisp: Add children navigation menu in the movement
859         menu (select next/previous child/brother/level).
861 2008-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
863         *  *: Rename 'sister' frame to 'brother' frame.
865         * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
866         alias in a real modifier.
868         * src/package.lisp (*modifier-alias*): New list of modifier alias
869         For example: :alt is :mod-1, :numlock is :mod-2...
871         * src/tools.lisp (remove-hook): New function.
873         * src/clfswm-keys.lisp (with-capslock, without-capslock)
874         (with-numlock, without-cnumlock): New functions.
876 2008-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
878         * src/clfswm-info.lisp: Use the *binding-hook* to create info
879         keys and mouse bindings.
881         * src/bindings-second-mode.lisp: Use the *binding-hook* to create
882         second keys and mouse bindings.
884         * src/bindings.lisp: Use the *binding-hook* to create main keys
885         and mouse bindings.
887 2008-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
889         * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
890         menu opening.
892 2008-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
894         * src/menu-def.lisp: Use a menu instead of a function for the
895         standard menu.
897 2008-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
899         * src/clfswm-util.lisp (show-standard-menu): Display the standard
900         menu from the 'update-menus' command.
902 2008-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
904         * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
905         it's already grabbed.
907         * src/clfswm-internal.lisp (display-frame-info): Use configurable
908         colors and fix a bug with background.
909         (display-frame-info): Set window background when displaying info.
911 2008-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
913         * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
914         warning with clisp/new-clx.
916 2008-10-04  Philippe Brochard  <pbrochard@common-lisp.net>
918         * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
919         deleted child.
921 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
923         * *: **** Release 0809 ****
925 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
927         * src/clfswm-util.lisp (ensure-unique-name): New function and menu
928         entry.
929         (ensure-unique-number): New function and menu entry.
931 2008-09-22  Philippe Brochard  <pbrochard@common-lisp.net>
933         * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
934         hook: open the next window in a named frame.
935         (numbered-frame-nw-hook): New new window hook: open the next
936         window in a numbered frame.
938         * src/clfswm-query.lisp (query-string): Grab the keyboard in all
939         cases. So query-string can be called even in the main mode.
941         * src/clfswm-internal.lisp (show-all-children): Do not raise a
942         child by default => far less flickering.
944 2008-09-19  Philippe Brochard  <pbrochard@common-lisp.net>
946         * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
948         * src/menu-def.lisp: Change key binding for the CLFSWM menu
949         entry.
951         * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
952         is nil. (workaround on some CLX implementation).
954 2008-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
956         * src/menu-def.lisp: Add a menu to set a focus policy for all
957         frames.
959         * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
960         (all-frames-set-*-focus-policy): Set a focus policy for all
961         frames.
963         * src/clfswm.lisp (handle-enter-notify): sloppy-select
964         mode. Select a child and its parents on mouse over.
966 2008-09-03  Philippe Brochard  <pbrochard@common-lisp.net>
968         * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
969         policy -> Sloppy focus only for windows in the current frame.
970         (main-unprotected): Exit clfswm on init error (ie: when another
971         window manager is running).
973         * src/clfswm-util.lisp (reset-clfswm): New function.
975 2008-09-02  Philippe Brochard  <pbrochard@common-lisp.net>
977         * src/clfswm-menu.lisp (init-menu): New function.
979         * src/clfswm-util.lisp (reload-clfswm): New function to reload
980         CLFSWM.
981         (exit-clfswm): Rename quit-clfswm to exit-clfswm.
983         * src/clfswm.lisp (main, main-unprotected): Handle error in a
984         superior main function. Now CLFSWM can't break the X session. It
985         just reinitialize the display and run a new main loop.
987         * src/clfswm-corner.lisp: Make *clfswm-terminal* and
988         *vt-keyboard-on* global to avoid warnings when loading clfswm.
990         * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
991         (help-on-gimp-layout): Describe how to use the GIMP layout.
993 2008-09-01  Philippe Brochard  <pbrochard@common-lisp.net>
995         * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
996         main-window-right-layout. Change the keybinding for (shift)alt+tab
997         to not select windows in the main window lisst.
998         Bind F8 to add a window in the main window list.
999         Bind F9 to remove a window in the main window list.
1000         Change the focus policy to :sloppy.
1001         (set-previous-layout): Restore the previous layout, keybinding and
1002         focus policy.
1004 2008-08-31  Philippe Brochard  <pbrochard@common-lisp.net>
1006         * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
1008         * src/clfswm-layout.lisp (main-window-left-layout)
1009         (main-window-bottom-layout, main-window-top-layout): New
1010         functions.
1011         Factorize layouts in menu.
1013 2008-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
1015         * src/clfswm-layout.lisp (main-window-right-layout): A possible
1016         GIMP layout: one or more main windows on one side of the
1017         frame. Others on the other size.
1019         * src/clfswm-util.lisp
1020         (current-frame-set-click/sloppy-focus-policy): Each frame can have
1021         a different focus policy (one of :click or :sloppy).
1022         The default focus policy is set with *default-focus-policy*.
1024 2008-08-23  Philippe Brochard  <pbrochard@common-lisp.net>
1026         * src/clfswm-info.lisp (show-config-variable): New function.
1028 2008-08-19  Philippe Brochard  <pbrochard@common-lisp.net>
1030         * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
1032         * src/clfswm-info.lisp: Colored help for key binding and corners
1033         actions.
1035 2008-08-18  Philippe Brochard  <pbrochard@common-lisp.net>
1037         * src/clfswm-util.lisp (delete-focus-window)
1038         (destroy-focus-window): Remove chid only in
1039         handle-unmap/destroy-notify. Focus *current-root* only when
1040         closing/killing the current child.
1042         * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
1043         functions or corners.
1045 2008-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
1047         * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
1048         action: Hide/Unhide a terminal on mouse corner action. (By default
1049         right mouse button on the top left corner).
1051         * src/config.lisp (*never-managed-window-list*): New config
1052         variable.
1054         * src/clfswm-internal.lisp (never-managed-window-p): New function:
1055         Handle never managed window in a more simple way.
1057         * src/clfswm-corner.lisp: New file and new and more simple method
1058         to define corners actions.
1060 2008-08-15  Philippe Brochard  <pbrochard@common-lisp.net>
1062         * src/clfswm-info.lisp (info-mode): Info line can now be colored.
1064         * src/clfswm-layout.lisp (fast-layout-switch)
1065         (define-fast-layout-switch): New functions: Switch between two
1066         layouts.
1068         * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
1069         really in the second mode. So leave-second-mode can be used even
1070         in the main mode.
1072         * src/clfswm-util.lisp (switch-to-last-child): New function:
1073         Store the current child and switch to the previous one.
1075 2008-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
1077         * src/clfswm-util.lisp (display-current-window-info): Display the
1078         window id.
1079         (have-to-present-virtual-keyboard): Add a virtual keyboard corner
1080         (top right by default). By default 'xvkbd' is used.
1082 2008-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
1084         * src/xlib-util.lisp (move-window, resize-window): Compress motion
1085         events.
1087         * src/clfswm.lisp (handle-motion-notify): Compress motion events.
1089         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
1090         motion events.
1092         * src/clfswm-info.lisp (info-mode): Compress motion events.
1094 2008-06-21  Philippe Brochard  <pbrochard@common-lisp.net>
1096         * src/clfswm-internal.lisp (show-all-children): Compute geometry
1097         and selection first and then show only necessary children.
1098         (show-child): remove unneeded display-p parameter.
1100         * src/config.lisp (get-fullscreen-size): Place the frame border
1101         outside the screen (this prevent the loose of 2 pixels per
1102         directions :)
1104 2008-06-12  Philippe Brochard  <pbrochard@common-lisp.net>
1106         * src/clfswm-internal.lisp (focus-child): Algorithm change to
1107         raise only the selected child.
1109 2008-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
1111         * src/clfswm-internal.lisp (raise-p-list, show-all-children):
1112         Raise only viewable children.
1114 2008-06-06  Philippe Brochard  <pbrochard@common-lisp.net>
1116         * src/clfswm-internal.lisp (show-all-children): Always raise all
1117         displayed children. Remove all references to raise-p.
1119 2008-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
1121         * src/menu-def.lisp (child-menu): New menu entry on raise/lower
1122         child in its frame.
1124         * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
1125         second mode binding on raise/lower child in its frame.
1127         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
1128         behaviour to the new raise/lower property.
1129         Call clear-nw-hook before the rest of the hook.
1131         * src/bindings.lisp (mouse-click-to-focus-and-move-window)
1132         (mouse-click-to-focus-and-resize-window): Stop button event. This
1133         prevent a keyboard/pointer freeze.
1135 2008-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
1137         * src/clfswm-internal.lisp (frame-lower-child)
1138         (frame-raise-child): New functions to raise/lower a child in its
1139         frame.
1141         * src/clfswm-util.lisp (have-to-present-windows)
1142         (have-to-present-all-windows): New functions to have an MaxOS
1143         expose like on mouse click in screen corner.
1145         * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
1147 2008-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
1149         * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
1150         child from a choice in all frames with hidden children.
1152         * src/clfswm-info.lisp (info-mode-menu): Handle separators.
1154 2008-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
1156         * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
1157         (unhide-all-children): New functions.
1159         * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
1160         functions.
1162         * src/clfswm-util.lisp (hide/show-frame-window): new function and
1163         menu item.
1165 2008-05-23  Philippe Brochard  <pbrochard@common-lisp.net>
1167         * src/clfswm-util.lisp (rename-current-child): Do not display the
1168         frame info for a window.
1170 2008-05-20  Philippe Brochard  <pbrochard@common-lisp.net>
1172         * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
1173         frame window for the removed child and its children.
1175 2008-05-18  Philippe Brochard  <pbrochard@common-lisp.net>
1177         * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
1178         autodoc functions.
1180 2008-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
1182         * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
1183         the ROX pinboard (ie: leave it lowered in the root window as
1184         expected).
1186         * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
1187         (tile-left-layout, tile-right-layout, tile-top-layout)
1188         (tile-bottom-layout): Use all the frame space when there is only
1189         one child.
1191         * src/clfswm-internal.lisp (place-window-from-hints): Center
1192         unmanaged windows in the root screen.
1194         * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
1195         new functions.
1197 2008-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
1199         * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
1200         typo in managed types.
1202         * src/clfswm-internal.lisp (show-child): Always display frame info
1203         even if the frame is hidden.
1205         * src/xlib-util.lisp (resize-window): Use a better algorithme to
1206         resize windows.
1208 2008-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1210         * src/clfswm-util.lisp (with-movement): Display frame info for all
1211         frames in current root.
1213 2008-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
1215         * src/*.lisp: Rename 'brother' frames to 'sister' frames.
1217         * src/bindings-second-mode.lisp (define-second-key #\a): New
1218         binding on 'add-default-frame'.
1220         * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
1221         message to follow the autodocumentation process.
1223 2008-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
1225         * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
1226         "Space" to jump to a child. "B" to bind a slot on the current
1227         child.
1229         * src/bindings-second-mode.lisp: Use "Tab" instead of
1230         "Iso_Left_Tab".
1232 2008-05-07  Philippe Brochard  <pbrochard@common-lisp.net>
1234         * src/clfswm-util.lisp (find-child-under-mouse): Take care of
1235         unmanaged (hidden) windows.
1237         * src/clfswm-internal.lisp (place-window-from-hints): Give a
1238         minimal size for windows.
1239         (with-all-windows-frames-and-parent): New function.
1241         * src/config.lisp (*default-window-width/height*): New parameters.
1243         * src/clfswm-internal.lisp (place-window-from-hints): Center
1244         windows in the screen instead of in there frame.
1246         * src/bindings-second-mode.lisp (tile-space-current-frame): New
1247         binding on C-t.
1249         * src/clfswm-layout.lisp (register-layout): Intern the once name
1250         in the right package.
1252 2008-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
1254         * doc/dot-clfswmrc: Update to  follow the new clfswm way.
1256 2008-05-03  Philippe Brochard  <pbrochard@common-lisp.net>
1258         * src/clfswm-internal.lisp (set-current-child)
1259         (adapt-child-to-parent, show-child, hide-child): Handle the case
1260         where child is not a frame or a window.
1262         * src/clfswm-util.lisp
1263         (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
1264         Check if child is a frame.
1266         * src/clfswm-internal.lisp (managed-window-p): Handle the case
1267         where frame is null.
1268         (place-frame): Check if frame and parent are frames.
1270         * src/clfswm-info.lisp (info-mode): display all frame info before
1271         leaving.
1273         * src/clfswm-second-mode.lisp (second-key-mode): display all frame
1274         info before leaving.
1276         * src/clfswm-internal.lisp (display-all-frame-info): New function.
1278 2008-05-02  Philippe Brochard  <pbrochard@common-lisp.net>
1280         * src/tools.lisp (getenv): Implemented for ECL.
1281         (urun-prog): Implemented for ECL.
1283         * src/clfswm-util.lisp (identify-key): Use a double buffer to
1284         display text.
1286         * src/clfswm-query.lisp (query-string): Use a double buffer to
1287         display text.
1289         * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
1290         display text.
1292         * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
1293         New functions.
1295 2008-05-01  Philippe Brochard  <pbrochard@common-lisp.net>
1297         * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
1299         * src/menu-def.lisp: New file: move all menu definition in
1300         menu-def.lisp.
1302         * src/clfswm-layout.lisp (register-layout): Use a function instead
1303         of a macro.
1305 2008-04-30  Philippe Brochard  <pbrochard@common-lisp.net>
1307         * src/clfswm-autodoc.lisp (produce-menu-doc,
1308         (produce-menu-doc-html): New functions.
1309         (produce-doc-*): Moved to clfswm-autodoc.lisp.
1311         * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
1312         paste a child on one of its own children. (this prevent a
1313         recursive bug).
1314         (move-child-to): Rename move/copy-current-child-by to
1315         move/copy-child-to.
1316         (mouse-move-window-over-frame): New function to move the window
1317         under the mouse cursor to another frame.
1319         * src/clfswm-internal.lisp (find-child-in-parent): New function.
1321 2008-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
1323         * src/clfswm-internal.lisp (show-all-children): Display unmanaged
1324         windows only when its window parent is the current child.
1326 2008-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1328         * src/clfswm-util.lisp (manage-current-window)
1329         (unmanage-current-window): New functions: Allow to force to manage
1330         or unmanage a window by its parent frame.
1332         * src/bindings-second-mode.lisp (#\o): binded to
1333         set-open-in-new-frame-in-parent-frame-nw-hook and
1334         (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
1336         * src/clfswm-util.lisp (with-current-window): New macro.
1338         * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
1339         exposure and enter-window handle event.
1341         * src/clfswm-util.lisp (move-frame, resize-frame): Show all
1342         children for the current child after the move/resize.
1344 2008-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
1346         * src/xlib-util.lisp (resize-window): Take care of window size
1347         hints.
1349         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
1350         move/resize unmanaged windows.
1352         * src/xlib-util.lisp (move-window, resize-window): New functions.
1354 2008-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
1356         * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
1357         user choose what window type the current frame must handle.
1358         (display-current-window-info): New function.
1359         (current-frame-manage-all-window-type)
1360         (current-frame-manage-only-normal-window-type)
1361         (current-frame-manage-no-window-type): New functions.
1363         * src/clfswm-internal.lisp (managed-window-p): New function.
1365         * src/package.lisp (frame): Managed type: new frame
1366         parameter. This allow to choose what window type a frame must
1367         handle.
1369         * src/*.lisp: Rename all 'father' occurrences to 'parent'.
1371         * src/clfswm-nw-hooks.lisp
1372         (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
1374         * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
1375         function.
1377         * src/tools.lisp (ensure-printable): Return always a string even
1378         with a null string.
1380 2008-04-24  Philippe Brochard  <pbrochard@common-lisp.net>
1382         * src/config.lisp (*default-nw-hook*): New variable to change the
1383         default new window hook.
1385 2008-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1387         * clfswm.asd (clfswm): Add a dependency from
1388         clfswm-second-mode.lisp to clfswm.lisp.
1390         * src/clfswm-util.lisp (identify-key): Show the documentation for
1391         the function bound on a key.
1392         (with-movement): Move with-movement,
1393         current-frame-fill/pack/resize-*  from bindings-second-mode.lisp
1394         to clfswm-util.lisp.
1396         * src/clfswm-menu.lisp: New menu system that let user change keys
1397         or functions associated to keys.
1399 2008-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
1401         * src/clfswm-internal.lisp (show-all-children): Display-child is
1402         the first child by default. Solve a bug with father-p.
1404 2008-04-17  Philippe Brochard  <pbrochard@common-lisp.net>
1406         * src/clfswm-internal.lisp (add-frame): Add frame return the
1407         created frame.
1408         (show-all-children): Move the size computation outside the
1409         show-child part.
1411         * src/bindings-second-mode.lisp (with-movement): Redisplay only
1412         the current child.
1414         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
1415         only the current child.
1417         * src/clfswm-internal.lisp (show-all-children): New display-child
1418         parameter to display only the desired child and its children.
1419         (select-next/previous-child): Only display the current child.
1421 2008-04-14  Philippe Brochard  <pbrochard@common-lisp.net>
1423         * src/clfswm.lisp (init-display): Move the default frame creation
1424         on the default init hook.
1426         * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
1427         the main mode (for example: "1" on an azerty keyboard).
1429 2008-04-13  Philippe Brochard  <pbrochard@common-lisp.net>
1431         * src/clfswm-keys.lisp (find-key-from-code): Better handle of
1432         keysyms. Revert to old grabbing method for the main mode.
1434 2008-04-12  Philippe Brochard  <pbrochard@common-lisp.net>
1436         * src/clfswm.lisp (init-display): Add key handling on no focus
1437         window and on frame windows.
1439 2008-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
1441         * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
1442         all keys by default and replay just what is needed. No change for
1443         the second mode.
1445         * src/clfswm-keys.lisp: remove grab/ungrab main keys.
1446         (find-key-from-code): Test for shift and not shift presence.
1448 2008-04-09  Philippe Brochard  <pbrochard@common-lisp.net>
1450         * src/clfswm-internal.lisp (switch-to-root-frame): show later -
1451         new key parameter to have less flickering.
1453 2008-04-07  Philippe Brochard  <pbrochard@common-lisp.net>
1455         * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
1456         layout only one time and revert to no-layout to freely handle
1457         frames.
1459         * src/clfswm-nw-hooks.lisp
1460         (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
1461         with new created window.
1463         * src/clfswm-layout.lisp (register-layout): Now register
1464         automatically a once layout to set the layout only one time and
1465         revert to no-layout to freely handle frames.
1467 2008-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
1469         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
1470         nw-hook: Open the next window in the current frame and leave the
1471         focus to the current child.
1473 2008-04-04  Philippe Brochard  <pbrochard@common-lisp.net>
1475         * src/bindings-second-mode.lisp: Add keys definitions to
1476         bind-or-jump in the second mode.
1478         * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
1479         macro for bind-or-jump-(1|2|3...).
1481         * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
1482         arguments to function. This allow to do things like:
1483         (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
1484         are passed to my-function on key press.
1486 2008-04-03  Philippe Brochard  <pbrochard@common-lisp.net>
1488         * src/clfswm-util.lisp (bind-or-jump): New (great) function.
1490 2008-04-02  Philippe Brochard  <pbrochard@common-lisp.net>
1492         * src/clfswm-internal.lisp (child-fullname): New function
1494         * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
1495         docstring in info-mode-menu. An item can be
1496         '((key function) (key function)) or with docstring
1497         '((key function "documentation 1") (key function "bla bla") (key function))
1499         * src/tools.lisp (ensure-n-elems): New function.
1501         * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
1502         resize a frame or the window's father.
1504         * src/clfswm.lisp (init-display): Remove tile-space-layout by
1505         default on the root frame.
1507         * src/clfswm-util.lisp (move/resize-frame): Add standard event
1508         hooks handlers (map-request, configure-notify...)
1510         * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
1511         child size to 1x1.
1513 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
1515         * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
1516         or the window's father.
1518         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
1519         event only if there is a geometry change.
1520         (mouse-focus-move/resize-generic): Generic function to move or
1521         resize a frame or a window father frame.
1523 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
1525         * src/clfswm-internal.lisp (show-all-children): Return t if there
1526         is a geometry change.
1528 2008-03-30  Philippe Brochard  <pbrochard@common-lisp.net>
1530         * src/bindings.lisp (Up/Down): Swap select previous/next level.
1532         * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
1534         * src/clfswm.lisp (init-display): Create a default frame in the root frame.
1536         * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
1537         (with-all-*): Reverse the child list to manage the first child last (like in
1538         show-all-children).
1540         * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
1541         root window only if true.
1543         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
1544         root window only if *create-frame-on-root* is true.
1546         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
1547         on the root window.
1549 2008-03-29  Philippe Brochard  <pbrochard@common-lisp.net>
1551         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
1552         the current child (even if it's a window).
1554 2008-03-28  Philippe Brochard  <pbrochard@common-lisp.net>
1556         * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
1557         (mouse-click-to-focus-and-resize): New functions.
1559         * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
1560         (*-px->fl): Convert pixel coordinates to float.
1562         * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
1564 2008-03-27  Philippe Brochard  <pbrochard@common-lisp.net>
1566         * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
1567         first child.
1569         * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
1570         and hide-all-children.
1571         (raise-if-needed): New function.
1572         (show-child): Use a first-p parameter to raise windows only when they are
1573         first child.
1575 2008-03-26  Philippe Brochard  <pbrochard@common-lisp.net>
1577         * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
1578         -> less flickering.
1580 2008-03-25  Philippe Brochard  <pbrochard@common-lisp.net>
1582         * src/clfswm-info.lisp (keys-from-list): new function.
1584         * src/*: rename 'childs' in 'children'.
1586         * src/*: rename 'group' in 'frame'.
1588 2008-03-22  Philippe Brochard  <pbrochard@common-lisp.net>
1590         * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
1592 2008-03-21  Philippe Brochard  <pbrochard@common-lisp.net>
1594         * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
1596 2008-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
1598         * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
1599         Bind control+o to open the next window in a new group in the root group
1600          (as open in next window in a new workspace in 0801 version).
1602 2008-03-15  Philippe Brochard  <pbrochard@common-lisp.net>
1604         * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
1605         window.
1607 2008-03-14  Philippe Brochard  <pbrochard@common-lisp.net>
1609         * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
1610         instead of Tab for select-previous-child.
1612 2008-03-13  Philippe Brochard  <pbrochard@common-lisp.net>
1614         * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
1615         new functions.
1617 2008-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
1619         * clfswm-util.lisp (identify-key): Display the documentation
1620         associated to keys when identifying a key.
1622 2008-03-10  Xavier Maillard  <xma@gnu.org>
1624         * contrib/clfswm: Complete rewrite of the script. Detect error and
1625         act accordingly. Add command line arguments to configure the
1626         script execution. User can now choose different common lisp
1627         implementation (clisp and sbcl only), choose where to store the
1628         dumped image, where to find clfswm source.
1630 2008-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
1632         * clfswm-internal.lisp (process-new-window): Beginning of new
1633         window hook: each group have a hook to tell what he wants to do
1634         with the new created window.
1636 2008-03-08  Xavier Maillard  <xma@gnu.org>
1638         * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
1639         call the resulting executable.
1641         * clfswm.lisp (read-conf-file): Check for the user config file in
1642         XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
1643         prefered whenever possible.
1645 2008-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
1647         * clfswm-layout.lisp (*-layout): Add an optional raise-p
1648         parameter in each layout.
1650 2008-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
1652         * clfswm-util.lisp (copy/cut-current-child): Does not affect the
1653         root group.
1654         (copy/move-current-child-by-name/number): new functions
1655         (focus-group-by-name/number): new functions
1656         (delete-group-by-name/number): new functions
1658 2008-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
1660         * ************************************************************ *
1661         *: Major update - No more reference  to workspaces. The main   *
1662         structure is a tree of groups or application windows.          *
1663         * ************************************************************ *
1665 2008-02-07  Philippe Brochard  <pbrochard@common-lisp.net>
1667         * clfswm.lisp (read-conf-file): Read configuration in
1668         $HOME/.clfswmrc or in /etc/clfswmrc or in
1669         $XDG_CONFIG_HOME/clfswm/clfswmrc.
1670         (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
1671         to $HOME/.config/).
1673 2008-01-18  Philippe Brochard  <pbrochard@common-lisp.net>
1675         * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
1676         by default.
1678 2008-01-03  Philippe Brochard  <pbrochard@common-lisp.net>
1680         * clfswm-internal.lisp (find-window-group): New function.
1682         * clfswm*: Change to make clfswm run with clisp/new-clx.
1684 2008-01-01  Philippe Brochard  <pbrochard@common-lisp.net>
1686         * clfswm-util.lisp (query-show-paren): Add show parent matching in
1687         query string.
1688         (query-string): Bind control+k to delete end of line.
1690         * clfswm-second-mode.lisp (draw-second-mode-window): Display
1691         the action on mouse motion in second mode.
1693         * clfswm.lisp (handle-exposure): Redisplay groups on exposure
1694         event but do not clear the root window.
1695         (handle-configure-request): Adjust unmanaged window from there
1696         request.
1698         * clfswm-internal.lisp (process-new-window): Adjust new window
1699         with the specified hints (max/min/base width/height).
1701 2007-12-31  Philippe Brochard  <pbrochard@common-lisp.net>
1703         * clfswm.lisp (handle-configure-request): Send an Configuration
1704         Notify event. This solve a bug with xterm and rxvt who takes some
1705         times to be mapped. Now there is no delay.
1707         * bindings-second-mode.lisp (define-shell): Run programs after
1708         living the second mode.
1710 2007-12-30  Philippe Brochard  <pbrochard@common-lisp.net>
1712         * clfswm-internal.lisp (process-new-window): Do not crop transient
1713         window to group size.
1714         (adapt-window-to-group): Do not crop transient window to group
1715         size.
1717         * clfswm.lisp (handle-configure-request): Adapt just the window to
1718         its group and don't take care of the configure request. Remove the
1719         bug with the Gimp outside the group and speed up the window
1720         manipulation.
1721         (handle-exposure): Remove show-all-group on exposure event
1722         -> Speed up.
1724 2007-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
1726         * clfswm-util.lisp (circulate-group-up-copy-window)
1727         (circulate-group-down-copy-window)
1728         (circulate-workspace-up-copy-group)
1729         (circulate-workspace-down-copy-group): Prevent the copy of the
1730         same window in the same workspace.
1732         * bindings-second-mode.lisp (release-copy-selected-window)
1733         (release-copy-selected-group): Prevent the copy of the same window
1734         in the same workspace.
1736         * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
1737         (generic-pager-move-window-on-next-line): Remove the copy
1738         property.
1739         (generic-pager-move-group-on-next-workspace)
1740         (generic-pager-move-group-on-previous-workspace): Prevent the copy
1741         of the same window in the same workspace.
1743         * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
1744         (mouse-pager-copy-selected-group-release): Prevent the copy of the
1745         same window in the same workspace.
1747         * tools.lisp (setf/=): new macro to set a variable only when
1748         necessary.
1750         * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
1751         x, y... only when necessary.
1753 2007-12-28  Philippe Brochard  <pbrochard@common-lisp.net>
1755         * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
1756         new function and hook: force windows to stay in its group (solve a
1757         bug with the Gimp).
1759 2007-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
1761         * bindings-second-mode.lisp (mouse-motion): use hide-group to have
1762         less flickering when moving/resizing groups.
1764         * clfswm-internal.lisp (hide-group): new function.
1765         (show-all-group): clear-all: new parameter.
1767 2007-12-22  Philippe Brochard  <pbrochard@common-lisp.net>
1769         * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
1770         macro.
1771         * clfswm*: Color change for the pager. Typo or better description
1772         in bindings definitions. Define bindings for a qwerty keyboard by
1773         default. dot-clfswmrc show examples to switch to an azerty
1774         keyboard.
1775         License change to GPL v3.
1776         * config.lisp: new file - group all globals variables in this
1777         file.
1779 2007-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
1781         * xlib-util.lisp (hide-window): Remove structure-notivy events
1782         when hidding a window.
1784 2007-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
1786         * package.lisp (*sm-property-notify-hook*): Readded
1787         property-notify-hook in second mode.
1789 2007-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
1791         * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
1793 2007-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1795         * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
1796         Tile the current workspace with the current window on one side and
1797         others on the other (this emulate the larswm, dwm, wmii way). See
1798         the default configuration file to enable this mode by default.
1800         * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
1801         the pager.
1803 2007-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
1805         * clfswm-pager.lisp (pager-draw-window-in-group): Add
1806         ensure-printable to print windows name even with non-ascii
1807         characters.
1809 2007-05-11  Philippe Brochard  <pbrochard@common-lisp.net>
1811         * clfswm-pager.lisp (pager-explode-current-group): Create a new
1812         group for each window in group.
1813         (pager-implode-current-group): Move all windows in workspace to
1814         one group and remove other groups.
1816         * clfswm-pack.lisp (explode-group): Create a new group for each
1817         window in group.
1818         (implode-group): Move all windows in workspace to one group and
1819         remove other groups.
1821         * clfswm-util.lisp (identify-key): Remove local configuration
1822         variables and made them available for configuration from
1823         package.lisp.
1824         (query-string): idem.
1826 2007-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
1828         * netwm-util.lisp: Start of NetWM compliance.
1829         Add a Netwm client list gestion.
1831 2007-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1833         * clfswm-internal.lisp (create-group-on-request): open a new group
1834         only when the current group is not empty.
1836         * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
1837         bug with null workspace.
1839         * clfswm-pager.lisp (pager-handle-event): Add a hook
1840         system. This hooks can be changed in the user configuration file.
1842         * package.lisp: All colors and font variables are set in
1843         package.lisp and can be configured in the user configuration
1844         file.
1845         Note: If you have configured some less ugly colors (esp. for the
1846         pager) don't hesitate to let me know :)
1848         * clfswm-second-mode.lisp (sm-handle-event): Add a hook
1849         system. This hooks can be changed in the user configuration file.
1851         * clfswm.lisp (handle-event): Add a hook system. This hooks can be
1852         changed in the user configuration file (~/.clfswmrc)
1854 2007-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
1856         * clfswm-util.lisp (stop-all-pending-actions): new function: reset
1857         arrow action, open next window in new workspace/group.
1859         * bindings.lisp (stop-all-pending-actions): new binding.
1860         (open-next-window-in-new-group-once): Open the next windows in a
1861         new group (only once) or open all new windows in a new group (like
1862         others windows managers).
1864 2007-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1866         * clfswm.lisp (read-conf-file): New function to read a lisp
1867         configuration file at startup.
1868         (focus-group-under-mouse): Check if group isn't the current group
1869         ( prevent a bug with unclutter ).
1871 2007-03-02  Philippe Brochard  <pbrochard@common-lisp.net>
1873         * bindings.lisp (run-program-from-query-string): A program can be
1874         launch from a input query window.
1876 2007-03-01  Philippe Brochard  <pbrochard@common-lisp.net>
1878         * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
1880 2007-02-28  Philippe Brochard  <pbrochard@common-lisp.net>
1882         * clfswm.lisp (process-new-window): One can now open the next
1883         window in a workspace called by its number.
1885         * clfswm-util.lisp (query-font-string): Minimal editing
1886         capabilities.
1887         (eval-from-string): And an REPL in the window manager... :)
1889 2007-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
1891         * clfswm.lisp (process-new-window): One can now open the next
1892         window in a new workspace or a new group.
1894         * clfswm-pager.lisp (pager-mode): Display the next arrow action
1895         with the hidden windows.
1897         * clfswm.lisp (second-key-mode): Display the current workspace
1898         number and the next arrow action in the state window.
1900         * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
1901         the pager mode and then redisplay only the current workspace.
1903 2007-02-25  Philippe Brochard  <pbrochard@common-lisp.net>
1905         * clfswm.lisp (add-workspace): Workspaces are now numbered. So
1906         they can be focused with a keypress, sorted or renumbered.
1908 2007-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
1910         * clfswm-pager.lisp (pager-mode): Remove multiple silly
1911         pager-draw-display. This prevent a lot of flickering in the
1912         pager.
1914         * clfswm.lisp: Remove all display-force-output and replace them
1915         with only one display-finish-output in the event loop.
1917 2006-11-06  Philippe Brochard  <pbrochard@common-lisp.net>
1919         * clfswm-pager.lisp (pager-center-group): New function - center a
1920         group at the middle of the screen.
1922         * clfswm-pack.lisp (center-group): New function - center a group
1923         at the middle of the screen.
1925         * clfswm.lisp (show-group): Add a cross line under the group.
1926         (show-group): Group are showned even if fullscreened.
1927         (init-display): Add an exposure event on the root window.
1929 2006-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
1931         * package.lisp (*default-group*): Default group is the same size
1932         of a fullscreened group.
1934         * bindings*: Use shift to move, control+shift to copy.
1936         * *.lisp: Add comments for configuration or alternatives. So grep
1937         for CONFIG to see where you can configure clfswm. And grep for
1938         Alternative to use some commented code.
1940         * clfswm.lisp (second-key-mode): Use a single window to show the
1941         second mode. See for alternatives at the end of this file.
1943 2006-11-03  Philippe Brochard  <pbrochard@common-lisp.net>
1945         * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
1946         macro of key and mouse definitions.
1947         (define-define-key/mouse): Use state instead of modifiers list
1948         this fix a bug when the modifiers list is not in the rigth order.
1950         * clfswm.lisp (second-key-mode): Add a colored border in second mode.
1952 2006-11-02  Philippe Brochard  <pbrochard@common-lisp.net>
1954         * clfswm-info.lisp (info-mode): Add an info mode.
1956 2006-11-01  Philippe Brochard  <pbrochard@common-lisp.net>
1958         * clfswm.lisp (process-new-window): Change border size for
1959         transient windows.
1960         (show-all-windows-in-workspace): Unhide all windows even when the
1961         current group is in fullscreen mode.
1963 2006-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
1965         * clfswm-util.lisp (identify-key): Add an exposure handle-event to
1966         redisplay the identify window after a terminal switch.
1968         * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
1969         redisplay the pager after a terminal switch.
1971 2006-10-24  Philippe Brochard  <pbrochard@common-lisp.net>
1973         * clfswm-util.lisp (identify-key): Add a window to display
1974         the keys to identify on screen.
1976         * bindings.lisp, bindings-pager.lisp: Define same keys to
1977         move/copy groups/windows in second mode and in pager.
1979         * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
1980         drawing lags).
1981         (show-all-windows-in-workspace): unhide window before adapting it
1982         to group.
1984 2006-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
1986         * clfswm.lisp (handle-event): Revert to an older version.
1988 2006-10-18  Philippe Brochard  <pbrochard@common-lisp.net>
1990         * clfswm-util.lisp (force-window-in-group)
1991         (force-window-center-in-group): New functions for transient windows.
1993         * clfswm-pager.lisp (pager-remove-current-workspace/group):
1994         bugfix: hide all windows before removing group or workspace.
1996 2006-10-17  Philippe Brochard  <pbrochard@common-lisp.net>
1998         * bindings-pager.lisp (mouse-pager-move-selected-group)
1999         (mouse-pager-copy-selected-group)
2000         (mouse-pager-move-selected-window)
2001         (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
2002         (mouse-pager-rotate-window-down): New functions to have mouse in
2003         pager mode.
2005         * clfswm-pager.lisp (pager-swap-window)
2006         (pager-copy-group-on-next/previous-workspace)
2007         (pager-copy-window-on-next/previous-line): New functions
2009 2006-10-15  Philippe Brochard  <pbrochard@common-lisp.net>
2011         * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
2012         (pager-move-group-on-next/previous-workspace): new functions.
2014         * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
2015         to its half size (new functions).
2017 2006-10-11  Philippe Brochard  <pbrochard@common-lisp.net>
2019         * clfswm-pager.lisp: workspaces, groups and windows can now be
2020         selectionned with the keyboard or the mouse.
2022 2006-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
2024         * clfswm-pager.lisp (pager-select-workspace-right/left):
2025         workspaces can now be selectionned with the keyboard.
2027 2006-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
2029         * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
2030         new function to remove a previous defined key or mouse combination.
2032 2006-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
2034         * clfswm.lisp (main): Check for access error in init-display.
2036         * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
2037         keycode before grabbing.
2039         * bindings.lisp: Remove nlambda and use defun to keep the function
2040         documentation with clisp.
2041         (define-shell): new macro to define shell command for the second
2042         mode.
2044 2006-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
2046         * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
2047         boggus typecase.
2049 2006-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
2051         * bindings.lisp (accept-motion): Move group bugfix in upper mouse
2052         workspace circulation.
2054         * clfswm-util.lisp (absorb-orphan-window): new function.
2056         * clfswm-keys.lisp: Keysyms support.
2058 2006-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
2060         * clfswm.lisp (show-group): Use one gc for all groups and not one
2061         per group.
2063 2006-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
2065         * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
2067         * clfswm.lisp (adapt-window-to-group): Adapt only windows with
2068         width and height outside group.
2070 2006-09-28  Philippe Brochard  <pbrochard@common-lisp.net>
2072         * clfswm.lisp: First public release.