Load clfswm.asd from load.lisp
[clfswm.git] / ChangeLog
blob6c00a995430187505da994c43321405a2196647f
1 2012-11-16  Philippe Brochard  <pbrochard@common-lisp.net>
3         * ChangeLog are now reported in git history.
5 2012-10-08 Michael Raitza <spacefrogg-clfswm@meterriblecrew.net>
7         * src/tools.lisp (n-rotate-list): Implementation ehancements (1/2 GC,
8         2x speed).
10 2012-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
12         * contrib/wallpaper.lisp (wallpaper): Handle no xinerama support
13         case.
15         * src/clfswm-internal.lisp (place-frames-from-xinerama-infos):
16         Handle better no xinerama support case.
18 2012-10-04  Philippe Brochard  <pbrochard@common-lisp.net>
20         * contrib/wallpaper.lisp (generate-wallpaper): Force waiting the
21         end of convert.
22         (wallpaper): Open a notify window to wait wallpaper creation.
24         * src/clfswm.lisp (main-mode: configuer request): Call
25         *root-size-change* hook on each root size change. This let CLFSWM
26         refresh background wallpaper on root size changes.
28         * src/clfswm-internal.lisp (place-frames-from-xinerama-infos):
29         Handle root screen resize on the fly when adding or removing a
30         monitor.
32         * src/clfswm-menu.lisp (open-menu): Show key bindings also for
33         menu entry.
35 2012-10-03  Philippe Brochard  <pbrochard@common-lisp.net>
37         * src/clfswm-menu.lisp (open-menu): Show key bindings
38         correspondence in menu for main and second mode.
40         * src/clfswm.lisp (main-loop): Reset X error count only once for
41         all loops.
43 2012-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
45         * src/xlib-util.lisp (handle-event): Ignore synchronous xlib
46         window-error and drawable-error in event handler.
48         * contrib/clfswm: Dump different image from different installation
49         path.
51 2012-09-30  Philippe Brochard  <pbrochard@common-lisp.net>
53         * src/clfswm.lisp (configure-request handler): Send a
54         configuration notify event in a more precise way.
56 2012-09-29  Philippe Brochard  <pbrochard@common-lisp.net>
58         * src/xlib-util.lisp (with-xlib-protect): Limit X errors ignored
59         to prevent freezes and add a backtrace system.
61 2012-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
63         * src/clfswm.lisp (configure-request handler): To be ICCCM
64         compliant, send a fake configuration notify event only when the
65         window has moved and not when it has been resized.
67 2012-09-21  Philippe Brochard  <pbrochard@common-lisp.net>
69         * Relase 1209
71 2012-09-09  Philippe Brochard  <pbrochard@common-lisp.net>
73         * src/clfswm-internal.lisp
74         (delete-child-and-children-in-all-frames): Remove all children in
75         frames and only close windows.
77         * src/*.lisp: Remove uneeded with-xlib-protect.
79 2012-09-06  Philippe Brochard  <pbrochard@common-lisp.net>
81         * contrib/wallpaper.lisp (wallpaper): create/use-background
82         simplification function.
84 2012-09-05  Philippe Brochard  <pbrochard@common-lisp.net>
86         * contrib/wallpaper.lisp: New functionality to handle backgrounds
87         on differents screen heads.
89         * contrib/toolbar.lisp (toolbar-adjust-root-size): Takes care of
90         multiple toolbar on the same root edge.
92 2012-09-04  Philippe Brochard  <pbrochard@common-lisp.net>
94         * src/clfswm-internal.lisp (show-all-children): Hide only children
95         hidden by normal windows or frames (but not :dialog,
96         :transient...).
97         (process-new-window): Remove borders for maxsize windows.
98         (show-all-children): Let the choice to always display children or
99         to optimize by hidding children not seen . The first option is
100         better with transparency support (frames behind orther frames are
101         seen). The second one is faster with many children in the same
102         frame (not seen children are not displayed).
104 2012-08-31  Philippe Brochard  <pbrochard@common-lisp.net>
106         * src/xlib-util.lisp (with-xlib-protect): Handle all Xlib errors
107         for better code protection.
109 2012-08-28  Philippe Brochard  <pbrochard@common-lisp.net>
111         * src/clfswm-expose-mode.lisp (expose-query-key-press-hook): Add
112         an option to immediately select child if they can be directly
113         accessed.
115 2012-08-25  Philippe Brochard  <pbrochard@common-lisp.net>
117         * contrib/volume-mode.lisp: Add mouse buttons actions in volume
118         mode. Add a volume button toolbar module.
120 2012-08-24  Philippe Brochard  <pbrochard@common-lisp.net>
122         * contrib/mpd.lisp: New toolbar modules (available only if
123         toolbar.lisp is loaded).
124         Add a small parameter for toolbar modules useful with vertical
125         toolbars.
127 2012-08-21  Philippe Brochard  <pbrochard@common-lisp.net>
129         * contrib/reboot-halt.lisp: Add configuration command for system
130         actions.
132         * contrib/toolbar.lisp (toggle-toolbar-hide-state): New function.
134 2012-08-20  Philippe Brochard  <pbrochard@common-lisp.net>
136         * src/clfswm-internal.lisp (add-in-never-managed-window-list): New
137         function.
139 2012-08-20  Philipp Kroos  <philipp.kroos@t-online.de>
141         * src/clfswm-placement.lisp (here-placement): Evaluates to current
142         position of pointer.
144 2012-08-20  Philipp Kroos  <philipp.kroos@t-online.de>
146         * contrib/toolbar.lisp: Add an expose-mode-button-module.
148 2012-08-19  Philippe Brochard  <pbrochard@common-lisp.net>
150         * contrib/toolbar.lisp (remove-toolbar): New function.
152 2012-08-18  Philippe Brochard  <pbrochard@common-lisp.net>
154         * contrib/toolbar.lisp: Add configurable colors in toolbar
155         modules.
157 2012-08-16  Philippe Brochard  <pbrochard@common-lisp.net>
159         * src/tools.lisp: Factorize system usage information collection.
160         (start-system-poll): Use a lock file instead of a local variable.
162         * contrib/toolbar.lisp: Add memory, cpu and battery usage module
163         with a poll methode. More responsive but up to date every 10s by
164         default.
166 2012-08-15  Philippe Brochard  <pbrochard@common-lisp.net>
168         * contrib/toolbar.lisp: Add a clickable label module for toolbar.
169         Add a clickable entry to open the CLFSWM main menu.
170         Add memory, cpu and battery usage module.
172         * src/clfswm-menu.lisp (open-menu): Prevent to reopen an opened
173         menu. Fixe a but with negative selected-item.
175 2012-08-14  Philippe Brochard  <pbrochard@common-lisp.net>
177         * src/clfswm-util.lisp (eval-from-query-string): Show a notify
178         window when updating symobls list for REPL completion.
179         (show-current-root): New function and configuration menu to
180         display a message on the current root.
182         * contrib/toolbar.lisp: Add arguments in toolbar modules.
184         * src/xlib-util.lisp (event-hook-name): Intern hook name symbol
185         in :clfswm package.
187 2012-08-13  Philippe Brochard  <pbrochard@common-lisp.net>
189         * contrib/toolbar.lisp (toolbar-module-text): Print a formatted
190         text at module position centered in toolbar.
192         * src/xlib-util.lisp (optimize-event-hook): Remove unused event
193         hooks.
195 2012-08-12  Philippe Brochard  <pbrochard@common-lisp.net>
197         * contrib/toolbar.lisp: End of toolbar framework.
198         (list-toolbar-modules): Add a list toolbar modules function.
200 2012-08-03  Philippe Brochard  <pbrochard@common-lisp.net>
202         * src/clfswm-internal.lisp (show-child): Show unmanaged windows
203         on (maybe) current child in all roots.
205         * src/clfswm-util.lisp (find-child-under-mouse-in-child-tree):
206         Handle children from all roots instead of from  *root-frame*.
208 2012-07-23  Philippe Brochard  <pbrochard@common-lisp.net>
210         * src/clfswm-expose-mode.lisp: New expose mode based on standard
211         query input.
213 2012-06-27  Philippe Brochard  <pbrochard@common-lisp.net>
215         * src/clfswm-util.lisp (eval-from-query-string): Add completion
216         for eval for query string.
218 2012-06-26  Philippe Brochard  <pbrochard@common-lisp.net>
220         * src/clfswm-query.lisp: Add completion for shell commands.
222 2012-06-18  Philippe Brochard  <pbrochard@common-lisp.net>
224         * src/clfswm-placement.lisp: Each child can have its own border
225         size. New binding to change the child border size on the fly.
227 2012-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
229         * src/tools.lisp (process-timers): Call get-internal-real-time
230         only once for all times.
232 2012-06-07  Philippe Brochard  <pbrochard@common-lisp.net>
234         * contrib/toolbar.lisp (define-toolbar-hooks): Add auto-hide
235         clickable toolbar.
236         (define-toolbar-hooks): Add auto-hide toolbar (show/hide on mouse
237         motion event).
239 2012-06-06  Philippe Brochard  <pbrochard@common-lisp.net>
241         * src/xlib-util.lisp (handle-event): Add an additional hook event
242         system to handle events in contrib code.
244 2012-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
246         * src/clfswm-placement.lisp: Add an optional border size in all
247         placement functions.
249 2012-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
251         * contrib/toolbar.lisp (clock): Add a clock module.
253 2012-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
255         * contrib/toolbar.lisp: begining of toolbar support.
257 2012-05-24  Philippe Brochard  <pbrochard@common-lisp.net>
259         * src/clfswm-internal.lisp (rotate-root-geometry): Do not use
260         rotatef but a simpler algorithm.
262 2012-05-19  Philippe Brochard  <pbrochard@common-lisp.net>
264         * src/clfswm-placement.lisp: Adjust width and height in child and
265         root placement to prevent too big child size.
267 2012-05-18  Philippe Brochard  <pbrochard@common-lisp.net>
269         * src/clfswm-placement.lisp: New root placement possibility.
271         * src/clfswm-util.lisp (change-current-root-geometry): New
272         function.
274 2012-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
276         * src/clfswm-util.lisp (exchange-root-geometry-with-mouse): New
277         function and menu.
279 2012-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
281         * src/menu-def.lisp: New root menu.
283 2012-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
285         * src/clfswm-circulate-mode.lisp (rotate-root-geometry-next)
286         (rotate-root-geometry-previous): New second mode binding to change
287         root geometry.
289 2012-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
291         * src/clfswm-internal.lisp: Remove the *current-child* variable
292         and use a setfable function (current-child) instead.
293         (current-child-setter): Store root current child before apllying
294         current child change.
296 2012-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
298         * src/clfswm-internal.lisp: Use xdpyinfo/xinerama informations
299         instead of xrandr informations.
301 2012-05-06  Philippe Brochard  <pbrochard@common-lisp.net>
303         * src/clfswm-internal.lisp : Use only one list for root
304         management.
305         (*root*): Root management API simplification.
307 2012-04-30  Philippe Brochard  <pbrochard@common-lisp.net>
309         * src/clfswm-internal.lisp: Big change to replace *current-root*
310         variable to support multiple root.
312 2012-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
314         * src/tools.lisp (add-new-hook, add-hook): New macro. Do not
315         duplicate hooks by default. Use add-new-hook if you want to
316         duplicate them.
318 2012-04-16  Philippe Brochard  <pbrochard@common-lisp.net>
320         * src/clfswm-corner.lisp (wait-window-in-query-tree): Add a limit
321         of try to wait the command window.
323 2012-02-25  Philippe Brochard  <pbrochard@common-lisp.net>
325         * src/clfswm-util.lisp (place-frames-from-xrandr)
326         (swap-frame-geometry, rotate-frame-geometry): New helper functions
327         for multiple physical screen.
328         (jump-to-slot, add-frame-in-parent-frame): Change *current-root*
329         only when needed.
331 2012-01-18  Philippe Brochard  <pbrochard@common-lisp.net>
333         * src/*.lisp: Use create-symbol and create-symbol-in-package
334         instead of the shorter symb. (Thanks Aad Versteden).
336         * src/bindings-second-mode.lisp (set-default-second-keys): New
337         key binding to set window and frame transparency.
339         * src/bindings.lisp (set-default-main-mouse): New mouse binding to
340         set window and frame transparency.
342         * src/clfswm-keys.lisp (define-keys): New macro to ease multiple
343         keys definitions. (Thanks Valentin Plechinger for the request).
345         * src/*.lisp: Add full transparency support with xcompmgr.
347 2012-01-14  Philippe Brochard  <pbrochard@common-lisp.net>
349         * src/*.lisp: Add transparency support.
351 2012-01-09  Ales Guzik <ales.guzik@gmail.com>
353         * src/clfswm-layout.lisp (tile-layout-mix): New layout to
354         automatically choose between vertival and horizontal tile layout.
355         (tile-space-layout): Fix to have space between screen border and
356         frame the same as between frames.
358 2012-01-04  Philippe Brochard  <pbrochard@common-lisp.net>
360         * load.lisp: Support clisp 2.49+ module system to load CLX.
362 2012-01-04  Ales Guzik <ales.guzik@gmail.com>
364         * src/clfswm-layout.lisp (update-layout-managed-children-keep-position):
365         Fix an inattention error.
367 2012-01-04  Philippe Brochard  <pbrochard@common-lisp.net>
369         * src/xlib-util.lisp (with-xlib-protect): Protect from
370         xlib:lookup-error. This prevent an error in clisp/new-clx when
371         sometimes an xlib:colormap is expected instead of an xlib:window.
373 2012-01-03  Philippe Brochard  <pbrochard@common-lisp.net>
375         * src/xlib-util.lisp (handle-event): Fix a clisp/new-clx error
376         when sometimes window slot of event-slots is a pixmap instead of a
377         window.
379 2011-12-26  Philippe Brochard  <pbrochard@common-lisp.net>
381         * src/clfswm-query.lisp: Fill the history list with a non-nil
382         value.
384 2011-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
386         * src/package.lisp (make-x-drawable): Drawable wrapper to prevent
387         type error in some CLX versions.
388         Replace xlib:drawable-* functions with x-drawable-* equivalents
390 2011-12-14  Philippe Brochard  <pbrochard@common-lisp.net>
392         * src/clfswm-util.lisp (um-create-xdg-section-list): Add at least
393         the 'Utility menu entry.
395         * src/config.lisp (*xdg-section-list*): moved to config.lisp.
397         * src/clfswm-util.lisp (update-menus): Set a default value for
398         searching .desktop files when XDG_DATA_DIRS is not set.
400 2011-10-15  Philippe Brochard  <pbrochard@common-lisp.net>
402         * src/clfswm-internal.lisp (place-window-from-hints): Use
403         with-placement macro to place unmanaged windows in an arbitrary
404         place.
406 2011-06-16  Philippe Brochard  <pbrochard@common-lisp.net>
408         * src/clfswm-internal.lisp (clean-windows-in-all-frames): Prevent
409         current root and current child being equal to child.
411 2011-06-13  Philippe Brochard  <pbrochard@common-lisp.net>
413         * src/keysyms.lisp: Repeat Page_Down/Up keysym definitions at the
414         end of the file to change keysyms priority.
416 2011-06-13  Sylvain HENRY <hsyl20@gmail.com>
418         *  *.*: Minor spelling fix.
420 2011-06-12  Philippe Brochard  <pbrochard@common-lisp.net>
422         * src/clfswm.lisp (:unmap-notify, :destroy-notify): Show all
423         children just after the xlib tree cleanup -> reduce the
424         flickering when a window is deleted or destroyed.
426         * src/clfswm-internal.lisp (process-existing-windows): Do not
427         process the notify window.
429 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
431         * *: **** Release 1106 ****
433 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
435         * src/clfswm-internal.lisp (clean-windows-in-all-frames): New
436         function to prevent xlib error when a window is deleted.
438 2011-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
440         * src/clfswm-internal.lisp
441         (delete-child-and-children-in-all-frames): Delete or destroy
442         children before displaying all children.
444 2011-06-05  Philippe Brochard  <pbrochard@common-lisp.net>
446         * src/clfswm-util.lisp (add-frame-in-parent-frame): New function
447         and binding.
449 2011-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
451         * src/clfswm.lisp (main-unprotected): Destroy all frames windows
452         before closing the display (not really needed).
454 2011-06-02  Philippe Brochard  <pbrochard@common-lisp.net>
456         * src/clfswm-layout.lisp (inc-tile-layout-size)
457         (dec-tile-layout-size, inc-slow-tile-layout-size)
458         (dec-slow-tile-layout-size): New functions and bindings.
460 2011-06-01  Philippe Brochard  <pbrochard@common-lisp.net>
462         * src/clfswm-expose-mode.lisp (define-expose-letter-keys): Add
463         0..1 and A..Z keys to select a child in exposé mode.
465         * src/clfswm-internal.lisp (display-frame-info): Remove hidden
466         infos in frames windows.
468         * src/clfswm-util.lisp (ask-close/kill-current-window): Menu
469         update.
471 2011-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
473         * src/clfswm-internal.lisp (get-parent-layout): Minor fullscreen
474         size tweaking.
476 2011-05-29  Philippe Brochard  <pbrochard@common-lisp.net>
478         * src/clfswm-internal.lisp
479         (delete-child-and-children-in-all-frames): Show all children
480         before deleting/destroying a windows, so prevent a flickering.
481         (get-parent-layout): Return the fullscreen size when the current
482         root is a window.
484 2011-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
486         * src/clfswm-internal.lisp (get-parent-layout): Handle correctly
487         unmanaged windows.
489         * src/clfswm-util.lisp (delete-focus-window-generic): Do not hide
490         child before removing, so prevent a flickering.
492         * src/clfswm-internal.lisp (show-all-children): Rectangular
493         optimization to display only needed children.
494         (show-all-children): Remove flickering on
495         select-next/previous-brother.
497 2011-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
499         * src/clfswm-util.lisp (copy-focus-window, cut-focus-window): New
500         functions and ask-close/kill-current-window menu and bindings
501         entry.
503 2011-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
505         * src/clfswm-util.lisp (ask-close/kill-current-window): Add an
506         *ask-close/kill-placement* placement window variable.
508 2011-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
510         * contrib/osd.lisp (funcall-button-from-code): Display osd
511         documention for buttons and fix some redefining warnings.
513 2011-05-07  Philippe Brochard  <pbrochard@common-lisp.net>
515         * src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New
516         function. Prevent to add or delete a new window hook for this
517         frame.
519         * src/clfswm-layout.lisp (update-layout-managed-children-position):
520         New function.
522 2011-05-06  Philippe Brochard  <pbrochard@common-lisp.net>
524         * src/bindings-second-mode.lisp (set-default-second-keys):
525         select-brother-spatial-move-* binding update.
527         * src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask
528         to keep children positions or not.
530         * src/clfswm-internal.lisp (fixe-real-size): Takes care of border
531         size.
533         * src/clfswm-layout.lisp (update-layout-managed-children): Fix a
534         bug by using the parent frame instead of the current child.
536         * src/clfswm-circulate-mode.lisp
537         (select-brother-generic-spatial-move+right/left/up/down): New
538         function to select a brother from another in a spatial move.
540 2011-04-19  Philippe Brochard  <pbrochard@common-lisp.net>
542         * src/clfswm-pack.lisp (move-frame-constrained)
543         (resize-frame-constrained): Use pixels instead of floating
544         measure.
546 2011-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
548         * src/clfswm-pack.lisp (resize-frame-constrained): Takes care of
549         border size.
550         (implode-frame, implode-current-frame): New functions. Absorb all
551         frames subchildren in frame. Explode frame opposite.
553 2011-04-17  Philippe Brochard  <pbrochard@common-lisp.net>
555         * src/clfswm-pack.lisp (move-frame-constrained)
556         (resize-frame-constrained): New function. Move and resize frame
557         with the mouse constrained by other frame brothers.
559 2011-04-14  Philippe Brochard  <pbrochard@common-lisp.net>
561         * src/clfswm-util.lisp (with-movement-select-next-brother)
562         (with-movement-select-previous-brother)
563         (with-movement-select-next-child): Use a simple method (do not
564         enter in the circulate mode) to allow to circulate in all children
565         or brothers.
567         * src/clfswm-menu.lisp (open-menu): Save info hash table keys
568         instead of deleting newly created keys.
570 2011-03-21  Philippe Brochard  <pbrochard@common-lisp.net>
572         * src/clfswm-internal.lisp (x-px->fl, y-px->fl): Takes care of
573         border size.
575 2011-03-20  Philippe Brochard  <pbrochard@common-lisp.net>
577         * src/clfswm-info.lisp (show-config-variable): call
578         produce-conf-var-doc.
580 2011-03-18  Philippe Brochard  <pbrochard@common-lisp.net>
582         * src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a
583         documentation for all configurable variables in CLFSWM -
584         HTML version.
586         * src/clfswm-internal.lisp (leave-frame): Hide all children except
587         the current window.
589 2011-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
591         * src/clfswm-autodoc.lisp (produce-all-docs): Produce a
592         documentation for all configurable variables in CLFSWM.
594         * src/clfswm-layout.lisp (set-gimp-layout): Display a notify
595         window with the help on the GIMP layout.
597 2011-03-12  Philippe Brochard  <pbrochard@common-lisp.net>
599         * src/menu-def.lisp: Menu update to prevent cursor keys clash.
601         * clfswm.asd: Change compilation order to prevent undefined
602         variables.
604         * src/clfswm-internal.lisp (show-child(frame)): Handle properly
605         the show-root-frame-p parameter.
607 2011-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
609         * src/clfswm-util.lisp (move-frame, resize-frame): Do not move or
610         resize a frame when it's the current root.
612 2011-03-10  Philippe Brochard  <pbrochard@common-lisp.net>
614         * src/clfswm-internal.lisp (show-all-children): Handle properly
615         duplicated child in multipe frames.
617 2011-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
619         * contrib/volume-mode.lisp (set-default-volume-keys): Add more
620         keybindings (up/down, right/left) to raise/lower the volume.
622         * src/clfswm-layout.lisp: Add a variable border size for frames
623         and windows.
625 2011-03-08  Philippe Brochard  <pbrochard@common-lisp.net>
627         * src/clfswm-util.lisp (cut-current-child, remove-current-child)
628         (delete-current-child): Hide the current child before doing the
629         action.
631         * src/clfswm-internal.lisp (show-all-children): Hide windows not
632         in the current root before displaying those in current root.
633         Remove all hide-all unnecessary calls.
635         * src/clfswm-configuration.lisp (save-variables-in-conf-file):
636         Save only variables with a different value than their original
637         value.
639 2011-03-07  Philippe Brochard  <pbrochard@common-lisp.net>
641         * src/clfswm-info.lisp (show-config-variable): Use the new
642         defconfig method.
644         * src/clfswm-autodoc.lisp (produce-configuration-variables): Use
645         the new defconfig method.
647         * src/clfswm-configuration.lisp (create-configuration-menu):
648         Change the config system with a more lispy one and a less string
649         based one: (defconfig name value group doc).
652 2011-03-06  Philippe Brochard  <pbrochard@common-lisp.net>
654         * src/clfswm-internal.lisp (show-all-children): Simplify the
655         selection method.
656         (show-child): Display an unmanaged window whe  it's the current
657         child.
658         (show-all-children): add the ability to display all child from
659         *root-frame* and hide all those who are not in *current-root*.
660         -> remove hide-all-children when needed.
662         * src/xlib-util.lisp (move-window,resize-window): Add a
663         *color-move-window* border when moving or resizing a window.
665 2011-03-04  Philippe Brochard  <pbrochard@common-lisp.net>
667         * src/clfswm-internal.lisp (show-all-children): Perform only one
668         recusion on the clfswm tree: calculate geometry and place child in
669         one pass.
671 2011-03-03  Philippe Brochard  <pbrochard@common-lisp.net>
673         * src/clfswm-internal.lisp (show-all-children): Rethink of display
674         child order to prevent very annoying flickering.
676 2011-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
678         * src/clfswm-util.lisp (query-yes-or-no): New function.
680         * src/clfswm-configuration.lisp (reset-all-config-variables): New
681         function and menu entry.
682         (query-conf-value): Add the ability to leave the field blank to
683         reset the variable to its default value.
685 2011-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
687         * src/clfswm-configuration.lisp
688         (add-all-configuration-default-value): Add a default value to
689         configurable variables.
691 2011-02-23  Philippe Brochard  <pbrochard@common-lisp.net>
693         * src/clfswm.lisp (main-unprotected): Create the configuration
694         menu only once at startup.
696 2011-02-22  Desmond O. Chang <dochang@gmail.com>
698         * contrib/amixer.lisp: Add a volume mode inspired by the emms
699         volume package. Alsa mixer interface.
701         * contrib/volume-mode.lisp: Add a volume mode inspired by the emms
702         volume package.
704 2011-02-22 Desmond O. Chang <dochang@gmail.com>
706         * src/clfswm.lisp (main): Use ASDF:SYSTEM-SOURCE-DIRECTORY instead
707         of *LOAD-TRUENAME*. *LOAD-TRUENAME* is only bound during a call to
708         LOAD. If one eval CLFSWM:MAIN in repl, BASE-DIR will be an empty
709         string. Use ASDF:SYSTEM-SOURCE-DIRECTORY to fix it.
711 2011-02-16  Philippe Brochard  <pbrochard@common-lisp.net>
713         * src/clfswm.lisp (main-unprotected): Add a close hook. And close
714         the notify window, the virtual keyboard and the clfswm terminal by
715         default.
717 2011-02-15  Philippe Brochard  <pbrochard@common-lisp.net>
719         * src/clfswm.lisp (main-unprotected): Destroy the notify window
720         before closing the display. This fix a bug when resetting/reloading
721         clfswm.
723 2011-02-12  Philippe Brochard  <pbrochard@common-lisp.net>
725         * src/xlib-util.lisp (equal-wm-class-fun, equal-wm-name-fun)
726         (raise-window-fun, raise-and-focus-window-fun): New functions.
728         * src/config.lisp (*clfswm-terminal-cmd*): Switch from xterm to
729         urxvt.
730         (*never-managed-window-list*): Structure change to be more
731         flexible. Let the choice to focus, raise and do nothing on never
732         managed windows.
734 2011-02-09  Philippe Brochard  <pbrochard@common-lisp.net>
736         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Take
737         care of never managed windows to move or resize them if the raise
738         parameter is true.
740         * src/clfswm-internal.lisp (in-frame, in-window, in-child): New
741         functions.
743 2011-02-08  Philippe Brochard  <pbrochard@common-lisp.net>
745         * src/clfswm.lisp (main-mode): Raise or not unmanaged windows
746         following request in *never-managed-window-list*.
748 2011-02-05  Philippe Brochard  <pbrochard@common-lisp.net>
750         * *: **** Release 1102 ****
752 2011-02-05  Desmond O. Chang <dochang@gmail.com>
754         * src/keysyms.lisp: Add extended keysyms from stumpwm.
756 2011-02-01  Desmond O. Chang <dochang@gmail.com>
758         * src/clfswm-util.lisp (run-or-raise): New function (thanks to
759         Desmond O. Chang).
761         * src/clfswm-internal.lisp (with-all-*): add a nil block.
763 2011-01-28  Desmond O. Chang <dochang@gmail.com>
765         * src/clfswm-util.lisp (xdg-config-home): XDG_CONFIG_HOME should
766         be $HOME/.config by default.
768 2010-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
770         * contrib/osd.lisp (display-doc): Add another method where a
771         CLFSWM native window is used to display the key documentation.
773 2010-12-27  Philippe Brochard  <pbrochard@common-lisp.net>
775         * src/xlib-util.lisp (with-xlib-protect): Force to revert to the
776         main mode state.
778 2010-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
780         * src/clfswm-second-mode.lisp (second-key-mode): Call the second
781         mode leave function only when the generic mode was ended.
783 2010-12-08  Philippe Brochard  <pbrochard@common-lisp.net>
785         * src/clfswm-second-mode.lisp (sm-leave-function): Do not use
786         *second-mode-program* anymore.
788 2010-12-07  Philippe Brochard  <pbrochard@common-lisp.net>
790         * src/clfswm-second-mode.lisp (*second-mode-leave-function*): New
791         variable bound to a function executed (when not null) on second
792         mode leaving.
794 2010-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
796         * src/clfswm-util.lisp (find-child-under-mouse): Do not find
797         hidden windows.
799 2010-11-13  Philippe Brochard  <pbrochard@common-lisp.net>
801         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
802         Do not display the accel window for unmanaged windows.
804 2010-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
806         * src/clfswm-internal.lisp (set-current-root): Handle
807         window-parent in set-current-root.
809         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Do not
810         focus the parent child when the current root is a window.
812 2010-11-09  Philippe Brochard  <pbrochard@common-lisp.net>
814         * src/clfswm-expose-mode.lisp (expose-windows-current-child-mode):
815         New function an bindings.
817         * src/clfswm-layout.lisp (tile-layout, set-tile-layout): Fill
818         blanks if needed.
820 2010-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
822         * src/clfswm-layout.lisp (tile-layout-ask-keep-position): New
823         function to let the user choose to keep child position with
824         tile layout.
826         * src/clfswm-internal.lisp (remove-frame-data-slot): New
827         function.
829 2010-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
831         * src/clfswm-internal.lisp (frame-select-next-child)
832         (frame-select-previous-child): New functions and bindings. Select
833         the next/previous child in the current frame.
835 2010-10-31  Philippe Brochard  <pbrochard@common-lisp.net>
837         * src/clfswm-query.lisp (query-mode-complet): New function: Handle
838         completion in query-mode.
840 2010-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
842         * src/clfswm-query.lisp (query-print-string): Handle long lines
843         correctly.
845 2010-10-27  Philippe Brochard  <pbrochard@common-lisp.net>
847         * src/clfswm-expose-mode.lisp (expose-create-window): Ensure that
848         all characters are printable.
850 2010-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
852         * contrib/server/server.lisp: Load clfswm client code in the main
853         program and let the user start it with a --client command line
854         option.
856         * src/package.lisp (*main-entrance-hook*): New hook executed after
857         loading configuration file and before opening the display.
859 2010-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
861         * src/xlib-util.lisp: Remove unnecessary xlib:display-finish-output.
863         * src/clfswm-internal.lisp (show-child): Show window only if not
864         hidden.
866         * src/clfswm-keys.lisp (binding-substitute-modifier): Utility to
867         change modifiers after binding definition.
869 2010-10-21  Philippe Brochard  <pbrochard@common-lisp.net>
871         * contrib/osd.lisp: New file: OSD (On Screen Display) for
872         presentations.
874         * src/clfswm-menu.lisp (open-menu): Modularise function.
876 2010-10-13  Philippe Brochard  <pbrochard@common-lisp.net>
878         * src/clfswm-info.lisp (show-first-aid-kit): Display the essential
879         key binding in main and second mode.
881 2010-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
883         * src/clfswm-util.lisp (open-notify-window): Convert hello-window
884         functions to a more generic Notify-window system.
886         * src/tools.lisp (add-timer): Add an id to identify the timer.
888 2010-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
890         * src/tools.lisp (erase-timer): New function.
892         * src/clfswm-util.lisp (display-hello-window): Add a timer to hide
893         the hello window. Add Configuration variables.
895 2010-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
897         * src/clfswm-util.lisp (): Add an Hello window at startup.
899         * src/tools.lisp (process-timers): Add a timer system.
901 2010-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
903         * src/clfswm-query.lisp (add-in-query-string): Handle correctly
904         the mod-5 modifier.
906 2010-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
908         * src/clfswm-query.lisp (query-print-string): Change cursor color
909         and show parenthesis matching with colors (on match and on
910         errors).
912 2010-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
914         * src/clfswm-internal.lisp (show-all-children): Do not raise a
915         child when its parent is hidden.
917 2010-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
919         * src/clfswm-circulate-mode.lisp (select-next-subchild): Add the
920         possibility to circulate over subchild of the current child.
922         * src/clfswm-expose-mode.lisp (expose-all-windows-mode)
923         (expose-windows-generic): Add an escape-body function to return to
924         the original state on escape key.
926         * src/clfswm-util.lisp (bind-on-slot): Add an optional parameter
927         to bind the current child from the configuration file.
929 2010-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
931         * src/clfswm-nw-hooks.lisp (absorb-window-nw-hook): Absorb new
932         window hook: the frame absorb all new windows that match
933         nw-absorb-test frame data slot.
935 2010-09-30  Philippe Brochard  <pbrochard@common-lisp.net>
937         * src/clfswm-expose-mode.lisp (expose-create-window): Show window
938         title in accel window.
940 2010-09-29  Philippe Brochard  <pbrochard@common-lisp.net>
942         * configure: Use the Xavier Maillard clfswm script in contrib to
943         build an executable in the standard way.
945 2010-09-26  Philippe Brochard  <pbrochard@common-lisp.net>
947         * src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
948         New functions. Add a window on each child in the expose mode to
949         quickly select them.
951         * src/clfswm-internal.lisp (child-x, child-y, child-width)
952         (child-height): New methods to get real child coordinates.
954 2010-09-25  Philippe Brochard  <pbrochard@common-lisp.net>
956         * src/clfswm-layout.lisp (*-layout): Use child-position.
958         * src/clfswm-internal.lisp (child-position): New function.
960         * src/clfswm-expose-mode.lisp (expose-windows-mode)
961         (expose-all-windows-mode): Use a generic mode.
963         * src/xlib-util.lisp (with-handle-event-symbol): Use a filled list
964         with handle-event-fun symbols instead of inspecting clfswm
965         internals symbols on each mode change.
967         * src/clfswm-expose-mode.lisp: Move and rename present*-windows in
968         a separate clfswm-expose-mode.lisp file.
970         * src/clfswm-util.lisp (speed-mouse-right, speed-mouse-down): Use
971         screen size instead of hardcoded test coordinates.
973 2010-09-24  Philippe Brochard  <pbrochard@common-lisp.net>
975         * src/clfswm-util.lisp (speed-mouse-reset, speed-mouse-left)
976         (speed-mouse-right, speed-mouse-up, speed-mouse-down)
977         (speed-mouse-undo, speed-mouse-first-history): New functions to
978         quickly move the mouse. Implemented for the second mode.
980 2010-09-16  Philippe Brochard  <pbrochard@common-lisp.net>
982         * contrib/clfswm: Move clfswm sources to $tmp_dir if there is no
983         write permission on $clfswm_asd_path. So anybody can start clfswm
984         even if there is no write permission on the source directory.
986 2010-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
988         * contrib/clfswm: Add support to cmucl, ccl and ecl.
990 2010-09-11  Philippe Brochard  <pbrochard@common-lisp.net>
992         * src/clfswm-util.lisp (set-hide-unmanaged-window)
993         (set-show-unmanaged-window, set-default-hide-unmanaged-window):
994         New functions and menu entry.
995         (set-globally-hide-unmanaged-window)
996         (set-globally-show-unmanaged-window): New functions and menu
997         entry.
999         * src/clfswm-internal.lisp (hide-unmanager-window-p): New
1000         function.
1001         (show-child): Add a data slot on frame to hide or not unmanaged
1002         windows.
1004         * src/clfswm-corner.lisp (present-clfswm-terminal)
1005         (present-virtual-keyboard): Use a function (generic-present-body)
1006         instead of a macro (generate-present-body).
1008         * src/clfswm-util.lisp (update-menus): List all directories and
1009         subdirectories in $XDG_DATA_DIRS/applications.
1011 2010-09-10  Philippe Brochard  <pbrochard@common-lisp.net>
1013         * src/clfswm-corner.lisp (generate-present-body): New macro.
1014         (present-clfswm-terminal, present-virtual-keyboard): Use
1015         generate-present-body.
1017 2010-09-09  Philippe Brochard  <pbrochard@common-lisp.net>
1019         * src/clfswm-util.lisp (update-menus): Follow XDG specifications
1020         instead of the non-portable Debian update-menu.
1022 2010-09-07  Philippe Brochard  <pbrochard@common-lisp.net>
1024         * src/clfswm.lisp (error-handler): New function do handle
1025         asynchronous errors and ignore them.
1026         (open-display): Install the new error-handler on display.
1028 2010-09-05  Philippe Brochard  <pbrochard@common-lisp.net>
1030         * src/xlib-util.lisp (with-xlib-protect): Add a
1031         with-simple-restart on top of body execution.
1033 2010-09-04  Philippe Brochard  <pbrochard@common-lisp.net>
1035         * src/clfswm.lisp (main-loop): Protect all xlib functions with an
1036         with-xlib-protect.
1038         * src/xlib-util.lisp (handle-event): use with-xlib-protect only in
1039         handle-event. Add a with-simple-restart to prevent a
1040         clisp/new-lisp infinite loop.
1042 2010-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
1044         * src/clfswm-corner.lisp (present-clfswm-terminal): Make the
1045         clfswm terminal working even on xterm title changes.
1047 2010-08-29  Philippe Brochard  <pbrochard@common-lisp.net>
1049         * src/clfswm-util.lisp (run-other-window-manager): Update for
1050         clisp compatibility.
1052         * src/tools.lisp (do-execute): New parameter io to change the
1053         input/output method.
1055         * src/clfswm-util.lisp (hide-current-child): Prevent from removing
1056         the current root.
1058         * src/clfswm-internal.lisp (child-member): New predicate.
1059         (child-remove): New function.
1061         * src/*.lisp: Use child-member and child-remove everywhere it's
1062         needed.
1064 2010-08-28  Philippe Brochard  <pbrochard@common-lisp.net>
1066         * src/clfswm.lisp (main-loop): Ensure that all events have been
1067         processed after a process-event.
1069         * src/clfswm-internal.lisp (is-in-current-child-p): New function.
1071 2010-08-27  Philippe Brochard  <pbrochard@common-lisp.net>
1073         * src/clfswm.lisp (main-mode:configure-request): Raise the window
1074         only when present on the current child and focus it accordingly.
1076 2010-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
1078         * src/clfswm-circulate-mode.lisp (circulate-loop-function):
1079         Use is-a-key-pressed-p.
1081         * src/xlib-util.lisp (is-a-key-pressed-p): New predicate.
1083         * src/clfswm-keys.lisp (define-ungrab/grab): Use all values
1084         returned by xlib:keysym->keycodes.
1086         * src/*.lisp: Use the new child-equal-p to compare children. This
1087         prevent a bug with sbcl/cmucl when the standard equal function
1088         does not work with xlib:window.
1090         * src/clfswm-internal.lisp (child-equal-p): New predicate.
1092 2010-08-25  Philippe Brochard  <pbrochard@common-lisp.net>
1094         * src/clfswm-generic-mode.lisp (generic-mode): Use an
1095         xlib:event-listen before processing event with
1096         xlib:process-event. This prevent a bug with CLX threaded
1097         implementation like sbcl.
1099         * src/clfswm.lisp (main-loop): Use an xlib:event-listen before
1100         processing event with xlib:process-event. This prevent a bug with
1101         CLX threaded implementation like sbcl.
1103 2010-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
1105         * contrib/server/key.lisp (ushell-sh): Add ccl and ecl support.
1107         * src/xlib-util.lisp (compress-motion-notify): Use a loop instead
1108         of an event-case.
1110         * src/clfswm-internal.lisp (with-find-in-all-frames): New macro.
1111         (find-parent-frame, find-frame-window, find-frame-by-name)
1112         (find-frame-by-number): Use with-find-in-all-frames to search in
1113         frames in the right order.
1115         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Fix an
1116         unwanted flickering with unmanaged windows.
1118 2010-08-16  Philippe Brochard  <pbrochard@common-lisp.net>
1120         * src/package.lisp: Remove event handler hooks as they're not
1121         needed anymore (To replace them: use closure and define-handler).
1123         * src/xlib-util.lisp (move-window, resize-window)
1124         (wait-mouse-button-release): Use a generic mode.
1126         * src/*.lisp: Replace the case to handle event with a more (tricky)
1127         lispy  method which bind a function to each keywords associated
1128         to graphics events.
1130 2010-07-23  Philippe Brochard  <pbrochard@common-lisp.net>
1132         * src/clfswm-util.lisp (delete-current-child): Invert bindings and
1133         menu entry between delete-current-child and remove-current-child.
1134         ie: Delete a child and its children in all frames by default.
1136 2010-07-21  Philippe Brochard  <pbrochard@common-lisp.net>
1138         * src/package.lisp: Add a placement configuration group.
1140         * src/binding*.lisp: Bind control+g to escape the current action
1141         like emacs.
1143         * src/clfswm-internal.lisp
1144         (delete-child-and-children-in-all-frames): New function and
1145         binding: Second mode - Control+Delete delete the current child and
1146         its children in all frames (ie: close the current child and its
1147         children).
1149 2010-07-20  Philippe Brochard  <pbrochard@common-lisp.net>
1151         * src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy
1152         the frame window and the frame gc. Close a very annoying bug when
1153         cuting/pasting a frame or moving a child over frames with the
1154         mouse.
1156         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
1157         all children in *current-root* after moving/resizing a frame.
1159 2010-07-18  Philippe Brochard  <pbrochard@common-lisp.net>
1161         * src/clfswm-util.lisp (delete-focus-window)
1162         (destroy-focus-window): Remove child in parent frame before
1163         stopping it.
1165 2010-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
1167         * src/clfswm-util.lisp (identify-key): Add a timeout in
1168         xlib:process-event.
1169         (mouse-click-to-focus-generic): Use find-child-under-mouse instead
1170         of the window passed by xlib:process-event.
1172         * src/xlib-util.lisp (move-window, resize-window)
1173         (wait-mouse-button-release): Add a timeout in xlib:process-event.
1175 2010-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
1177         * src/clfswm-util.lisp (run-other-window-manager): Add the ability
1178         to launch an other window manager and to return to clfswm.
1180 2010-03-18  Philippe Brochard  <pbrochard@common-lisp.net>
1182         * src/clfswm-layout.lisp (set-tile-space-layout): Set default
1183         to 1%.
1185 2009-12-15  Philippe Brochard  <pbrochard@common-lisp.net>
1187         * src/clfswm.lisp (main-loop): Add a *loop-hook* parameter and a
1188         loop timeout.
1190         * src/clfswm-generic-mode.lisp (generic-mode): Add a loop-hook
1191         parameter and a loop timeout.
1193 2009-12-05  Philippe Brochard  <pbrochard@common-lisp.net>
1195         * src/clfswm.lisp (main): Add an alternate configuration filename
1196         parameter.
1198         * load.lisp: Add a debuging code example.
1200 2009-11-14  Philippe Brochard  <pbrochard@common-lisp.net>
1202         * src/clfswm-configuration.lisp (create-configuration-menu): New
1203         menu to configure all clfswm variables while clfswm is running.
1205 2009-11-12  Philippe Brochard  <pbrochard@common-lisp.net>
1207         * src/clfswm-util.lisp (save-configuration-variables): New
1208         function to save all configuration variables in clfswmrc.
1210 2009-11-11  Philippe Brochard  <pbrochard@common-lisp.net>
1212         * src/clfswm-info.lisp (info-mode): Begining of mouse support in
1213         info mode.
1214         (set-default-info-keys): Add cursor key support in info mode.
1216 2009-11-08  Philippe Brochard  <pbrochard@common-lisp.net>
1218         * contrib/reboot-halt.lisp: Add a Suspend/Reboot/Halt menu in
1219         contrib.
1221         * src/clfswm.lisp (main): Add a read-conf-file-p parameter to
1222         prevent reading the configuration file (this may be useful to
1223         produce the original documentation without user modifications
1224         with the rc configuration file).
1226 2009-11-07  Philippe Brochard  <pbrochard@common-lisp.net>
1228         * src/bindings-second-mode.lisp (set-default-second-keys):
1229         Simplification of Escape key to close/kill/remove the focus window
1230         and unhide all windows.
1232         * src/bindings.lisp (set-default-main-keys): Simplification of
1233         Escape key to close/kill/remove the focus window and unhide all
1234         windows.
1236         * src/clfswm-util.lisp (ask-close/kill-current-window): Add remove
1237         focus and unhide all windows capabilities.
1239 2009-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
1241         * contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
1243 2009-07-29  Philippe Brochard  <pbrochard@common-lisp.net>
1245         * src/clfswm-layout.lisp (tile-layout, tile-horizontal-layout):
1246         Keep child order and don't make unnecessary child movement.
1247         (one-column-layout, one-line-layout): New layouts.
1249 2009-06-29  Philippe Brochard  <pbrochard@common-lisp.net>
1251         * *: **** Release 0906 ****
1253         * contrib/cd-player.lisp: New file to handle the CD player.
1255         * contrib/xmms.lisp: New file to handle the xmms player.
1257 2009-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
1259         * src/clfswm-layout.lisp (set-no-layout-remember-size): New layout:
1260         Maximize windows in their frame - Leave frames to their actual
1261         size.
1263         * src/bindings-second-mode.lisp (set-default-second-keys): Bind
1264         "o" on set-open-in-new-frame-in-parent-frame-nw-hook.
1266 2009-06-27  Philippe Brochard  <pbrochard@common-lisp.net>
1268         * contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
1270 2009-06-24  Philippe Brochard  <pbrochard@common-lisp.net>
1272         * contrib/mpd.lisp: Use a standard menu.
1274         * src/clfswm-info.lisp: Use a standard menu for the help-menu.
1276 2009-06-22  Philippe Brochard  <pbrochard@common-lisp.net>
1278         * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
1280 2009-06-19  Philippe Brochard  <pbrochard@common-lisp.net>
1282         * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
1283         number key cleanup.
1285 2009-06-18  Philippe Brochard  <pbrochard@common-lisp.net>
1287         * src/config.lisp (get-fullscreen-size):  One pixel adjustment
1288         (again).
1290         * src/clfswm-placement.lisp (*-child-placement): One pixel
1291         adjustment (again).
1293 2009-06-16  Philippe Brochard  <pbrochard@common-lisp.net>
1295         * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
1296         Ensure that all characters are printable.
1298         * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
1299         sizes.
1301         * src/clfswm-placement.lisp (*-child-placement): Adjust
1302         coordinates to one pixel in the current child.
1304 2009-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
1306         * src/clfswm-query.lisp (query-enter-function): Assign font before
1307         width and height calculation.
1309 2009-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
1311         * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
1312         bannish the pointer in an arbitrary place.
1314         * src/clfswm-info.lisp (info-mode): Use with-placement macro to
1315         place the info window in an arbitrary place.
1317         * src/clfswm-query.lisp (query-enter-function): Use with-placement
1318         macro to place the query window in an arbitrary place.
1320         * src/clfswm-placement.lisp: New file. Allow to place info windows
1321         or query windows on an arbitrary place. Allow to bannish the
1322         pointer on an arbitrary place.
1324 2009-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
1326         * src/clfswm-circulate-mode.lisp (reorder-child)
1327         (reorder-brother): Unfocus windows before reordering children or
1328         brothers.
1330 2009-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1332         * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
1333         the parent is a frame.
1335         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
1336         motion with a default modifier.
1338         * src/clfswm.lisp (handle-motion-notify): Handle motion with a
1339         default modifier.
1341         * src/clfswm-info.lisp (info-mode): Handle motion with a default
1342         modifier.
1343         (info-mode): Optimization in loop function.
1345 2009-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
1347         * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
1348         root-frame correctly.
1350         * clfswm.asd: Dependency fix for clfswm-generic-mode.
1352         * src/clfswm-circulate-mode.lisp (reorder-child)
1353         (reorder-brother): Handle empty frames.
1354         (reorder-brother): Redisplay only the parent frame of the  current
1355         child.
1357         * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
1358         parent frame of the  current frame.
1360 2009-05-09  Philippe Brochard  <pbrochard@common-lisp.net>
1362         * src/clfswm-util.lisp (frame-toggle-maximize): New function:
1363         Maximize/Unmaximize the current frame in its parent frame.
1365         * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
1366         windows and frames in their parent frame.
1368 2009-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
1370         * src/*.lisp: Add support for Clozure Common Lisp (CCL).
1372         * src/clfswm-circulate-mode.lisp (reorder-child)
1373         (reorder-brother): Reinitialise on circulate type change
1374         child to brother or brother to child.
1376         * src/*.lisp (*): Use map-window instead of xlib:map-window. So
1377         calls xlib:display-finish-output on each map-request. So speed up
1378         the window display.
1380         * src/xlib-util.lisp (map-window): New function. Call
1381         xlib:display-finish-output on each map request.
1383 2009-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1385         * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
1386         Optimisation when drawing second mode window.
1388 2009-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
1390         * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
1391         window redraw.
1393 2009-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1395         * src/clfswm-util.lisp (run-program-from-query-string): Launch
1396         command only with a return validation.
1398 2009-04-22  Xavier Maillard  <xma@gnu.org>
1400         * src/clfswm-query.lisp (query-string): Use a generic mode.
1402 2009-04-19  Xavier Maillard  <xma@gnu.org>
1404         * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
1406 2009-04-18  Xavier Maillard  <xma@gnu.org>
1408         * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
1409         to define all other modes.
1411 2009-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
1413         * src/package.lisp (): Use *default-font-string* for all
1414         font-string.
1416         * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
1418 2009-02-17  Philippe Brochard  <pbrochard@common-lisp.net>
1420         * src/xlib-util.lisp (null-size-window-p): Better check of null
1421         sized windows.
1423 2009-02-14  Philippe Brochard  <pbrochard@common-lisp.net>
1425         * src/clfswm.lisp (handle-map-request): Add a fix to manage
1426         correctly fullscreen windows (SDL particularly).
1428 2008-12-20  Philippe Brochard  <pbrochard@common-lisp.net>
1430         * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
1431         a segfault with clisp/new-clx.
1433         * src/clfswm.lisp (handle-motion-notify): Add a needed window
1434         argument.
1436         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
1437         needed window argument.
1439 2008-10-30  Philippe Brochard  <pbrochard@common-lisp.net>
1441         * src/xlib-util.lisp (wait-no-key-or-button-press)
1442         (wait-a-key-or-button-press): Check buttons press/release correctly"
1444 2008-10-28  Philippe Brochard  <pbrochard@common-lisp.net>
1446         * src/menu-def.lisp: Add children navigation menu in the movement
1447         menu (select next/previous child/brother/level).
1449 2008-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
1451         *  *: Rename 'sister' frame to 'brother' frame.
1453         * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
1454         alias in a real modifier.
1456         * src/package.lisp (*modifier-alias*): New list of modifier alias
1457         For example: :alt is :mod-1, :numlock is :mod-2...
1459         * src/tools.lisp (remove-hook): New function.
1461         * src/clfswm-keys.lisp (with-capslock, without-capslock)
1462         (with-numlock, without-cnumlock): New functions.
1464 2008-10-25  Philippe Brochard  <pbrochard@common-lisp.net>
1466         * src/clfswm-info.lisp: Use the *binding-hook* to create info
1467         keys and mouse bindings.
1469         * src/bindings-second-mode.lisp: Use the *binding-hook* to create
1470         second keys and mouse bindings.
1472         * src/bindings.lisp: Use the *binding-hook* to create main keys
1473         and mouse bindings.
1475 2008-10-10  Philippe Brochard  <pbrochard@common-lisp.net>
1477         * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
1478         menu opening.
1480 2008-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
1482         * src/menu-def.lisp: Use a menu instead of a function for the
1483         standard menu.
1485 2008-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
1487         * src/clfswm-util.lisp (show-standard-menu): Display the standard
1488         menu from the 'update-menus' command.
1490 2008-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
1492         * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
1493         it's already grabbed.
1495         * src/clfswm-internal.lisp (display-frame-info): Use configurable
1496         colors and fix a bug with background.
1497         (display-frame-info): Set window background when displaying info.
1499 2008-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
1501         * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
1502         warning with clisp/new-clx.
1504 2008-10-04  Philippe Brochard  <pbrochard@common-lisp.net>
1506         * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
1507         deleted child.
1509 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
1511         * *: **** Release 0809 ****
1513 2008-09-23  Philippe Brochard  <pbrochard@common-lisp.net>
1515         * src/clfswm-util.lisp (ensure-unique-name): New function and menu
1516         entry.
1517         (ensure-unique-number): New function and menu entry.
1519 2008-09-22  Philippe Brochard  <pbrochard@common-lisp.net>
1521         * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
1522         hook: open the next window in a named frame.
1523         (numbered-frame-nw-hook): New new window hook: open the next
1524         window in a numbered frame.
1526         * src/clfswm-query.lisp (query-string): Grab the keyboard in all
1527         cases. So query-string can be called even in the main mode.
1529         * src/clfswm-internal.lisp (show-all-children): Do not raise a
1530         child by default => far less flickering.
1532 2008-09-19  Philippe Brochard  <pbrochard@common-lisp.net>
1534         * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
1536         * src/menu-def.lisp: Change key binding for the CLFSWM menu
1537         entry.
1539         * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
1540         is nil. (workaround on some CLX implementation).
1542 2008-09-12  Philippe Brochard  <pbrochard@common-lisp.net>
1544         * src/menu-def.lisp: Add a menu to set a focus policy for all
1545         frames.
1547         * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
1548         (all-frames-set-*-focus-policy): Set a focus policy for all
1549         frames.
1551         * src/clfswm.lisp (handle-enter-notify): sloppy-select
1552         mode. Select a child and its parents on mouse over.
1554 2008-09-03  Philippe Brochard  <pbrochard@common-lisp.net>
1556         * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
1557         policy -> Sloppy focus only for windows in the current frame.
1558         (main-unprotected): Exit clfswm on init error (ie: when another
1559         window manager is running).
1561         * src/clfswm-util.lisp (reset-clfswm): New function.
1563 2008-09-02  Philippe Brochard  <pbrochard@common-lisp.net>
1565         * src/clfswm-menu.lisp (init-menu): New function.
1567         * src/clfswm-util.lisp (reload-clfswm): New function to reload
1568         CLFSWM.
1569         (exit-clfswm): Rename quit-clfswm to exit-clfswm.
1571         * src/clfswm.lisp (main, main-unprotected): Handle error in a
1572         superior main function. Now CLFSWM can't break the X session. It
1573         just reinitialize the display and run a new main loop.
1575         * src/clfswm-corner.lisp: Make *clfswm-terminal* and
1576         *vt-keyboard-on* global to avoid warnings when loading clfswm.
1578         * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
1579         (help-on-gimp-layout): Describe how to use the GIMP layout.
1581 2008-09-01  Philippe Brochard  <pbrochard@common-lisp.net>
1583         * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
1584         main-window-right-layout. Change the keybinding for (shift)alt+tab
1585         to not select windows in the main window lisst.
1586         Bind F8 to add a window in the main window list.
1587         Bind F9 to remove a window in the main window list.
1588         Change the focus policy to :sloppy.
1589         (set-previous-layout): Restore the previous layout, keybinding and
1590         focus policy.
1592 2008-08-31  Philippe Brochard  <pbrochard@common-lisp.net>
1594         * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
1596         * src/clfswm-layout.lisp (main-window-left-layout)
1597         (main-window-bottom-layout, main-window-top-layout): New
1598         functions.
1599         Factorize layouts in menu.
1601 2008-08-30  Philippe Brochard  <pbrochard@common-lisp.net>
1603         * src/clfswm-layout.lisp (main-window-right-layout): A possible
1604         GIMP layout: one or more main windows on one side of the
1605         frame. Others on the other size.
1607         * src/clfswm-util.lisp
1608         (current-frame-set-click/sloppy-focus-policy): Each frame can have
1609         a different focus policy (one of :click or :sloppy).
1610         The default focus policy is set with *default-focus-policy*.
1612 2008-08-23  Philippe Brochard  <pbrochard@common-lisp.net>
1614         * src/clfswm-info.lisp (show-config-variable): New function.
1616 2008-08-19  Philippe Brochard  <pbrochard@common-lisp.net>
1618         * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
1620         * src/clfswm-info.lisp: Colored help for key binding and corners
1621         actions.
1623 2008-08-18  Philippe Brochard  <pbrochard@common-lisp.net>
1625         * src/clfswm-util.lisp (delete-focus-window)
1626         (destroy-focus-window): Remove chid only in
1627         handle-unmap/destroy-notify. Focus *current-root* only when
1628         closing/killing the current child.
1630         * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
1631         functions or corners.
1633 2008-08-17  Philippe Brochard  <pbrochard@common-lisp.net>
1635         * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
1636         action: Hide/Unhide a terminal on mouse corner action. (By default
1637         right mouse button on the top left corner).
1639         * src/config.lisp (*never-managed-window-list*): New config
1640         variable.
1642         * src/clfswm-internal.lisp (never-managed-window-p): New function:
1643         Handle never managed window in a more simple way.
1645         * src/clfswm-corner.lisp: New file and new and more simple method
1646         to define corners actions.
1648 2008-08-15  Philippe Brochard  <pbrochard@common-lisp.net>
1650         * src/clfswm-info.lisp (info-mode): Info line can now be colored.
1652         * src/clfswm-layout.lisp (fast-layout-switch)
1653         (define-fast-layout-switch): New functions: Switch between two
1654         layouts.
1656         * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
1657         really in the second mode. So leave-second-mode can be used even
1658         in the main mode.
1660         * src/clfswm-util.lisp (switch-to-last-child): New function:
1661         Store the current child and switch to the previous one.
1663 2008-07-16  Philippe Brochard  <pbrochard@common-lisp.net>
1665         * src/clfswm-util.lisp (display-current-window-info): Display the
1666         window id.
1667         (have-to-present-virtual-keyboard): Add a virtual keyboard corner
1668         (top right by default). By default 'xvkbd' is used.
1670 2008-06-28  Philippe Brochard  <pbrochard@common-lisp.net>
1672         * src/xlib-util.lisp (move-window, resize-window): Compress motion
1673         events.
1675         * src/clfswm.lisp (handle-motion-notify): Compress motion events.
1677         * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
1678         motion events.
1680         * src/clfswm-info.lisp (info-mode): Compress motion events.
1682 2008-06-21  Philippe Brochard  <pbrochard@common-lisp.net>
1684         * src/clfswm-internal.lisp (show-all-children): Compute geometry
1685         and selection first and then show only necessary children.
1686         (show-child): remove unneeded display-p parameter.
1688         * src/config.lisp (get-fullscreen-size): Place the frame border
1689         outside the screen (this prevent the loose of 2 pixels per
1690         directions :)
1692 2008-06-12  Philippe Brochard  <pbrochard@common-lisp.net>
1694         * src/clfswm-internal.lisp (focus-child): Algorithm change to
1695         raise only the selected child.
1697 2008-06-08  Philippe Brochard  <pbrochard@common-lisp.net>
1699         * src/clfswm-internal.lisp (raise-p-list, show-all-children):
1700         Raise only viewable children.
1702 2008-06-06  Philippe Brochard  <pbrochard@common-lisp.net>
1704         * src/clfswm-internal.lisp (show-all-children): Always raise all
1705         displayed children. Remove all references to raise-p.
1707 2008-06-04  Philippe Brochard  <pbrochard@common-lisp.net>
1709         * src/menu-def.lisp (child-menu): New menu entry on raise/lower
1710         child in its frame.
1712         * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
1713         second mode binding on raise/lower child in its frame.
1715         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
1716         behaviour to the new raise/lower property.
1717         Call clear-nw-hook before the rest of the hook.
1719         * src/bindings.lisp (mouse-click-to-focus-and-move-window)
1720         (mouse-click-to-focus-and-resize-window): Stop button event. This
1721         prevent a keyboard/pointer freeze.
1723 2008-06-03  Philippe Brochard  <pbrochard@common-lisp.net>
1725         * src/clfswm-internal.lisp (frame-lower-child)
1726         (frame-raise-child): New functions to raise/lower a child in its
1727         frame.
1729         * src/clfswm-util.lisp (have-to-present-windows)
1730         (have-to-present-all-windows): New functions to have an MaxOS
1731         expose like on mouse click in screen corner.
1733         * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
1735 2008-05-30  Philippe Brochard  <pbrochard@common-lisp.net>
1737         * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
1738         child from a choice in all frames with hidden children.
1740         * src/clfswm-info.lisp (info-mode-menu): Handle separators.
1742 2008-05-28  Philippe Brochard  <pbrochard@common-lisp.net>
1744         * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
1745         (unhide-all-children): New functions.
1747         * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
1748         functions.
1750         * src/clfswm-util.lisp (hide/show-frame-window): new function and
1751         menu item.
1753 2008-05-23  Philippe Brochard  <pbrochard@common-lisp.net>
1755         * src/clfswm-util.lisp (rename-current-child): Do not display the
1756         frame info for a window.
1758 2008-05-20  Philippe Brochard  <pbrochard@common-lisp.net>
1760         * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
1761         frame window for the removed child and its children.
1763 2008-05-18  Philippe Brochard  <pbrochard@common-lisp.net>
1765         * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
1766         autodoc functions.
1768 2008-05-17  Philippe Brochard  <pbrochard@common-lisp.net>
1770         * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
1771         the ROX pinboard (ie: leave it lowered in the root window as
1772         expected).
1774         * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
1775         (tile-left-layout, tile-right-layout, tile-top-layout)
1776         (tile-bottom-layout): Use all the frame space when there is only
1777         one child.
1779         * src/clfswm-internal.lisp (place-window-from-hints): Center
1780         unmanaged windows in the root screen.
1782         * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
1783         new functions.
1785 2008-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
1787         * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
1788         typo in managed types.
1790         * src/clfswm-internal.lisp (show-child): Always display frame info
1791         even if the frame is hidden.
1793         * src/xlib-util.lisp (resize-window): Use a better algorithme to
1794         resize windows.
1796 2008-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
1798         * src/clfswm-util.lisp (with-movement): Display frame info for all
1799         frames in current root.
1801 2008-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
1803         * src/*.lisp: Rename 'brother' frames to 'sister' frames.
1805         * src/bindings-second-mode.lisp (define-second-key #\a): New
1806         binding on 'add-default-frame'.
1808         * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
1809         message to follow the autodocumentation process.
1811 2008-05-10  Philippe Brochard  <pbrochard@common-lisp.net>
1813         * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
1814         "Space" to jump to a child. "B" to bind a slot on the current
1815         child.
1817         * src/bindings-second-mode.lisp: Use "Tab" instead of
1818         "Iso_Left_Tab".
1820 2008-05-07  Philippe Brochard  <pbrochard@common-lisp.net>
1822         * src/clfswm-util.lisp (find-child-under-mouse): Take care of
1823         unmanaged (hidden) windows.
1825         * src/clfswm-internal.lisp (place-window-from-hints): Give a
1826         minimal size for windows.
1827         (with-all-windows-frames-and-parent): New function.
1829         * src/config.lisp (*default-window-width/height*): New parameters.
1831         * src/clfswm-internal.lisp (place-window-from-hints): Center
1832         windows in the screen instead of in their frame.
1834         * src/bindings-second-mode.lisp (tile-space-current-frame): New
1835         binding on C-t.
1837         * src/clfswm-layout.lisp (register-layout): Intern the once name
1838         in the right package.
1840 2008-05-05  Philippe Brochard  <pbrochard@common-lisp.net>
1842         * doc/dot-clfswmrc: Update to  follow the new clfswm way.
1844 2008-05-03  Philippe Brochard  <pbrochard@common-lisp.net>
1846         * src/clfswm-internal.lisp (set-current-child)
1847         (adapt-child-to-parent, show-child, hide-child): Handle the case
1848         where child is not a frame or a window.
1850         * src/clfswm-util.lisp
1851         (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
1852         Check if child is a frame.
1854         * src/clfswm-internal.lisp (managed-window-p): Handle the case
1855         where frame is null.
1856         (place-frame): Check if frame and parent are frames.
1858         * src/clfswm-info.lisp (info-mode): display all frame info before
1859         leaving.
1861         * src/clfswm-second-mode.lisp (second-key-mode): display all frame
1862         info before leaving.
1864         * src/clfswm-internal.lisp (display-all-frame-info): New function.
1866 2008-05-02  Philippe Brochard  <pbrochard@common-lisp.net>
1868         * src/tools.lisp (getenv): Implemented for ECL.
1869         (urun-prog): Implemented for ECL.
1871         * src/clfswm-util.lisp (identify-key): Use a double buffer to
1872         display text.
1874         * src/clfswm-query.lisp (query-string): Use a double buffer to
1875         display text.
1877         * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
1878         display text.
1880         * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
1881         New functions.
1883 2008-05-01  Philippe Brochard  <pbrochard@common-lisp.net>
1885         * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
1887         * src/menu-def.lisp: New file: move all menu definition in
1888         menu-def.lisp.
1890         * src/clfswm-layout.lisp (register-layout): Use a function instead
1891         of a macro.
1893 2008-04-30  Philippe Brochard  <pbrochard@common-lisp.net>
1895         * src/clfswm-autodoc.lisp (produce-menu-doc,
1896         (produce-menu-doc-html): New functions.
1897         (produce-doc-*): Moved to clfswm-autodoc.lisp.
1899         * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
1900         paste a child on one of its own children. (this prevent a
1901         recursive bug).
1902         (move-child-to): Rename move/copy-current-child-by to
1903         move/copy-child-to.
1904         (mouse-move-window-over-frame): New function to move the window
1905         under the mouse cursor to another frame.
1907         * src/clfswm-internal.lisp (find-child-in-parent): New function.
1909 2008-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
1911         * src/clfswm-internal.lisp (show-all-children): Display unmanaged
1912         windows only when its window parent is the current child.
1914 2008-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
1916         * src/clfswm-util.lisp (manage-current-window)
1917         (unmanage-current-window): New functions: Allow to force to manage
1918         or unmanage a window by its parent frame.
1920         * src/bindings-second-mode.lisp (#\o): binded to
1921         set-open-in-new-frame-in-parent-frame-nw-hook and
1922         (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
1924         * src/clfswm-util.lisp (with-current-window): New macro.
1926         * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
1927         exposure and enter-window handle event.
1929         * src/clfswm-util.lisp (move-frame, resize-frame): Show all
1930         children for the current child after the move/resize.
1932 2008-04-27  Philippe Brochard  <pbrochard@common-lisp.net>
1934         * src/xlib-util.lisp (resize-window): Take care of window size
1935         hints.
1937         * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
1938         move/resize unmanaged windows.
1940         * src/xlib-util.lisp (move-window, resize-window): New functions.
1942 2008-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
1944         * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
1945         user choose what window type the current frame must handle.
1946         (display-current-window-info): New function.
1947         (current-frame-manage-all-window-type)
1948         (current-frame-manage-only-normal-window-type)
1949         (current-frame-manage-no-window-type): New functions.
1951         * src/clfswm-internal.lisp (managed-window-p): New function.
1953         * src/package.lisp (frame): Managed type: new frame
1954         parameter. This allow to choose what window type a frame must
1955         handle.
1957         * src/*.lisp: Rename all 'father' occurrences to 'parent'.
1959         * src/clfswm-nw-hooks.lisp
1960         (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
1962         * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
1963         function.
1965         * src/tools.lisp (ensure-printable): Return always a string even
1966         with a null string.
1968 2008-04-24  Philippe Brochard  <pbrochard@common-lisp.net>
1970         * src/config.lisp (*default-nw-hook*): New variable to change the
1971         default new window hook.
1973 2008-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
1975         * clfswm.asd (clfswm): Add a dependency from
1976         clfswm-second-mode.lisp to clfswm.lisp.
1978         * src/clfswm-util.lisp (identify-key): Show the documentation for
1979         the function bound on a key.
1980         (with-movement): Move with-movement,
1981         current-frame-fill/pack/resize-*  from bindings-second-mode.lisp
1982         to clfswm-util.lisp.
1984         * src/clfswm-menu.lisp: New menu system that let user change keys
1985         or functions associated to keys.
1987 2008-04-18  Philippe Brochard  <pbrochard@common-lisp.net>
1989         * src/clfswm-internal.lisp (show-all-children): Display-child is
1990         the first child by default. Solve a bug with father-p.
1992 2008-04-17  Philippe Brochard  <pbrochard@common-lisp.net>
1994         * src/clfswm-internal.lisp (add-frame): Add frame return the
1995         created frame.
1996         (show-all-children): Move the size computation outside the
1997         show-child part.
1999         * src/bindings-second-mode.lisp (with-movement): Redisplay only
2000         the current child.
2002         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
2003         only the current child.
2005         * src/clfswm-internal.lisp (show-all-children): New display-child
2006         parameter to display only the desired child and its children.
2007         (select-next/previous-child): Only display the current child.
2009 2008-04-14  Philippe Brochard  <pbrochard@common-lisp.net>
2011         * src/clfswm.lisp (init-display): Move the default frame creation
2012         on the default init hook.
2014         * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
2015         the main mode (for example: "1" on an azerty keyboard).
2017 2008-04-13  Philippe Brochard  <pbrochard@common-lisp.net>
2019         * src/clfswm-keys.lisp (find-key-from-code): Better handle of
2020         keysyms. Revert to old grabbing method for the main mode.
2022 2008-04-12  Philippe Brochard  <pbrochard@common-lisp.net>
2024         * src/clfswm.lisp (init-display): Add key handling on no focus
2025         window and on frame windows.
2027 2008-04-11  Philippe Brochard  <pbrochard@common-lisp.net>
2029         * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
2030         all keys by default and replay just what is needed. No change for
2031         the second mode.
2033         * src/clfswm-keys.lisp: remove grab/ungrab main keys.
2034         (find-key-from-code): Test for shift and not shift presence.
2036 2008-04-09  Philippe Brochard  <pbrochard@common-lisp.net>
2038         * src/clfswm-internal.lisp (switch-to-root-frame): show later -
2039         new key parameter to have less flickering.
2041 2008-04-07  Philippe Brochard  <pbrochard@common-lisp.net>
2043         * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
2044         layout only one time and revert to no-layout to freely handle
2045         frames.
2047         * src/clfswm-nw-hooks.lisp
2048         (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
2049         with new created window.
2051         * src/clfswm-layout.lisp (register-layout): Now register
2052         automatically a once layout to set the layout only one time and
2053         revert to no-layout to freely handle frames.
2055 2008-04-05  Philippe Brochard  <pbrochard@common-lisp.net>
2057         * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
2058         nw-hook: Open the next window in the current frame and leave the
2059         focus to the current child.
2061 2008-04-04  Philippe Brochard  <pbrochard@common-lisp.net>
2063         * src/bindings-second-mode.lisp: Add keys definitions to
2064         bind-or-jump in the second mode.
2066         * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
2067         macro for bind-or-jump-(1|2|3...).
2069         * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
2070         arguments to function. This allow to do things like:
2071         (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
2072         are passed to my-function on key press.
2074 2008-04-03  Philippe Brochard  <pbrochard@common-lisp.net>
2076         * src/clfswm-util.lisp (bind-or-jump): New (great) function.
2078 2008-04-02  Philippe Brochard  <pbrochard@common-lisp.net>
2080         * src/clfswm-internal.lisp (child-fullname): New function
2082         * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
2083         docstring in info-mode-menu. An item can be
2084         '((key function) (key function)) or with docstring
2085         '((key function "documentation 1") (key function "bla bla") (key function))
2087         * src/tools.lisp (ensure-n-elems): New function.
2089         * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
2090         resize a frame or the window's father.
2092         * src/clfswm.lisp (init-display): Remove tile-space-layout by
2093         default on the root frame.
2095         * src/clfswm-util.lisp (move/resize-frame): Add standard event
2096         hooks handlers (map-request, configure-notify...)
2098         * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
2099         child size to 1x1.
2101 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
2103         * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
2104         or the window's father.
2106         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
2107         event only if there is a geometry change.
2108         (mouse-focus-move/resize-generic): Generic function to move or
2109         resize a frame or a window father frame.
2111 2008-04-01  Philippe Brochard  <pbrochard@common-lisp.net>
2113         * src/clfswm-internal.lisp (show-all-children): Return t if there
2114         is a geometry change.
2116 2008-03-30  Philippe Brochard  <pbrochard@common-lisp.net>
2118         * src/bindings.lisp (Up/Down): Swap select previous/next level.
2120         * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
2122         * src/clfswm.lisp (init-display): Create a default frame in the root frame.
2124         * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
2125         (with-all-*): Reverse the child list to manage the first child last (like in
2126         show-all-children).
2128         * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
2129         root window only if true.
2131         * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
2132         root window only if *create-frame-on-root* is true.
2134         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
2135         on the root window.
2137 2008-03-29  Philippe Brochard  <pbrochard@common-lisp.net>
2139         * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
2140         the current child (even if it's a window).
2142 2008-03-28  Philippe Brochard  <pbrochard@common-lisp.net>
2144         * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
2145         (mouse-click-to-focus-and-resize): New functions.
2147         * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
2148         (*-px->fl): Convert pixel coordinates to float.
2150         * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
2152 2008-03-27  Philippe Brochard  <pbrochard@common-lisp.net>
2154         * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
2155         first child.
2157         * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
2158         and hide-all-children.
2159         (raise-if-needed): New function.
2160         (show-child): Use a first-p parameter to raise windows only when they are
2161         first child.
2163 2008-03-26  Philippe Brochard  <pbrochard@common-lisp.net>
2165         * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
2166         -> less flickering.
2168 2008-03-25  Philippe Brochard  <pbrochard@common-lisp.net>
2170         * src/clfswm-info.lisp (keys-from-list): new function.
2172         * src/*: rename 'childs' in 'children'.
2174         * src/*: rename 'group' in 'frame'.
2176 2008-03-22  Philippe Brochard  <pbrochard@common-lisp.net>
2178         * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
2180 2008-03-21  Philippe Brochard  <pbrochard@common-lisp.net>
2182         * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
2184 2008-03-16  Philippe Brochard  <pbrochard@common-lisp.net>
2186         * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
2187         Bind control+o to open the next window in a new group in the root group
2188          (as open in next window in a new workspace in 0801 version).
2190 2008-03-15  Philippe Brochard  <pbrochard@common-lisp.net>
2192         * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
2193         window.
2195 2008-03-14  Philippe Brochard  <pbrochard@common-lisp.net>
2197         * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
2198         instead of Tab for select-previous-child.
2200 2008-03-13  Philippe Brochard  <pbrochard@common-lisp.net>
2202         * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
2203         new functions.
2205 2008-03-11  Philippe Brochard  <pbrochard@common-lisp.net>
2207         * clfswm-util.lisp (identify-key): Display the documentation
2208         associated to keys when identifying a key.
2210 2008-03-10  Xavier Maillard  <xma@gnu.org>
2212         * contrib/clfswm: Complete rewrite of the script. Detect error and
2213         act accordingly. Add command line arguments to configure the
2214         script execution. User can now choose different common lisp
2215         implementation (clisp and sbcl only), choose where to store the
2216         dumped image, where to find clfswm source.
2218 2008-03-09  Philippe Brochard  <pbrochard@common-lisp.net>
2220         * clfswm-internal.lisp (process-new-window): Beginning of new
2221         window hook: each group have a hook to tell what he wants to do
2222         with the new created window.
2224 2008-03-08  Xavier Maillard  <xma@gnu.org>
2226         * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
2227         call the resulting executable.
2229         * clfswm.lisp (read-conf-file): Check for the user config file in
2230         XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
2231         prefered whenever possible.
2233 2008-02-27  Philippe Brochard  <pbrochard@common-lisp.net>
2235         * clfswm-layout.lisp (*-layout): Add an optional raise-p
2236         parameter in each layout.
2238 2008-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
2240         * clfswm-util.lisp (copy/cut-current-child): Does not affect the
2241         root group.
2242         (copy/move-current-child-by-name/number): new functions
2243         (focus-group-by-name/number): new functions
2244         (delete-group-by-name/number): new functions
2246 2008-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
2248         * ************************************************************ *
2249         *: Major update - No more reference  to workspaces. The main   *
2250         structure is a tree of groups or application windows.          *
2251         * ************************************************************ *
2253 2008-02-07  Philippe Brochard  <pbrochard@common-lisp.net>
2255         * clfswm.lisp (read-conf-file): Read configuration in
2256         $HOME/.clfswmrc or in /etc/clfswmrc or in
2257         $XDG_CONFIG_HOME/clfswm/clfswmrc.
2258         (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
2259         to $HOME/.config/).
2261 2008-01-18  Philippe Brochard  <pbrochard@common-lisp.net>
2263         * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
2264         by default.
2266 2008-01-03  Philippe Brochard  <pbrochard@common-lisp.net>
2268         * clfswm-internal.lisp (find-window-group): New function.
2270         * clfswm*: Change to make clfswm run with clisp/new-clx.
2272 2008-01-01  Philippe Brochard  <pbrochard@common-lisp.net>
2274         * clfswm-util.lisp (query-show-paren): Add show parent matching in
2275         query string.
2276         (query-string): Bind control+k to delete end of line.
2278         * clfswm-second-mode.lisp (draw-second-mode-window): Display
2279         the action on mouse motion in second mode.
2281         * clfswm.lisp (handle-exposure): Redisplay groups on exposure
2282         event but do not clear the root window.
2283         (handle-configure-request): Adjust unmanaged window from their
2284         request.
2286         * clfswm-internal.lisp (process-new-window): Adjust new window
2287         with the specified hints (max/min/base width/height).
2289 2007-12-31  Philippe Brochard  <pbrochard@common-lisp.net>
2291         * clfswm.lisp (handle-configure-request): Send an Configuration
2292         Notify event. This solve a bug with xterm and rxvt who takes some
2293         times to be mapped. Now there is no delay.
2295         * bindings-second-mode.lisp (define-shell): Run programs after
2296         living the second mode.
2298 2007-12-30  Philippe Brochard  <pbrochard@common-lisp.net>
2300         * clfswm-internal.lisp (process-new-window): Do not crop transient
2301         window to group size.
2302         (adapt-window-to-group): Do not crop transient window to group
2303         size.
2305         * clfswm.lisp (handle-configure-request): Adapt just the window to
2306         its group and don't take care of the configure request. Remove the
2307         bug with the Gimp outside the group and speed up the window
2308         manipulation.
2309         (handle-exposure): Remove show-all-group on exposure event
2310         -> Speed up.
2312 2007-12-29  Philippe Brochard  <pbrochard@common-lisp.net>
2314         * clfswm-util.lisp (circulate-group-up-copy-window)
2315         (circulate-group-down-copy-window)
2316         (circulate-workspace-up-copy-group)
2317         (circulate-workspace-down-copy-group): Prevent the copy of the
2318         same window in the same workspace.
2320         * bindings-second-mode.lisp (release-copy-selected-window)
2321         (release-copy-selected-group): Prevent the copy of the same window
2322         in the same workspace.
2324         * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
2325         (generic-pager-move-window-on-next-line): Remove the copy
2326         property.
2327         (generic-pager-move-group-on-next-workspace)
2328         (generic-pager-move-group-on-previous-workspace): Prevent the copy
2329         of the same window in the same workspace.
2331         * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
2332         (mouse-pager-copy-selected-group-release): Prevent the copy of the
2333         same window in the same workspace.
2335         * tools.lisp (setf/=): new macro to set a variable only when
2336         necessary.
2338         * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
2339         x, y... only when necessary.
2341 2007-12-28  Philippe Brochard  <pbrochard@common-lisp.net>
2343         * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
2344         new function and hook: force windows to stay in its group (solve a
2345         bug with the Gimp).
2347 2007-12-25  Philippe Brochard  <pbrochard@common-lisp.net>
2349         * bindings-second-mode.lisp (mouse-motion): use hide-group to have
2350         less flickering when moving/resizing groups.
2352         * clfswm-internal.lisp (hide-group): new function.
2353         (show-all-group): clear-all: new parameter.
2355 2007-12-22  Philippe Brochard  <pbrochard@common-lisp.net>
2357         * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
2358         macro.
2359         * clfswm*: Color change for the pager. Typo or better description
2360         in bindings definitions. Define bindings for a qwerty keyboard by
2361         default. dot-clfswmrc show examples to switch to an azerty
2362         keyboard.
2363         License change to GPL v3.
2364         * config.lisp: new file - group all globals variables in this
2365         file.
2367 2007-08-26  Philippe Brochard  <pbrochard@common-lisp.net>
2369         * xlib-util.lisp (hide-window): Remove structure-notivy events
2370         when hidding a window.
2372 2007-05-16  Philippe Brochard  <pbrochard@common-lisp.net>
2374         * package.lisp (*sm-property-notify-hook*): Readded
2375         property-notify-hook in second mode.
2377 2007-05-15  Philippe Brochard  <pbrochard@common-lisp.net>
2379         * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
2381 2007-05-13  Philippe Brochard  <pbrochard@common-lisp.net>
2383         * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
2384         Tile the current workspace with the current window on one side and
2385         others on the other (this emulate the larswm, dwm, wmii way). See
2386         the default configuration file to enable this mode by default.
2388         * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
2389         the pager.
2391 2007-05-12  Philippe Brochard  <pbrochard@common-lisp.net>
2393         * clfswm-pager.lisp (pager-draw-window-in-group): Add
2394         ensure-printable to print windows name even with non-ascii
2395         characters.
2397 2007-05-11  Philippe Brochard  <pbrochard@common-lisp.net>
2399         * clfswm-pager.lisp (pager-explode-current-group): Create a new
2400         group for each window in group.
2401         (pager-implode-current-group): Move all windows in workspace to
2402         one group and remove other groups.
2404         * clfswm-pack.lisp (explode-group): Create a new group for each
2405         window in group.
2406         (implode-group): Move all windows in workspace to one group and
2407         remove other groups.
2409         * clfswm-util.lisp (identify-key): Remove local configuration
2410         variables and made them available for configuration from
2411         package.lisp.
2412         (query-string): idem.
2414 2007-04-29  Philippe Brochard  <pbrochard@common-lisp.net>
2416         * netwm-util.lisp: Start of NetWM compliance.
2417         Add a Netwm client list gestion.
2419 2007-04-28  Philippe Brochard  <pbrochard@common-lisp.net>
2421         * clfswm-internal.lisp (create-group-on-request): open a new group
2422         only when the current group is not empty.
2424         * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
2425         bug with null workspace.
2427         * clfswm-pager.lisp (pager-handle-event): Add a hook
2428         system. This hooks can be changed in the user configuration file.
2430         * package.lisp: All colors and font variables are set in
2431         package.lisp and can be configured in the user configuration
2432         file.
2433         Note: If you have configured some less ugly colors (esp. for the
2434         pager) don't hesitate to let me know :)
2436         * clfswm-second-mode.lisp (sm-handle-event): Add a hook
2437         system. This hooks can be changed in the user configuration file.
2439         * clfswm.lisp (handle-event): Add a hook system. This hooks can be
2440         changed in the user configuration file (~/.clfswmrc)
2442 2007-04-25  Philippe Brochard  <pbrochard@common-lisp.net>
2444         * clfswm-util.lisp (stop-all-pending-actions): new function: reset
2445         arrow action, open next window in new workspace/group.
2447         * bindings.lisp (stop-all-pending-actions): new binding.
2448         (open-next-window-in-new-group-once): Open the next windows in a
2449         new group (only once) or open all new windows in a new group (like
2450         others windows managers).
2452 2007-04-22  Philippe Brochard  <pbrochard@common-lisp.net>
2454         * clfswm.lisp (read-conf-file): New function to read a lisp
2455         configuration file at startup.
2456         (focus-group-under-mouse): Check if group isn't the current group
2457         ( prevent a bug with unclutter ).
2459 2007-03-02  Philippe Brochard  <pbrochard@common-lisp.net>
2461         * bindings.lisp (run-program-from-query-string): A program can be
2462         launch from a input query window.
2464 2007-03-01  Philippe Brochard  <pbrochard@common-lisp.net>
2466         * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
2468 2007-02-28  Philippe Brochard  <pbrochard@common-lisp.net>
2470         * clfswm.lisp (process-new-window): One can now open the next
2471         window in a workspace called by its number.
2473         * clfswm-util.lisp (query-font-string): Minimal editing
2474         capabilities.
2475         (eval-from-string): And an REPL in the window manager... :)
2477 2007-02-26  Philippe Brochard  <pbrochard@common-lisp.net>
2479         * clfswm.lisp (process-new-window): One can now open the next
2480         window in a new workspace or a new group.
2482         * clfswm-pager.lisp (pager-mode): Display the next arrow action
2483         with the hidden windows.
2485         * clfswm.lisp (second-key-mode): Display the current workspace
2486         number and the next arrow action in the state window.
2488         * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
2489         the pager mode and then redisplay only the current workspace.
2491 2007-02-25  Philippe Brochard  <pbrochard@common-lisp.net>
2493         * clfswm.lisp (add-workspace): Workspaces are now numbered. So
2494         they can be focused with a keypress, sorted or renumbered.
2496 2007-02-24  Philippe Brochard  <pbrochard@common-lisp.net>
2498         * clfswm-pager.lisp (pager-mode): Remove multiple silly
2499         pager-draw-display. This prevent a lot of flickering in the
2500         pager.
2502         * clfswm.lisp: Remove all display-force-output and replace them
2503         with only one display-finish-output in the event loop.
2505 2006-11-06  Philippe Brochard  <pbrochard@common-lisp.net>
2507         * clfswm-pager.lisp (pager-center-group): New function - center a
2508         group at the middle of the screen.
2510         * clfswm-pack.lisp (center-group): New function - center a group
2511         at the middle of the screen.
2513         * clfswm.lisp (show-group): Add a cross line under the group.
2514         (show-group): Group are showned even if fullscreened.
2515         (init-display): Add an exposure event on the root window.
2517 2006-11-05  Philippe Brochard  <pbrochard@common-lisp.net>
2519         * package.lisp (*default-group*): Default group is the same size
2520         of a fullscreened group.
2522         * bindings*: Use shift to move, control+shift to copy.
2524         * *.lisp: Add comments for configuration or alternatives. So grep
2525         for CONFIG to see where you can configure clfswm. And grep for
2526         Alternative to use some commented code.
2528         * clfswm.lisp (second-key-mode): Use a single window to show the
2529         second mode. See for alternatives at the end of this file.
2531 2006-11-03  Philippe Brochard  <pbrochard@common-lisp.net>
2533         * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
2534         macro of key and mouse definitions.
2535         (define-define-key/mouse): Use state instead of modifiers list
2536         this fix a bug when the modifiers list is not in the rigth order.
2538         * clfswm.lisp (second-key-mode): Add a colored border in second mode.
2540 2006-11-02  Philippe Brochard  <pbrochard@common-lisp.net>
2542         * clfswm-info.lisp (info-mode): Add an info mode.
2544 2006-11-01  Philippe Brochard  <pbrochard@common-lisp.net>
2546         * clfswm.lisp (process-new-window): Change border size for
2547         transient windows.
2548         (show-all-windows-in-workspace): Unhide all windows even when the
2549         current group is in fullscreen mode.
2551 2006-10-26  Philippe Brochard  <pbrochard@common-lisp.net>
2553         * clfswm-util.lisp (identify-key): Add an exposure handle-event to
2554         redisplay the identify window after a terminal switch.
2556         * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
2557         redisplay the pager after a terminal switch.
2559 2006-10-24  Philippe Brochard  <pbrochard@common-lisp.net>
2561         * clfswm-util.lisp (identify-key): Add a window to display
2562         the keys to identify on screen.
2564         * bindings.lisp, bindings-pager.lisp: Define same keys to
2565         move/copy groups/windows in second mode and in pager.
2567         * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
2568         drawing lags).
2569         (show-all-windows-in-workspace): unhide window before adapting it
2570         to group.
2572 2006-10-23  Philippe Brochard  <pbrochard@common-lisp.net>
2574         * clfswm.lisp (handle-event): Revert to an older version.
2576 2006-10-18  Philippe Brochard  <pbrochard@common-lisp.net>
2578         * clfswm-util.lisp (force-window-in-group)
2579         (force-window-center-in-group): New functions for transient windows.
2581         * clfswm-pager.lisp (pager-remove-current-workspace/group):
2582         bugfix: hide all windows before removing group or workspace.
2584 2006-10-17  Philippe Brochard  <pbrochard@common-lisp.net>
2586         * bindings-pager.lisp (mouse-pager-move-selected-group)
2587         (mouse-pager-copy-selected-group)
2588         (mouse-pager-move-selected-window)
2589         (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
2590         (mouse-pager-rotate-window-down): New functions to have mouse in
2591         pager mode.
2593         * clfswm-pager.lisp (pager-swap-window)
2594         (pager-copy-group-on-next/previous-workspace)
2595         (pager-copy-window-on-next/previous-line): New functions
2597 2006-10-15  Philippe Brochard  <pbrochard@common-lisp.net>
2599         * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
2600         (pager-move-group-on-next/previous-workspace): new functions.
2602         * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
2603         to its half size (new functions).
2605 2006-10-11  Philippe Brochard  <pbrochard@common-lisp.net>
2607         * clfswm-pager.lisp: workspaces, groups and windows can now be
2608         selectionned with the keyboard or the mouse.
2610 2006-10-09  Philippe Brochard  <pbrochard@common-lisp.net>
2612         * clfswm-pager.lisp (pager-select-workspace-right/left):
2613         workspaces can now be selectionned with the keyboard.
2615 2006-10-08  Philippe Brochard  <pbrochard@common-lisp.net>
2617         * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
2618         new function to remove a previous defined key or mouse combination.
2620 2006-10-07  Philippe Brochard  <pbrochard@common-lisp.net>
2622         * clfswm.lisp (main): Check for access error in init-display.
2624         * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
2625         keycode before grabbing.
2627         * bindings.lisp: Remove nlambda and use defun to keep the function
2628         documentation with clisp.
2629         (define-shell): new macro to define shell command for the second
2630         mode.
2632 2006-10-06  Philippe Brochard  <pbrochard@common-lisp.net>
2634         * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
2635         boggus typecase.
2637 2006-10-05  Philippe Brochard  <pbrochard@common-lisp.net>
2639         * bindings.lisp (accept-motion): Move group bugfix in upper mouse
2640         workspace circulation.
2642         * clfswm-util.lisp (absorb-orphan-window): new function.
2644         * clfswm-keys.lisp: Keysyms support.
2646 2006-10-02  Philippe Brochard  <pbrochard@common-lisp.net>
2648         * clfswm.lisp (show-group): Use one gc for all groups and not one
2649         per group.
2651 2006-10-01  Philippe Brochard  <pbrochard@common-lisp.net>
2653         * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
2655         * clfswm.lisp (adapt-window-to-group): Adapt only windows with
2656         width and height outside group.
2658 2006-09-28  Philippe Brochard  <pbrochard@common-lisp.net>
2660         * clfswm.lisp: First public release.