1 2009-06-24 Philippe Brochard <pbrochard@common-lisp.net>
3 * src/clfswm-info.lisp: Use a standard menu for the help-menu.
5 2009-06-22 Philippe Brochard <pbrochard@common-lisp.net>
7 * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
9 2009-06-19 Philippe Brochard <pbrochard@common-lisp.net>
11 * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
14 2009-06-18 Philippe Brochard <pbrochard@common-lisp.net>
16 * src/config.lisp (get-fullscreen-size): One pixel adjustment
19 * src/clfswm-placement.lisp (*-child-placement): One pixel
22 2009-06-16 Philippe Brochard <pbrochard@common-lisp.net>
24 * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
25 Ensure that all characters are printable.
27 * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
30 * src/clfswm-placement.lisp (*-child-placement): Adjust
31 coordinates to one pixel in the current child.
33 2009-06-04 Philippe Brochard <pbrochard@common-lisp.net>
35 * src/clfswm-query.lisp (query-enter-function): Assign font before
36 width and height calculation.
38 2009-06-03 Philippe Brochard <pbrochard@common-lisp.net>
40 * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
41 bannish the pointer in an arbitrary place.
43 * src/clfswm-info.lisp (info-mode): Use with-placement macro to
44 place the info window in an arbitrary place.
46 * src/clfswm-query.lisp (query-enter-function): Use with-placement
47 macro to place the query window in an arbitrary place.
49 * src/clfswm-placement.lisp: New file. Allow to place info windows
50 or query windows on an arbitrary place. Allow to bannish the
51 pointer on an arbitrary place.
53 2009-05-16 Philippe Brochard <pbrochard@common-lisp.net>
55 * src/clfswm-circulate-mode.lisp (reorder-child)
56 (reorder-brother): Unfocus windows before reordering children or
59 2009-05-13 Philippe Brochard <pbrochard@common-lisp.net>
61 * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
62 the parent is a frame.
64 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
65 motion with a default modifier.
67 * src/clfswm.lisp (handle-motion-notify): Handle motion with a
70 * src/clfswm-info.lisp (info-mode): Handle motion with a default
72 (info-mode): Optimization in loop function.
74 2009-05-10 Philippe Brochard <pbrochard@common-lisp.net>
76 * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
79 * clfswm.asd: Dependency fix for clfswm-generic-mode.
81 * src/clfswm-circulate-mode.lisp (reorder-child)
82 (reorder-brother): Handle empty frames.
83 (reorder-brother): Redisplay only the parent frame of the current
86 * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
87 parent frame of the current frame.
89 2009-05-09 Philippe Brochard <pbrochard@common-lisp.net>
91 * src/clfswm-util.lisp (frame-toggle-maximize): New function:
92 Maximize/Unmaximize the current frame in its parent frame.
94 * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
95 windows and frames in there parent frame.
97 2009-05-05 Philippe Brochard <pbrochard@common-lisp.net>
99 * src/*.lisp: Add support for Clozure Common Lisp (CCL).
101 * src/clfswm-circulate-mode.lisp (reorder-child)
102 (reorder-brother): Reinitialise on circulate type change
103 child to brother or brother to child.
105 * src/*.lisp (*): Use map-window instead of xlib:map-window. So
106 calls xlib:display-finish-output on each map-request. So speed up
109 * src/xlib-util.lisp (map-window): New function. Call
110 xlib:display-finish-output on each map request.
112 2009-04-28 Philippe Brochard <pbrochard@common-lisp.net>
114 * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
115 Optimisation when drawing second mode window.
117 2009-04-27 Philippe Brochard <pbrochard@common-lisp.net>
119 * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
122 2009-04-22 Philippe Brochard <pbrochard@common-lisp.net>
124 * src/clfswm-util.lisp (run-program-from-query-string): Launch
125 command only with a return validation.
127 2009-04-22 Xavier Maillard <xma@gnu.org>
129 * src/clfswm-query.lisp (query-string): Use a generic mode.
131 2009-04-19 Xavier Maillard <xma@gnu.org>
133 * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
135 2009-04-18 Xavier Maillard <xma@gnu.org>
137 * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
138 to define all other modes.
140 2009-04-05 Philippe Brochard <pbrochard@common-lisp.net>
142 * src/package.lisp (): Use *default-font-string* for all
145 * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
147 2009-02-17 Philippe Brochard <pbrochard@common-lisp.net>
149 * src/xlib-util.lisp (null-size-window-p): Better check of null
152 2009-02-14 Philippe Brochard <pbrochard@common-lisp.net>
154 * src/clfswm.lisp (handle-map-request): Add a fix to manage
155 correctly fullscreen windows (SDL particularly).
157 2008-12-20 Philippe Brochard <pbrochard@common-lisp.net>
159 * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
160 a segfault with clisp/new-clx.
162 * src/clfswm.lisp (handle-motion-notify): Add a needed window
165 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
166 needed window argument.
168 2008-10-30 Philippe Brochard <pbrochard@common-lisp.net>
170 * src/xlib-util.lisp (wait-no-key-or-button-press)
171 (wait-a-key-or-button-press): Check buttons press/release correctly"
173 2008-10-28 Philippe Brochard <pbrochard@common-lisp.net>
175 * src/menu-def.lisp: Add children navigation menu in the movement
176 menu (select next/previous child/brother/level).
178 2008-10-26 Philippe Brochard <pbrochard@common-lisp.net>
180 * *: Rename 'sister' frame to 'brother' frame.
182 * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
183 alias in a real modifier.
185 * src/package.lisp (*modifier-alias*): New list of modifier alias
186 For example: :alt is :mod-1, :numlock is :mod-2...
188 * src/tools.lisp (remove-hook): New function.
190 * src/clfswm-keys.lisp (with-capslock, without-capslock)
191 (with-numlock, without-cnumlock): New functions.
193 2008-10-25 Philippe Brochard <pbrochard@common-lisp.net>
195 * src/clfswm-info.lisp: Use the *binding-hook* to create info
196 keys and mouse bindings.
198 * src/bindings-second-mode.lisp: Use the *binding-hook* to create
199 second keys and mouse bindings.
201 * src/bindings.lisp: Use the *binding-hook* to create main keys
204 2008-10-10 Philippe Brochard <pbrochard@common-lisp.net>
206 * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
209 2008-10-09 Philippe Brochard <pbrochard@common-lisp.net>
211 * src/menu-def.lisp: Use a menu instead of a function for the
214 2008-10-08 Philippe Brochard <pbrochard@common-lisp.net>
216 * src/clfswm-util.lisp (show-standard-menu): Display the standard
217 menu from the 'update-menus' command.
219 2008-10-07 Philippe Brochard <pbrochard@common-lisp.net>
221 * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
222 it's already grabbed.
224 * src/clfswm-internal.lisp (display-frame-info): Use configurable
225 colors and fix a bug with background.
226 (display-frame-info): Set window background when displaying info.
228 2008-10-06 Philippe Brochard <pbrochard@common-lisp.net>
230 * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
231 warning with clisp/new-clx.
233 2008-10-04 Philippe Brochard <pbrochard@common-lisp.net>
235 * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
238 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
239 * *: **** Release 0809 ****
241 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
243 * src/clfswm-util.lisp (ensure-unique-name): New function and menu
245 (ensure-unique-number): New function and menu entry.
247 2008-09-22 Philippe Brochard <pbrochard@common-lisp.net>
249 * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
250 hook: open the next window in a named frame.
251 (numbered-frame-nw-hook): New new window hook: open the next
252 window in a numbered frame.
254 * src/clfswm-query.lisp (query-string): Grab the keyboard in all
255 cases. So query-string can be called even in the main mode.
257 * src/clfswm-internal.lisp (show-all-children): Do not raise a
258 child by default => far less flickering.
260 2008-09-19 Philippe Brochard <pbrochard@common-lisp.net>
262 * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
264 * src/menu-def.lisp: Change key binding for the CLFSWM menu
267 * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
268 is nil. (workaround on some CLX implementation).
270 2008-09-12 Philippe Brochard <pbrochard@common-lisp.net>
272 * src/menu-def.lisp: Add a menu to set a focus policy for all
275 * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
276 (all-frames-set-*-focus-policy): Set a focus policy for all
279 * src/clfswm.lisp (handle-enter-notify): sloppy-select
280 mode. Select a child and its parents on mouse over.
282 2008-09-03 Philippe Brochard <pbrochard@common-lisp.net>
284 * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
285 policy -> Sloppy focus only for windows in the current frame.
286 (main-unprotected): Exit clfswm on init error (ie: when another
287 window manager is running).
289 * src/clfswm-util.lisp (reset-clfswm): New function.
291 2008-09-02 Philippe Brochard <pbrochard@common-lisp.net>
293 * src/clfswm-menu.lisp (init-menu): New function.
295 * src/clfswm-util.lisp (reload-clfswm): New function to reload
297 (exit-clfswm): Rename quit-clfswm to exit-clfswm.
299 * src/clfswm.lisp (main, main-unprotected): Handle error in a
300 superior main function. Now CLFSWM can't break the X session. It
301 just reinitialize the display and run a new main loop.
303 * src/clfswm-corner.lisp: Make *clfswm-terminal* and
304 *vt-keyboard-on* global to avoid warnings when loading clfswm.
306 * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
307 (help-on-gimp-layout): Describe how to use the GIMP layout.
309 2008-09-01 Philippe Brochard <pbrochard@common-lisp.net>
311 * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
312 main-window-right-layout. Change the keybinding for (shift)alt+tab
313 to not select windows in the main window lisst.
314 Bind F8 to add a window in the main window list.
315 Bind F9 to remove a window in the main window list.
316 Change the focus policy to :sloppy.
317 (set-previous-layout): Restore the previous layout, keybinding and
320 2008-08-31 Philippe Brochard <pbrochard@common-lisp.net>
322 * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
324 * src/clfswm-layout.lisp (main-window-left-layout)
325 (main-window-bottom-layout, main-window-top-layout): New
327 Factorize layouts in menu.
329 2008-08-30 Philippe Brochard <pbrochard@common-lisp.net>
331 * src/clfswm-layout.lisp (main-window-right-layout): A possible
332 GIMP layout: one or more main windows on one side of the
333 frame. Others on the other size.
335 * src/clfswm-util.lisp
336 (current-frame-set-click/sloppy-focus-policy): Each frame can have
337 a different focus policy (one of :click or :sloppy).
338 The default focus policy is set with *default-focus-policy*.
340 2008-08-23 Philippe Brochard <pbrochard@common-lisp.net>
342 * src/clfswm-info.lisp (show-config-variable): New function.
344 2008-08-19 Philippe Brochard <pbrochard@common-lisp.net>
346 * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
348 * src/clfswm-info.lisp: Colored help for key binding and corners
351 2008-08-18 Philippe Brochard <pbrochard@common-lisp.net>
353 * src/clfswm-util.lisp (delete-focus-window)
354 (destroy-focus-window): Remove chid only in
355 handle-unmap/destroy-notify. Focus *current-root* only when
356 closing/killing the current child.
358 * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
359 functions or corners.
361 2008-08-17 Philippe Brochard <pbrochard@common-lisp.net>
363 * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
364 action: Hide/Unhide a terminal on mouse corner action. (By default
365 right mouse button on the top left corner).
367 * src/config.lisp (*never-managed-window-list*): New config
370 * src/clfswm-internal.lisp (never-managed-window-p): New function:
371 Handle never managed window in a more simple way.
373 * src/clfswm-corner.lisp: New file and new and more simple method
374 to define corners actions.
376 2008-08-15 Philippe Brochard <pbrochard@common-lisp.net>
378 * src/clfswm-info.lisp (info-mode): Info line can now be colored.
380 * src/clfswm-layout.lisp (fast-layout-switch)
381 (define-fast-layout-switch): New functions: Switch between two
384 * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
385 really in the second mode. So leave-second-mode can be used even
388 * src/clfswm-util.lisp (switch-to-last-child): New function:
389 Store the current child and switch to the previous one.
391 2008-07-16 Philippe Brochard <pbrochard@common-lisp.net>
393 * src/clfswm-util.lisp (display-current-window-info): Display the
395 (have-to-present-virtual-keyboard): Add a virtual keyboard corner
396 (top right by default). By default 'xvkbd' is used.
398 2008-06-28 Philippe Brochard <pbrochard@common-lisp.net>
400 * src/xlib-util.lisp (move-window, resize-window): Compress motion
403 * src/clfswm.lisp (handle-motion-notify): Compress motion events.
405 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
408 * src/clfswm-info.lisp (info-mode): Compress motion events.
410 2008-06-21 Philippe Brochard <pbrochard@common-lisp.net>
412 * src/clfswm-internal.lisp (show-all-children): Compute geometry
413 and selection first and then show only necessary children.
414 (show-child): remove unneeded display-p parameter.
416 * src/config.lisp (get-fullscreen-size): Place the frame border
417 outside the screen (this prevent the loose of 2 pixels per
420 2008-06-12 Philippe Brochard <pbrochard@common-lisp.net>
422 * src/clfswm-internal.lisp (focus-child): Algorithm change to
423 raise only the selected child.
425 2008-06-08 Philippe Brochard <pbrochard@common-lisp.net>
427 * src/clfswm-internal.lisp (raise-p-list, show-all-children):
428 Raise only viewable children.
430 2008-06-06 Philippe Brochard <pbrochard@common-lisp.net>
432 * src/clfswm-internal.lisp (show-all-children): Always raise all
433 displayed children. Remove all references to raise-p.
435 2008-06-04 Philippe Brochard <pbrochard@common-lisp.net>
437 * src/menu-def.lisp (child-menu): New menu entry on raise/lower
440 * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
441 second mode binding on raise/lower child in its frame.
443 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
444 behaviour to the new raise/lower property.
445 Call clear-nw-hook before the rest of the hook.
447 * src/bindings.lisp (mouse-click-to-focus-and-move-window)
448 (mouse-click-to-focus-and-resize-window): Stop button event. This
449 prevent a keyboard/pointer freeze.
451 2008-06-03 Philippe Brochard <pbrochard@common-lisp.net>
453 * src/clfswm-internal.lisp (frame-lower-child)
454 (frame-raise-child): New functions to raise/lower a child in its
457 * src/clfswm-util.lisp (have-to-present-windows)
458 (have-to-present-all-windows): New functions to have an MaxOS
459 expose like on mouse click in screen corner.
461 * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
463 2008-05-30 Philippe Brochard <pbrochard@common-lisp.net>
465 * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
466 child from a choice in all frames with hidden children.
468 * src/clfswm-info.lisp (info-mode-menu): Handle separators.
470 2008-05-28 Philippe Brochard <pbrochard@common-lisp.net>
472 * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
473 (unhide-all-children): New functions.
475 * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
478 * src/clfswm-util.lisp (hide/show-frame-window): new function and
481 2008-05-23 Philippe Brochard <pbrochard@common-lisp.net>
483 * src/clfswm-util.lisp (rename-current-child): Do not display the
484 frame info for a window.
486 2008-05-20 Philippe Brochard <pbrochard@common-lisp.net>
488 * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
489 frame window for the removed child and its children.
491 2008-05-18 Philippe Brochard <pbrochard@common-lisp.net>
493 * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
496 2008-05-17 Philippe Brochard <pbrochard@common-lisp.net>
498 * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
499 the ROX pinboard (ie: leave it lowered in the root window as
502 * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
503 (tile-left-layout, tile-right-layout, tile-top-layout)
504 (tile-bottom-layout): Use all the frame space when there is only
507 * src/clfswm-internal.lisp (place-window-from-hints): Center
508 unmanaged windows in the root screen.
510 * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
513 2008-05-15 Philippe Brochard <pbrochard@common-lisp.net>
515 * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
516 typo in managed types.
518 * src/clfswm-internal.lisp (show-child): Always display frame info
519 even if the frame is hidden.
521 * src/xlib-util.lisp (resize-window): Use a better algorithme to
524 2008-05-13 Philippe Brochard <pbrochard@common-lisp.net>
526 * src/clfswm-util.lisp (with-movement): Display frame info for all
527 frames in current root.
529 2008-05-12 Philippe Brochard <pbrochard@common-lisp.net>
531 * src/*.lisp: Rename 'brother' frames to 'sister' frames.
533 * src/bindings-second-mode.lisp (define-second-key #\a): New
534 binding on 'add-default-frame'.
536 * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
537 message to follow the autodocumentation process.
539 2008-05-10 Philippe Brochard <pbrochard@common-lisp.net>
541 * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
542 "Space" to jump to a child. "B" to bind a slot on the current
545 * src/bindings-second-mode.lisp: Use "Tab" instead of
548 2008-05-07 Philippe Brochard <pbrochard@common-lisp.net>
550 * src/clfswm-util.lisp (find-child-under-mouse): Take care of
551 unmanaged (hidden) windows.
553 * src/clfswm-internal.lisp (place-window-from-hints): Give a
554 minimal size for windows.
555 (with-all-windows-frames-and-parent): New function.
557 * src/config.lisp (*default-window-width/height*): New parameters.
559 * src/clfswm-internal.lisp (place-window-from-hints): Center
560 windows in the screen instead of in there frame.
562 * src/bindings-second-mode.lisp (tile-space-current-frame): New
565 * src/clfswm-layout.lisp (register-layout): Intern the once name
566 in the right package.
568 2008-05-05 Philippe Brochard <pbrochard@common-lisp.net>
570 * doc/dot-clfswmrc: Update to follow the new clfswm way.
572 2008-05-03 Philippe Brochard <pbrochard@common-lisp.net>
574 * src/clfswm-internal.lisp (set-current-child)
575 (adapt-child-to-parent, show-child, hide-child): Handle the case
576 where child is not a frame or a window.
578 * src/clfswm-util.lisp
579 (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
580 Check if child is a frame.
582 * src/clfswm-internal.lisp (managed-window-p): Handle the case
584 (place-frame): Check if frame and parent are frames.
586 * src/clfswm-info.lisp (info-mode): display all frame info before
589 * src/clfswm-second-mode.lisp (second-key-mode): display all frame
592 * src/clfswm-internal.lisp (display-all-frame-info): New function.
594 2008-05-02 Philippe Brochard <pbrochard@common-lisp.net>
596 * src/tools.lisp (getenv): Implemented for ECL.
597 (urun-prog): Implemented for ECL.
599 * src/clfswm-util.lisp (identify-key): Use a double buffer to
602 * src/clfswm-query.lisp (query-string): Use a double buffer to
605 * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
608 * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
611 2008-05-01 Philippe Brochard <pbrochard@common-lisp.net>
613 * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
615 * src/menu-def.lisp: New file: move all menu definition in
618 * src/clfswm-layout.lisp (register-layout): Use a function instead
621 2008-04-30 Philippe Brochard <pbrochard@common-lisp.net>
623 * src/clfswm-autodoc.lisp (produce-menu-doc,
624 (produce-menu-doc-html): New functions.
625 (produce-doc-*): Moved to clfswm-autodoc.lisp.
627 * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
628 paste a child on one of its own children. (this prevent a
630 (move-child-to): Rename move/copy-current-child-by to
632 (mouse-move-window-over-frame): New function to move the window
633 under the mouse cursor to another frame.
635 * src/clfswm-internal.lisp (find-child-in-parent): New function.
637 2008-04-29 Philippe Brochard <pbrochard@common-lisp.net>
639 * src/clfswm-internal.lisp (show-all-children): Display unmanaged
640 windows only when its window parent is the current child.
642 2008-04-28 Philippe Brochard <pbrochard@common-lisp.net>
644 * src/clfswm-util.lisp (manage-current-window)
645 (unmanage-current-window): New functions: Allow to force to manage
646 or unmanage a window by its parent frame.
648 * src/bindings-second-mode.lisp (#\o): binded to
649 set-open-in-new-frame-in-parent-frame-nw-hook and
650 (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
652 * src/clfswm-util.lisp (with-current-window): New macro.
654 * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
655 exposure and enter-window handle event.
657 * src/clfswm-util.lisp (move-frame, resize-frame): Show all
658 children for the current child after the move/resize.
660 2008-04-27 Philippe Brochard <pbrochard@common-lisp.net>
662 * src/xlib-util.lisp (resize-window): Take care of window size
665 * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
666 move/resize unmanaged windows.
668 * src/xlib-util.lisp (move-window, resize-window): New functions.
670 2008-04-25 Philippe Brochard <pbrochard@common-lisp.net>
672 * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
673 user choose what window type the current frame must handle.
674 (display-current-window-info): New function.
675 (current-frame-manage-all-window-type)
676 (current-frame-manage-only-normal-window-type)
677 (current-frame-manage-no-window-type): New functions.
679 * src/clfswm-internal.lisp (managed-window-p): New function.
681 * src/package.lisp (frame): Managed type: new frame
682 parameter. This allow to choose what window type a frame must
685 * src/*.lisp: Rename all 'father' occurrences to 'parent'.
687 * src/clfswm-nw-hooks.lisp
688 (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
690 * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
693 * src/tools.lisp (ensure-printable): Return always a string even
696 2008-04-24 Philippe Brochard <pbrochard@common-lisp.net>
698 * src/config.lisp (*default-nw-hook*): New variable to change the
699 default new window hook.
701 2008-04-22 Philippe Brochard <pbrochard@common-lisp.net>
703 * clfswm.asd (clfswm): Add a dependency from
704 clfswm-second-mode.lisp to clfswm.lisp.
706 * src/clfswm-util.lisp (identify-key): Show the documentation for
707 the function bound on a key.
708 (with-movement): Move with-movement,
709 current-frame-fill/pack/resize-* from bindings-second-mode.lisp
712 * src/clfswm-menu.lisp: New menu system that let user change keys
713 or functions associated to keys.
715 2008-04-18 Philippe Brochard <pbrochard@common-lisp.net>
717 * src/clfswm-internal.lisp (show-all-children): Display-child is
718 the first child by default. Solve a bug with father-p.
720 2008-04-17 Philippe Brochard <pbrochard@common-lisp.net>
722 * src/clfswm-internal.lisp (add-frame): Add frame return the
724 (show-all-children): Move the size computation outside the
727 * src/bindings-second-mode.lisp (with-movement): Redisplay only
730 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
731 only the current child.
733 * src/clfswm-internal.lisp (show-all-children): New display-child
734 parameter to display only the desired child and its children.
735 (select-next/previous-child): Only display the current child.
737 2008-04-14 Philippe Brochard <pbrochard@common-lisp.net>
739 * src/clfswm.lisp (init-display): Move the default frame creation
740 on the default init hook.
742 * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
743 the main mode (for example: "1" on an azerty keyboard).
745 2008-04-13 Philippe Brochard <pbrochard@common-lisp.net>
747 * src/clfswm-keys.lisp (find-key-from-code): Better handle of
748 keysyms. Revert to old grabbing method for the main mode.
750 2008-04-12 Philippe Brochard <pbrochard@common-lisp.net>
752 * src/clfswm.lisp (init-display): Add key handling on no focus
753 window and on frame windows.
755 2008-04-11 Philippe Brochard <pbrochard@common-lisp.net>
757 * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
758 all keys by default and replay just what is needed. No change for
761 * src/clfswm-keys.lisp: remove grab/ungrab main keys.
762 (find-key-from-code): Test for shift and not shift presence.
764 2008-04-09 Philippe Brochard <pbrochard@common-lisp.net>
766 * src/clfswm-internal.lisp (switch-to-root-frame): show later -
767 new key parameter to have less flickering.
769 2008-04-07 Philippe Brochard <pbrochard@common-lisp.net>
771 * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
772 layout only one time and revert to no-layout to freely handle
775 * src/clfswm-nw-hooks.lisp
776 (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
777 with new created window.
779 * src/clfswm-layout.lisp (register-layout): Now register
780 automatically a once layout to set the layout only one time and
781 revert to no-layout to freely handle frames.
783 2008-04-05 Philippe Brochard <pbrochard@common-lisp.net>
785 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
786 nw-hook: Open the next window in the current frame and leave the
787 focus to the current child.
789 2008-04-04 Philippe Brochard <pbrochard@common-lisp.net>
791 * src/bindings-second-mode.lisp: Add keys definitions to
792 bind-or-jump in the second mode.
794 * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
795 macro for bind-or-jump-(1|2|3...).
797 * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
798 arguments to function. This allow to do things like:
799 (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
800 are passed to my-function on key press.
802 2008-04-03 Philippe Brochard <pbrochard@common-lisp.net>
804 * src/clfswm-util.lisp (bind-or-jump): New (great) function.
806 2008-04-02 Philippe Brochard <pbrochard@common-lisp.net>
808 * src/clfswm-internal.lisp (child-fullname): New function
810 * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
811 docstring in info-mode-menu. An item can be
812 '((key function) (key function)) or with docstring
813 '((key function "documentation 1") (key function "bla bla") (key function))
815 * src/tools.lisp (ensure-n-elems): New function.
817 * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
818 resize a frame or the window's father.
820 * src/clfswm.lisp (init-display): Remove tile-space-layout by
821 default on the root frame.
823 * src/clfswm-util.lisp (move/resize-frame): Add standard event
824 hooks handlers (map-request, configure-notify...)
826 * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
829 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
831 * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
832 or the window's father.
834 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
835 event only if there is a geometry change.
836 (mouse-focus-move/resize-generic): Generic function to move or
837 resize a frame or a window father frame.
839 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
841 * src/clfswm-internal.lisp (show-all-children): Return t if there
842 is a geometry change.
844 2008-03-30 Philippe Brochard <pbrochard@common-lisp.net>
846 * src/bindings.lisp (Up/Down): Swap select previous/next level.
848 * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
850 * src/clfswm.lisp (init-display): Create a default frame in the root frame.
852 * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
853 (with-all-*): Reverse the child list to manage the first child last (like in
856 * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
857 root window only if true.
859 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
860 root window only if *create-frame-on-root* is true.
862 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
865 2008-03-29 Philippe Brochard <pbrochard@common-lisp.net>
867 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
868 the current child (even if it's a window).
870 2008-03-28 Philippe Brochard <pbrochard@common-lisp.net>
872 * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
873 (mouse-click-to-focus-and-resize): New functions.
875 * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
876 (*-px->fl): Convert pixel coordinates to float.
878 * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
880 2008-03-27 Philippe Brochard <pbrochard@common-lisp.net>
882 * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
885 * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
886 and hide-all-children.
887 (raise-if-needed): New function.
888 (show-child): Use a first-p parameter to raise windows only when they are
891 2008-03-26 Philippe Brochard <pbrochard@common-lisp.net>
893 * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
896 2008-03-25 Philippe Brochard <pbrochard@common-lisp.net>
898 * src/clfswm-info.lisp (keys-from-list): new function.
900 * src/*: rename 'childs' in 'children'.
902 * src/*: rename 'group' in 'frame'.
904 2008-03-22 Philippe Brochard <pbrochard@common-lisp.net>
906 * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
908 2008-03-21 Philippe Brochard <pbrochard@common-lisp.net>
910 * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
912 2008-03-16 Philippe Brochard <pbrochard@common-lisp.net>
914 * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
915 Bind control+o to open the next window in a new group in the root group
916 (as open in next window in a new workspace in 0801 version).
918 2008-03-15 Philippe Brochard <pbrochard@common-lisp.net>
920 * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
923 2008-03-14 Philippe Brochard <pbrochard@common-lisp.net>
925 * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
926 instead of Tab for select-previous-child.
928 2008-03-13 Philippe Brochard <pbrochard@common-lisp.net>
930 * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
933 2008-03-11 Philippe Brochard <pbrochard@common-lisp.net>
935 * clfswm-util.lisp (identify-key): Display the documentation
936 associated to keys when identifying a key.
938 2008-03-10 Xavier Maillard <xma@gnu.org>
940 * contrib/clfswm: Complete rewrite of the script. Detect error and
941 act accordingly. Add command line arguments to configure the
942 script execution. User can now choose different common lisp
943 implementation (clisp and sbcl only), choose where to store the
944 dumped image, where to find clfswm source.
946 2008-03-09 Philippe Brochard <pbrochard@common-lisp.net>
948 * clfswm-internal.lisp (process-new-window): Beginning of new
949 window hook: each group have a hook to tell what he wants to do
950 with the new created window.
952 2008-03-08 Xavier Maillard <xma@gnu.org>
954 * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
955 call the resulting executable.
957 * clfswm.lisp (read-conf-file): Check for the user config file in
958 XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
959 prefered whenever possible.
961 2008-02-27 Philippe Brochard <pbrochard@common-lisp.net>
963 * clfswm-layout.lisp (*-layout): Add an optional raise-p
964 parameter in each layout.
966 2008-02-26 Philippe Brochard <pbrochard@common-lisp.net>
968 * clfswm-util.lisp (copy/cut-current-child): Does not affect the
970 (copy/move-current-child-by-name/number): new functions
971 (focus-group-by-name/number): new functions
972 (delete-group-by-name/number): new functions
974 2008-02-24 Philippe Brochard <pbrochard@common-lisp.net>
976 * ************************************************************ *
977 *: Major update - No more reference to workspaces. The main *
978 structure is a tree of groups or application windows. *
979 * ************************************************************ *
981 2008-02-07 Philippe Brochard <pbrochard@common-lisp.net>
983 * clfswm.lisp (read-conf-file): Read configuration in
984 $HOME/.clfswmrc or in /etc/clfswmrc or in
985 $XDG_CONFIG_HOME/clfswm/clfswmrc.
986 (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
989 2008-01-18 Philippe Brochard <pbrochard@common-lisp.net>
991 * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
994 2008-01-03 Philippe Brochard <pbrochard@common-lisp.net>
996 * clfswm-internal.lisp (find-window-group): New function.
998 * clfswm*: Change to make clfswm run with clisp/new-clx.
1000 2008-01-01 Philippe Brochard <pbrochard@common-lisp.net>
1002 * clfswm-util.lisp (query-show-paren): Add show parent matching in
1004 (query-string): Bind control+k to delete end of line.
1006 * clfswm-second-mode.lisp (draw-second-mode-window): Display
1007 the action on mouse motion in second mode.
1009 * clfswm.lisp (handle-exposure): Redisplay groups on exposure
1010 event but do not clear the root window.
1011 (handle-configure-request): Adjust unmanaged window from there
1014 * clfswm-internal.lisp (process-new-window): Adjust new window
1015 with the specified hints (max/min/base width/height).
1017 2007-12-31 Philippe Brochard <pbrochard@common-lisp.net>
1019 * clfswm.lisp (handle-configure-request): Send an Configuration
1020 Notify event. This solve a bug with xterm and rxvt who takes some
1021 times to be mapped. Now there is no delay.
1023 * bindings-second-mode.lisp (define-shell): Run programs after
1024 living the second mode.
1026 2007-12-30 Philippe Brochard <pbrochard@common-lisp.net>
1028 * clfswm-internal.lisp (process-new-window): Do not crop transient
1029 window to group size.
1030 (adapt-window-to-group): Do not crop transient window to group
1033 * clfswm.lisp (handle-configure-request): Adapt just the window to
1034 its group and don't take care of the configure request. Remove the
1035 bug with the Gimp outside the group and speed up the window
1037 (handle-exposure): Remove show-all-group on exposure event
1040 2007-12-29 Philippe Brochard <pbrochard@common-lisp.net>
1042 * clfswm-util.lisp (circulate-group-up-copy-window)
1043 (circulate-group-down-copy-window)
1044 (circulate-workspace-up-copy-group)
1045 (circulate-workspace-down-copy-group): Prevent the copy of the
1046 same window in the same workspace.
1048 * bindings-second-mode.lisp (release-copy-selected-window)
1049 (release-copy-selected-group): Prevent the copy of the same window
1050 in the same workspace.
1052 * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
1053 (generic-pager-move-window-on-next-line): Remove the copy
1055 (generic-pager-move-group-on-next-workspace)
1056 (generic-pager-move-group-on-previous-workspace): Prevent the copy
1057 of the same window in the same workspace.
1059 * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
1060 (mouse-pager-copy-selected-group-release): Prevent the copy of the
1061 same window in the same workspace.
1063 * tools.lisp (setf/=): new macro to set a variable only when
1066 * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
1067 x, y... only when necessary.
1069 2007-12-28 Philippe Brochard <pbrochard@common-lisp.net>
1071 * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
1072 new function and hook: force windows to stay in its group (solve a
1075 2007-12-25 Philippe Brochard <pbrochard@common-lisp.net>
1077 * bindings-second-mode.lisp (mouse-motion): use hide-group to have
1078 less flickering when moving/resizing groups.
1080 * clfswm-internal.lisp (hide-group): new function.
1081 (show-all-group): clear-all: new parameter.
1083 2007-12-22 Philippe Brochard <pbrochard@common-lisp.net>
1085 * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
1087 * clfswm*: Color change for the pager. Typo or better description
1088 in bindings definitions. Define bindings for a qwerty keyboard by
1089 default. dot-clfswmrc show examples to switch to an azerty
1091 License change to GPL v3.
1092 * config.lisp: new file - group all globals variables in this
1095 2007-08-26 Philippe Brochard <pbrochard@common-lisp.net>
1097 * xlib-util.lisp (hide-window): Remove structure-notivy events
1098 when hidding a window.
1100 2007-05-16 Philippe Brochard <pbrochard@common-lisp.net>
1102 * package.lisp (*sm-property-notify-hook*): Readded
1103 property-notify-hook in second mode.
1105 2007-05-15 Philippe Brochard <pbrochard@common-lisp.net>
1107 * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
1109 2007-05-13 Philippe Brochard <pbrochard@common-lisp.net>
1111 * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
1112 Tile the current workspace with the current window on one side and
1113 others on the other (this emulate the larswm, dwm, wmii way). See
1114 the default configuration file to enable this mode by default.
1116 * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
1119 2007-05-12 Philippe Brochard <pbrochard@common-lisp.net>
1121 * clfswm-pager.lisp (pager-draw-window-in-group): Add
1122 ensure-printable to print windows name even with non-ascii
1125 2007-05-11 Philippe Brochard <pbrochard@common-lisp.net>
1127 * clfswm-pager.lisp (pager-explode-current-group): Create a new
1128 group for each window in group.
1129 (pager-implode-current-group): Move all windows in workspace to
1130 one group and remove other groups.
1132 * clfswm-pack.lisp (explode-group): Create a new group for each
1134 (implode-group): Move all windows in workspace to one group and
1135 remove other groups.
1137 * clfswm-util.lisp (identify-key): Remove local configuration
1138 variables and made them available for configuration from
1140 (query-string): idem.
1142 2007-04-29 Philippe Brochard <pbrochard@common-lisp.net>
1144 * netwm-util.lisp: Start of NetWM compliance.
1145 Add a Netwm client list gestion.
1147 2007-04-28 Philippe Brochard <pbrochard@common-lisp.net>
1149 * clfswm-internal.lisp (create-group-on-request): open a new group
1150 only when the current group is not empty.
1152 * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
1153 bug with null workspace.
1155 * clfswm-pager.lisp (pager-handle-event): Add a hook
1156 system. This hooks can be changed in the user configuration file.
1158 * package.lisp: All colors and font variables are set in
1159 package.lisp and can be configured in the user configuration
1161 Note: If you have configured some less ugly colors (esp. for the
1162 pager) don't hesitate to let me know :)
1164 * clfswm-second-mode.lisp (sm-handle-event): Add a hook
1165 system. This hooks can be changed in the user configuration file.
1167 * clfswm.lisp (handle-event): Add a hook system. This hooks can be
1168 changed in the user configuration file (~/.clfswmrc)
1170 2007-04-25 Philippe Brochard <pbrochard@common-lisp.net>
1172 * clfswm-util.lisp (stop-all-pending-actions): new function: reset
1173 arrow action, open next window in new workspace/group.
1175 * bindings.lisp (stop-all-pending-actions): new binding.
1176 (open-next-window-in-new-group-once): Open the next windows in a
1177 new group (only once) or open all new windows in a new group (like
1178 others windows managers).
1180 2007-04-22 Philippe Brochard <pbrochard@common-lisp.net>
1182 * clfswm.lisp (read-conf-file): New function to read a lisp
1183 configuration file at startup.
1184 (focus-group-under-mouse): Check if group isn't the current group
1185 ( prevent a bug with unclutter ).
1187 2007-03-02 Philippe Brochard <pbrochard@common-lisp.net>
1189 * bindings.lisp (run-program-from-query-string): A program can be
1190 launch from a input query window.
1192 2007-03-01 Philippe Brochard <pbrochard@common-lisp.net>
1194 * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
1196 2007-02-28 Philippe Brochard <pbrochard@common-lisp.net>
1198 * clfswm.lisp (process-new-window): One can now open the next
1199 window in a workspace called by its number.
1201 * clfswm-util.lisp (query-font-string): Minimal editing
1203 (eval-from-string): And an REPL in the window manager... :)
1205 2007-02-26 Philippe Brochard <pbrochard@common-lisp.net>
1207 * clfswm.lisp (process-new-window): One can now open the next
1208 window in a new workspace or a new group.
1210 * clfswm-pager.lisp (pager-mode): Display the next arrow action
1211 with the hidden windows.
1213 * clfswm.lisp (second-key-mode): Display the current workspace
1214 number and the next arrow action in the state window.
1216 * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
1217 the pager mode and then redisplay only the current workspace.
1219 2007-02-25 Philippe Brochard <pbrochard@common-lisp.net>
1221 * clfswm.lisp (add-workspace): Workspaces are now numbered. So
1222 they can be focused with a keypress, sorted or renumbered.
1224 2007-02-24 Philippe Brochard <pbrochard@common-lisp.net>
1226 * clfswm-pager.lisp (pager-mode): Remove multiple silly
1227 pager-draw-display. This prevent a lot of flickering in the
1230 * clfswm.lisp: Remove all display-force-output and replace them
1231 with only one display-finish-output in the event loop.
1233 2006-11-06 Philippe Brochard <pbrochard@common-lisp.net>
1235 * clfswm-pager.lisp (pager-center-group): New function - center a
1236 group at the middle of the screen.
1238 * clfswm-pack.lisp (center-group): New function - center a group
1239 at the middle of the screen.
1241 * clfswm.lisp (show-group): Add a cross line under the group.
1242 (show-group): Group are showned even if fullscreened.
1243 (init-display): Add an exposure event on the root window.
1245 2006-11-05 Philippe Brochard <pbrochard@common-lisp.net>
1247 * package.lisp (*default-group*): Default group is the same size
1248 of a fullscreened group.
1250 * bindings*: Use shift to move, control+shift to copy.
1252 * *.lisp: Add comments for configuration or alternatives. So grep
1253 for CONFIG to see where you can configure clfswm. And grep for
1254 Alternative to use some commented code.
1256 * clfswm.lisp (second-key-mode): Use a single window to show the
1257 second mode. See for alternatives at the end of this file.
1259 2006-11-03 Philippe Brochard <pbrochard@common-lisp.net>
1261 * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
1262 macro of key and mouse definitions.
1263 (define-define-key/mouse): Use state instead of modifiers list
1264 this fix a bug when the modifiers list is not in the rigth order.
1266 * clfswm.lisp (second-key-mode): Add a colored border in second mode.
1268 2006-11-02 Philippe Brochard <pbrochard@common-lisp.net>
1270 * clfswm-info.lisp (info-mode): Add an info mode.
1272 2006-11-01 Philippe Brochard <pbrochard@common-lisp.net>
1274 * clfswm.lisp (process-new-window): Change border size for
1276 (show-all-windows-in-workspace): Unhide all windows even when the
1277 current group is in fullscreen mode.
1279 2006-10-26 Philippe Brochard <pbrochard@common-lisp.net>
1281 * clfswm-util.lisp (identify-key): Add an exposure handle-event to
1282 redisplay the identify window after a terminal switch.
1284 * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
1285 redisplay the pager after a terminal switch.
1287 2006-10-24 Philippe Brochard <pbrochard@common-lisp.net>
1289 * clfswm-util.lisp (identify-key): Add a window to display
1290 the keys to identify on screen.
1292 * bindings.lisp, bindings-pager.lisp: Define same keys to
1293 move/copy groups/windows in second mode and in pager.
1295 * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
1297 (show-all-windows-in-workspace): unhide window before adapting it
1300 2006-10-23 Philippe Brochard <pbrochard@common-lisp.net>
1302 * clfswm.lisp (handle-event): Revert to an older version.
1304 2006-10-18 Philippe Brochard <pbrochard@common-lisp.net>
1306 * clfswm-util.lisp (force-window-in-group)
1307 (force-window-center-in-group): New functions for transient windows.
1309 * clfswm-pager.lisp (pager-remove-current-workspace/group):
1310 bugfix: hide all windows before removing group or workspace.
1312 2006-10-17 Philippe Brochard <pbrochard@common-lisp.net>
1314 * bindings-pager.lisp (mouse-pager-move-selected-group)
1315 (mouse-pager-copy-selected-group)
1316 (mouse-pager-move-selected-window)
1317 (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
1318 (mouse-pager-rotate-window-down): New functions to have mouse in
1321 * clfswm-pager.lisp (pager-swap-window)
1322 (pager-copy-group-on-next/previous-workspace)
1323 (pager-copy-window-on-next/previous-line): New functions
1325 2006-10-15 Philippe Brochard <pbrochard@common-lisp.net>
1327 * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
1328 (pager-move-group-on-next/previous-workspace): new functions.
1330 * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
1331 to its half size (new functions).
1333 2006-10-11 Philippe Brochard <pbrochard@common-lisp.net>
1335 * clfswm-pager.lisp: workspaces, groups and windows can now be
1336 selectionned with the keyboard or the mouse.
1338 2006-10-09 Philippe Brochard <pbrochard@common-lisp.net>
1340 * clfswm-pager.lisp (pager-select-workspace-right/left):
1341 workspaces can now be selectionned with the keyboard.
1343 2006-10-08 Philippe Brochard <pbrochard@common-lisp.net>
1345 * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
1346 new function to remove a previous defined key or mouse combination.
1348 2006-10-07 Philippe Brochard <pbrochard@common-lisp.net>
1350 * clfswm.lisp (main): Check for access error in init-display.
1352 * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
1353 keycode before grabbing.
1355 * bindings.lisp: Remove nlambda and use defun to keep the function
1356 documentation with clisp.
1357 (define-shell): new macro to define shell command for the second
1360 2006-10-06 Philippe Brochard <pbrochard@common-lisp.net>
1362 * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
1365 2006-10-05 Philippe Brochard <pbrochard@common-lisp.net>
1367 * bindings.lisp (accept-motion): Move group bugfix in upper mouse
1368 workspace circulation.
1370 * clfswm-util.lisp (absorb-orphan-window): new function.
1372 * clfswm-keys.lisp: Keysyms support.
1374 2006-10-02 Philippe Brochard <pbrochard@common-lisp.net>
1376 * clfswm.lisp (show-group): Use one gc for all groups and not one
1379 2006-10-01 Philippe Brochard <pbrochard@common-lisp.net>
1381 * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
1383 * clfswm.lisp (adapt-window-to-group): Adapt only windows with
1384 width and height outside group.
1386 2006-09-28 Philippe Brochard <pbrochard@common-lisp.net>
1388 * clfswm.lisp: First public release.