Documentation update
[clfswm.git] / ChangeLog
blob7075f378731d8273b29f09c8746dd51448d164cf
1 2012-09-09  Philippe Brochard  <pbrochard@common-lisp.net>
3         * src/clfswm-internal.lisp
4         (delete-child-and-children-in-all-frames): Remove all children in
5         frames and only close windows.
7         * src/*.lisp: Remove uneeded with-xlib-protect.
9 2012-09-06  Philippe Brochard  <pbrochard@common-lisp.net>
11         * contrib/wallpaper.lisp (wallpaper): create/use-background
12         simplification function.
14 2012-09-05  Philippe Brochard  <pbrochard@common-lisp.net>
16         * contrib/wallpaper.lisp: New functionality to handle backgrounds
17         on differents screen heads.
19         * contrib/toolbar.lisp (toolbar-adjust-root-size): Takes care of
20         multiple toolbar on the same root edge.
22 2012-09-04  Philippe Brochard  <pbrochard@common-lisp.net>
24         * src/clfswm-internal.lisp (show-all-children): Hide only children
25         hidden by normal windows or frames (but not :dialog,
26         :transient...).
27         (process-new-window): Remove borders for maxsize windows.
28         (show-all-children): Let the choice to always display children or
29         to optimize by hidding children not seen . The first option is
30         better with transparency support (frames behind orther frames are
31         seen). The second one is faster with many children in the same
32         frame (not seen children are not displayed).
34 2012-08-31  Philippe Brochard  <pbrochard@common-lisp.net>
36         * src/xlib-util.lisp (with-xlib-protect): Handle all Xlib errors
37         for better code protection.
39 2012-08-28  Philippe Brochard  <pbrochard@common-lisp.net>
41         * src/clfswm-expose-mode.lisp (expose-query-key-press-hook): Add
42         an option to immediately select child if they can be directly
43         accessed.
45 2012-08-25  Philippe Brochard  <pbrochard@common-lisp.net>
47         * contrib/volume-mode.lisp: Add mouse buttons actions in volume
48         mode. Add a volume button toolbar module.
50 2012-08-24  Philippe Brochard  <pbrochard@common-lisp.net>
52         * contrib/mpd.lisp: New toolbar modules (available only if
53         toolbar.lisp is loaded).
54         Add a small parameter for toolbar modules useful with vertical
55         toolbars.
57 2012-08-21  Philippe Brochard  <pbrochard@common-lisp.net>
59         * contrib/reboot-halt.lisp: Add configuration command for system
60         actions.
62         * contrib/toolbar.lisp (toggle-toolbar-hide-state): New function.
64 2012-08-20  Philippe Brochard  <pbrochard@common-lisp.net>
66         * src/clfswm-internal.lisp (add-in-never-managed-window-list): New
67         function.
69 2012-08-20  Philipp Kroos  <philipp.kroos@t-online.de>
71         * src/clfswm-placement.lisp (here-placement): Evaluates to current
72         position of pointer.
74 2012-08-20  Philipp Kroos  <philipp.kroos@t-online.de>
76         * contrib/toolbar.lisp: Add an expose-mode-button-module.
78 2012-08-19  Philippe Brochard  <pbrochard@common-lisp.net>
80         * contrib/toolbar.lisp (remove-toolbar): New function.
82 2012-08-18  Philippe Brochard  <pbrochard@common-lisp.net>
84         * contrib/toolbar.lisp: Add configurable colors in toolbar
85         modules.
87 2012-08-16  Philippe Brochard  <pbrochard@common-lisp.net>
89         * src/tools.lisp: Factorize system usage information collection.
90         (start-system-poll): Use a lock file instead of a local variable.
92         * contrib/toolbar.lisp: Add memory, cpu and battery usage module
93         with a poll methode. More responsive but up to date every 10s by
94         default.
96 2012-08-15  Philippe Brochard  <pbrochard@common-lisp.net>
98         * contrib/toolbar.lisp: Add a clickable label module for toolbar.
99         Add a clickable entry to open the CLFSWM main menu.
100         Add memory, cpu and battery usage module.
102         * src/clfswm-menu.lisp (open-menu): Prevent to reopen an opened
103         menu. Fixe a but with negative selected-item.
105 2012-08-14  Philippe Brochard  <pbrochard@common-lisp.net>
107         * src/clfswm-util.lisp (eval-from-query-string): Show a notify
108         window when updating symobls list for REPL completion.
109         (show-current-root): New function and configuration menu to
110         display a message on the current root.
112         * contrib/toolbar.lisp: Add arguments in toolbar modules.
114         * src/xlib-util.lisp (event-hook-name): Intern hook name symbol
115         in :clfswm package.
117 2012-08-13  Philippe Brochard  <pbrochard@common-lisp.net>
119         * contrib/toolbar.lisp (toolbar-module-text): Print a formatted
120         text at module position centered in toolbar.
122         * src/xlib-util.lisp (optimize-event-hook): Remove unused event
123         hooks.
125 2012-08-12  Philippe Brochard  <pbrochard@common-lisp.net>
127         * contrib/toolbar.lisp: End of toolbar framework.
128         (list-toolbar-modules): Add a list toolbar modules function.
130 2012-08-03  Philippe Brochard  <pbrochard@common-lisp.net>
132         * src/clfswm-internal.lisp (show-child): Show unmanaged windows
133         on (maybe) current child in all roots.
135         * src/clfswm-util.lisp (find-child-under-mouse-in-child-tree):
136         Handle children from all roots instead of from  *root-frame*.
138 2012-07-23  Philippe Brochard  <pbrochard@common-lisp.net>
140         * src/clfswm-expose-mode.lisp: New expose mode based on standard
141         query input.
143 2012-06-27  Philippe Brochard  <pbrochard@common-lisp.net>
145         * src/clfswm-util.lisp (eval-from-query-string): Add completion
146         for eval for query string.
148 2012-06-26  Philippe Brochard  <pbrochard@common-lisp.net>
150         * src/clfswm-query.lisp: Add completion for shell commands.
152 2012-06-18  Philippe Brochard  <pbrochard@common-lisp.net>
154         * src/clfswm-placement.lisp: Each child can have its own border
155         size. New binding to change the child border size on the fly.
157 2012-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
159         * src/tools.lisp (process-timers): Call get-internal-real-time
160         only once for all times.
162 2012-06-07  Philippe Brochard  <pbrochard@common-lisp.net>
164         * contrib/toolbar.lisp (define-toolbar-hooks): Add auto-hide
165         clickable toolbar.
166         (define-toolbar-hooks): Add auto-hide toolbar (show/hide on mouse
167         motion event).
169 2012-06-06  Philippe Brochard  <pbrochard@common-lisp.net>
171         * src/xlib-util.lisp (handle-event): Add an additional hook event
172         system to handle events in contrib code.
174 2012-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
176         * src/clfswm-placement.lisp: Add an optional border size in all
177         placement functions.
179 2012-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
181         * contrib/toolbar.lisp (clock): Add a clock module.
183 2012-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
185         * contrib/toolbar.lisp: begining of toolbar support.
187 2012-05-24  Philippe Brochard  <pbrochard@common-lisp.net>
189         * src/clfswm-internal.lisp (rotate-root-geometry): Do not use
190         rotatef but a simpler algorithm.
192 2012-05-19  Philippe Brochard  <pbrochard@common-lisp.net>
194         * src/clfswm-placement.lisp: Adjust width and height in child and
195         root placement to prevent too big child size.
197 2012-05-18  Philippe Brochard  <pbrochard@common-lisp.net>
199         * src/clfswm-placement.lisp: New root placement possibility.
201         * src/clfswm-util.lisp (change-current-root-geometry): New
202         function.
204 2012-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
206         * src/clfswm-util.lisp (exchange-root-geometry-with-mouse): New
207         function and menu.
209 2012-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
211         * src/menu-def.lisp: New root menu.
213 2012-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
215         * src/clfswm-circulate-mode.lisp (rotate-root-geometry-next)
216         (rotate-root-geometry-previous): New second mode binding to change
217         root geometry.
219 2012-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
221         * src/clfswm-internal.lisp: Remove the *current-child* variable
222         and use a setfable function (current-child) instead.
223         (current-child-setter): Store root current child before apllying
224         current child change.
226 2012-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
228         * src/clfswm-internal.lisp: Use xdpyinfo/xinerama informations
229         instead of xrandr informations.
231 2012-05-06  Philippe Brochard  <pbrochard@common-lisp.net>
233         * src/clfswm-internal.lisp : Use only one list for root
234         management.
235         (*root*): Root management API simplification.
237 2012-04-30  Philippe Brochard  <pbrochard@common-lisp.net>
239         * src/clfswm-internal.lisp: Big change to replace *current-root*
240         variable to support multiple root.
242 2012-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
244         * src/tools.lisp (add-new-hook, add-hook): New macro. Do not
245         duplicate hooks by default. Use add-new-hook if you want to
246         duplicate them.
248 2012-04-16  Philippe Brochard  <pbrochard@common-lisp.net>
250         * src/clfswm-corner.lisp (wait-window-in-query-tree): Add a limit
251         of try to wait the command window.
253 2012-02-25  Philippe Brochard  <pbrochard@common-lisp.net>
255         * src/clfswm-util.lisp (place-frames-from-xrandr)
256         (swap-frame-geometry, rotate-frame-geometry): New helper functions
257         for multiple physical screen.
258         (jump-to-slot, add-frame-in-parent-frame): Change *current-root*
259         only when needed.
261 2012-01-18  Philippe Brochard  <pbrochard@common-lisp.net>
263         * src/*.lisp: Use create-symbol and create-symbol-in-package
264         instead of the shorter symb. (Thanks Aad Versteden).
266         * src/bindings-second-mode.lisp (set-default-second-keys): New
267         key binding to set window and frame transparency.
269         * src/bindings.lisp (set-default-main-mouse): New mouse binding to
270         set window and frame transparency.
272         * src/clfswm-keys.lisp (define-keys): New macro to ease multiple
273         keys definitions. (Thanks Valentin Plechinger for the request).
275         * src/*.lisp: Add full transparency support with xcompmgr.
277 2012-01-14  Philippe Brochard  <pbrochard@common-lisp.net>
279         * src/*.lisp: Add transparency support.
281 2012-01-09  Ales Guzik <ales.guzik@gmail.com>
283         * src/clfswm-layout.lisp (tile-layout-mix): New layout to
284         automatically choose between vertival and horizontal tile layout.
285         (tile-space-layout): Fix to have space between screen border and
286         frame the same as between frames.
288 2012-01-04  Philippe Brochard  <pbrochard@common-lisp.net>
290         * load.lisp: Support clisp 2.49+ module system to load CLX.
292 2012-01-04  Ales Guzik <ales.guzik@gmail.com>
294         * src/clfswm-layout.lisp (update-layout-managed-children-keep-position):
295         Fix an inattention error.
297 2012-01-04  Philippe Brochard  <pbrochard@common-lisp.net>
299         * src/xlib-util.lisp (with-xlib-protect): Protect from
300         xlib:lookup-error. This prevent an error in clisp/new-clx when
301         sometimes an xlib:colormap is expected instead of an xlib:window.
303 2012-01-03  Philippe Brochard  <pbrochard@common-lisp.net>
305         * src/xlib-util.lisp (handle-event): Fix a clisp/new-clx error
306         when sometimes window slot of event-slots is a pixmap instead of a
307         window.
309 2011-12-26  Philippe Brochard  <pbrochard@common-lisp.net>
311         * src/clfswm-query.lisp: Fill the history list with a non-nil
312         value.
314 2011-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
316         * src/package.lisp (make-x-drawable): Drawable wrapper to prevent
317         type error in some CLX versions.
318         Replace xlib:drawable-* functions with x-drawable-* equivalents
320 2011-12-14  Philippe Brochard  <pbrochard@common-lisp.net>
322         * src/clfswm-util.lisp (um-create-xdg-section-list): Add at least
323         the 'Utility menu entry.
325         * src/config.lisp (*xdg-section-list*): moved to config.lisp.
327         * src/clfswm-util.lisp (update-menus): Set a default value for
328         searching .desktop files when XDG_DATA_DIRS is not set.
330 2011-10-15  Philippe Brochard  <pbrochard@common-lisp.net>
332         * src/clfswm-internal.lisp (place-window-from-hints): Use
333         with-placement macro to place unmanaged windows in an arbitrary
334         place.
336 2011-06-16  Philippe Brochard  <pbrochard@common-lisp.net>
338         * src/clfswm-internal.lisp (clean-windows-in-all-frames): Prevent
339         current root and current child being equal to child.
341 2011-06-13  Philippe Brochard  <pbrochard@common-lisp.net>
343         * src/keysyms.lisp: Repeat Page_Down/Up keysym definitions at the
344         end of the file to change keysyms priority.
346 2011-06-13  Sylvain HENRY <hsyl20@gmail.com>
348         *  *.*: Minor spelling fix.
350 2011-06-12  Philippe Brochard  <pbrochard@common-lisp.net>
352         * src/clfswm.lisp (:unmap-notify, :destroy-notify): Show all
353         children just after the xlib tree cleanup -> reduce the
354         flickering when a window is deleted or destroyed.
356         * src/clfswm-internal.lisp (process-existing-windows): Do not
357         process the notify window.
359 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
361         * *: **** Release 1106 ****
363 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
365         * src/clfswm-internal.lisp (clean-windows-in-all-frames): New
366         function to prevent xlib error when a window is deleted.
368 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
370         * src/clfswm-internal.lisp
371         (delete-child-and-children-in-all-frames): Delete or destroy
372         children before displaying all children.
374 2011-06-05  Philippe Brochard  <pbrochard@common-lisp.net>
376         * src/clfswm-util.lisp (add-frame-in-parent-frame): New function
377         and binding.
379 2011-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
381         * src/clfswm.lisp (main-unprotected): Destroy all frames windows
382         before closing the display (not really needed).
384 2011-06-02  Philippe Brochard  <pbrochard@common-lisp.net>
386         * src/clfswm-layout.lisp (inc-tile-layout-size)
387         (dec-tile-layout-size, inc-slow-tile-layout-size)
388         (dec-slow-tile-layout-size): New functions and bindings.
390 2011-06-01  Philippe Brochard  <pbrochard@common-lisp.net>
392         * src/clfswm-expose-mode.lisp (define-expose-letter-keys): Add
393         0..1 and A..Z keys to select a child in exposé mode.
395         * src/clfswm-internal.lisp (display-frame-info): Remove hidden
396         infos in frames windows.
398         * src/clfswm-util.lisp (ask-close/kill-current-window): Menu
399         update.
401 2011-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
403         * src/clfswm-internal.lisp (get-parent-layout): Minor fullscreen
404         size tweaking.
406 2011-05-29  Philippe Brochard  <pbrochard@common-lisp.net>
408         * src/clfswm-internal.lisp
409         (delete-child-and-children-in-all-frames): Show all children
410         before deleting/destroying a windows, so prevent a flickering.
411         (get-parent-layout): Return the fullscreen size when the current
412         root is a window.
414 2011-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
416         * src/clfswm-internal.lisp (get-parent-layout): Handle correctly
417         unmanaged windows.
419         * src/clfswm-util.lisp (delete-focus-window-generic): Do not hide
420         child before removing, so prevent a flickering.
422         * src/clfswm-internal.lisp (show-all-children): Rectangular
423         optimization to display only needed children.
424         (show-all-children): Remove flickering on
425         select-next/previous-brother.
427 2011-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
429         * src/clfswm-util.lisp (copy-focus-window, cut-focus-window): New
430         functions and ask-close/kill-current-window menu and bindings
431         entry.
433 2011-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
435         * src/clfswm-util.lisp (ask-close/kill-current-window): Add an
436         *ask-close/kill-placement* placement window variable.
438 2011-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
440         * contrib/osd.lisp (funcall-button-from-code): Display osd
441         documention for buttons and fix some redefining warnings.
443 2011-05-07  Philippe Brochard  <pbrochard@common-lisp.net>
445         * src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New
446         function. Prevent to add or delete a new window hook for this
447         frame.
449         * src/clfswm-layout.lisp (update-layout-managed-children-position):
450         New function.
452 2011-05-06  Philippe Brochard  <pbrochard@common-lisp.net>
454         * src/bindings-second-mode.lisp (set-default-second-keys):
455         select-brother-spatial-move-* binding update.
457         * src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask
458         to keep children positions or not.
460         * src/clfswm-internal.lisp (fixe-real-size): Takes care of border
461         size.
463         * src/clfswm-layout.lisp (update-layout-managed-children): Fix a
464         bug by using the parent frame instead of the current child.
466         * src/clfswm-circulate-mode.lisp
467         (select-brother-generic-spatial-move+right/left/up/down): New
468         function to select a brother from another in a spatial move.
470 2011-04-19  Philippe Brochard  <pbrochard@common-lisp.net>
472         * src/clfswm-pack.lisp (move-frame-constrained)
473         (resize-frame-constrained): Use pixels instead of floating
474         measure.
476 2011-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
478         * src/clfswm-pack.lisp (resize-frame-constrained): Takes care of
479         border size.
480         (implode-frame, implode-current-frame): New functions. Absorb all
481         frames subchildren in frame. Explode frame opposite.
483 2011-04-17  Philippe Brochard  <pbrochard@common-lisp.net>
485         * src/clfswm-pack.lisp (move-frame-constrained)
486         (resize-frame-constrained): New function. Move and resize frame
487         with the mouse constrained by other frame brothers.
489 2011-04-14  Philippe Brochard  <pbrochard@common-lisp.net>
491         * src/clfswm-util.lisp (with-movement-select-next-brother)
492         (with-movement-select-previous-brother)
493         (with-movement-select-next-child): Use a simple method (do not
494         enter in the circulate mode) to allow to circulate in all children
495         or brothers.
497         * src/clfswm-menu.lisp (open-menu): Save info hash table keys
498         instead of deleting newly created keys.
500 2011-03-21  Philippe Brochard  <pbrochard@common-lisp.net>
502         * src/clfswm-internal.lisp (x-px->fl, y-px->fl): Takes care of
503         border size.
505 2011-03-20  Philippe Brochard  <pbrochard@common-lisp.net>
507         * src/clfswm-info.lisp (show-config-variable): call
508         produce-conf-var-doc.
510 2011-03-18  Philippe Brochard  <pbrochard@common-lisp.net>
512         * src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a
513         documentation for all configurable variables in CLFSWM -
514         HTML version.
516         * src/clfswm-internal.lisp (leave-frame): Hide all children except
517         the current window.
519 2011-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
521         * src/clfswm-autodoc.lisp (produce-all-docs): Produce a
522         documentation for all configurable variables in CLFSWM.
524         * src/clfswm-layout.lisp (set-gimp-layout): Display a notify
525         window with the help on the GIMP layout.
527 2011-03-12  Philippe Brochard  <pbrochard@common-lisp.net>
529         * src/menu-def.lisp: Menu update to prevent cursor keys clash.
531         * clfswm.asd: Change compilation order to prevent undefined
532         variables.
534         * src/clfswm-internal.lisp (show-child(frame)): Handle properly
535         the show-root-frame-p parameter.
537 2011-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
539         * src/clfswm-util.lisp (move-frame, resize-frame): Do not move or
540         resize a frame when it's the current root.
542 2011-03-10  Philippe Brochard  <pbrochard@common-lisp.net>
544         * src/clfswm-internal.lisp (show-all-children): Handle properly
545         duplicated child in multipe frames.
547 2011-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
549         * contrib/volume-mode.lisp (set-default-volume-keys): Add more
550         keybindings (up/down, right/left) to raise/lower the volume.
552         * src/clfswm-layout.lisp: Add a variable border size for frames
553         and windows.
555 2011-03-08  Philippe Brochard  <pbrochard@common-lisp.net>
557         * src/clfswm-util.lisp (cut-current-child, remove-current-child)
558         (delete-current-child): Hide the current child before doing the
559         action.
561         * src/clfswm-internal.lisp (show-all-children): Hide windows not
562         in the current root before displaying those in current root.
563         Remove all hide-all unnecessary calls.
565         * src/clfswm-configuration.lisp (save-variables-in-conf-file):
566         Save only variables with a different value than their original
567         value.
569 2011-03-07  Philippe Brochard  <pbrochard@common-lisp.net>
571         * src/clfswm-info.lisp (show-config-variable): Use the new
572         defconfig method.
574         * src/clfswm-autodoc.lisp (produce-configuration-variables): Use
575         the new defconfig method.
577         * src/clfswm-configuration.lisp (create-configuration-menu):
578         Change the config system with a more lispy one and a less string
579         based one: (defconfig name value group doc).
582 2011-03-06  Philippe Brochard  <pbrochard@common-lisp.net>
584         * src/clfswm-internal.lisp (show-all-children): Simplify the
585         selection method.
586         (show-child): Display an unmanaged window whe  it's the current
587         child.
588         (show-all-children): add the ability to display all child from
589         *root-frame* and hide all those who are not in *current-root*.
590         -> remove hide-all-children when needed.
592         * src/xlib-util.lisp (move-window,resize-window): Add a
593         *color-move-window* border when moving or resizing a window.
595 2011-03-04  Philippe Brochard  <pbrochard@common-lisp.net>
597         * src/clfswm-internal.lisp (show-all-children): Perform only one
598         recusion on the clfswm tree: calculate geometry and place child in
599         one pass.
601 2011-03-03  Philippe Brochard  <pbrochard@common-lisp.net>
603         * src/clfswm-internal.lisp (show-all-children): Rethink of display
604         child order to prevent very annoying flickering.
606 2011-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
608         * src/clfswm-util.lisp (query-yes-or-no): New function.
610         * src/clfswm-configuration.lisp (reset-all-config-variables): New
611         function and menu entry.
612         (query-conf-value): Add the ability to leave the field blank to
613         reset the variable to its default value.
615 2011-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
617         * src/clfswm-configuration.lisp
618         (add-all-configuration-default-value): Add a default value to
619         configurable variables.
621 2011-02-23  Philippe Brochard  <pbrochard@common-lisp.net>
623         * src/clfswm.lisp (main-unprotected): Create the configuration
624         menu only once at startup.
626 2011-02-22  Desmond O. Chang <dochang@gmail.com>
628         * contrib/amixer.lisp: Add a volume mode inspired by the emms
629         volume package. Alsa mixer interface.
631         * contrib/volume-mode.lisp: Add a volume mode inspired by the emms
632         volume package.
634 2011-02-22 Desmond O. Chang <dochang@gmail.com>
636         * src/clfswm.lisp (main): Use ASDF:SYSTEM-SOURCE-DIRECTORY instead
637         of *LOAD-TRUENAME*. *LOAD-TRUENAME* is only bound during a call to
638         LOAD. If one eval CLFSWM:MAIN in repl, BASE-DIR will be an empty
639         string. Use ASDF:SYSTEM-SOURCE-DIRECTORY to fix it.
641 2011-02-16  Philippe Brochard  <pbrochard@common-lisp.net>
643         * src/clfswm.lisp (main-unprotected): Add a close hook. And close
644         the notify window, the virtual keyboard and the clfswm terminal by
645         default.
647 2011-02-15  Philippe Brochard  <pbrochard@common-lisp.net>
649         * src/clfswm.lisp (main-unprotected): Destroy the notify window
650         before closing the display. This fix a bug when resetting/reloading
651         clfswm.
653 2011-02-12  Philippe Brochard  <pbrochard@common-lisp.net>
655         * src/xlib-util.lisp (equal-wm-class-fun, equal-wm-name-fun)
656         (raise-window-fun, raise-and-focus-window-fun): New functions.
658         * src/config.lisp (*clfswm-terminal-cmd*): Switch from xterm to
659         urxvt.
660         (*never-managed-window-list*): Structure change to be more
661         flexible. Let the choice to focus, raise and do nothing on never
662         managed windows.
664 2011-02-09  Philippe Brochard  <pbrochard@common-lisp.net>
666         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Take
667         care of never managed windows to move or resize them if the raise
668         parameter is true.
670         * src/clfswm-internal.lisp (in-frame, in-window, in-child): New
671         functions.
673 2011-02-08  Philippe Brochard  <pbrochard@common-lisp.net>
675         * src/clfswm.lisp (main-mode): Raise or not unmanaged windows
676         following request in *never-managed-window-list*.
678 2011-02-05  Philippe Brochard  <pbrochard@common-lisp.net>
680         * *: **** Release 1102 ****
682 2011-02-05  Desmond O. Chang <dochang@gmail.com>
684         * src/keysyms.lisp: Add extended keysyms from stumpwm.
686 2011-02-01  Desmond O. Chang <dochang@gmail.com>
688         * src/clfswm-util.lisp (run-or-raise): New function (thanks to
689         Desmond O. Chang).
691         * src/clfswm-internal.lisp (with-all-*): add a nil block.
693 2011-01-28  Desmond O. Chang <dochang@gmail.com>
695         * src/clfswm-util.lisp (xdg-config-home): XDG_CONFIG_HOME should
696         be $HOME/.config by default.
698 2010-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
700         * contrib/osd.lisp (display-doc): Add another method where a
701         CLFSWM native window is used to display the key documentation.
703 2010-12-27  Philippe Brochard  <pbrochard@common-lisp.net>
705         * src/xlib-util.lisp (with-xlib-protect): Force to revert to the
706         main mode state.
708 2010-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
710         * src/clfswm-second-mode.lisp (second-key-mode): Call the second
711         mode leave function only when the generic mode was ended.
713 2010-12-08  Philippe Brochard  <pbrochard@common-lisp.net>
715         * src/clfswm-second-mode.lisp (sm-leave-function): Do not use
716         *second-mode-program* anymore.
718 2010-12-07  Philippe Brochard  <pbrochard@common-lisp.net>
720         * src/clfswm-second-mode.lisp (*second-mode-leave-function*): New
721         variable bound to a function executed (when not null) on second
722         mode leaving.
724 2010-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
726         * src/clfswm-util.lisp (find-child-under-mouse): Do not find
727         hidden windows.
729 2010-11-13  Philippe Brochard  <pbrochard@common-lisp.net>
731         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
732         Do not display the accel window for unmanaged windows.
734 2010-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
736         * src/clfswm-internal.lisp (set-current-root): Handle
737         window-parent in set-current-root.
739         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Do not
740         focus the parent child when the current root is a window.
742 2010-11-09  Philippe Brochard  <pbrochard@common-lisp.net>
744         * src/clfswm-expose-mode.lisp (expose-windows-current-child-mode):
745         New function an bindings.
747         * src/clfswm-layout.lisp (tile-layout, set-tile-layout): Fill
748         blanks if needed.
750 2010-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
752         * src/clfswm-layout.lisp (tile-layout-ask-keep-position): New
753         function to let the user choose to keep child position with
754         tile layout.
756         * src/clfswm-internal.lisp (remove-frame-data-slot): New
757         function.
759 2010-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
761         * src/clfswm-internal.lisp (frame-select-next-child)
762         (frame-select-previous-child): New functions and bindings. Select
763         the next/previous child in the current frame.
765 2010-10-31  Philippe Brochard  <pbrochard@common-lisp.net>
767         * src/clfswm-query.lisp (query-mode-complet): New function: Handle
768         completion in query-mode.
770 2010-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
772         * src/clfswm-query.lisp (query-print-string): Handle long lines
773         correctly.
775 2010-10-27  Philippe Brochard  <pbrochard@common-lisp.net>
777         * src/clfswm-expose-mode.lisp (expose-create-window): Ensure that
778         all characters are printable.
780 2010-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
782         * contrib/server/server.lisp: Load clfswm client code in the main
783         program and let the user start it with a --client command line
784         option.
786         * src/package.lisp (*main-entrance-hook*): New hook executed after
787         loading configuration file and before opening the display.
789 2010-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
791         * src/xlib-util.lisp: Remove unnecessary xlib:display-finish-output.
793         * src/clfswm-internal.lisp (show-child): Show window only if not
794         hidden.
796         * src/clfswm-keys.lisp (binding-substitute-modifier): Utility to
797         change modifiers after binding definition.
799 2010-10-21  Philippe Brochard  <pbrochard@common-lisp.net>
801         * contrib/osd.lisp: New file: OSD (On Screen Display) for
802         presentations.
804         * src/clfswm-menu.lisp (open-menu): Modularise function.
806 2010-10-13  Philippe Brochard  <pbrochard@common-lisp.net>
808         * src/clfswm-info.lisp (show-first-aid-kit): Display the essential
809         key binding in main and second mode.
811 2010-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
813         * src/clfswm-util.lisp (open-notify-window): Convert hello-window
814         functions to a more generic Notify-window system.
816         * src/tools.lisp (add-timer): Add an id to identify the timer.
818 2010-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
820         * src/tools.lisp (erase-timer): New function.
822         * src/clfswm-util.lisp (display-hello-window): Add a timer to hide
823         the hello window. Add Configuration variables.
825 2010-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
827         * src/clfswm-util.lisp (): Add an Hello window at startup.
829         * src/tools.lisp (process-timers): Add a timer system.
831 2010-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
833         * src/clfswm-query.lisp (add-in-query-string): Handle correctly
834         the mod-5 modifier.
836 2010-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
838         * src/clfswm-query.lisp (query-print-string): Change cursor color
839         and show parenthesis matching with colors (on match and on
840         errors).
842 2010-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
844         * src/clfswm-internal.lisp (show-all-children): Do not raise a
845         child when its parent is hidden.
847 2010-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
849         * src/clfswm-circulate-mode.lisp (select-next-subchild): Add the
850         possibility to circulate over subchild of the current child.
852         * src/clfswm-expose-mode.lisp (expose-all-windows-mode)
853         (expose-windows-generic): Add an escape-body function to return to
854         the original state on escape key.
856         * src/clfswm-util.lisp (bind-on-slot): Add an optional parameter
857         to bind the current child from the configuration file.
859 2010-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
861         * src/clfswm-nw-hooks.lisp (absorb-window-nw-hook): Absorb new
862         window hook: the frame absorb all new windows that match
863         nw-absorb-test frame data slot.
865 2010-09-30  Philippe Brochard  <pbrochard@common-lisp.net>
867         * src/clfswm-expose-mode.lisp (expose-create-window): Show window
868         title in accel window.
870 2010-09-29  Philippe Brochard  <pbrochard@common-lisp.net>
872         * configure: Use the Xavier Maillard clfswm script in contrib to
873         build an executable in the standard way.
875 2010-09-26  Philippe Brochard  <pbrochard@common-lisp.net>
877         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
878         New functions. Add a window on each child in the expose mode to
879         quickly select them.
881         * src/clfswm-internal.lisp (child-x, child-y, child-width)
882         (child-height): New methods to get real child coordinates.
884 2010-09-25  Philippe Brochard  <pbrochard@common-lisp.net>
886         * src/clfswm-layout.lisp (*-layout): Use child-position.
888         * src/clfswm-internal.lisp (child-position): New function.
890         * src/clfswm-expose-mode.lisp (expose-windows-mode)
891         (expose-all-windows-mode): Use a generic mode.
893         * src/xlib-util.lisp (with-handle-event-symbol): Use a filled list
894         with handle-event-fun symbols instead of inspecting clfswm
895         internals symbols on each mode change.
897         * src/clfswm-expose-mode.lisp: Move and rename present*-windows in
898         a separate clfswm-expose-mode.lisp file.
900         * src/clfswm-util.lisp (speed-mouse-right, speed-mouse-down): Use
901         screen size instead of hardcoded test coordinates.
903 2010-09-24  Philippe Brochard  <pbrochard@common-lisp.net>
905         * src/clfswm-util.lisp (speed-mouse-reset, speed-mouse-left)
906         (speed-mouse-right, speed-mouse-up, speed-mouse-down)
907         (speed-mouse-undo, speed-mouse-first-history): New functions to
908         quickly move the mouse. Implemented for the second mode.
910 2010-09-16  Philippe Brochard  <pbrochard@common-lisp.net>
912         * contrib/clfswm: Move clfswm sources to $tmp_dir if there is no
913         write permission on $clfswm_asd_path. So anybody can start clfswm
914         even if there is no write permission on the source directory.
916 2010-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
918         * contrib/clfswm: Add support to cmucl, ccl and ecl.
920 2010-09-11  Philippe Brochard  <pbrochard@common-lisp.net>
922         * src/clfswm-util.lisp (set-hide-unmanaged-window)
923         (set-show-unmanaged-window, set-default-hide-unmanaged-window):
924         New functions and menu entry.
925         (set-globally-hide-unmanaged-window)
926         (set-globally-show-unmanaged-window): New functions and menu
927         entry.
929         * src/clfswm-internal.lisp (hide-unmanager-window-p): New
930         function.
931         (show-child): Add a data slot on frame to hide or not unmanaged
932         windows.
934         * src/clfswm-corner.lisp (present-clfswm-terminal)
935         (present-virtual-keyboard): Use a function (generic-present-body)
936         instead of a macro (generate-present-body).
938         * src/clfswm-util.lisp (update-menus): List all directories and
939         subdirectories in $XDG_DATA_DIRS/applications.
941 2010-09-10  Philippe Brochard  <pbrochard@common-lisp.net>
943         * src/clfswm-corner.lisp (generate-present-body): New macro.
944         (present-clfswm-terminal, present-virtual-keyboard): Use
945         generate-present-body.
947 2010-09-09  Philippe Brochard  <pbrochard@common-lisp.net>
949         * src/clfswm-util.lisp (update-menus): Follow XDG specifications
950         instead of the non-portable Debian update-menu.
952 2010-09-07  Philippe Brochard  <pbrochard@common-lisp.net>
954         * src/clfswm.lisp (error-handler): New function do handle
955         asynchronous errors and ignore them.
956         (open-display): Install the new error-handler on display.
958 2010-09-05  Philippe Brochard  <pbrochard@common-lisp.net>
960         * src/xlib-util.lisp (with-xlib-protect): Add a
961         with-simple-restart on top of body execution.
963 2010-09-04  Philippe Brochard  <pbrochard@common-lisp.net>
965         * src/clfswm.lisp (main-loop): Protect all xlib functions with an
966         with-xlib-protect.
968         * src/xlib-util.lisp (handle-event): use with-xlib-protect only in
969         handle-event. Add a with-simple-restart to prevent a
970         clisp/new-lisp infinite loop.
972 2010-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
974         * src/clfswm-corner.lisp (present-clfswm-terminal): Make the
975         clfswm terminal working even on xterm title changes.
977 2010-08-29  Philippe Brochard  <pbrochard@common-lisp.net>
979         * src/clfswm-util.lisp (run-other-window-manager): Update for
980         clisp compatibility.
982         * src/tools.lisp (do-execute): New parameter io to change the
983         input/output method.
985         * src/clfswm-util.lisp (hide-current-child): Prevent from removing
986         the current root.
988         * src/clfswm-internal.lisp (child-member): New predicate.
989         (child-remove): New function.
991         * src/*.lisp: Use child-member and child-remove everywhere it's
992         needed.
994 2010-08-28  Philippe Brochard  <pbrochard@common-lisp.net>
996         * src/clfswm.lisp (main-loop): Ensure that all events have been
997         processed after a process-event.
999         * src/clfswm-internal.lisp (is-in-current-child-p): New function.
1001 2010-08-27  Philippe Brochard  <pbrochard@common-lisp.net>
1003         * src/clfswm.lisp (main-mode:configure-request): Raise the window
1004         only when present on the current child and focus it accordingly.
1006 2010-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
1008         * src/clfswm-circulate-mode.lisp (circulate-loop-function):
1009         Use is-a-key-pressed-p.
1011         * src/xlib-util.lisp (is-a-key-pressed-p): New predicate.
1013         * src/clfswm-keys.lisp (define-ungrab/grab): Use all values
1014         returned by xlib:keysym->keycodes.
1016         * src/*.lisp: Use the new child-equal-p to compare children. This
1017         prevent a bug with sbcl/cmucl when the standard equal function
1018         does not work with xlib:window.
1020         * src/clfswm-internal.lisp (child-equal-p): New predicate.
1022 2010-08-25  Philippe Brochard  <pbrochard@common-lisp.net>
1024         * src/clfswm-generic-mode.lisp (generic-mode): Use an
1025         xlib:event-listen before processing event with
1026         xlib:process-event. This prevent a bug with CLX threaded
1027         implementation like sbcl.
1029         * src/clfswm.lisp (main-loop): Use an xlib:event-listen before
1030         processing event with xlib:process-event. This prevent a bug with
1031         CLX threaded implementation like sbcl.
1033 2010-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
1035         * contrib/server/key.lisp (ushell-sh): Add ccl and ecl support.
1037         * src/xlib-util.lisp (compress-motion-notify): Use a loop instead
1038         of an event-case.
1040         * src/clfswm-internal.lisp (with-find-in-all-frames): New macro.
1041         (find-parent-frame, find-frame-window, find-frame-by-name)
1042         (find-frame-by-number): Use with-find-in-all-frames to search in
1043         frames in the right order.
1045         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Fix an
1046         unwanted flickering with unmanaged windows.
1048 2010-08-16  Philippe Brochard  <pbrochard@common-lisp.net>
1050         * src/package.lisp: Remove event handler hooks as they're not
1051         needed anymore (To replace them: use closure and define-handler).
1053         * src/xlib-util.lisp (move-window, resize-window)
1054         (wait-mouse-button-release): Use a generic mode.
1056         * src/*.lisp: Replace the case to handle event with a more (tricky)
1057         lispy  method which bind a function to each keywords associated
1058         to graphics events.
1060 2010-07-23  Philippe Brochard  <pbrochard@common-lisp.net>
1062         * src/clfswm-util.lisp (delete-current-child): Invert bindings and
1063         menu entry between delete-current-child and remove-current-child.
1064         ie: Delete a child and its children in all frames by default.
1066 2010-07-21  Philippe Brochard  <pbrochard@common-lisp.net>
1068         * src/package.lisp: Add a placement configuration group.
1070         * src/binding*.lisp: Bind control+g to escape the current action
1071         like emacs.
1073         * src/clfswm-internal.lisp
1074         (delete-child-and-children-in-all-frames): New function and
1075         binding: Second mode - Control+Delete delete the current child and
1076         its children in all frames (ie: close the current child and its
1077         children).
1079 2010-07-20  Philippe Brochard  <pbrochard@common-lisp.net>
1081         * src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy
1082         the frame window and the frame gc. Close a very annoying bug when
1083         cuting/pasting a frame or moving a child over frames with the
1084         mouse.
1086         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
1087         all children in *current-root* after moving/resizing a frame.
1089 2010-07-18  Philippe Brochard  <pbrochard@common-lisp.net>
1091         * src/clfswm-util.lisp (delete-focus-window)
1092         (destroy-focus-window): Remove child in parent frame before
1093         stopping it.
1095 2010-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
1097         * src/clfswm-util.lisp (identify-key): Add a timeout in
1098         xlib:process-event.
1099         (mouse-click-to-focus-generic): Use find-child-under-mouse instead
1100         of the window passed by xlib:process-event.
1102         * src/xlib-util.lisp (move-window, resize-window)
1103         (wait-mouse-button-release): Add a timeout in xlib:process-event.
1105 2010-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
1107         * src/clfswm-util.lisp (run-other-window-manager): Add the ability
1108         to launch an other window manager and to return to clfswm.
1110 2010-03-18  Philippe Brochard  <pbrochard@common-lisp.net>
1112         * src/clfswm-layout.lisp (set-tile-space-layout): Set default
1113         to 1%.
1115 2009-12-15  Philippe Brochard  <pbrochard@common-lisp.net>
1117         * src/clfswm.lisp (main-loop): Add a *loop-hook* parameter and a
1118         loop timeout.
1120         * src/clfswm-generic-mode.lisp (generic-mode): Add a loop-hook
1121         parameter and a loop timeout.
1123 2009-12-05  Philippe Brochard  <pbrochard@common-lisp.net>
1125         * src/clfswm.lisp (main): Add an alternate configuration filename
1126         parameter.
1128         * load.lisp: Add a debuging code example.
1130 2009-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
1132         * src/clfswm-configuration.lisp (create-configuration-menu): New
1133         menu to configure all clfswm variables while clfswm is running.
1135 2009-11-12  Philippe Brochard  <pbrochard@common-lisp.net>
1137         * src/clfswm-util.lisp (save-configuration-variables): New
1138         function to save all configuration variables in clfswmrc.
1140 2009-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
1142         * src/clfswm-info.lisp (info-mode): Begining of mouse support in
1143         info mode.
1144         (set-default-info-keys): Add cursor key support in info mode.
1146 2009-11-08  Philippe Brochard  <pbrochard@common-lisp.net>
1148         * contrib/reboot-halt.lisp: Add a Suspend/Reboot/Halt menu in
1149         contrib.
1151         * src/clfswm.lisp (main): Add a read-conf-file-p parameter to
1152         prevent reading the configuration file (this may be useful to
1153         produce the original documentation without user modifications
1154         with the rc configuration file).
1156 2009-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
1158         * src/bindings-second-mode.lisp (set-default-second-keys):
1159         Simplification of Escape key to close/kill/remove the focus window
1160         and unhide all windows.
1162         * src/bindings.lisp (set-default-main-keys): Simplification of
1163         Escape key to close/kill/remove the focus window and unhide all
1164         windows.
1166         * src/clfswm-util.lisp (ask-close/kill-current-window): Add remove
1167         focus and unhide all windows capabilities.
1169 2009-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
1171         * contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
1173 2009-07-29  Philippe Brochard  <pbrochard@common-lisp.net>
1175         * src/clfswm-layout.lisp (tile-layout, tile-horizontal-layout):
1176         Keep child order and don't make unnecessary child movement.
1177         (one-column-layout, one-line-layout): New layouts.
1179 2009-06-29  Philippe Brochard  <pbrochard@common-lisp.net>
1181         * *: **** Release 0906 ****
1183         * contrib/cd-player.lisp: New file to handle the CD player.
1185         * contrib/xmms.lisp: New file to handle the xmms player.
1187 2009-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
1189         * src/clfswm-layout.lisp (set-no-layout-remember-size): New layout:
1190         Maximize windows in their frame - Leave frames to their actual
1191         size.
1193         * src/bindings-second-mode.lisp (set-default-second-keys): Bind
1194         "o" on set-open-in-new-frame-in-parent-frame-nw-hook.
1196 2009-06-27  Philippe Brochard  <pbrochard@common-lisp.net>
1198         * contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
1200 2009-06-24  Philippe Brochard  <pbrochard@common-lisp.net>
1202         * contrib/mpd.lisp: Use a standard menu.
1204         * src/clfswm-info.lisp: Use a standard menu for the help-menu.
1206 2009-06-22  Philippe Brochard  <pbrochard@common-lisp.net>
1208         * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
1210 2009-06-19  Philippe Brochard  <pbrochard@common-lisp.net>
1212         * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
1213         number key cleanup.
1215 2009-06-18  Philippe Brochard  <pbrochard@common-lisp.net>
1217         * src/config.lisp (get-fullscreen-size):  One pixel adjustment
1218         (again).
1220         * src/clfswm-placement.lisp (*-child-placement): One pixel
1221         adjustment (again).
1223 2009-06-16  Philippe Brochard  <pbrochard@common-lisp.net>
1225         * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
1226         Ensure that all characters are printable.
1228         * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
1229         sizes.
1231         * src/clfswm-placement.lisp (*-child-placement): Adjust
1232         coordinates to one pixel in the current child.
1234 2009-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
1236         * src/clfswm-query.lisp (query-enter-function): Assign font before
1237         width and height calculation.
1239 2009-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
1241         * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
1242         bannish the pointer in an arbitrary place.
1244         * src/clfswm-info.lisp (info-mode): Use with-placement macro to
1245         place the info window in an arbitrary place.
1247         * src/clfswm-query.lisp (query-enter-function): Use with-placement
1248         macro to place the query window in an arbitrary place.
1250         * src/clfswm-placement.lisp: New file. Allow to place info windows
1251         or query windows on an arbitrary place. Allow to bannish the
1252         pointer on an arbitrary place.
1254 2009-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
1256         * src/clfswm-circulate-mode.lisp (reorder-child)
1257         (reorder-brother): Unfocus windows before reordering children or
1258         brothers.
1260 2009-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1262         * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
1263         the parent is a frame.
1265         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
1266         motion with a default modifier.
1268         * src/clfswm.lisp (handle-motion-notify): Handle motion with a
1269         default modifier.
1271         * src/clfswm-info.lisp (info-mode): Handle motion with a default
1272         modifier.
1273         (info-mode): Optimization in loop function.
1275 2009-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
1277         * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
1278         root-frame correctly.
1280         * clfswm.asd: Dependency fix for clfswm-generic-mode.
1282         * src/clfswm-circulate-mode.lisp (reorder-child)
1283         (reorder-brother): Handle empty frames.
1284         (reorder-brother): Redisplay only the parent frame of the  current
1285         child.
1287         * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
1288         parent frame of the  current frame.
1290 2009-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
1292         * src/clfswm-util.lisp (frame-toggle-maximize): New function:
1293         Maximize/Unmaximize the current frame in its parent frame.
1295         * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
1296         windows and frames in their parent frame.
1298 2009-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
1300         * src/*.lisp: Add support for Clozure Common Lisp (CCL).
1302         * src/clfswm-circulate-mode.lisp (reorder-child)
1303         (reorder-brother): Reinitialise on circulate type change
1304         child to brother or brother to child.
1306         * src/*.lisp (*): Use map-window instead of xlib:map-window. So
1307         calls xlib:display-finish-output on each map-request. So speed up
1308         the window display.
1310         * src/xlib-util.lisp (map-window): New function. Call
1311         xlib:display-finish-output on each map request.
1313 2009-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1315         * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
1316         Optimisation when drawing second mode window.
1318 2009-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
1320         * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
1321         window redraw.
1323 2009-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1325         * src/clfswm-util.lisp (run-program-from-query-string): Launch
1326         command only with a return validation.
1328 2009-04-22  Xavier Maillard  <xma@gnu.org>
1330         * src/clfswm-query.lisp (query-string): Use a generic mode.
1332 2009-04-19  Xavier Maillard  <xma@gnu.org>
1334         * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
1336 2009-04-18  Xavier Maillard  <xma@gnu.org>
1338         * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
1339         to define all other modes.
1341 2009-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
1343         * src/package.lisp (): Use *default-font-string* for all
1344         font-string.
1346         * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
1348 2009-02-17  Philippe Brochard  <pbrochard@common-lisp.net>
1350         * src/xlib-util.lisp (null-size-window-p): Better check of null
1351         sized windows.
1353 2009-02-14  Philippe Brochard  <pbrochard@common-lisp.net>
1355         * src/clfswm.lisp (handle-map-request): Add a fix to manage
1356         correctly fullscreen windows (SDL particularly).
1358 2008-12-20  Philippe Brochard  <pbrochard@common-lisp.net>
1360         * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
1361         a segfault with clisp/new-clx.
1363         * src/clfswm.lisp (handle-motion-notify): Add a needed window
1364         argument.
1366         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
1367         needed window argument.
1369 2008-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
1371         * src/xlib-util.lisp (wait-no-key-or-button-press)
1372         (wait-a-key-or-button-press): Check buttons press/release correctly"
1374 2008-10-28  Philippe Brochard  <pbrochard@common-lisp.net>
1376         * src/menu-def.lisp: Add children navigation menu in the movement
1377         menu (select next/previous child/brother/level).
1379 2008-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
1381         *  *: Rename 'sister' frame to 'brother' frame.
1383         * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
1384         alias in a real modifier.
1386         * src/package.lisp (*modifier-alias*): New list of modifier alias
1387         For example: :alt is :mod-1, :numlock is :mod-2...
1389         * src/tools.lisp (remove-hook): New function.
1391         * src/clfswm-keys.lisp (with-capslock, without-capslock)
1392         (with-numlock, without-cnumlock): New functions.
1394 2008-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
1396         * src/clfswm-info.lisp: Use the *binding-hook* to create info
1397         keys and mouse bindings.
1399         * src/bindings-second-mode.lisp: Use the *binding-hook* to create
1400         second keys and mouse bindings.
1402         * src/bindings.lisp: Use the *binding-hook* to create main keys
1403         and mouse bindings.
1405 2008-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
1407         * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
1408         menu opening.
1410 2008-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
1412         * src/menu-def.lisp: Use a menu instead of a function for the
1413         standard menu.
1415 2008-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
1417         * src/clfswm-util.lisp (show-standard-menu): Display the standard
1418         menu from the 'update-menus' command.
1420 2008-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
1422         * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
1423         it's already grabbed.
1425         * src/clfswm-internal.lisp (display-frame-info): Use configurable
1426         colors and fix a bug with background.
1427         (display-frame-info): Set window background when displaying info.
1429 2008-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
1431         * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
1432         warning with clisp/new-clx.
1434 2008-10-04  Philippe Brochard  <pbrochard@common-lisp.net>
1436         * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
1437         deleted child.
1439 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
1441         * *: **** Release 0809 ****
1443 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
1445         * src/clfswm-util.lisp (ensure-unique-name): New function and menu
1446         entry.
1447         (ensure-unique-number): New function and menu entry.
1449 2008-09-22  Philippe Brochard  <pbrochard@common-lisp.net>
1451         * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
1452         hook: open the next window in a named frame.
1453         (numbered-frame-nw-hook): New new window hook: open the next
1454         window in a numbered frame.
1456         * src/clfswm-query.lisp (query-string): Grab the keyboard in all
1457         cases. So query-string can be called even in the main mode.
1459         * src/clfswm-internal.lisp (show-all-children): Do not raise a
1460         child by default => far less flickering.
1462 2008-09-19  Philippe Brochard  <pbrochard@common-lisp.net>
1464         * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
1466         * src/menu-def.lisp: Change key binding for the CLFSWM menu
1467         entry.
1469         * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
1470         is nil. (workaround on some CLX implementation).
1472 2008-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
1474         * src/menu-def.lisp: Add a menu to set a focus policy for all
1475         frames.
1477         * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
1478         (all-frames-set-*-focus-policy): Set a focus policy for all
1479         frames.
1481         * src/clfswm.lisp (handle-enter-notify): sloppy-select
1482         mode. Select a child and its parents on mouse over.
1484 2008-09-03  Philippe Brochard  <pbrochard@common-lisp.net>
1486         * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
1487         policy -> Sloppy focus only for windows in the current frame.
1488         (main-unprotected): Exit clfswm on init error (ie: when another
1489         window manager is running).
1491         * src/clfswm-util.lisp (reset-clfswm): New function.
1493 2008-09-02  Philippe Brochard  <pbrochard@common-lisp.net>
1495         * src/clfswm-menu.lisp (init-menu): New function.
1497         * src/clfswm-util.lisp (reload-clfswm): New function to reload
1498         CLFSWM.
1499         (exit-clfswm): Rename quit-clfswm to exit-clfswm.
1501         * src/clfswm.lisp (main, main-unprotected): Handle error in a
1502         superior main function. Now CLFSWM can't break the X session. It
1503         just reinitialize the display and run a new main loop.
1505         * src/clfswm-corner.lisp: Make *clfswm-terminal* and
1506         *vt-keyboard-on* global to avoid warnings when loading clfswm.
1508         * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
1509         (help-on-gimp-layout): Describe how to use the GIMP layout.
1511 2008-09-01  Philippe Brochard  <pbrochard@common-lisp.net>
1513         * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
1514         main-window-right-layout. Change the keybinding for (shift)alt+tab
1515         to not select windows in the main window lisst.
1516         Bind F8 to add a window in the main window list.
1517         Bind F9 to remove a window in the main window list.
1518         Change the focus policy to :sloppy.
1519         (set-previous-layout): Restore the previous layout, keybinding and
1520         focus policy.
1522 2008-08-31  Philippe Brochard  <pbrochard@common-lisp.net>
1524         * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
1526         * src/clfswm-layout.lisp (main-window-left-layout)
1527         (main-window-bottom-layout, main-window-top-layout): New
1528         functions.
1529         Factorize layouts in menu.
1531 2008-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
1533         * src/clfswm-layout.lisp (main-window-right-layout): A possible
1534         GIMP layout: one or more main windows on one side of the
1535         frame. Others on the other size.
1537         * src/clfswm-util.lisp
1538         (current-frame-set-click/sloppy-focus-policy): Each frame can have
1539         a different focus policy (one of :click or :sloppy).
1540         The default focus policy is set with *default-focus-policy*.
1542 2008-08-23  Philippe Brochard  <pbrochard@common-lisp.net>
1544         * src/clfswm-info.lisp (show-config-variable): New function.
1546 2008-08-19  Philippe Brochard  <pbrochard@common-lisp.net>
1548         * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
1550         * src/clfswm-info.lisp: Colored help for key binding and corners
1551         actions.
1553 2008-08-18  Philippe Brochard  <pbrochard@common-lisp.net>
1555         * src/clfswm-util.lisp (delete-focus-window)
1556         (destroy-focus-window): Remove chid only in
1557         handle-unmap/destroy-notify. Focus *current-root* only when
1558         closing/killing the current child.
1560         * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
1561         functions or corners.
1563 2008-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
1565         * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
1566         action: Hide/Unhide a terminal on mouse corner action. (By default
1567         right mouse button on the top left corner).
1569         * src/config.lisp (*never-managed-window-list*): New config
1570         variable.
1572         * src/clfswm-internal.lisp (never-managed-window-p): New function:
1573         Handle never managed window in a more simple way.
1575         * src/clfswm-corner.lisp: New file and new and more simple method
1576         to define corners actions.
1578 2008-08-15  Philippe Brochard  <pbrochard@common-lisp.net>
1580         * src/clfswm-info.lisp (info-mode): Info line can now be colored.
1582         * src/clfswm-layout.lisp (fast-layout-switch)
1583         (define-fast-layout-switch): New functions: Switch between two
1584         layouts.
1586         * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
1587         really in the second mode. So leave-second-mode can be used even
1588         in the main mode.
1590         * src/clfswm-util.lisp (switch-to-last-child): New function:
1591         Store the current child and switch to the previous one.
1593 2008-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
1595         * src/clfswm-util.lisp (display-current-window-info): Display the
1596         window id.
1597         (have-to-present-virtual-keyboard): Add a virtual keyboard corner
1598         (top right by default). By default 'xvkbd' is used.
1600 2008-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
1602         * src/xlib-util.lisp (move-window, resize-window): Compress motion
1603         events.
1605         * src/clfswm.lisp (handle-motion-notify): Compress motion events.
1607         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
1608         motion events.
1610         * src/clfswm-info.lisp (info-mode): Compress motion events.
1612 2008-06-21  Philippe Brochard  <pbrochard@common-lisp.net>
1614         * src/clfswm-internal.lisp (show-all-children): Compute geometry
1615         and selection first and then show only necessary children.
1616         (show-child): remove unneeded display-p parameter.
1618         * src/config.lisp (get-fullscreen-size): Place the frame border
1619         outside the screen (this prevent the loose of 2 pixels per
1620         directions :)
1622 2008-06-12  Philippe Brochard  <pbrochard@common-lisp.net>
1624         * src/clfswm-internal.lisp (focus-child): Algorithm change to
1625         raise only the selected child.
1627 2008-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
1629         * src/clfswm-internal.lisp (raise-p-list, show-all-children):
1630         Raise only viewable children.
1632 2008-06-06  Philippe Brochard  <pbrochard@common-lisp.net>
1634         * src/clfswm-internal.lisp (show-all-children): Always raise all
1635         displayed children. Remove all references to raise-p.
1637 2008-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
1639         * src/menu-def.lisp (child-menu): New menu entry on raise/lower
1640         child in its frame.
1642         * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
1643         second mode binding on raise/lower child in its frame.
1645         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
1646         behaviour to the new raise/lower property.
1647         Call clear-nw-hook before the rest of the hook.
1649         * src/bindings.lisp (mouse-click-to-focus-and-move-window)
1650         (mouse-click-to-focus-and-resize-window): Stop button event. This
1651         prevent a keyboard/pointer freeze.
1653 2008-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
1655         * src/clfswm-internal.lisp (frame-lower-child)
1656         (frame-raise-child): New functions to raise/lower a child in its
1657         frame.
1659         * src/clfswm-util.lisp (have-to-present-windows)
1660         (have-to-present-all-windows): New functions to have an MaxOS
1661         expose like on mouse click in screen corner.
1663         * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
1665 2008-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
1667         * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
1668         child from a choice in all frames with hidden children.
1670         * src/clfswm-info.lisp (info-mode-menu): Handle separators.
1672 2008-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
1674         * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
1675         (unhide-all-children): New functions.
1677         * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
1678         functions.
1680         * src/clfswm-util.lisp (hide/show-frame-window): new function and
1681         menu item.
1683 2008-05-23  Philippe Brochard  <pbrochard@common-lisp.net>
1685         * src/clfswm-util.lisp (rename-current-child): Do not display the
1686         frame info for a window.
1688 2008-05-20  Philippe Brochard  <pbrochard@common-lisp.net>
1690         * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
1691         frame window for the removed child and its children.
1693 2008-05-18  Philippe Brochard  <pbrochard@common-lisp.net>
1695         * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
1696         autodoc functions.
1698 2008-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
1700         * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
1701         the ROX pinboard (ie: leave it lowered in the root window as
1702         expected).
1704         * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
1705         (tile-left-layout, tile-right-layout, tile-top-layout)
1706         (tile-bottom-layout): Use all the frame space when there is only
1707         one child.
1709         * src/clfswm-internal.lisp (place-window-from-hints): Center
1710         unmanaged windows in the root screen.
1712         * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
1713         new functions.
1715 2008-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
1717         * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
1718         typo in managed types.
1720         * src/clfswm-internal.lisp (show-child): Always display frame info
1721         even if the frame is hidden.
1723         * src/xlib-util.lisp (resize-window): Use a better algorithme to
1724         resize windows.
1726 2008-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1728         * src/clfswm-util.lisp (with-movement): Display frame info for all
1729         frames in current root.
1731 2008-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
1733         * src/*.lisp: Rename 'brother' frames to 'sister' frames.
1735         * src/bindings-second-mode.lisp (define-second-key #\a): New
1736         binding on 'add-default-frame'.
1738         * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
1739         message to follow the autodocumentation process.
1741 2008-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
1743         * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
1744         "Space" to jump to a child. "B" to bind a slot on the current
1745         child.
1747         * src/bindings-second-mode.lisp: Use "Tab" instead of
1748         "Iso_Left_Tab".
1750 2008-05-07  Philippe Brochard  <pbrochard@common-lisp.net>
1752         * src/clfswm-util.lisp (find-child-under-mouse): Take care of
1753         unmanaged (hidden) windows.
1755         * src/clfswm-internal.lisp (place-window-from-hints): Give a
1756         minimal size for windows.
1757         (with-all-windows-frames-and-parent): New function.
1759         * src/config.lisp (*default-window-width/height*): New parameters.
1761         * src/clfswm-internal.lisp (place-window-from-hints): Center
1762         windows in the screen instead of in their frame.
1764         * src/bindings-second-mode.lisp (tile-space-current-frame): New
1765         binding on C-t.
1767         * src/clfswm-layout.lisp (register-layout): Intern the once name
1768         in the right package.
1770 2008-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
1772         * doc/dot-clfswmrc: Update to  follow the new clfswm way.
1774 2008-05-03  Philippe Brochard  <pbrochard@common-lisp.net>
1776         * src/clfswm-internal.lisp (set-current-child)
1777         (adapt-child-to-parent, show-child, hide-child): Handle the case
1778         where child is not a frame or a window.
1780         * src/clfswm-util.lisp
1781         (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
1782         Check if child is a frame.
1784         * src/clfswm-internal.lisp (managed-window-p): Handle the case
1785         where frame is null.
1786         (place-frame): Check if frame and parent are frames.
1788         * src/clfswm-info.lisp (info-mode): display all frame info before
1789         leaving.
1791         * src/clfswm-second-mode.lisp (second-key-mode): display all frame
1792         info before leaving.
1794         * src/clfswm-internal.lisp (display-all-frame-info): New function.
1796 2008-05-02  Philippe Brochard  <pbrochard@common-lisp.net>
1798         * src/tools.lisp (getenv): Implemented for ECL.
1799         (urun-prog): Implemented for ECL.
1801         * src/clfswm-util.lisp (identify-key): Use a double buffer to
1802         display text.
1804         * src/clfswm-query.lisp (query-string): Use a double buffer to
1805         display text.
1807         * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
1808         display text.
1810         * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
1811         New functions.
1813 2008-05-01  Philippe Brochard  <pbrochard@common-lisp.net>
1815         * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
1817         * src/menu-def.lisp: New file: move all menu definition in
1818         menu-def.lisp.
1820         * src/clfswm-layout.lisp (register-layout): Use a function instead
1821         of a macro.
1823 2008-04-30  Philippe Brochard  <pbrochard@common-lisp.net>
1825         * src/clfswm-autodoc.lisp (produce-menu-doc,
1826         (produce-menu-doc-html): New functions.
1827         (produce-doc-*): Moved to clfswm-autodoc.lisp.
1829         * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
1830         paste a child on one of its own children. (this prevent a
1831         recursive bug).
1832         (move-child-to): Rename move/copy-current-child-by to
1833         move/copy-child-to.
1834         (mouse-move-window-over-frame): New function to move the window
1835         under the mouse cursor to another frame.
1837         * src/clfswm-internal.lisp (find-child-in-parent): New function.
1839 2008-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
1841         * src/clfswm-internal.lisp (show-all-children): Display unmanaged
1842         windows only when its window parent is the current child.
1844 2008-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1846         * src/clfswm-util.lisp (manage-current-window)
1847         (unmanage-current-window): New functions: Allow to force to manage
1848         or unmanage a window by its parent frame.
1850         * src/bindings-second-mode.lisp (#\o): binded to
1851         set-open-in-new-frame-in-parent-frame-nw-hook and
1852         (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
1854         * src/clfswm-util.lisp (with-current-window): New macro.
1856         * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
1857         exposure and enter-window handle event.
1859         * src/clfswm-util.lisp (move-frame, resize-frame): Show all
1860         children for the current child after the move/resize.
1862 2008-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
1864         * src/xlib-util.lisp (resize-window): Take care of window size
1865         hints.
1867         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
1868         move/resize unmanaged windows.
1870         * src/xlib-util.lisp (move-window, resize-window): New functions.
1872 2008-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
1874         * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
1875         user choose what window type the current frame must handle.
1876         (display-current-window-info): New function.
1877         (current-frame-manage-all-window-type)
1878         (current-frame-manage-only-normal-window-type)
1879         (current-frame-manage-no-window-type): New functions.
1881         * src/clfswm-internal.lisp (managed-window-p): New function.
1883         * src/package.lisp (frame): Managed type: new frame
1884         parameter. This allow to choose what window type a frame must
1885         handle.
1887         * src/*.lisp: Rename all 'father' occurrences to 'parent'.
1889         * src/clfswm-nw-hooks.lisp
1890         (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
1892         * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
1893         function.
1895         * src/tools.lisp (ensure-printable): Return always a string even
1896         with a null string.
1898 2008-04-24  Philippe Brochard  <pbrochard@common-lisp.net>
1900         * src/config.lisp (*default-nw-hook*): New variable to change the
1901         default new window hook.
1903 2008-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1905         * clfswm.asd (clfswm): Add a dependency from
1906         clfswm-second-mode.lisp to clfswm.lisp.
1908         * src/clfswm-util.lisp (identify-key): Show the documentation for
1909         the function bound on a key.
1910         (with-movement): Move with-movement,
1911         current-frame-fill/pack/resize-*  from bindings-second-mode.lisp
1912         to clfswm-util.lisp.
1914         * src/clfswm-menu.lisp: New menu system that let user change keys
1915         or functions associated to keys.
1917 2008-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
1919         * src/clfswm-internal.lisp (show-all-children): Display-child is
1920         the first child by default. Solve a bug with father-p.
1922 2008-04-17  Philippe Brochard  <pbrochard@common-lisp.net>
1924         * src/clfswm-internal.lisp (add-frame): Add frame return the
1925         created frame.
1926         (show-all-children): Move the size computation outside the
1927         show-child part.
1929         * src/bindings-second-mode.lisp (with-movement): Redisplay only
1930         the current child.
1932         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
1933         only the current child.
1935         * src/clfswm-internal.lisp (show-all-children): New display-child
1936         parameter to display only the desired child and its children.
1937         (select-next/previous-child): Only display the current child.
1939 2008-04-14  Philippe Brochard  <pbrochard@common-lisp.net>
1941         * src/clfswm.lisp (init-display): Move the default frame creation
1942         on the default init hook.
1944         * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
1945         the main mode (for example: "1" on an azerty keyboard).
1947 2008-04-13  Philippe Brochard  <pbrochard@common-lisp.net>
1949         * src/clfswm-keys.lisp (find-key-from-code): Better handle of
1950         keysyms. Revert to old grabbing method for the main mode.
1952 2008-04-12  Philippe Brochard  <pbrochard@common-lisp.net>
1954         * src/clfswm.lisp (init-display): Add key handling on no focus
1955         window and on frame windows.
1957 2008-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
1959         * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
1960         all keys by default and replay just what is needed. No change for
1961         the second mode.
1963         * src/clfswm-keys.lisp: remove grab/ungrab main keys.
1964         (find-key-from-code): Test for shift and not shift presence.
1966 2008-04-09  Philippe Brochard  <pbrochard@common-lisp.net>
1968         * src/clfswm-internal.lisp (switch-to-root-frame): show later -
1969         new key parameter to have less flickering.
1971 2008-04-07  Philippe Brochard  <pbrochard@common-lisp.net>
1973         * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
1974         layout only one time and revert to no-layout to freely handle
1975         frames.
1977         * src/clfswm-nw-hooks.lisp
1978         (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
1979         with new created window.
1981         * src/clfswm-layout.lisp (register-layout): Now register
1982         automatically a once layout to set the layout only one time and
1983         revert to no-layout to freely handle frames.
1985 2008-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
1987         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
1988         nw-hook: Open the next window in the current frame and leave the
1989         focus to the current child.
1991 2008-04-04  Philippe Brochard  <pbrochard@common-lisp.net>
1993         * src/bindings-second-mode.lisp: Add keys definitions to
1994         bind-or-jump in the second mode.
1996         * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
1997         macro for bind-or-jump-(1|2|3...).
1999         * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
2000         arguments to function. This allow to do things like:
2001         (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
2002         are passed to my-function on key press.
2004 2008-04-03  Philippe Brochard  <pbrochard@common-lisp.net>
2006         * src/clfswm-util.lisp (bind-or-jump): New (great) function.
2008 2008-04-02  Philippe Brochard  <pbrochard@common-lisp.net>
2010         * src/clfswm-internal.lisp (child-fullname): New function
2012         * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
2013         docstring in info-mode-menu. An item can be
2014         '((key function) (key function)) or with docstring
2015         '((key function "documentation 1") (key function "bla bla") (key function))
2017         * src/tools.lisp (ensure-n-elems): New function.
2019         * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
2020         resize a frame or the window's father.
2022         * src/clfswm.lisp (init-display): Remove tile-space-layout by
2023         default on the root frame.
2025         * src/clfswm-util.lisp (move/resize-frame): Add standard event
2026         hooks handlers (map-request, configure-notify...)
2028         * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
2029         child size to 1x1.
2031 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
2033         * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
2034         or the window's father.
2036         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
2037         event only if there is a geometry change.
2038         (mouse-focus-move/resize-generic): Generic function to move or
2039         resize a frame or a window father frame.
2041 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
2043         * src/clfswm-internal.lisp (show-all-children): Return t if there
2044         is a geometry change.
2046 2008-03-30  Philippe Brochard  <pbrochard@common-lisp.net>
2048         * src/bindings.lisp (Up/Down): Swap select previous/next level.
2050         * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
2052         * src/clfswm.lisp (init-display): Create a default frame in the root frame.
2054         * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
2055         (with-all-*): Reverse the child list to manage the first child last (like in
2056         show-all-children).
2058         * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
2059         root window only if true.
2061         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
2062         root window only if *create-frame-on-root* is true.
2064         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
2065         on the root window.
2067 2008-03-29  Philippe Brochard  <pbrochard@common-lisp.net>
2069         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
2070         the current child (even if it's a window).
2072 2008-03-28  Philippe Brochard  <pbrochard@common-lisp.net>
2074         * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
2075         (mouse-click-to-focus-and-resize): New functions.
2077         * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
2078         (*-px->fl): Convert pixel coordinates to float.
2080         * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
2082 2008-03-27  Philippe Brochard  <pbrochard@common-lisp.net>
2084         * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
2085         first child.
2087         * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
2088         and hide-all-children.
2089         (raise-if-needed): New function.
2090         (show-child): Use a first-p parameter to raise windows only when they are
2091         first child.
2093 2008-03-26  Philippe Brochard  <pbrochard@common-lisp.net>
2095         * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
2096         -> less flickering.
2098 2008-03-25  Philippe Brochard  <pbrochard@common-lisp.net>
2100         * src/clfswm-info.lisp (keys-from-list): new function.
2102         * src/*: rename 'childs' in 'children'.
2104         * src/*: rename 'group' in 'frame'.
2106 2008-03-22  Philippe Brochard  <pbrochard@common-lisp.net>
2108         * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
2110 2008-03-21  Philippe Brochard  <pbrochard@common-lisp.net>
2112         * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
2114 2008-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
2116         * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
2117         Bind control+o to open the next window in a new group in the root group
2118          (as open in next window in a new workspace in 0801 version).
2120 2008-03-15  Philippe Brochard  <pbrochard@common-lisp.net>
2122         * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
2123         window.
2125 2008-03-14  Philippe Brochard  <pbrochard@common-lisp.net>
2127         * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
2128         instead of Tab for select-previous-child.
2130 2008-03-13  Philippe Brochard  <pbrochard@common-lisp.net>
2132         * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
2133         new functions.
2135 2008-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
2137         * clfswm-util.lisp (identify-key): Display the documentation
2138         associated to keys when identifying a key.
2140 2008-03-10  Xavier Maillard  <xma@gnu.org>
2142         * contrib/clfswm: Complete rewrite of the script. Detect error and
2143         act accordingly. Add command line arguments to configure the
2144         script execution. User can now choose different common lisp
2145         implementation (clisp and sbcl only), choose where to store the
2146         dumped image, where to find clfswm source.
2148 2008-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
2150         * clfswm-internal.lisp (process-new-window): Beginning of new
2151         window hook: each group have a hook to tell what he wants to do
2152         with the new created window.
2154 2008-03-08  Xavier Maillard  <xma@gnu.org>
2156         * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
2157         call the resulting executable.
2159         * clfswm.lisp (read-conf-file): Check for the user config file in
2160         XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
2161         prefered whenever possible.
2163 2008-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
2165         * clfswm-layout.lisp (*-layout): Add an optional raise-p
2166         parameter in each layout.
2168 2008-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
2170         * clfswm-util.lisp (copy/cut-current-child): Does not affect the
2171         root group.
2172         (copy/move-current-child-by-name/number): new functions
2173         (focus-group-by-name/number): new functions
2174         (delete-group-by-name/number): new functions
2176 2008-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
2178         * ************************************************************ *
2179         *: Major update - No more reference  to workspaces. The main   *
2180         structure is a tree of groups or application windows.          *
2181         * ************************************************************ *
2183 2008-02-07  Philippe Brochard  <pbrochard@common-lisp.net>
2185         * clfswm.lisp (read-conf-file): Read configuration in
2186         $HOME/.clfswmrc or in /etc/clfswmrc or in
2187         $XDG_CONFIG_HOME/clfswm/clfswmrc.
2188         (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
2189         to $HOME/.config/).
2191 2008-01-18  Philippe Brochard  <pbrochard@common-lisp.net>
2193         * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
2194         by default.
2196 2008-01-03  Philippe Brochard  <pbrochard@common-lisp.net>
2198         * clfswm-internal.lisp (find-window-group): New function.
2200         * clfswm*: Change to make clfswm run with clisp/new-clx.
2202 2008-01-01  Philippe Brochard  <pbrochard@common-lisp.net>
2204         * clfswm-util.lisp (query-show-paren): Add show parent matching in
2205         query string.
2206         (query-string): Bind control+k to delete end of line.
2208         * clfswm-second-mode.lisp (draw-second-mode-window): Display
2209         the action on mouse motion in second mode.
2211         * clfswm.lisp (handle-exposure): Redisplay groups on exposure
2212         event but do not clear the root window.
2213         (handle-configure-request): Adjust unmanaged window from their
2214         request.
2216         * clfswm-internal.lisp (process-new-window): Adjust new window
2217         with the specified hints (max/min/base width/height).
2219 2007-12-31  Philippe Brochard  <pbrochard@common-lisp.net>
2221         * clfswm.lisp (handle-configure-request): Send an Configuration
2222         Notify event. This solve a bug with xterm and rxvt who takes some
2223         times to be mapped. Now there is no delay.
2225         * bindings-second-mode.lisp (define-shell): Run programs after
2226         living the second mode.
2228 2007-12-30  Philippe Brochard  <pbrochard@common-lisp.net>
2230         * clfswm-internal.lisp (process-new-window): Do not crop transient
2231         window to group size.
2232         (adapt-window-to-group): Do not crop transient window to group
2233         size.
2235         * clfswm.lisp (handle-configure-request): Adapt just the window to
2236         its group and don't take care of the configure request. Remove the
2237         bug with the Gimp outside the group and speed up the window
2238         manipulation.
2239         (handle-exposure): Remove show-all-group on exposure event
2240         -> Speed up.
2242 2007-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
2244         * clfswm-util.lisp (circulate-group-up-copy-window)
2245         (circulate-group-down-copy-window)
2246         (circulate-workspace-up-copy-group)
2247         (circulate-workspace-down-copy-group): Prevent the copy of the
2248         same window in the same workspace.
2250         * bindings-second-mode.lisp (release-copy-selected-window)
2251         (release-copy-selected-group): Prevent the copy of the same window
2252         in the same workspace.
2254         * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
2255         (generic-pager-move-window-on-next-line): Remove the copy
2256         property.
2257         (generic-pager-move-group-on-next-workspace)
2258         (generic-pager-move-group-on-previous-workspace): Prevent the copy
2259         of the same window in the same workspace.
2261         * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
2262         (mouse-pager-copy-selected-group-release): Prevent the copy of the
2263         same window in the same workspace.
2265         * tools.lisp (setf/=): new macro to set a variable only when
2266         necessary.
2268         * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
2269         x, y... only when necessary.
2271 2007-12-28  Philippe Brochard  <pbrochard@common-lisp.net>
2273         * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
2274         new function and hook: force windows to stay in its group (solve a
2275         bug with the Gimp).
2277 2007-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
2279         * bindings-second-mode.lisp (mouse-motion): use hide-group to have
2280         less flickering when moving/resizing groups.
2282         * clfswm-internal.lisp (hide-group): new function.
2283         (show-all-group): clear-all: new parameter.
2285 2007-12-22  Philippe Brochard  <pbrochard@common-lisp.net>
2287         * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
2288         macro.
2289         * clfswm*: Color change for the pager. Typo or better description
2290         in bindings definitions. Define bindings for a qwerty keyboard by
2291         default. dot-clfswmrc show examples to switch to an azerty
2292         keyboard.
2293         License change to GPL v3.
2294         * config.lisp: new file - group all globals variables in this
2295         file.
2297 2007-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
2299         * xlib-util.lisp (hide-window): Remove structure-notivy events
2300         when hidding a window.
2302 2007-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
2304         * package.lisp (*sm-property-notify-hook*): Readded
2305         property-notify-hook in second mode.
2307 2007-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
2309         * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
2311 2007-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
2313         * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
2314         Tile the current workspace with the current window on one side and
2315         others on the other (this emulate the larswm, dwm, wmii way). See
2316         the default configuration file to enable this mode by default.
2318         * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
2319         the pager.
2321 2007-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
2323         * clfswm-pager.lisp (pager-draw-window-in-group): Add
2324         ensure-printable to print windows name even with non-ascii
2325         characters.
2327 2007-05-11  Philippe Brochard  <pbrochard@common-lisp.net>
2329         * clfswm-pager.lisp (pager-explode-current-group): Create a new
2330         group for each window in group.
2331         (pager-implode-current-group): Move all windows in workspace to
2332         one group and remove other groups.
2334         * clfswm-pack.lisp (explode-group): Create a new group for each
2335         window in group.
2336         (implode-group): Move all windows in workspace to one group and
2337         remove other groups.
2339         * clfswm-util.lisp (identify-key): Remove local configuration
2340         variables and made them available for configuration from
2341         package.lisp.
2342         (query-string): idem.
2344 2007-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
2346         * netwm-util.lisp: Start of NetWM compliance.
2347         Add a Netwm client list gestion.
2349 2007-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
2351         * clfswm-internal.lisp (create-group-on-request): open a new group
2352         only when the current group is not empty.
2354         * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
2355         bug with null workspace.
2357         * clfswm-pager.lisp (pager-handle-event): Add a hook
2358         system. This hooks can be changed in the user configuration file.
2360         * package.lisp: All colors and font variables are set in
2361         package.lisp and can be configured in the user configuration
2362         file.
2363         Note: If you have configured some less ugly colors (esp. for the
2364         pager) don't hesitate to let me know :)
2366         * clfswm-second-mode.lisp (sm-handle-event): Add a hook
2367         system. This hooks can be changed in the user configuration file.
2369         * clfswm.lisp (handle-event): Add a hook system. This hooks can be
2370         changed in the user configuration file (~/.clfswmrc)
2372 2007-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
2374         * clfswm-util.lisp (stop-all-pending-actions): new function: reset
2375         arrow action, open next window in new workspace/group.
2377         * bindings.lisp (stop-all-pending-actions): new binding.
2378         (open-next-window-in-new-group-once): Open the next windows in a
2379         new group (only once) or open all new windows in a new group (like
2380         others windows managers).
2382 2007-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
2384         * clfswm.lisp (read-conf-file): New function to read a lisp
2385         configuration file at startup.
2386         (focus-group-under-mouse): Check if group isn't the current group
2387         ( prevent a bug with unclutter ).
2389 2007-03-02  Philippe Brochard  <pbrochard@common-lisp.net>
2391         * bindings.lisp (run-program-from-query-string): A program can be
2392         launch from a input query window.
2394 2007-03-01  Philippe Brochard  <pbrochard@common-lisp.net>
2396         * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
2398 2007-02-28  Philippe Brochard  <pbrochard@common-lisp.net>
2400         * clfswm.lisp (process-new-window): One can now open the next
2401         window in a workspace called by its number.
2403         * clfswm-util.lisp (query-font-string): Minimal editing
2404         capabilities.
2405         (eval-from-string): And an REPL in the window manager... :)
2407 2007-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
2409         * clfswm.lisp (process-new-window): One can now open the next
2410         window in a new workspace or a new group.
2412         * clfswm-pager.lisp (pager-mode): Display the next arrow action
2413         with the hidden windows.
2415         * clfswm.lisp (second-key-mode): Display the current workspace
2416         number and the next arrow action in the state window.
2418         * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
2419         the pager mode and then redisplay only the current workspace.
2421 2007-02-25  Philippe Brochard  <pbrochard@common-lisp.net>
2423         * clfswm.lisp (add-workspace): Workspaces are now numbered. So
2424         they can be focused with a keypress, sorted or renumbered.
2426 2007-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
2428         * clfswm-pager.lisp (pager-mode): Remove multiple silly
2429         pager-draw-display. This prevent a lot of flickering in the
2430         pager.
2432         * clfswm.lisp: Remove all display-force-output and replace them
2433         with only one display-finish-output in the event loop.
2435 2006-11-06  Philippe Brochard  <pbrochard@common-lisp.net>
2437         * clfswm-pager.lisp (pager-center-group): New function - center a
2438         group at the middle of the screen.
2440         * clfswm-pack.lisp (center-group): New function - center a group
2441         at the middle of the screen.
2443         * clfswm.lisp (show-group): Add a cross line under the group.
2444         (show-group): Group are showned even if fullscreened.
2445         (init-display): Add an exposure event on the root window.
2447 2006-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
2449         * package.lisp (*default-group*): Default group is the same size
2450         of a fullscreened group.
2452         * bindings*: Use shift to move, control+shift to copy.
2454         * *.lisp: Add comments for configuration or alternatives. So grep
2455         for CONFIG to see where you can configure clfswm. And grep for
2456         Alternative to use some commented code.
2458         * clfswm.lisp (second-key-mode): Use a single window to show the
2459         second mode. See for alternatives at the end of this file.
2461 2006-11-03  Philippe Brochard  <pbrochard@common-lisp.net>
2463         * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
2464         macro of key and mouse definitions.
2465         (define-define-key/mouse): Use state instead of modifiers list
2466         this fix a bug when the modifiers list is not in the rigth order.
2468         * clfswm.lisp (second-key-mode): Add a colored border in second mode.
2470 2006-11-02  Philippe Brochard  <pbrochard@common-lisp.net>
2472         * clfswm-info.lisp (info-mode): Add an info mode.
2474 2006-11-01  Philippe Brochard  <pbrochard@common-lisp.net>
2476         * clfswm.lisp (process-new-window): Change border size for
2477         transient windows.
2478         (show-all-windows-in-workspace): Unhide all windows even when the
2479         current group is in fullscreen mode.
2481 2006-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
2483         * clfswm-util.lisp (identify-key): Add an exposure handle-event to
2484         redisplay the identify window after a terminal switch.
2486         * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
2487         redisplay the pager after a terminal switch.
2489 2006-10-24  Philippe Brochard  <pbrochard@common-lisp.net>
2491         * clfswm-util.lisp (identify-key): Add a window to display
2492         the keys to identify on screen.
2494         * bindings.lisp, bindings-pager.lisp: Define same keys to
2495         move/copy groups/windows in second mode and in pager.
2497         * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
2498         drawing lags).
2499         (show-all-windows-in-workspace): unhide window before adapting it
2500         to group.
2502 2006-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
2504         * clfswm.lisp (handle-event): Revert to an older version.
2506 2006-10-18  Philippe Brochard  <pbrochard@common-lisp.net>
2508         * clfswm-util.lisp (force-window-in-group)
2509         (force-window-center-in-group): New functions for transient windows.
2511         * clfswm-pager.lisp (pager-remove-current-workspace/group):
2512         bugfix: hide all windows before removing group or workspace.
2514 2006-10-17  Philippe Brochard  <pbrochard@common-lisp.net>
2516         * bindings-pager.lisp (mouse-pager-move-selected-group)
2517         (mouse-pager-copy-selected-group)
2518         (mouse-pager-move-selected-window)
2519         (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
2520         (mouse-pager-rotate-window-down): New functions to have mouse in
2521         pager mode.
2523         * clfswm-pager.lisp (pager-swap-window)
2524         (pager-copy-group-on-next/previous-workspace)
2525         (pager-copy-window-on-next/previous-line): New functions
2527 2006-10-15  Philippe Brochard  <pbrochard@common-lisp.net>
2529         * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
2530         (pager-move-group-on-next/previous-workspace): new functions.
2532         * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
2533         to its half size (new functions).
2535 2006-10-11  Philippe Brochard  <pbrochard@common-lisp.net>
2537         * clfswm-pager.lisp: workspaces, groups and windows can now be
2538         selectionned with the keyboard or the mouse.
2540 2006-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
2542         * clfswm-pager.lisp (pager-select-workspace-right/left):
2543         workspaces can now be selectionned with the keyboard.
2545 2006-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
2547         * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
2548         new function to remove a previous defined key or mouse combination.
2550 2006-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
2552         * clfswm.lisp (main): Check for access error in init-display.
2554         * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
2555         keycode before grabbing.
2557         * bindings.lisp: Remove nlambda and use defun to keep the function
2558         documentation with clisp.
2559         (define-shell): new macro to define shell command for the second
2560         mode.
2562 2006-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
2564         * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
2565         boggus typecase.
2567 2006-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
2569         * bindings.lisp (accept-motion): Move group bugfix in upper mouse
2570         workspace circulation.
2572         * clfswm-util.lisp (absorb-orphan-window): new function.
2574         * clfswm-keys.lisp: Keysyms support.
2576 2006-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
2578         * clfswm.lisp (show-group): Use one gc for all groups and not one
2579         per group.
2581 2006-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
2583         * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
2585         * clfswm.lisp (adapt-window-to-group): Adapt only windows with
2586         width and height outside group.
2588 2006-09-28  Philippe Brochard  <pbrochard@common-lisp.net>
2590         * clfswm.lisp: First public release.