1 2010-07-21 Philippe Brochard <pbrochard@common-lisp.net>
3 * src/binding*.lisp: Bind control+g to escape the current action
6 * src/clfswm-internal.lisp
7 (delete-child-and-children-in-all-frames): New function and
8 binding: Second mode - Control+Delete delete the current child and
9 its children in all frames (ie: close the current child and its
12 2010-07-20 Philippe Brochard <pbrochard@common-lisp.net>
14 * src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy
15 the frame window and the frame gc. Close a very annoying bug when
16 cuting/pasting a frame or moving a child over frames with the
19 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
20 all children in *current-root* after moving/resizing a frame.
22 2010-07-18 Philippe Brochard <pbrochard@common-lisp.net>
24 * src/clfswm-util.lisp (delete-focus-window)
25 (destroy-focus-window): Remove child in parent frame before
28 2010-07-16 Philippe Brochard <pbrochard@common-lisp.net>
30 * src/clfswm-util.lisp (identify-key): Add a timeout in
32 (mouse-click-to-focus-generic): Use find-child-under-mouse instead
33 of the window passed by xlib:process-event.
35 * src/xlib-util.lisp (move-window, resize-window)
36 (wait-mouse-button-release): Add a timeout in xlib:process-event.
38 2010-04-11 Philippe Brochard <pbrochard@common-lisp.net>
40 * src/clfswm-util.lisp (run-other-window-manager): Add the ability
41 to launch an other window manager and to return to clfswm.
43 2010-03-18 Philippe Brochard <pbrochard@common-lisp.net>
45 * src/clfswm-layout.lisp (set-tile-space-layout): Set default
48 2009-12-15 Philippe Brochard <pbrochard@common-lisp.net>
50 * src/clfswm.lisp (main-loop): Add a *loop-hook* parameter and a
53 * src/clfswm-generic-mode.lisp (generic-mode): Add a loop-hook
54 parameter and a loop timeout.
56 2009-12-05 Philippe Brochard <pbrochard@common-lisp.net>
58 * src/clfswm.lisp (main): Add an alternate configuration filename
61 * load.lisp: Add a debuging code example.
63 2009-11-14 Philippe Brochard <pbrochard@common-lisp.net>
65 * src/clfswm-configuration.lisp (create-configuration-menu): New
66 menu to configure all clfswm variables while clfswm is running.
68 2009-11-12 Philippe Brochard <pbrochard@common-lisp.net>
70 * src/clfswm-util.lisp (save-configuration-variables): New
71 function to save all configuration variables in clfswmrc.
73 2009-11-11 Philippe Brochard <pbrochard@common-lisp.net>
75 * src/clfswm-info.lisp (info-mode): Begining of mouse support in
77 (set-default-info-keys): Add cursor key support in info mode.
79 2009-11-08 Philippe Brochard <pbrochard@common-lisp.net>
81 * contrib/reboot-halt.lisp: Add a Suspend/Reboot/Halt menu in
84 * src/clfswm.lisp (main): Add a read-conf-file-p parameter to
85 prevent reading the configuration file (this may be useful to
86 produce the original documentation without user modifications
87 with the rc configuration file).
89 2009-11-07 Philippe Brochard <pbrochard@common-lisp.net>
91 * src/bindings-second-mode.lisp (set-default-second-keys):
92 Simplification of Escape key to close/kill/remove the focus window
93 and unhide all windows.
95 * src/bindings.lisp (set-default-main-keys): Simplification of
96 Escape key to close/kill/remove the focus window and unhide all
99 * src/clfswm-util.lisp (ask-close/kill-current-window): Add remove
100 focus and unhide all windows capabilities.
102 2009-10-10 Philippe Brochard <pbrochard@common-lisp.net>
104 * contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
106 2009-07-29 Philippe Brochard <pbrochard@common-lisp.net>
108 * src/clfswm-layout.lisp (tile-layout, tile-horizontal-layout):
109 Keep child order and don't make unnecessary child movement.
110 (one-column-layout, one-line-layout): New layouts.
112 2009-06-29 Philippe Brochard <pbrochard@common-lisp.net>
114 * contrib/cd-player.lisp: New file to handle the CD player.
116 * contrib/xmms.lisp: New file to handle the xmms player.
118 2009-06-28 Philippe Brochard <pbrochard@common-lisp.net>
120 * src/clfswm-layout.lisp (set-no-layout-remember-size): New layout:
121 Maximize windows in there frame - Leave frames to there actual
124 * src/bindings-second-mode.lisp (set-default-second-keys): Bind
125 "o" on set-open-in-new-frame-in-parent-frame-nw-hook.
127 2009-06-27 Philippe Brochard <pbrochard@common-lisp.net>
129 * contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
131 2009-06-24 Philippe Brochard <pbrochard@common-lisp.net>
133 * contrib/mpd.lisp: Use a standard menu.
135 * src/clfswm-info.lisp: Use a standard menu for the help-menu.
137 2009-06-22 Philippe Brochard <pbrochard@common-lisp.net>
139 * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
141 2009-06-19 Philippe Brochard <pbrochard@common-lisp.net>
143 * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
146 2009-06-18 Philippe Brochard <pbrochard@common-lisp.net>
148 * src/config.lisp (get-fullscreen-size): One pixel adjustment
151 * src/clfswm-placement.lisp (*-child-placement): One pixel
154 2009-06-16 Philippe Brochard <pbrochard@common-lisp.net>
156 * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
157 Ensure that all characters are printable.
159 * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
162 * src/clfswm-placement.lisp (*-child-placement): Adjust
163 coordinates to one pixel in the current child.
165 2009-06-04 Philippe Brochard <pbrochard@common-lisp.net>
167 * src/clfswm-query.lisp (query-enter-function): Assign font before
168 width and height calculation.
170 2009-06-03 Philippe Brochard <pbrochard@common-lisp.net>
172 * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
173 bannish the pointer in an arbitrary place.
175 * src/clfswm-info.lisp (info-mode): Use with-placement macro to
176 place the info window in an arbitrary place.
178 * src/clfswm-query.lisp (query-enter-function): Use with-placement
179 macro to place the query window in an arbitrary place.
181 * src/clfswm-placement.lisp: New file. Allow to place info windows
182 or query windows on an arbitrary place. Allow to bannish the
183 pointer on an arbitrary place.
185 2009-05-16 Philippe Brochard <pbrochard@common-lisp.net>
187 * src/clfswm-circulate-mode.lisp (reorder-child)
188 (reorder-brother): Unfocus windows before reordering children or
191 2009-05-13 Philippe Brochard <pbrochard@common-lisp.net>
193 * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
194 the parent is a frame.
196 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
197 motion with a default modifier.
199 * src/clfswm.lisp (handle-motion-notify): Handle motion with a
202 * src/clfswm-info.lisp (info-mode): Handle motion with a default
204 (info-mode): Optimization in loop function.
206 2009-05-10 Philippe Brochard <pbrochard@common-lisp.net>
208 * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
209 root-frame correctly.
211 * clfswm.asd: Dependency fix for clfswm-generic-mode.
213 * src/clfswm-circulate-mode.lisp (reorder-child)
214 (reorder-brother): Handle empty frames.
215 (reorder-brother): Redisplay only the parent frame of the current
218 * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
219 parent frame of the current frame.
221 2009-05-09 Philippe Brochard <pbrochard@common-lisp.net>
223 * src/clfswm-util.lisp (frame-toggle-maximize): New function:
224 Maximize/Unmaximize the current frame in its parent frame.
226 * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
227 windows and frames in there parent frame.
229 2009-05-05 Philippe Brochard <pbrochard@common-lisp.net>
231 * src/*.lisp: Add support for Clozure Common Lisp (CCL).
233 * src/clfswm-circulate-mode.lisp (reorder-child)
234 (reorder-brother): Reinitialise on circulate type change
235 child to brother or brother to child.
237 * src/*.lisp (*): Use map-window instead of xlib:map-window. So
238 calls xlib:display-finish-output on each map-request. So speed up
241 * src/xlib-util.lisp (map-window): New function. Call
242 xlib:display-finish-output on each map request.
244 2009-04-28 Philippe Brochard <pbrochard@common-lisp.net>
246 * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
247 Optimisation when drawing second mode window.
249 2009-04-27 Philippe Brochard <pbrochard@common-lisp.net>
251 * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
254 2009-04-22 Philippe Brochard <pbrochard@common-lisp.net>
256 * src/clfswm-util.lisp (run-program-from-query-string): Launch
257 command only with a return validation.
259 2009-04-22 Xavier Maillard <xma@gnu.org>
261 * src/clfswm-query.lisp (query-string): Use a generic mode.
263 2009-04-19 Xavier Maillard <xma@gnu.org>
265 * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
267 2009-04-18 Xavier Maillard <xma@gnu.org>
269 * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
270 to define all other modes.
272 2009-04-05 Philippe Brochard <pbrochard@common-lisp.net>
274 * src/package.lisp (): Use *default-font-string* for all
277 * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
279 2009-02-17 Philippe Brochard <pbrochard@common-lisp.net>
281 * src/xlib-util.lisp (null-size-window-p): Better check of null
284 2009-02-14 Philippe Brochard <pbrochard@common-lisp.net>
286 * src/clfswm.lisp (handle-map-request): Add a fix to manage
287 correctly fullscreen windows (SDL particularly).
289 2008-12-20 Philippe Brochard <pbrochard@common-lisp.net>
291 * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
292 a segfault with clisp/new-clx.
294 * src/clfswm.lisp (handle-motion-notify): Add a needed window
297 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
298 needed window argument.
300 2008-10-30 Philippe Brochard <pbrochard@common-lisp.net>
302 * src/xlib-util.lisp (wait-no-key-or-button-press)
303 (wait-a-key-or-button-press): Check buttons press/release correctly"
305 2008-10-28 Philippe Brochard <pbrochard@common-lisp.net>
307 * src/menu-def.lisp: Add children navigation menu in the movement
308 menu (select next/previous child/brother/level).
310 2008-10-26 Philippe Brochard <pbrochard@common-lisp.net>
312 * *: Rename 'sister' frame to 'brother' frame.
314 * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
315 alias in a real modifier.
317 * src/package.lisp (*modifier-alias*): New list of modifier alias
318 For example: :alt is :mod-1, :numlock is :mod-2...
320 * src/tools.lisp (remove-hook): New function.
322 * src/clfswm-keys.lisp (with-capslock, without-capslock)
323 (with-numlock, without-cnumlock): New functions.
325 2008-10-25 Philippe Brochard <pbrochard@common-lisp.net>
327 * src/clfswm-info.lisp: Use the *binding-hook* to create info
328 keys and mouse bindings.
330 * src/bindings-second-mode.lisp: Use the *binding-hook* to create
331 second keys and mouse bindings.
333 * src/bindings.lisp: Use the *binding-hook* to create main keys
336 2008-10-10 Philippe Brochard <pbrochard@common-lisp.net>
338 * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
341 2008-10-09 Philippe Brochard <pbrochard@common-lisp.net>
343 * src/menu-def.lisp: Use a menu instead of a function for the
346 2008-10-08 Philippe Brochard <pbrochard@common-lisp.net>
348 * src/clfswm-util.lisp (show-standard-menu): Display the standard
349 menu from the 'update-menus' command.
351 2008-10-07 Philippe Brochard <pbrochard@common-lisp.net>
353 * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
354 it's already grabbed.
356 * src/clfswm-internal.lisp (display-frame-info): Use configurable
357 colors and fix a bug with background.
358 (display-frame-info): Set window background when displaying info.
360 2008-10-06 Philippe Brochard <pbrochard@common-lisp.net>
362 * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
363 warning with clisp/new-clx.
365 2008-10-04 Philippe Brochard <pbrochard@common-lisp.net>
367 * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
370 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
371 * *: **** Release 0809 ****
373 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
375 * src/clfswm-util.lisp (ensure-unique-name): New function and menu
377 (ensure-unique-number): New function and menu entry.
379 2008-09-22 Philippe Brochard <pbrochard@common-lisp.net>
381 * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
382 hook: open the next window in a named frame.
383 (numbered-frame-nw-hook): New new window hook: open the next
384 window in a numbered frame.
386 * src/clfswm-query.lisp (query-string): Grab the keyboard in all
387 cases. So query-string can be called even in the main mode.
389 * src/clfswm-internal.lisp (show-all-children): Do not raise a
390 child by default => far less flickering.
392 2008-09-19 Philippe Brochard <pbrochard@common-lisp.net>
394 * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
396 * src/menu-def.lisp: Change key binding for the CLFSWM menu
399 * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
400 is nil. (workaround on some CLX implementation).
402 2008-09-12 Philippe Brochard <pbrochard@common-lisp.net>
404 * src/menu-def.lisp: Add a menu to set a focus policy for all
407 * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
408 (all-frames-set-*-focus-policy): Set a focus policy for all
411 * src/clfswm.lisp (handle-enter-notify): sloppy-select
412 mode. Select a child and its parents on mouse over.
414 2008-09-03 Philippe Brochard <pbrochard@common-lisp.net>
416 * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
417 policy -> Sloppy focus only for windows in the current frame.
418 (main-unprotected): Exit clfswm on init error (ie: when another
419 window manager is running).
421 * src/clfswm-util.lisp (reset-clfswm): New function.
423 2008-09-02 Philippe Brochard <pbrochard@common-lisp.net>
425 * src/clfswm-menu.lisp (init-menu): New function.
427 * src/clfswm-util.lisp (reload-clfswm): New function to reload
429 (exit-clfswm): Rename quit-clfswm to exit-clfswm.
431 * src/clfswm.lisp (main, main-unprotected): Handle error in a
432 superior main function. Now CLFSWM can't break the X session. It
433 just reinitialize the display and run a new main loop.
435 * src/clfswm-corner.lisp: Make *clfswm-terminal* and
436 *vt-keyboard-on* global to avoid warnings when loading clfswm.
438 * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
439 (help-on-gimp-layout): Describe how to use the GIMP layout.
441 2008-09-01 Philippe Brochard <pbrochard@common-lisp.net>
443 * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
444 main-window-right-layout. Change the keybinding for (shift)alt+tab
445 to not select windows in the main window lisst.
446 Bind F8 to add a window in the main window list.
447 Bind F9 to remove a window in the main window list.
448 Change the focus policy to :sloppy.
449 (set-previous-layout): Restore the previous layout, keybinding and
452 2008-08-31 Philippe Brochard <pbrochard@common-lisp.net>
454 * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
456 * src/clfswm-layout.lisp (main-window-left-layout)
457 (main-window-bottom-layout, main-window-top-layout): New
459 Factorize layouts in menu.
461 2008-08-30 Philippe Brochard <pbrochard@common-lisp.net>
463 * src/clfswm-layout.lisp (main-window-right-layout): A possible
464 GIMP layout: one or more main windows on one side of the
465 frame. Others on the other size.
467 * src/clfswm-util.lisp
468 (current-frame-set-click/sloppy-focus-policy): Each frame can have
469 a different focus policy (one of :click or :sloppy).
470 The default focus policy is set with *default-focus-policy*.
472 2008-08-23 Philippe Brochard <pbrochard@common-lisp.net>
474 * src/clfswm-info.lisp (show-config-variable): New function.
476 2008-08-19 Philippe Brochard <pbrochard@common-lisp.net>
478 * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
480 * src/clfswm-info.lisp: Colored help for key binding and corners
483 2008-08-18 Philippe Brochard <pbrochard@common-lisp.net>
485 * src/clfswm-util.lisp (delete-focus-window)
486 (destroy-focus-window): Remove chid only in
487 handle-unmap/destroy-notify. Focus *current-root* only when
488 closing/killing the current child.
490 * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
491 functions or corners.
493 2008-08-17 Philippe Brochard <pbrochard@common-lisp.net>
495 * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
496 action: Hide/Unhide a terminal on mouse corner action. (By default
497 right mouse button on the top left corner).
499 * src/config.lisp (*never-managed-window-list*): New config
502 * src/clfswm-internal.lisp (never-managed-window-p): New function:
503 Handle never managed window in a more simple way.
505 * src/clfswm-corner.lisp: New file and new and more simple method
506 to define corners actions.
508 2008-08-15 Philippe Brochard <pbrochard@common-lisp.net>
510 * src/clfswm-info.lisp (info-mode): Info line can now be colored.
512 * src/clfswm-layout.lisp (fast-layout-switch)
513 (define-fast-layout-switch): New functions: Switch between two
516 * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
517 really in the second mode. So leave-second-mode can be used even
520 * src/clfswm-util.lisp (switch-to-last-child): New function:
521 Store the current child and switch to the previous one.
523 2008-07-16 Philippe Brochard <pbrochard@common-lisp.net>
525 * src/clfswm-util.lisp (display-current-window-info): Display the
527 (have-to-present-virtual-keyboard): Add a virtual keyboard corner
528 (top right by default). By default 'xvkbd' is used.
530 2008-06-28 Philippe Brochard <pbrochard@common-lisp.net>
532 * src/xlib-util.lisp (move-window, resize-window): Compress motion
535 * src/clfswm.lisp (handle-motion-notify): Compress motion events.
537 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
540 * src/clfswm-info.lisp (info-mode): Compress motion events.
542 2008-06-21 Philippe Brochard <pbrochard@common-lisp.net>
544 * src/clfswm-internal.lisp (show-all-children): Compute geometry
545 and selection first and then show only necessary children.
546 (show-child): remove unneeded display-p parameter.
548 * src/config.lisp (get-fullscreen-size): Place the frame border
549 outside the screen (this prevent the loose of 2 pixels per
552 2008-06-12 Philippe Brochard <pbrochard@common-lisp.net>
554 * src/clfswm-internal.lisp (focus-child): Algorithm change to
555 raise only the selected child.
557 2008-06-08 Philippe Brochard <pbrochard@common-lisp.net>
559 * src/clfswm-internal.lisp (raise-p-list, show-all-children):
560 Raise only viewable children.
562 2008-06-06 Philippe Brochard <pbrochard@common-lisp.net>
564 * src/clfswm-internal.lisp (show-all-children): Always raise all
565 displayed children. Remove all references to raise-p.
567 2008-06-04 Philippe Brochard <pbrochard@common-lisp.net>
569 * src/menu-def.lisp (child-menu): New menu entry on raise/lower
572 * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
573 second mode binding on raise/lower child in its frame.
575 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
576 behaviour to the new raise/lower property.
577 Call clear-nw-hook before the rest of the hook.
579 * src/bindings.lisp (mouse-click-to-focus-and-move-window)
580 (mouse-click-to-focus-and-resize-window): Stop button event. This
581 prevent a keyboard/pointer freeze.
583 2008-06-03 Philippe Brochard <pbrochard@common-lisp.net>
585 * src/clfswm-internal.lisp (frame-lower-child)
586 (frame-raise-child): New functions to raise/lower a child in its
589 * src/clfswm-util.lisp (have-to-present-windows)
590 (have-to-present-all-windows): New functions to have an MaxOS
591 expose like on mouse click in screen corner.
593 * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
595 2008-05-30 Philippe Brochard <pbrochard@common-lisp.net>
597 * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
598 child from a choice in all frames with hidden children.
600 * src/clfswm-info.lisp (info-mode-menu): Handle separators.
602 2008-05-28 Philippe Brochard <pbrochard@common-lisp.net>
604 * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
605 (unhide-all-children): New functions.
607 * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
610 * src/clfswm-util.lisp (hide/show-frame-window): new function and
613 2008-05-23 Philippe Brochard <pbrochard@common-lisp.net>
615 * src/clfswm-util.lisp (rename-current-child): Do not display the
616 frame info for a window.
618 2008-05-20 Philippe Brochard <pbrochard@common-lisp.net>
620 * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
621 frame window for the removed child and its children.
623 2008-05-18 Philippe Brochard <pbrochard@common-lisp.net>
625 * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
628 2008-05-17 Philippe Brochard <pbrochard@common-lisp.net>
630 * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
631 the ROX pinboard (ie: leave it lowered in the root window as
634 * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
635 (tile-left-layout, tile-right-layout, tile-top-layout)
636 (tile-bottom-layout): Use all the frame space when there is only
639 * src/clfswm-internal.lisp (place-window-from-hints): Center
640 unmanaged windows in the root screen.
642 * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
645 2008-05-15 Philippe Brochard <pbrochard@common-lisp.net>
647 * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
648 typo in managed types.
650 * src/clfswm-internal.lisp (show-child): Always display frame info
651 even if the frame is hidden.
653 * src/xlib-util.lisp (resize-window): Use a better algorithme to
656 2008-05-13 Philippe Brochard <pbrochard@common-lisp.net>
658 * src/clfswm-util.lisp (with-movement): Display frame info for all
659 frames in current root.
661 2008-05-12 Philippe Brochard <pbrochard@common-lisp.net>
663 * src/*.lisp: Rename 'brother' frames to 'sister' frames.
665 * src/bindings-second-mode.lisp (define-second-key #\a): New
666 binding on 'add-default-frame'.
668 * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
669 message to follow the autodocumentation process.
671 2008-05-10 Philippe Brochard <pbrochard@common-lisp.net>
673 * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
674 "Space" to jump to a child. "B" to bind a slot on the current
677 * src/bindings-second-mode.lisp: Use "Tab" instead of
680 2008-05-07 Philippe Brochard <pbrochard@common-lisp.net>
682 * src/clfswm-util.lisp (find-child-under-mouse): Take care of
683 unmanaged (hidden) windows.
685 * src/clfswm-internal.lisp (place-window-from-hints): Give a
686 minimal size for windows.
687 (with-all-windows-frames-and-parent): New function.
689 * src/config.lisp (*default-window-width/height*): New parameters.
691 * src/clfswm-internal.lisp (place-window-from-hints): Center
692 windows in the screen instead of in there frame.
694 * src/bindings-second-mode.lisp (tile-space-current-frame): New
697 * src/clfswm-layout.lisp (register-layout): Intern the once name
698 in the right package.
700 2008-05-05 Philippe Brochard <pbrochard@common-lisp.net>
702 * doc/dot-clfswmrc: Update to follow the new clfswm way.
704 2008-05-03 Philippe Brochard <pbrochard@common-lisp.net>
706 * src/clfswm-internal.lisp (set-current-child)
707 (adapt-child-to-parent, show-child, hide-child): Handle the case
708 where child is not a frame or a window.
710 * src/clfswm-util.lisp
711 (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
712 Check if child is a frame.
714 * src/clfswm-internal.lisp (managed-window-p): Handle the case
716 (place-frame): Check if frame and parent are frames.
718 * src/clfswm-info.lisp (info-mode): display all frame info before
721 * src/clfswm-second-mode.lisp (second-key-mode): display all frame
724 * src/clfswm-internal.lisp (display-all-frame-info): New function.
726 2008-05-02 Philippe Brochard <pbrochard@common-lisp.net>
728 * src/tools.lisp (getenv): Implemented for ECL.
729 (urun-prog): Implemented for ECL.
731 * src/clfswm-util.lisp (identify-key): Use a double buffer to
734 * src/clfswm-query.lisp (query-string): Use a double buffer to
737 * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
740 * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
743 2008-05-01 Philippe Brochard <pbrochard@common-lisp.net>
745 * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
747 * src/menu-def.lisp: New file: move all menu definition in
750 * src/clfswm-layout.lisp (register-layout): Use a function instead
753 2008-04-30 Philippe Brochard <pbrochard@common-lisp.net>
755 * src/clfswm-autodoc.lisp (produce-menu-doc,
756 (produce-menu-doc-html): New functions.
757 (produce-doc-*): Moved to clfswm-autodoc.lisp.
759 * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
760 paste a child on one of its own children. (this prevent a
762 (move-child-to): Rename move/copy-current-child-by to
764 (mouse-move-window-over-frame): New function to move the window
765 under the mouse cursor to another frame.
767 * src/clfswm-internal.lisp (find-child-in-parent): New function.
769 2008-04-29 Philippe Brochard <pbrochard@common-lisp.net>
771 * src/clfswm-internal.lisp (show-all-children): Display unmanaged
772 windows only when its window parent is the current child.
774 2008-04-28 Philippe Brochard <pbrochard@common-lisp.net>
776 * src/clfswm-util.lisp (manage-current-window)
777 (unmanage-current-window): New functions: Allow to force to manage
778 or unmanage a window by its parent frame.
780 * src/bindings-second-mode.lisp (#\o): binded to
781 set-open-in-new-frame-in-parent-frame-nw-hook and
782 (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
784 * src/clfswm-util.lisp (with-current-window): New macro.
786 * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
787 exposure and enter-window handle event.
789 * src/clfswm-util.lisp (move-frame, resize-frame): Show all
790 children for the current child after the move/resize.
792 2008-04-27 Philippe Brochard <pbrochard@common-lisp.net>
794 * src/xlib-util.lisp (resize-window): Take care of window size
797 * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
798 move/resize unmanaged windows.
800 * src/xlib-util.lisp (move-window, resize-window): New functions.
802 2008-04-25 Philippe Brochard <pbrochard@common-lisp.net>
804 * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
805 user choose what window type the current frame must handle.
806 (display-current-window-info): New function.
807 (current-frame-manage-all-window-type)
808 (current-frame-manage-only-normal-window-type)
809 (current-frame-manage-no-window-type): New functions.
811 * src/clfswm-internal.lisp (managed-window-p): New function.
813 * src/package.lisp (frame): Managed type: new frame
814 parameter. This allow to choose what window type a frame must
817 * src/*.lisp: Rename all 'father' occurrences to 'parent'.
819 * src/clfswm-nw-hooks.lisp
820 (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
822 * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
825 * src/tools.lisp (ensure-printable): Return always a string even
828 2008-04-24 Philippe Brochard <pbrochard@common-lisp.net>
830 * src/config.lisp (*default-nw-hook*): New variable to change the
831 default new window hook.
833 2008-04-22 Philippe Brochard <pbrochard@common-lisp.net>
835 * clfswm.asd (clfswm): Add a dependency from
836 clfswm-second-mode.lisp to clfswm.lisp.
838 * src/clfswm-util.lisp (identify-key): Show the documentation for
839 the function bound on a key.
840 (with-movement): Move with-movement,
841 current-frame-fill/pack/resize-* from bindings-second-mode.lisp
844 * src/clfswm-menu.lisp: New menu system that let user change keys
845 or functions associated to keys.
847 2008-04-18 Philippe Brochard <pbrochard@common-lisp.net>
849 * src/clfswm-internal.lisp (show-all-children): Display-child is
850 the first child by default. Solve a bug with father-p.
852 2008-04-17 Philippe Brochard <pbrochard@common-lisp.net>
854 * src/clfswm-internal.lisp (add-frame): Add frame return the
856 (show-all-children): Move the size computation outside the
859 * src/bindings-second-mode.lisp (with-movement): Redisplay only
862 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
863 only the current child.
865 * src/clfswm-internal.lisp (show-all-children): New display-child
866 parameter to display only the desired child and its children.
867 (select-next/previous-child): Only display the current child.
869 2008-04-14 Philippe Brochard <pbrochard@common-lisp.net>
871 * src/clfswm.lisp (init-display): Move the default frame creation
872 on the default init hook.
874 * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
875 the main mode (for example: "1" on an azerty keyboard).
877 2008-04-13 Philippe Brochard <pbrochard@common-lisp.net>
879 * src/clfswm-keys.lisp (find-key-from-code): Better handle of
880 keysyms. Revert to old grabbing method for the main mode.
882 2008-04-12 Philippe Brochard <pbrochard@common-lisp.net>
884 * src/clfswm.lisp (init-display): Add key handling on no focus
885 window and on frame windows.
887 2008-04-11 Philippe Brochard <pbrochard@common-lisp.net>
889 * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
890 all keys by default and replay just what is needed. No change for
893 * src/clfswm-keys.lisp: remove grab/ungrab main keys.
894 (find-key-from-code): Test for shift and not shift presence.
896 2008-04-09 Philippe Brochard <pbrochard@common-lisp.net>
898 * src/clfswm-internal.lisp (switch-to-root-frame): show later -
899 new key parameter to have less flickering.
901 2008-04-07 Philippe Brochard <pbrochard@common-lisp.net>
903 * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
904 layout only one time and revert to no-layout to freely handle
907 * src/clfswm-nw-hooks.lisp
908 (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
909 with new created window.
911 * src/clfswm-layout.lisp (register-layout): Now register
912 automatically a once layout to set the layout only one time and
913 revert to no-layout to freely handle frames.
915 2008-04-05 Philippe Brochard <pbrochard@common-lisp.net>
917 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
918 nw-hook: Open the next window in the current frame and leave the
919 focus to the current child.
921 2008-04-04 Philippe Brochard <pbrochard@common-lisp.net>
923 * src/bindings-second-mode.lisp: Add keys definitions to
924 bind-or-jump in the second mode.
926 * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
927 macro for bind-or-jump-(1|2|3...).
929 * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
930 arguments to function. This allow to do things like:
931 (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
932 are passed to my-function on key press.
934 2008-04-03 Philippe Brochard <pbrochard@common-lisp.net>
936 * src/clfswm-util.lisp (bind-or-jump): New (great) function.
938 2008-04-02 Philippe Brochard <pbrochard@common-lisp.net>
940 * src/clfswm-internal.lisp (child-fullname): New function
942 * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
943 docstring in info-mode-menu. An item can be
944 '((key function) (key function)) or with docstring
945 '((key function "documentation 1") (key function "bla bla") (key function))
947 * src/tools.lisp (ensure-n-elems): New function.
949 * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
950 resize a frame or the window's father.
952 * src/clfswm.lisp (init-display): Remove tile-space-layout by
953 default on the root frame.
955 * src/clfswm-util.lisp (move/resize-frame): Add standard event
956 hooks handlers (map-request, configure-notify...)
958 * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
961 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
963 * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
964 or the window's father.
966 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
967 event only if there is a geometry change.
968 (mouse-focus-move/resize-generic): Generic function to move or
969 resize a frame or a window father frame.
971 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
973 * src/clfswm-internal.lisp (show-all-children): Return t if there
974 is a geometry change.
976 2008-03-30 Philippe Brochard <pbrochard@common-lisp.net>
978 * src/bindings.lisp (Up/Down): Swap select previous/next level.
980 * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
982 * src/clfswm.lisp (init-display): Create a default frame in the root frame.
984 * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
985 (with-all-*): Reverse the child list to manage the first child last (like in
988 * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
989 root window only if true.
991 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
992 root window only if *create-frame-on-root* is true.
994 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
997 2008-03-29 Philippe Brochard <pbrochard@common-lisp.net>
999 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
1000 the current child (even if it's a window).
1002 2008-03-28 Philippe Brochard <pbrochard@common-lisp.net>
1004 * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
1005 (mouse-click-to-focus-and-resize): New functions.
1007 * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
1008 (*-px->fl): Convert pixel coordinates to float.
1010 * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
1012 2008-03-27 Philippe Brochard <pbrochard@common-lisp.net>
1014 * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
1017 * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
1018 and hide-all-children.
1019 (raise-if-needed): New function.
1020 (show-child): Use a first-p parameter to raise windows only when they are
1023 2008-03-26 Philippe Brochard <pbrochard@common-lisp.net>
1025 * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
1028 2008-03-25 Philippe Brochard <pbrochard@common-lisp.net>
1030 * src/clfswm-info.lisp (keys-from-list): new function.
1032 * src/*: rename 'childs' in 'children'.
1034 * src/*: rename 'group' in 'frame'.
1036 2008-03-22 Philippe Brochard <pbrochard@common-lisp.net>
1038 * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
1040 2008-03-21 Philippe Brochard <pbrochard@common-lisp.net>
1042 * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
1044 2008-03-16 Philippe Brochard <pbrochard@common-lisp.net>
1046 * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
1047 Bind control+o to open the next window in a new group in the root group
1048 (as open in next window in a new workspace in 0801 version).
1050 2008-03-15 Philippe Brochard <pbrochard@common-lisp.net>
1052 * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
1055 2008-03-14 Philippe Brochard <pbrochard@common-lisp.net>
1057 * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
1058 instead of Tab for select-previous-child.
1060 2008-03-13 Philippe Brochard <pbrochard@common-lisp.net>
1062 * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
1065 2008-03-11 Philippe Brochard <pbrochard@common-lisp.net>
1067 * clfswm-util.lisp (identify-key): Display the documentation
1068 associated to keys when identifying a key.
1070 2008-03-10 Xavier Maillard <xma@gnu.org>
1072 * contrib/clfswm: Complete rewrite of the script. Detect error and
1073 act accordingly. Add command line arguments to configure the
1074 script execution. User can now choose different common lisp
1075 implementation (clisp and sbcl only), choose where to store the
1076 dumped image, where to find clfswm source.
1078 2008-03-09 Philippe Brochard <pbrochard@common-lisp.net>
1080 * clfswm-internal.lisp (process-new-window): Beginning of new
1081 window hook: each group have a hook to tell what he wants to do
1082 with the new created window.
1084 2008-03-08 Xavier Maillard <xma@gnu.org>
1086 * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
1087 call the resulting executable.
1089 * clfswm.lisp (read-conf-file): Check for the user config file in
1090 XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
1091 prefered whenever possible.
1093 2008-02-27 Philippe Brochard <pbrochard@common-lisp.net>
1095 * clfswm-layout.lisp (*-layout): Add an optional raise-p
1096 parameter in each layout.
1098 2008-02-26 Philippe Brochard <pbrochard@common-lisp.net>
1100 * clfswm-util.lisp (copy/cut-current-child): Does not affect the
1102 (copy/move-current-child-by-name/number): new functions
1103 (focus-group-by-name/number): new functions
1104 (delete-group-by-name/number): new functions
1106 2008-02-24 Philippe Brochard <pbrochard@common-lisp.net>
1108 * ************************************************************ *
1109 *: Major update - No more reference to workspaces. The main *
1110 structure is a tree of groups or application windows. *
1111 * ************************************************************ *
1113 2008-02-07 Philippe Brochard <pbrochard@common-lisp.net>
1115 * clfswm.lisp (read-conf-file): Read configuration in
1116 $HOME/.clfswmrc or in /etc/clfswmrc or in
1117 $XDG_CONFIG_HOME/clfswm/clfswmrc.
1118 (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
1121 2008-01-18 Philippe Brochard <pbrochard@common-lisp.net>
1123 * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
1126 2008-01-03 Philippe Brochard <pbrochard@common-lisp.net>
1128 * clfswm-internal.lisp (find-window-group): New function.
1130 * clfswm*: Change to make clfswm run with clisp/new-clx.
1132 2008-01-01 Philippe Brochard <pbrochard@common-lisp.net>
1134 * clfswm-util.lisp (query-show-paren): Add show parent matching in
1136 (query-string): Bind control+k to delete end of line.
1138 * clfswm-second-mode.lisp (draw-second-mode-window): Display
1139 the action on mouse motion in second mode.
1141 * clfswm.lisp (handle-exposure): Redisplay groups on exposure
1142 event but do not clear the root window.
1143 (handle-configure-request): Adjust unmanaged window from there
1146 * clfswm-internal.lisp (process-new-window): Adjust new window
1147 with the specified hints (max/min/base width/height).
1149 2007-12-31 Philippe Brochard <pbrochard@common-lisp.net>
1151 * clfswm.lisp (handle-configure-request): Send an Configuration
1152 Notify event. This solve a bug with xterm and rxvt who takes some
1153 times to be mapped. Now there is no delay.
1155 * bindings-second-mode.lisp (define-shell): Run programs after
1156 living the second mode.
1158 2007-12-30 Philippe Brochard <pbrochard@common-lisp.net>
1160 * clfswm-internal.lisp (process-new-window): Do not crop transient
1161 window to group size.
1162 (adapt-window-to-group): Do not crop transient window to group
1165 * clfswm.lisp (handle-configure-request): Adapt just the window to
1166 its group and don't take care of the configure request. Remove the
1167 bug with the Gimp outside the group and speed up the window
1169 (handle-exposure): Remove show-all-group on exposure event
1172 2007-12-29 Philippe Brochard <pbrochard@common-lisp.net>
1174 * clfswm-util.lisp (circulate-group-up-copy-window)
1175 (circulate-group-down-copy-window)
1176 (circulate-workspace-up-copy-group)
1177 (circulate-workspace-down-copy-group): Prevent the copy of the
1178 same window in the same workspace.
1180 * bindings-second-mode.lisp (release-copy-selected-window)
1181 (release-copy-selected-group): Prevent the copy of the same window
1182 in the same workspace.
1184 * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
1185 (generic-pager-move-window-on-next-line): Remove the copy
1187 (generic-pager-move-group-on-next-workspace)
1188 (generic-pager-move-group-on-previous-workspace): Prevent the copy
1189 of the same window in the same workspace.
1191 * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
1192 (mouse-pager-copy-selected-group-release): Prevent the copy of the
1193 same window in the same workspace.
1195 * tools.lisp (setf/=): new macro to set a variable only when
1198 * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
1199 x, y... only when necessary.
1201 2007-12-28 Philippe Brochard <pbrochard@common-lisp.net>
1203 * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
1204 new function and hook: force windows to stay in its group (solve a
1207 2007-12-25 Philippe Brochard <pbrochard@common-lisp.net>
1209 * bindings-second-mode.lisp (mouse-motion): use hide-group to have
1210 less flickering when moving/resizing groups.
1212 * clfswm-internal.lisp (hide-group): new function.
1213 (show-all-group): clear-all: new parameter.
1215 2007-12-22 Philippe Brochard <pbrochard@common-lisp.net>
1217 * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
1219 * clfswm*: Color change for the pager. Typo or better description
1220 in bindings definitions. Define bindings for a qwerty keyboard by
1221 default. dot-clfswmrc show examples to switch to an azerty
1223 License change to GPL v3.
1224 * config.lisp: new file - group all globals variables in this
1227 2007-08-26 Philippe Brochard <pbrochard@common-lisp.net>
1229 * xlib-util.lisp (hide-window): Remove structure-notivy events
1230 when hidding a window.
1232 2007-05-16 Philippe Brochard <pbrochard@common-lisp.net>
1234 * package.lisp (*sm-property-notify-hook*): Readded
1235 property-notify-hook in second mode.
1237 2007-05-15 Philippe Brochard <pbrochard@common-lisp.net>
1239 * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
1241 2007-05-13 Philippe Brochard <pbrochard@common-lisp.net>
1243 * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
1244 Tile the current workspace with the current window on one side and
1245 others on the other (this emulate the larswm, dwm, wmii way). See
1246 the default configuration file to enable this mode by default.
1248 * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
1251 2007-05-12 Philippe Brochard <pbrochard@common-lisp.net>
1253 * clfswm-pager.lisp (pager-draw-window-in-group): Add
1254 ensure-printable to print windows name even with non-ascii
1257 2007-05-11 Philippe Brochard <pbrochard@common-lisp.net>
1259 * clfswm-pager.lisp (pager-explode-current-group): Create a new
1260 group for each window in group.
1261 (pager-implode-current-group): Move all windows in workspace to
1262 one group and remove other groups.
1264 * clfswm-pack.lisp (explode-group): Create a new group for each
1266 (implode-group): Move all windows in workspace to one group and
1267 remove other groups.
1269 * clfswm-util.lisp (identify-key): Remove local configuration
1270 variables and made them available for configuration from
1272 (query-string): idem.
1274 2007-04-29 Philippe Brochard <pbrochard@common-lisp.net>
1276 * netwm-util.lisp: Start of NetWM compliance.
1277 Add a Netwm client list gestion.
1279 2007-04-28 Philippe Brochard <pbrochard@common-lisp.net>
1281 * clfswm-internal.lisp (create-group-on-request): open a new group
1282 only when the current group is not empty.
1284 * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
1285 bug with null workspace.
1287 * clfswm-pager.lisp (pager-handle-event): Add a hook
1288 system. This hooks can be changed in the user configuration file.
1290 * package.lisp: All colors and font variables are set in
1291 package.lisp and can be configured in the user configuration
1293 Note: If you have configured some less ugly colors (esp. for the
1294 pager) don't hesitate to let me know :)
1296 * clfswm-second-mode.lisp (sm-handle-event): Add a hook
1297 system. This hooks can be changed in the user configuration file.
1299 * clfswm.lisp (handle-event): Add a hook system. This hooks can be
1300 changed in the user configuration file (~/.clfswmrc)
1302 2007-04-25 Philippe Brochard <pbrochard@common-lisp.net>
1304 * clfswm-util.lisp (stop-all-pending-actions): new function: reset
1305 arrow action, open next window in new workspace/group.
1307 * bindings.lisp (stop-all-pending-actions): new binding.
1308 (open-next-window-in-new-group-once): Open the next windows in a
1309 new group (only once) or open all new windows in a new group (like
1310 others windows managers).
1312 2007-04-22 Philippe Brochard <pbrochard@common-lisp.net>
1314 * clfswm.lisp (read-conf-file): New function to read a lisp
1315 configuration file at startup.
1316 (focus-group-under-mouse): Check if group isn't the current group
1317 ( prevent a bug with unclutter ).
1319 2007-03-02 Philippe Brochard <pbrochard@common-lisp.net>
1321 * bindings.lisp (run-program-from-query-string): A program can be
1322 launch from a input query window.
1324 2007-03-01 Philippe Brochard <pbrochard@common-lisp.net>
1326 * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
1328 2007-02-28 Philippe Brochard <pbrochard@common-lisp.net>
1330 * clfswm.lisp (process-new-window): One can now open the next
1331 window in a workspace called by its number.
1333 * clfswm-util.lisp (query-font-string): Minimal editing
1335 (eval-from-string): And an REPL in the window manager... :)
1337 2007-02-26 Philippe Brochard <pbrochard@common-lisp.net>
1339 * clfswm.lisp (process-new-window): One can now open the next
1340 window in a new workspace or a new group.
1342 * clfswm-pager.lisp (pager-mode): Display the next arrow action
1343 with the hidden windows.
1345 * clfswm.lisp (second-key-mode): Display the current workspace
1346 number and the next arrow action in the state window.
1348 * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
1349 the pager mode and then redisplay only the current workspace.
1351 2007-02-25 Philippe Brochard <pbrochard@common-lisp.net>
1353 * clfswm.lisp (add-workspace): Workspaces are now numbered. So
1354 they can be focused with a keypress, sorted or renumbered.
1356 2007-02-24 Philippe Brochard <pbrochard@common-lisp.net>
1358 * clfswm-pager.lisp (pager-mode): Remove multiple silly
1359 pager-draw-display. This prevent a lot of flickering in the
1362 * clfswm.lisp: Remove all display-force-output and replace them
1363 with only one display-finish-output in the event loop.
1365 2006-11-06 Philippe Brochard <pbrochard@common-lisp.net>
1367 * clfswm-pager.lisp (pager-center-group): New function - center a
1368 group at the middle of the screen.
1370 * clfswm-pack.lisp (center-group): New function - center a group
1371 at the middle of the screen.
1373 * clfswm.lisp (show-group): Add a cross line under the group.
1374 (show-group): Group are showned even if fullscreened.
1375 (init-display): Add an exposure event on the root window.
1377 2006-11-05 Philippe Brochard <pbrochard@common-lisp.net>
1379 * package.lisp (*default-group*): Default group is the same size
1380 of a fullscreened group.
1382 * bindings*: Use shift to move, control+shift to copy.
1384 * *.lisp: Add comments for configuration or alternatives. So grep
1385 for CONFIG to see where you can configure clfswm. And grep for
1386 Alternative to use some commented code.
1388 * clfswm.lisp (second-key-mode): Use a single window to show the
1389 second mode. See for alternatives at the end of this file.
1391 2006-11-03 Philippe Brochard <pbrochard@common-lisp.net>
1393 * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
1394 macro of key and mouse definitions.
1395 (define-define-key/mouse): Use state instead of modifiers list
1396 this fix a bug when the modifiers list is not in the rigth order.
1398 * clfswm.lisp (second-key-mode): Add a colored border in second mode.
1400 2006-11-02 Philippe Brochard <pbrochard@common-lisp.net>
1402 * clfswm-info.lisp (info-mode): Add an info mode.
1404 2006-11-01 Philippe Brochard <pbrochard@common-lisp.net>
1406 * clfswm.lisp (process-new-window): Change border size for
1408 (show-all-windows-in-workspace): Unhide all windows even when the
1409 current group is in fullscreen mode.
1411 2006-10-26 Philippe Brochard <pbrochard@common-lisp.net>
1413 * clfswm-util.lisp (identify-key): Add an exposure handle-event to
1414 redisplay the identify window after a terminal switch.
1416 * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
1417 redisplay the pager after a terminal switch.
1419 2006-10-24 Philippe Brochard <pbrochard@common-lisp.net>
1421 * clfswm-util.lisp (identify-key): Add a window to display
1422 the keys to identify on screen.
1424 * bindings.lisp, bindings-pager.lisp: Define same keys to
1425 move/copy groups/windows in second mode and in pager.
1427 * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
1429 (show-all-windows-in-workspace): unhide window before adapting it
1432 2006-10-23 Philippe Brochard <pbrochard@common-lisp.net>
1434 * clfswm.lisp (handle-event): Revert to an older version.
1436 2006-10-18 Philippe Brochard <pbrochard@common-lisp.net>
1438 * clfswm-util.lisp (force-window-in-group)
1439 (force-window-center-in-group): New functions for transient windows.
1441 * clfswm-pager.lisp (pager-remove-current-workspace/group):
1442 bugfix: hide all windows before removing group or workspace.
1444 2006-10-17 Philippe Brochard <pbrochard@common-lisp.net>
1446 * bindings-pager.lisp (mouse-pager-move-selected-group)
1447 (mouse-pager-copy-selected-group)
1448 (mouse-pager-move-selected-window)
1449 (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
1450 (mouse-pager-rotate-window-down): New functions to have mouse in
1453 * clfswm-pager.lisp (pager-swap-window)
1454 (pager-copy-group-on-next/previous-workspace)
1455 (pager-copy-window-on-next/previous-line): New functions
1457 2006-10-15 Philippe Brochard <pbrochard@common-lisp.net>
1459 * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
1460 (pager-move-group-on-next/previous-workspace): new functions.
1462 * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
1463 to its half size (new functions).
1465 2006-10-11 Philippe Brochard <pbrochard@common-lisp.net>
1467 * clfswm-pager.lisp: workspaces, groups and windows can now be
1468 selectionned with the keyboard or the mouse.
1470 2006-10-09 Philippe Brochard <pbrochard@common-lisp.net>
1472 * clfswm-pager.lisp (pager-select-workspace-right/left):
1473 workspaces can now be selectionned with the keyboard.
1475 2006-10-08 Philippe Brochard <pbrochard@common-lisp.net>
1477 * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
1478 new function to remove a previous defined key or mouse combination.
1480 2006-10-07 Philippe Brochard <pbrochard@common-lisp.net>
1482 * clfswm.lisp (main): Check for access error in init-display.
1484 * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
1485 keycode before grabbing.
1487 * bindings.lisp: Remove nlambda and use defun to keep the function
1488 documentation with clisp.
1489 (define-shell): new macro to define shell command for the second
1492 2006-10-06 Philippe Brochard <pbrochard@common-lisp.net>
1494 * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
1497 2006-10-05 Philippe Brochard <pbrochard@common-lisp.net>
1499 * bindings.lisp (accept-motion): Move group bugfix in upper mouse
1500 workspace circulation.
1502 * clfswm-util.lisp (absorb-orphan-window): new function.
1504 * clfswm-keys.lisp: Keysyms support.
1506 2006-10-02 Philippe Brochard <pbrochard@common-lisp.net>
1508 * clfswm.lisp (show-group): Use one gc for all groups and not one
1511 2006-10-01 Philippe Brochard <pbrochard@common-lisp.net>
1513 * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
1515 * clfswm.lisp (adapt-window-to-group): Adapt only windows with
1516 width and height outside group.
1518 2006-09-28 Philippe Brochard <pbrochard@common-lisp.net>
1520 * clfswm.lisp: First public release.