1 2010-07-23 Philippe Brochard <pbrochard@common-lisp.net>
3 * src/clfswm-util.lisp (delete-current-child): Invert bindings and
4 menu entry between delete-current-child and remove-current-child.
5 ie: Delete a child and its children in all frames by default.
7 2010-07-21 Philippe Brochard <pbrochard@common-lisp.net>
9 * src/package.lisp: Add a placement configuration group.
11 * src/binding*.lisp: Bind control+g to escape the current action
14 * src/clfswm-internal.lisp
15 (delete-child-and-children-in-all-frames): New function and
16 binding: Second mode - Control+Delete delete the current child and
17 its children in all frames (ie: close the current child and its
20 2010-07-20 Philippe Brochard <pbrochard@common-lisp.net>
22 * src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy
23 the frame window and the frame gc. Close a very annoying bug when
24 cuting/pasting a frame or moving a child over frames with the
27 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
28 all children in *current-root* after moving/resizing a frame.
30 2010-07-18 Philippe Brochard <pbrochard@common-lisp.net>
32 * src/clfswm-util.lisp (delete-focus-window)
33 (destroy-focus-window): Remove child in parent frame before
36 2010-07-16 Philippe Brochard <pbrochard@common-lisp.net>
38 * src/clfswm-util.lisp (identify-key): Add a timeout in
40 (mouse-click-to-focus-generic): Use find-child-under-mouse instead
41 of the window passed by xlib:process-event.
43 * src/xlib-util.lisp (move-window, resize-window)
44 (wait-mouse-button-release): Add a timeout in xlib:process-event.
46 2010-04-11 Philippe Brochard <pbrochard@common-lisp.net>
48 * src/clfswm-util.lisp (run-other-window-manager): Add the ability
49 to launch an other window manager and to return to clfswm.
51 2010-03-18 Philippe Brochard <pbrochard@common-lisp.net>
53 * src/clfswm-layout.lisp (set-tile-space-layout): Set default
56 2009-12-15 Philippe Brochard <pbrochard@common-lisp.net>
58 * src/clfswm.lisp (main-loop): Add a *loop-hook* parameter and a
61 * src/clfswm-generic-mode.lisp (generic-mode): Add a loop-hook
62 parameter and a loop timeout.
64 2009-12-05 Philippe Brochard <pbrochard@common-lisp.net>
66 * src/clfswm.lisp (main): Add an alternate configuration filename
69 * load.lisp: Add a debuging code example.
71 2009-11-14 Philippe Brochard <pbrochard@common-lisp.net>
73 * src/clfswm-configuration.lisp (create-configuration-menu): New
74 menu to configure all clfswm variables while clfswm is running.
76 2009-11-12 Philippe Brochard <pbrochard@common-lisp.net>
78 * src/clfswm-util.lisp (save-configuration-variables): New
79 function to save all configuration variables in clfswmrc.
81 2009-11-11 Philippe Brochard <pbrochard@common-lisp.net>
83 * src/clfswm-info.lisp (info-mode): Begining of mouse support in
85 (set-default-info-keys): Add cursor key support in info mode.
87 2009-11-08 Philippe Brochard <pbrochard@common-lisp.net>
89 * contrib/reboot-halt.lisp: Add a Suspend/Reboot/Halt menu in
92 * src/clfswm.lisp (main): Add a read-conf-file-p parameter to
93 prevent reading the configuration file (this may be useful to
94 produce the original documentation without user modifications
95 with the rc configuration file).
97 2009-11-07 Philippe Brochard <pbrochard@common-lisp.net>
99 * src/bindings-second-mode.lisp (set-default-second-keys):
100 Simplification of Escape key to close/kill/remove the focus window
101 and unhide all windows.
103 * src/bindings.lisp (set-default-main-keys): Simplification of
104 Escape key to close/kill/remove the focus window and unhide all
107 * src/clfswm-util.lisp (ask-close/kill-current-window): Add remove
108 focus and unhide all windows capabilities.
110 2009-10-10 Philippe Brochard <pbrochard@common-lisp.net>
112 * contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
114 2009-07-29 Philippe Brochard <pbrochard@common-lisp.net>
116 * src/clfswm-layout.lisp (tile-layout, tile-horizontal-layout):
117 Keep child order and don't make unnecessary child movement.
118 (one-column-layout, one-line-layout): New layouts.
120 2009-06-29 Philippe Brochard <pbrochard@common-lisp.net>
122 * contrib/cd-player.lisp: New file to handle the CD player.
124 * contrib/xmms.lisp: New file to handle the xmms player.
126 2009-06-28 Philippe Brochard <pbrochard@common-lisp.net>
128 * src/clfswm-layout.lisp (set-no-layout-remember-size): New layout:
129 Maximize windows in there frame - Leave frames to there actual
132 * src/bindings-second-mode.lisp (set-default-second-keys): Bind
133 "o" on set-open-in-new-frame-in-parent-frame-nw-hook.
135 2009-06-27 Philippe Brochard <pbrochard@common-lisp.net>
137 * contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
139 2009-06-24 Philippe Brochard <pbrochard@common-lisp.net>
141 * contrib/mpd.lisp: Use a standard menu.
143 * src/clfswm-info.lisp: Use a standard menu for the help-menu.
145 2009-06-22 Philippe Brochard <pbrochard@common-lisp.net>
147 * contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
149 2009-06-19 Philippe Brochard <pbrochard@common-lisp.net>
151 * src/clfswm-autodoc.lisp (produce-doc, produce-doc-html): Minor
154 2009-06-18 Philippe Brochard <pbrochard@common-lisp.net>
156 * src/config.lisp (get-fullscreen-size): One pixel adjustment
159 * src/clfswm-placement.lisp (*-child-placement): One pixel
162 2009-06-16 Philippe Brochard <pbrochard@common-lisp.net>
164 * src/clfswm-circulate-mode.lisp (draw-circulate-mode-window):
165 Ensure that all characters are printable.
167 * src/config.lisp (get-fullscreen-size): Adjust default fullscreen
170 * src/clfswm-placement.lisp (*-child-placement): Adjust
171 coordinates to one pixel in the current child.
173 2009-06-04 Philippe Brochard <pbrochard@common-lisp.net>
175 * src/clfswm-query.lisp (query-enter-function): Assign font before
176 width and height calculation.
178 2009-06-03 Philippe Brochard <pbrochard@common-lisp.net>
180 * src/xlib-util.lisp (banish-pointer): Use with-placement macro to
181 bannish the pointer in an arbitrary place.
183 * src/clfswm-info.lisp (info-mode): Use with-placement macro to
184 place the info window in an arbitrary place.
186 * src/clfswm-query.lisp (query-enter-function): Use with-placement
187 macro to place the query window in an arbitrary place.
189 * src/clfswm-placement.lisp: New file. Allow to place info windows
190 or query windows on an arbitrary place. Allow to bannish the
191 pointer on an arbitrary place.
193 2009-05-16 Philippe Brochard <pbrochard@common-lisp.net>
195 * src/clfswm-circulate-mode.lisp (reorder-child)
196 (reorder-brother): Unfocus windows before reordering children or
199 2009-05-13 Philippe Brochard <pbrochard@common-lisp.net>
201 * src/clfswm-circulate-mode.lisp (reorder-brother): Ensure that
202 the parent is a frame.
204 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Handle
205 motion with a default modifier.
207 * src/clfswm.lisp (handle-motion-notify): Handle motion with a
210 * src/clfswm-info.lisp (info-mode): Handle motion with a default
212 (info-mode): Optimization in loop function.
214 2009-05-10 Philippe Brochard <pbrochard@common-lisp.net>
216 * src/clfswm-circulate-mode.lisp (reorder-brother): Handle
217 root-frame correctly.
219 * clfswm.asd: Dependency fix for clfswm-generic-mode.
221 * src/clfswm-circulate-mode.lisp (reorder-child)
222 (reorder-brother): Handle empty frames.
223 (reorder-brother): Redisplay only the parent frame of the current
226 * src/clfswm-util.lisp (frame-toggle-maximize): Redisplay only the
227 parent frame of the current frame.
229 2009-05-09 Philippe Brochard <pbrochard@common-lisp.net>
231 * src/clfswm-util.lisp (frame-toggle-maximize): New function:
232 Maximize/Unmaximize the current frame in its parent frame.
234 * src/clfswm-layout.lisp (maximize-layout): New layout: Maximize
235 windows and frames in there parent frame.
237 2009-05-05 Philippe Brochard <pbrochard@common-lisp.net>
239 * src/*.lisp: Add support for Clozure Common Lisp (CCL).
241 * src/clfswm-circulate-mode.lisp (reorder-child)
242 (reorder-brother): Reinitialise on circulate type change
243 child to brother or brother to child.
245 * src/*.lisp (*): Use map-window instead of xlib:map-window. So
246 calls xlib:display-finish-output on each map-request. So speed up
249 * src/xlib-util.lisp (map-window): New function. Call
250 xlib:display-finish-output on each map request.
252 2009-04-28 Philippe Brochard <pbrochard@common-lisp.net>
254 * src/clfswm-second-mode.lisp (sm-handle-motion-notify):
255 Optimisation when drawing second mode window.
257 2009-04-27 Philippe Brochard <pbrochard@common-lisp.net>
259 * src/clfswm-circulate-mode.lisp (circulate-mode): Optimisation in
262 2009-04-22 Philippe Brochard <pbrochard@common-lisp.net>
264 * src/clfswm-util.lisp (run-program-from-query-string): Launch
265 command only with a return validation.
267 2009-04-22 Xavier Maillard <xma@gnu.org>
269 * src/clfswm-query.lisp (query-string): Use a generic mode.
271 2009-04-19 Xavier Maillard <xma@gnu.org>
273 * src/clfswm-info.lisp (info-mode): Use generic-mode for info-mode.
275 2009-04-18 Xavier Maillard <xma@gnu.org>
277 * src/clfswm-generic-mode.lisp (generic-mode): Add a generic mode
278 to define all other modes.
280 2009-04-05 Philippe Brochard <pbrochard@common-lisp.net>
282 * src/package.lisp (): Use *default-font-string* for all
285 * src/clfswm-info.lisp (info-mode): Ensure integer windows size.
287 2009-02-17 Philippe Brochard <pbrochard@common-lisp.net>
289 * src/xlib-util.lisp (null-size-window-p): Better check of null
292 2009-02-14 Philippe Brochard <pbrochard@common-lisp.net>
294 * src/clfswm.lisp (handle-map-request): Add a fix to manage
295 correctly fullscreen windows (SDL particularly).
297 2008-12-20 Philippe Brochard <pbrochard@common-lisp.net>
299 * src/xlib-util.lisp (get-color): Allocate colors only once -> fix
300 a segfault with clisp/new-clx.
302 * src/clfswm.lisp (handle-motion-notify): Add a needed window
305 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Add a
306 needed window argument.
308 2008-10-30 Philippe Brochard <pbrochard@common-lisp.net>
310 * src/xlib-util.lisp (wait-no-key-or-button-press)
311 (wait-a-key-or-button-press): Check buttons press/release correctly"
313 2008-10-28 Philippe Brochard <pbrochard@common-lisp.net>
315 * src/menu-def.lisp: Add children navigation menu in the movement
316 menu (select next/previous child/brother/level).
318 2008-10-26 Philippe Brochard <pbrochard@common-lisp.net>
320 * *: Rename 'sister' frame to 'brother' frame.
322 * src/clfswm-keys.lisp (unalias-modifiers): Convert a modifier
323 alias in a real modifier.
325 * src/package.lisp (*modifier-alias*): New list of modifier alias
326 For example: :alt is :mod-1, :numlock is :mod-2...
328 * src/tools.lisp (remove-hook): New function.
330 * src/clfswm-keys.lisp (with-capslock, without-capslock)
331 (with-numlock, without-cnumlock): New functions.
333 2008-10-25 Philippe Brochard <pbrochard@common-lisp.net>
335 * src/clfswm-info.lisp: Use the *binding-hook* to create info
336 keys and mouse bindings.
338 * src/bindings-second-mode.lisp: Use the *binding-hook* to create
339 second keys and mouse bindings.
341 * src/bindings.lisp: Use the *binding-hook* to create main keys
344 2008-10-10 Philippe Brochard <pbrochard@common-lisp.net>
346 * src/clfswm-menu.lisp (open-menu): Remember parent menu to undo
349 2008-10-09 Philippe Brochard <pbrochard@common-lisp.net>
351 * src/menu-def.lisp: Use a menu instead of a function for the
354 2008-10-08 Philippe Brochard <pbrochard@common-lisp.net>
356 * src/clfswm-util.lisp (show-standard-menu): Display the standard
357 menu from the 'update-menus' command.
359 2008-10-07 Philippe Brochard <pbrochard@common-lisp.net>
361 * src/clfswm-query.lisp (query-string): Do not ungrab keyboard if
362 it's already grabbed.
364 * src/clfswm-internal.lisp (display-frame-info): Use configurable
365 colors and fix a bug with background.
366 (display-frame-info): Set window background when displaying info.
368 2008-10-06 Philippe Brochard <pbrochard@common-lisp.net>
370 * src/xlib-util.lisp (my-character->keysyms): Use a macro to avoid
371 warning with clisp/new-clx.
373 2008-10-04 Philippe Brochard <pbrochard@common-lisp.net>
375 * src/clfswm-util.lisp (jump-to-slot): Prevent to jump on a
378 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
379 * *: **** Release 0809 ****
381 2008-09-23 Philippe Brochard <pbrochard@common-lisp.net>
383 * src/clfswm-util.lisp (ensure-unique-name): New function and menu
385 (ensure-unique-number): New function and menu entry.
387 2008-09-22 Philippe Brochard <pbrochard@common-lisp.net>
389 * src/clfswm-nw-hooks.lisp (named-frame-nw-hook): New new window
390 hook: open the next window in a named frame.
391 (numbered-frame-nw-hook): New new window hook: open the next
392 window in a numbered frame.
394 * src/clfswm-query.lisp (query-string): Grab the keyboard in all
395 cases. So query-string can be called even in the main mode.
397 * src/clfswm-internal.lisp (show-all-children): Do not raise a
398 child by default => far less flickering.
400 2008-09-19 Philippe Brochard <pbrochard@common-lisp.net>
402 * src/bindings-second-mode.lisp: Bind "t" to tile-current-frame.
404 * src/menu-def.lisp: Change key binding for the CLFSWM menu
407 * src/xlib-util.lisp (xgrab-pointer): Handle the case where cursor
408 is nil. (workaround on some CLX implementation).
410 2008-09-12 Philippe Brochard <pbrochard@common-lisp.net>
412 * src/menu-def.lisp: Add a menu to set a focus policy for all
415 * src/clfswm-util.lisp (set-focus-policy-generic-for-all)
416 (all-frames-set-*-focus-policy): Set a focus policy for all
419 * src/clfswm.lisp (handle-enter-notify): sloppy-select
420 mode. Select a child and its parents on mouse over.
422 2008-09-03 Philippe Brochard <pbrochard@common-lisp.net>
424 * src/clfswm.lisp (handle-enter-notify): Add a sloppy strict focus
425 policy -> Sloppy focus only for windows in the current frame.
426 (main-unprotected): Exit clfswm on init error (ie: when another
427 window manager is running).
429 * src/clfswm-util.lisp (reset-clfswm): New function.
431 2008-09-02 Philippe Brochard <pbrochard@common-lisp.net>
433 * src/clfswm-menu.lisp (init-menu): New function.
435 * src/clfswm-util.lisp (reload-clfswm): New function to reload
437 (exit-clfswm): Rename quit-clfswm to exit-clfswm.
439 * src/clfswm.lisp (main, main-unprotected): Handle error in a
440 superior main function. Now CLFSWM can't break the X session. It
441 just reinitialize the display and run a new main loop.
443 * src/clfswm-corner.lisp: Make *clfswm-terminal* and
444 *vt-keyboard-on* global to avoid warnings when loading clfswm.
446 * src/clfswm-layout.lisp: Add a specific GIMP layout menu.
447 (help-on-gimp-layout): Describe how to use the GIMP layout.
449 2008-09-01 Philippe Brochard <pbrochard@common-lisp.net>
451 * src/clfswm-layout.lisp (set-gimp-layout): Change the layout to
452 main-window-right-layout. Change the keybinding for (shift)alt+tab
453 to not select windows in the main window lisst.
454 Bind F8 to add a window in the main window list.
455 Bind F9 to remove a window in the main window list.
456 Change the focus policy to :sloppy.
457 (set-previous-layout): Restore the previous layout, keybinding and
460 2008-08-31 Philippe Brochard <pbrochard@common-lisp.net>
462 * src/clfswm-menu.lisp (add-menu-comment): Add comments in menu.
464 * src/clfswm-layout.lisp (main-window-left-layout)
465 (main-window-bottom-layout, main-window-top-layout): New
467 Factorize layouts in menu.
469 2008-08-30 Philippe Brochard <pbrochard@common-lisp.net>
471 * src/clfswm-layout.lisp (main-window-right-layout): A possible
472 GIMP layout: one or more main windows on one side of the
473 frame. Others on the other size.
475 * src/clfswm-util.lisp
476 (current-frame-set-click/sloppy-focus-policy): Each frame can have
477 a different focus policy (one of :click or :sloppy).
478 The default focus policy is set with *default-focus-policy*.
480 2008-08-23 Philippe Brochard <pbrochard@common-lisp.net>
482 * src/clfswm-info.lisp (show-config-variable): New function.
484 2008-08-19 Philippe Brochard <pbrochard@common-lisp.net>
486 * src/clfswm-layout.lisp (tile-horizontal-layout): New layout.
488 * src/clfswm-info.lisp: Colored help for key binding and corners
491 2008-08-18 Philippe Brochard <pbrochard@common-lisp.net>
493 * src/clfswm-util.lisp (delete-focus-window)
494 (destroy-focus-window): Remove chid only in
495 handle-unmap/destroy-notify. Focus *current-root* only when
496 closing/killing the current child.
498 * src/clfswm-autodoc.lisp (produce-corner-*-doc): New autodoc
499 functions or corners.
501 2008-08-17 Philippe Brochard <pbrochard@common-lisp.net>
503 * src/clfswm-corner.lisp (present-clfswm-terminal): New corner
504 action: Hide/Unhide a terminal on mouse corner action. (By default
505 right mouse button on the top left corner).
507 * src/config.lisp (*never-managed-window-list*): New config
510 * src/clfswm-internal.lisp (never-managed-window-p): New function:
511 Handle never managed window in a more simple way.
513 * src/clfswm-corner.lisp: New file and new and more simple method
514 to define corners actions.
516 2008-08-15 Philippe Brochard <pbrochard@common-lisp.net>
518 * src/clfswm-info.lisp (info-mode): Info line can now be colored.
520 * src/clfswm-layout.lisp (fast-layout-switch)
521 (define-fast-layout-switch): New functions: Switch between two
524 * src/clfswm-second-mode.lisp (leave-second-mode): Takes care if
525 really in the second mode. So leave-second-mode can be used even
528 * src/clfswm-util.lisp (switch-to-last-child): New function:
529 Store the current child and switch to the previous one.
531 2008-07-16 Philippe Brochard <pbrochard@common-lisp.net>
533 * src/clfswm-util.lisp (display-current-window-info): Display the
535 (have-to-present-virtual-keyboard): Add a virtual keyboard corner
536 (top right by default). By default 'xvkbd' is used.
538 2008-06-28 Philippe Brochard <pbrochard@common-lisp.net>
540 * src/xlib-util.lisp (move-window, resize-window): Compress motion
543 * src/clfswm.lisp (handle-motion-notify): Compress motion events.
545 * src/clfswm-second-mode.lisp (sm-handle-motion-notify): Compress
548 * src/clfswm-info.lisp (info-mode): Compress motion events.
550 2008-06-21 Philippe Brochard <pbrochard@common-lisp.net>
552 * src/clfswm-internal.lisp (show-all-children): Compute geometry
553 and selection first and then show only necessary children.
554 (show-child): remove unneeded display-p parameter.
556 * src/config.lisp (get-fullscreen-size): Place the frame border
557 outside the screen (this prevent the loose of 2 pixels per
560 2008-06-12 Philippe Brochard <pbrochard@common-lisp.net>
562 * src/clfswm-internal.lisp (focus-child): Algorithm change to
563 raise only the selected child.
565 2008-06-08 Philippe Brochard <pbrochard@common-lisp.net>
567 * src/clfswm-internal.lisp (raise-p-list, show-all-children):
568 Raise only viewable children.
570 2008-06-06 Philippe Brochard <pbrochard@common-lisp.net>
572 * src/clfswm-internal.lisp (show-all-children): Always raise all
573 displayed children. Remove all references to raise-p.
575 2008-06-04 Philippe Brochard <pbrochard@common-lisp.net>
577 * src/menu-def.lisp (child-menu): New menu entry on raise/lower
580 * src/bindings-second-mode.lisp ("Page_Down", "Page_Up"): New
581 second mode binding on raise/lower child in its frame.
583 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): Adapt
584 behaviour to the new raise/lower property.
585 Call clear-nw-hook before the rest of the hook.
587 * src/bindings.lisp (mouse-click-to-focus-and-move-window)
588 (mouse-click-to-focus-and-resize-window): Stop button event. This
589 prevent a keyboard/pointer freeze.
591 2008-06-03 Philippe Brochard <pbrochard@common-lisp.net>
593 * src/clfswm-internal.lisp (frame-lower-child)
594 (frame-raise-child): New functions to raise/lower a child in its
597 * src/clfswm-util.lisp (have-to-present-windows)
598 (have-to-present-all-windows): New functions to have an MaxOS
599 expose like on mouse click in screen corner.
601 * src/clfswm-info.lisp ("Page_Down", "Page_Up"): Add boundaries.
603 2008-05-30 Philippe Brochard <pbrochard@common-lisp.net>
605 * src/clfswm-util.lisp (unhide-a-child-from-all-frames): Unhide a
606 child from a choice in all frames with hidden children.
608 * src/clfswm-info.lisp (info-mode-menu): Handle separators.
610 2008-05-28 Philippe Brochard <pbrochard@common-lisp.net>
612 * src/clfswm-util.lisp (hide-current-child, unhide-a-child)
613 (unhide-all-children): New functions.
615 * src/clfswm-info.lisp (info-mode-menu): Handle symbols and
618 * src/clfswm-util.lisp (hide/show-frame-window): new function and
621 2008-05-23 Philippe Brochard <pbrochard@common-lisp.net>
623 * src/clfswm-util.lisp (rename-current-child): Do not display the
624 frame info for a window.
626 2008-05-20 Philippe Brochard <pbrochard@common-lisp.net>
628 * src/clfswm-internal.lisp (remove-child-in-frame): Destroy the
629 frame window for the removed child and its children.
631 2008-05-18 Philippe Brochard <pbrochard@common-lisp.net>
633 * src/clfswm-autodoc.lisp (produce-*-doc-*): Add a note to use the
636 2008-05-17 Philippe Brochard <pbrochard@common-lisp.net>
638 * src/clfswm-nw-hooks.lisp (default-frame-nw-hook): Do not handle
639 the ROX pinboard (ie: leave it lowered in the root window as
642 * src/clfswm-layout.lisp (tile-left-space-layout): New layout.
643 (tile-left-layout, tile-right-layout, tile-top-layout)
644 (tile-bottom-layout): Use all the frame space when there is only
647 * src/clfswm-internal.lisp (place-window-from-hints): Center
648 unmanaged windows in the root screen.
650 * src/clfswm-nw-hooks.lisp (clear-nw-hook, clear-all-nw-hooks):
653 2008-05-15 Philippe Brochard <pbrochard@common-lisp.net>
655 * src/clfswm-util.lisp (current-frame-manage-window-type): Fix a
656 typo in managed types.
658 * src/clfswm-internal.lisp (show-child): Always display frame info
659 even if the frame is hidden.
661 * src/xlib-util.lisp (resize-window): Use a better algorithme to
664 2008-05-13 Philippe Brochard <pbrochard@common-lisp.net>
666 * src/clfswm-util.lisp (with-movement): Display frame info for all
667 frames in current root.
669 2008-05-12 Philippe Brochard <pbrochard@common-lisp.net>
671 * src/*.lisp: Rename 'brother' frames to 'sister' frames.
673 * src/bindings-second-mode.lisp (define-second-key #\a): New
674 binding on 'add-default-frame'.
676 * src/clfswm-autodoc.lisp (produce-*-doc-*-in-file): Show a
677 message to follow the autodocumentation process.
679 2008-05-10 Philippe Brochard <pbrochard@common-lisp.net>
681 * src/clfswm-util.lisp (bind-or-jump): Bind "Tab", "Return" and
682 "Space" to jump to a child. "B" to bind a slot on the current
685 * src/bindings-second-mode.lisp: Use "Tab" instead of
688 2008-05-07 Philippe Brochard <pbrochard@common-lisp.net>
690 * src/clfswm-util.lisp (find-child-under-mouse): Take care of
691 unmanaged (hidden) windows.
693 * src/clfswm-internal.lisp (place-window-from-hints): Give a
694 minimal size for windows.
695 (with-all-windows-frames-and-parent): New function.
697 * src/config.lisp (*default-window-width/height*): New parameters.
699 * src/clfswm-internal.lisp (place-window-from-hints): Center
700 windows in the screen instead of in there frame.
702 * src/bindings-second-mode.lisp (tile-space-current-frame): New
705 * src/clfswm-layout.lisp (register-layout): Intern the once name
706 in the right package.
708 2008-05-05 Philippe Brochard <pbrochard@common-lisp.net>
710 * doc/dot-clfswmrc: Update to follow the new clfswm way.
712 2008-05-03 Philippe Brochard <pbrochard@common-lisp.net>
714 * src/clfswm-internal.lisp (set-current-child)
715 (adapt-child-to-parent, show-child, hide-child): Handle the case
716 where child is not a frame or a window.
718 * src/clfswm-util.lisp
719 (mouse-click-to-focus-generic,mouse-focus-move/resize-generic):
720 Check if child is a frame.
722 * src/clfswm-internal.lisp (managed-window-p): Handle the case
724 (place-frame): Check if frame and parent are frames.
726 * src/clfswm-info.lisp (info-mode): display all frame info before
729 * src/clfswm-second-mode.lisp (second-key-mode): display all frame
732 * src/clfswm-internal.lisp (display-all-frame-info): New function.
734 2008-05-02 Philippe Brochard <pbrochard@common-lisp.net>
736 * src/tools.lisp (getenv): Implemented for ECL.
737 (urun-prog): Implemented for ECL.
739 * src/clfswm-util.lisp (identify-key): Use a double buffer to
742 * src/clfswm-query.lisp (query-string): Use a double buffer to
745 * src/clfswm-info.lisp (draw-info-window): Use a double buffer to
748 * src/xlib-util.lisp (clear-pixmap-buffer, copy-pixmap-buffer):
751 2008-05-01 Philippe Brochard <pbrochard@common-lisp.net>
753 * src/clfswm-info.lisp (info-mode): Add boundaries in the info mode window.
755 * src/menu-def.lisp: New file: move all menu definition in
758 * src/clfswm-layout.lisp (register-layout): Use a function instead
761 2008-04-30 Philippe Brochard <pbrochard@common-lisp.net>
763 * src/clfswm-autodoc.lisp (produce-menu-doc,
764 (produce-menu-doc-html): New functions.
765 (produce-doc-*): Moved to clfswm-autodoc.lisp.
767 * src/clfswm-util.lisp (paste-selection-no-clear): Prevent to
768 paste a child on one of its own children. (this prevent a
770 (move-child-to): Rename move/copy-current-child-by to
772 (mouse-move-window-over-frame): New function to move the window
773 under the mouse cursor to another frame.
775 * src/clfswm-internal.lisp (find-child-in-parent): New function.
777 2008-04-29 Philippe Brochard <pbrochard@common-lisp.net>
779 * src/clfswm-internal.lisp (show-all-children): Display unmanaged
780 windows only when its window parent is the current child.
782 2008-04-28 Philippe Brochard <pbrochard@common-lisp.net>
784 * src/clfswm-util.lisp (manage-current-window)
785 (unmanage-current-window): New functions: Allow to force to manage
786 or unmanage a window by its parent frame.
788 * src/bindings-second-mode.lisp (#\o): binded to
789 set-open-in-new-frame-in-parent-frame-nw-hook and
790 (#\o :control) to set-open-in-new-frame-in-root-frame-nw-hook
792 * src/clfswm-util.lisp (with-current-window): New macro.
794 * src/xlib-util.lisp (move-window, resize-window): Remove uneeded
795 exposure and enter-window handle event.
797 * src/clfswm-util.lisp (move-frame, resize-frame): Show all
798 children for the current child after the move/resize.
800 2008-04-27 Philippe Brochard <pbrochard@common-lisp.net>
802 * src/xlib-util.lisp (resize-window): Take care of window size
805 * src/clfswm-util.lisp (mouse-focus-move/resize-generic): Allow to
806 move/resize unmanaged windows.
808 * src/xlib-util.lisp (move-window, resize-window): New functions.
810 2008-04-25 Philippe Brochard <pbrochard@common-lisp.net>
812 * src/clfswm-util.lisp (current-frame-manage-window-type): Let the
813 user choose what window type the current frame must handle.
814 (display-current-window-info): New function.
815 (current-frame-manage-all-window-type)
816 (current-frame-manage-only-normal-window-type)
817 (current-frame-manage-no-window-type): New functions.
819 * src/clfswm-internal.lisp (managed-window-p): New function.
821 * src/package.lisp (frame): Managed type: new frame
822 parameter. This allow to choose what window type a frame must
825 * src/*.lisp: Rename all 'father' occurrences to 'parent'.
827 * src/clfswm-nw-hooks.lisp
828 (open-in-new-frame-in-parent-frame-nw-hook): New new window hook.
830 * src/clfswm-util.lisp (adapt-current-frame-to-window-hints): New
833 * src/tools.lisp (ensure-printable): Return always a string even
836 2008-04-24 Philippe Brochard <pbrochard@common-lisp.net>
838 * src/config.lisp (*default-nw-hook*): New variable to change the
839 default new window hook.
841 2008-04-22 Philippe Brochard <pbrochard@common-lisp.net>
843 * clfswm.asd (clfswm): Add a dependency from
844 clfswm-second-mode.lisp to clfswm.lisp.
846 * src/clfswm-util.lisp (identify-key): Show the documentation for
847 the function bound on a key.
848 (with-movement): Move with-movement,
849 current-frame-fill/pack/resize-* from bindings-second-mode.lisp
852 * src/clfswm-menu.lisp: New menu system that let user change keys
853 or functions associated to keys.
855 2008-04-18 Philippe Brochard <pbrochard@common-lisp.net>
857 * src/clfswm-internal.lisp (show-all-children): Display-child is
858 the first child by default. Solve a bug with father-p.
860 2008-04-17 Philippe Brochard <pbrochard@common-lisp.net>
862 * src/clfswm-internal.lisp (add-frame): Add frame return the
864 (show-all-children): Move the size computation outside the
867 * src/bindings-second-mode.lisp (with-movement): Redisplay only
870 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay
871 only the current child.
873 * src/clfswm-internal.lisp (show-all-children): New display-child
874 parameter to display only the desired child and its children.
875 (select-next/previous-child): Only display the current child.
877 2008-04-14 Philippe Brochard <pbrochard@common-lisp.net>
879 * src/clfswm.lisp (init-display): Move the default frame creation
880 on the default init hook.
882 * src/clfswm-keys.lisp (define-ungrab/grab): Handle all keysyms in
883 the main mode (for example: "1" on an azerty keyboard).
885 2008-04-13 Philippe Brochard <pbrochard@common-lisp.net>
887 * src/clfswm-keys.lisp (find-key-from-code): Better handle of
888 keysyms. Revert to old grabbing method for the main mode.
890 2008-04-12 Philippe Brochard <pbrochard@common-lisp.net>
892 * src/clfswm.lisp (init-display): Add key handling on no focus
893 window and on frame windows.
895 2008-04-11 Philippe Brochard <pbrochard@common-lisp.net>
897 * src/clfswm.lisp (main): Keyboard handle strategie change: Grab
898 all keys by default and replay just what is needed. No change for
901 * src/clfswm-keys.lisp: remove grab/ungrab main keys.
902 (find-key-from-code): Test for shift and not shift presence.
904 2008-04-09 Philippe Brochard <pbrochard@common-lisp.net>
906 * src/clfswm-internal.lisp (switch-to-root-frame): show later -
907 new key parameter to have less flickering.
909 2008-04-07 Philippe Brochard <pbrochard@common-lisp.net>
911 * src/bindings-second-mode.lisp (frame-layout-once-menu): Set the
912 layout only one time and revert to no-layout to freely handle
915 * src/clfswm-nw-hooks.lisp
916 (open-in-new-frame-in-root-frame-nw-hook): Tile layout with spaces
917 with new created window.
919 * src/clfswm-layout.lisp (register-layout): Now register
920 automatically a once layout to set the layout only one time and
921 revert to no-layout to freely handle frames.
923 2008-04-05 Philippe Brochard <pbrochard@common-lisp.net>
925 * src/clfswm-nw-hooks.lisp (leave-focus-frame-nw-hook): New
926 nw-hook: Open the next window in the current frame and leave the
927 focus to the current child.
929 2008-04-04 Philippe Brochard <pbrochard@common-lisp.net>
931 * src/bindings-second-mode.lisp: Add keys definitions to
932 bind-or-jump in the second mode.
934 * src/clfswm-util.lisp (bind-or-jump): remove the auto-defining
935 macro for bind-or-jump-(1|2|3...).
937 * src/clfswm-keys.lisp (define-define-key/mouse): Allow additional
938 arguments to function. This allow to do things like:
939 (define-main-key (key) 'my-function 10 20 'foo) -> 10 20 and 'foo
940 are passed to my-function on key press.
942 2008-04-03 Philippe Brochard <pbrochard@common-lisp.net>
944 * src/clfswm-util.lisp (bind-or-jump): New (great) function.
946 2008-04-02 Philippe Brochard <pbrochard@common-lisp.net>
948 * src/clfswm-internal.lisp (child-fullname): New function
950 * src/clfswm-info.lisp (info-mode-menu): Add an explicit optional
951 docstring in info-mode-menu. An item can be
952 '((key function) (key function)) or with docstring
953 '((key function "documentation 1") (key function "bla bla") (key function))
955 * src/tools.lisp (ensure-n-elems): New function.
957 * src/bindings-second-mode.lisp: Bind Alt+mouse-1/3 to move or
958 resize a frame or the window's father.
960 * src/clfswm.lisp (init-display): Remove tile-space-layout by
961 default on the root frame.
963 * src/clfswm-util.lisp (move/resize-frame): Add standard event
964 hooks handlers (map-request, configure-notify...)
966 * src/clfswm-internal.lisp (adapt-child-to-father): Limit minimal
969 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
971 * src/bindings.lisp: Bind Alt+mouse-1/3 to move or resize a frame
972 or the window's father.
974 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Stop button
975 event only if there is a geometry change.
976 (mouse-focus-move/resize-generic): Generic function to move or
977 resize a frame or a window father frame.
979 2008-04-01 Philippe Brochard <pbrochard@common-lisp.net>
981 * src/clfswm-internal.lisp (show-all-children): Return t if there
982 is a geometry change.
984 2008-03-30 Philippe Brochard <pbrochard@common-lisp.net>
986 * src/bindings.lisp (Up/Down): Swap select previous/next level.
988 * src/bindings-second-mode.lisp (Up/Down): Swap select previous/next level.
990 * src/clfswm.lisp (init-display): Create a default frame in the root frame.
992 * src/clfswm-internal.lisp (place-frame): Place frame from real (pixel) coordinates.
993 (with-all-*): Reverse the child list to manage the first child last (like in
996 * src/config.lisp (*create-frame-on-root*): New variable: Create a new frame on the
997 root window only if true.
999 * src/clfswm-util.lisp (mouse-click-to-focus-generic): Create a new frame on the
1000 root window only if *create-frame-on-root* is true.
1002 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Create a new frame
1005 2008-03-29 Philippe Brochard <pbrochard@common-lisp.net>
1007 * src/bindings-second-mode.lisp (sm-mouse-click-to-focus-generic): Focus, move and resize
1008 the current child (even if it's a window).
1010 2008-03-28 Philippe Brochard <pbrochard@common-lisp.net>
1012 * src/clfswm-util.lisp (mouse-click-to-focus-and-move)
1013 (mouse-click-to-focus-and-resize): New functions.
1015 * src/clfswm-internal.lisp (*-fl->px): Convert float coordinates to pixel.
1016 (*-px->fl): Convert pixel coordinates to float.
1018 * src/tools.lisp (call-hook): Move call-hook to tools.lisp.
1020 2008-03-27 Philippe Brochard <pbrochard@common-lisp.net>
1022 * src/clfswm-layout.lisp (no-layout): Use :first-only to raise only the
1025 * src/clfswm-internal.lisp (hide-all): Split hide-all-children in hide-all
1026 and hide-all-children.
1027 (raise-if-needed): New function.
1028 (show-child): Use a first-p parameter to raise windows only when they are
1031 2008-03-26 Philippe Brochard <pbrochard@common-lisp.net>
1033 * src/clfswm-internal.lisp (select-next/previous-level): Don't use show-all-children
1036 2008-03-25 Philippe Brochard <pbrochard@common-lisp.net>
1038 * src/clfswm-info.lisp (keys-from-list): new function.
1040 * src/*: rename 'childs' in 'children'.
1042 * src/*: rename 'group' in 'frame'.
1044 2008-03-22 Philippe Brochard <pbrochard@common-lisp.net>
1046 * src/clfswm-pack.lisp (explode-group/explode-current-group): new functions.
1048 2008-03-21 Philippe Brochard <pbrochard@common-lisp.net>
1050 * src/clfswm-pack.lisp: Pack, Fill, Resize functions.
1052 2008-03-16 Philippe Brochard <pbrochard@common-lisp.net>
1054 * src/clfswm-nw-hooks.lisp: Register system for new window hooks.
1055 Bind control+o to open the next window in a new group in the root group
1056 (as open in next window in a new workspace in 0801 version).
1058 2008-03-15 Philippe Brochard <pbrochard@common-lisp.net>
1060 * src/clfswm-util.lisp (show/hide-all-groups-info/key): Show/hide all groups info
1063 2008-03-14 Philippe Brochard <pbrochard@common-lisp.net>
1065 * bindings-second-mode.lisp ("ISO_Left_Tab"): Use ISO_Left_Tab
1066 instead of Tab for select-previous-child.
1068 2008-03-13 Philippe Brochard <pbrochard@common-lisp.net>
1070 * clfswm-util.lisp (force-window-in-group/force-window-center-in-group):
1073 2008-03-11 Philippe Brochard <pbrochard@common-lisp.net>
1075 * clfswm-util.lisp (identify-key): Display the documentation
1076 associated to keys when identifying a key.
1078 2008-03-10 Xavier Maillard <xma@gnu.org>
1080 * contrib/clfswm: Complete rewrite of the script. Detect error and
1081 act accordingly. Add command line arguments to configure the
1082 script execution. User can now choose different common lisp
1083 implementation (clisp and sbcl only), choose where to store the
1084 dumped image, where to find clfswm source.
1086 2008-03-09 Philippe Brochard <pbrochard@common-lisp.net>
1088 * clfswm-internal.lisp (process-new-window): Beginning of new
1089 window hook: each group have a hook to tell what he wants to do
1090 with the new created window.
1092 2008-03-08 Xavier Maillard <xma@gnu.org>
1094 * contrib/clfswm: New script. Dump a CLISP image of CLFSWM then
1095 call the resulting executable.
1097 * clfswm.lisp (read-conf-file): Check for the user config file in
1098 XDG_CONFIG_HOME *first*. Freedesktop.org standards should be
1099 prefered whenever possible.
1101 2008-02-27 Philippe Brochard <pbrochard@common-lisp.net>
1103 * clfswm-layout.lisp (*-layout): Add an optional raise-p
1104 parameter in each layout.
1106 2008-02-26 Philippe Brochard <pbrochard@common-lisp.net>
1108 * clfswm-util.lisp (copy/cut-current-child): Does not affect the
1110 (copy/move-current-child-by-name/number): new functions
1111 (focus-group-by-name/number): new functions
1112 (delete-group-by-name/number): new functions
1114 2008-02-24 Philippe Brochard <pbrochard@common-lisp.net>
1116 * ************************************************************ *
1117 *: Major update - No more reference to workspaces. The main *
1118 structure is a tree of groups or application windows. *
1119 * ************************************************************ *
1121 2008-02-07 Philippe Brochard <pbrochard@common-lisp.net>
1123 * clfswm.lisp (read-conf-file): Read configuration in
1124 $HOME/.clfswmrc or in /etc/clfswmrc or in
1125 $XDG_CONFIG_HOME/clfswm/clfswmrc.
1126 (xdg-config-home): Return the content of $XDG-CONFIG-HOME (default
1129 2008-01-18 Philippe Brochard <pbrochard@common-lisp.net>
1131 * clfswm-internal.lisp (show-all-group): Use *root* and *root-gc*
1134 2008-01-03 Philippe Brochard <pbrochard@common-lisp.net>
1136 * clfswm-internal.lisp (find-window-group): New function.
1138 * clfswm*: Change to make clfswm run with clisp/new-clx.
1140 2008-01-01 Philippe Brochard <pbrochard@common-lisp.net>
1142 * clfswm-util.lisp (query-show-paren): Add show parent matching in
1144 (query-string): Bind control+k to delete end of line.
1146 * clfswm-second-mode.lisp (draw-second-mode-window): Display
1147 the action on mouse motion in second mode.
1149 * clfswm.lisp (handle-exposure): Redisplay groups on exposure
1150 event but do not clear the root window.
1151 (handle-configure-request): Adjust unmanaged window from there
1154 * clfswm-internal.lisp (process-new-window): Adjust new window
1155 with the specified hints (max/min/base width/height).
1157 2007-12-31 Philippe Brochard <pbrochard@common-lisp.net>
1159 * clfswm.lisp (handle-configure-request): Send an Configuration
1160 Notify event. This solve a bug with xterm and rxvt who takes some
1161 times to be mapped. Now there is no delay.
1163 * bindings-second-mode.lisp (define-shell): Run programs after
1164 living the second mode.
1166 2007-12-30 Philippe Brochard <pbrochard@common-lisp.net>
1168 * clfswm-internal.lisp (process-new-window): Do not crop transient
1169 window to group size.
1170 (adapt-window-to-group): Do not crop transient window to group
1173 * clfswm.lisp (handle-configure-request): Adapt just the window to
1174 its group and don't take care of the configure request. Remove the
1175 bug with the Gimp outside the group and speed up the window
1177 (handle-exposure): Remove show-all-group on exposure event
1180 2007-12-29 Philippe Brochard <pbrochard@common-lisp.net>
1182 * clfswm-util.lisp (circulate-group-up-copy-window)
1183 (circulate-group-down-copy-window)
1184 (circulate-workspace-up-copy-group)
1185 (circulate-workspace-down-copy-group): Prevent the copy of the
1186 same window in the same workspace.
1188 * bindings-second-mode.lisp (release-copy-selected-window)
1189 (release-copy-selected-group): Prevent the copy of the same window
1190 in the same workspace.
1192 * clfswm-pager.lisp (generic-pager-move-window-on-previous-line)
1193 (generic-pager-move-window-on-next-line): Remove the copy
1195 (generic-pager-move-group-on-next-workspace)
1196 (generic-pager-move-group-on-previous-workspace): Prevent the copy
1197 of the same window in the same workspace.
1199 * bindings-pager.lisp (mouse-pager-copy-selected-window-release)
1200 (mouse-pager-copy-selected-group-release): Prevent the copy of the
1201 same window in the same workspace.
1203 * tools.lisp (setf/=): new macro to set a variable only when
1206 * clfswm-internal.lisp (adapt-window-to-group): use set/= to set
1207 x, y... only when necessary.
1209 2007-12-28 Philippe Brochard <pbrochard@common-lisp.net>
1211 * clfswm.lisp (handle-configure-notify, *configure-notify-hook*):
1212 new function and hook: force windows to stay in its group (solve a
1215 2007-12-25 Philippe Brochard <pbrochard@common-lisp.net>
1217 * bindings-second-mode.lisp (mouse-motion): use hide-group to have
1218 less flickering when moving/resizing groups.
1220 * clfswm-internal.lisp (hide-group): new function.
1221 (show-all-group): clear-all: new parameter.
1223 2007-12-22 Philippe Brochard <pbrochard@common-lisp.net>
1225 * clfswm-keys.lisp (define-define-key): undefine-*-multi-name: new
1227 * clfswm*: Color change for the pager. Typo or better description
1228 in bindings definitions. Define bindings for a qwerty keyboard by
1229 default. dot-clfswmrc show examples to switch to an azerty
1231 License change to GPL v3.
1232 * config.lisp: new file - group all globals variables in this
1235 2007-08-26 Philippe Brochard <pbrochard@common-lisp.net>
1237 * xlib-util.lisp (hide-window): Remove structure-notivy events
1238 when hidding a window.
1240 2007-05-16 Philippe Brochard <pbrochard@common-lisp.net>
1242 * package.lisp (*sm-property-notify-hook*): Readded
1243 property-notify-hook in second mode.
1245 2007-05-15 Philippe Brochard <pbrochard@common-lisp.net>
1247 * clfswm-keys.lisp (produce-doc-html): Better clean up for strings.
1249 2007-05-13 Philippe Brochard <pbrochard@common-lisp.net>
1251 * clfswm-pack.lisp (tile-current-workspace-to/right/left/top/bottom):
1252 Tile the current workspace with the current window on one side and
1253 others on the other (this emulate the larswm, dwm, wmii way). See
1254 the default configuration file to enable this mode by default.
1256 * clfswm-pager.lisp (pager-tile-current-workspace-to): idem for
1259 2007-05-12 Philippe Brochard <pbrochard@common-lisp.net>
1261 * clfswm-pager.lisp (pager-draw-window-in-group): Add
1262 ensure-printable to print windows name even with non-ascii
1265 2007-05-11 Philippe Brochard <pbrochard@common-lisp.net>
1267 * clfswm-pager.lisp (pager-explode-current-group): Create a new
1268 group for each window in group.
1269 (pager-implode-current-group): Move all windows in workspace to
1270 one group and remove other groups.
1272 * clfswm-pack.lisp (explode-group): Create a new group for each
1274 (implode-group): Move all windows in workspace to one group and
1275 remove other groups.
1277 * clfswm-util.lisp (identify-key): Remove local configuration
1278 variables and made them available for configuration from
1280 (query-string): idem.
1282 2007-04-29 Philippe Brochard <pbrochard@common-lisp.net>
1284 * netwm-util.lisp: Start of NetWM compliance.
1285 Add a Netwm client list gestion.
1287 2007-04-28 Philippe Brochard <pbrochard@common-lisp.net>
1289 * clfswm-internal.lisp (create-group-on-request): open a new group
1290 only when the current group is not empty.
1292 * bindings-second-mode.lisp (define-second-key-#\o-control): Fix a
1293 bug with null workspace.
1295 * clfswm-pager.lisp (pager-handle-event): Add a hook
1296 system. This hooks can be changed in the user configuration file.
1298 * package.lisp: All colors and font variables are set in
1299 package.lisp and can be configured in the user configuration
1301 Note: If you have configured some less ugly colors (esp. for the
1302 pager) don't hesitate to let me know :)
1304 * clfswm-second-mode.lisp (sm-handle-event): Add a hook
1305 system. This hooks can be changed in the user configuration file.
1307 * clfswm.lisp (handle-event): Add a hook system. This hooks can be
1308 changed in the user configuration file (~/.clfswmrc)
1310 2007-04-25 Philippe Brochard <pbrochard@common-lisp.net>
1312 * clfswm-util.lisp (stop-all-pending-actions): new function: reset
1313 arrow action, open next window in new workspace/group.
1315 * bindings.lisp (stop-all-pending-actions): new binding.
1316 (open-next-window-in-new-group-once): Open the next windows in a
1317 new group (only once) or open all new windows in a new group (like
1318 others windows managers).
1320 2007-04-22 Philippe Brochard <pbrochard@common-lisp.net>
1322 * clfswm.lisp (read-conf-file): New function to read a lisp
1323 configuration file at startup.
1324 (focus-group-under-mouse): Check if group isn't the current group
1325 ( prevent a bug with unclutter ).
1327 2007-03-02 Philippe Brochard <pbrochard@common-lisp.net>
1329 * bindings.lisp (run-program-from-query-string): A program can be
1330 launch from a input query window.
1332 2007-03-01 Philippe Brochard <pbrochard@common-lisp.net>
1334 * clfswm-info.lisp: Fix a bug with banish pointer in info mode.
1336 2007-02-28 Philippe Brochard <pbrochard@common-lisp.net>
1338 * clfswm.lisp (process-new-window): One can now open the next
1339 window in a workspace called by its number.
1341 * clfswm-util.lisp (query-font-string): Minimal editing
1343 (eval-from-string): And an REPL in the window manager... :)
1345 2007-02-26 Philippe Brochard <pbrochard@common-lisp.net>
1347 * clfswm.lisp (process-new-window): One can now open the next
1348 window in a new workspace or a new group.
1350 * clfswm-pager.lisp (pager-mode): Display the next arrow action
1351 with the hidden windows.
1353 * clfswm.lisp (second-key-mode): Display the current workspace
1354 number and the next arrow action in the state window.
1356 * clfswm-pager.lisp (pager-mode): Hide all windows before leaving
1357 the pager mode and then redisplay only the current workspace.
1359 2007-02-25 Philippe Brochard <pbrochard@common-lisp.net>
1361 * clfswm.lisp (add-workspace): Workspaces are now numbered. So
1362 they can be focused with a keypress, sorted or renumbered.
1364 2007-02-24 Philippe Brochard <pbrochard@common-lisp.net>
1366 * clfswm-pager.lisp (pager-mode): Remove multiple silly
1367 pager-draw-display. This prevent a lot of flickering in the
1370 * clfswm.lisp: Remove all display-force-output and replace them
1371 with only one display-finish-output in the event loop.
1373 2006-11-06 Philippe Brochard <pbrochard@common-lisp.net>
1375 * clfswm-pager.lisp (pager-center-group): New function - center a
1376 group at the middle of the screen.
1378 * clfswm-pack.lisp (center-group): New function - center a group
1379 at the middle of the screen.
1381 * clfswm.lisp (show-group): Add a cross line under the group.
1382 (show-group): Group are showned even if fullscreened.
1383 (init-display): Add an exposure event on the root window.
1385 2006-11-05 Philippe Brochard <pbrochard@common-lisp.net>
1387 * package.lisp (*default-group*): Default group is the same size
1388 of a fullscreened group.
1390 * bindings*: Use shift to move, control+shift to copy.
1392 * *.lisp: Add comments for configuration or alternatives. So grep
1393 for CONFIG to see where you can configure clfswm. And grep for
1394 Alternative to use some commented code.
1396 * clfswm.lisp (second-key-mode): Use a single window to show the
1397 second mode. See for alternatives at the end of this file.
1399 2006-11-03 Philippe Brochard <pbrochard@common-lisp.net>
1401 * clfswm-keys.lisp (define-define-key/mouse): Factorisation in a
1402 macro of key and mouse definitions.
1403 (define-define-key/mouse): Use state instead of modifiers list
1404 this fix a bug when the modifiers list is not in the rigth order.
1406 * clfswm.lisp (second-key-mode): Add a colored border in second mode.
1408 2006-11-02 Philippe Brochard <pbrochard@common-lisp.net>
1410 * clfswm-info.lisp (info-mode): Add an info mode.
1412 2006-11-01 Philippe Brochard <pbrochard@common-lisp.net>
1414 * clfswm.lisp (process-new-window): Change border size for
1416 (show-all-windows-in-workspace): Unhide all windows even when the
1417 current group is in fullscreen mode.
1419 2006-10-26 Philippe Brochard <pbrochard@common-lisp.net>
1421 * clfswm-util.lisp (identify-key): Add an exposure handle-event to
1422 redisplay the identify window after a terminal switch.
1424 * clfswm-pager.lisp (pager-mode): Add an exposure handle-event to
1425 redisplay the pager after a terminal switch.
1427 2006-10-24 Philippe Brochard <pbrochard@common-lisp.net>
1429 * clfswm-util.lisp (identify-key): Add a window to display
1430 the keys to identify on screen.
1432 * bindings.lisp, bindings-pager.lisp: Define same keys to
1433 move/copy groups/windows in second mode and in pager.
1435 * clfswm.lisp (handle-event*): Same version in all clfswm (fix some
1437 (show-all-windows-in-workspace): unhide window before adapting it
1440 2006-10-23 Philippe Brochard <pbrochard@common-lisp.net>
1442 * clfswm.lisp (handle-event): Revert to an older version.
1444 2006-10-18 Philippe Brochard <pbrochard@common-lisp.net>
1446 * clfswm-util.lisp (force-window-in-group)
1447 (force-window-center-in-group): New functions for transient windows.
1449 * clfswm-pager.lisp (pager-remove-current-workspace/group):
1450 bugfix: hide all windows before removing group or workspace.
1452 2006-10-17 Philippe Brochard <pbrochard@common-lisp.net>
1454 * bindings-pager.lisp (mouse-pager-move-selected-group)
1455 (mouse-pager-copy-selected-group)
1456 (mouse-pager-move-selected-window)
1457 (mouse-pager-copy-selected-window, mouse-pager-rotate-window-up)
1458 (mouse-pager-rotate-window-down): New functions to have mouse in
1461 * clfswm-pager.lisp (pager-swap-window)
1462 (pager-copy-group-on-next/previous-workspace)
1463 (pager-copy-window-on-next/previous-line): New functions
1465 2006-10-15 Philippe Brochard <pbrochard@common-lisp.net>
1467 * clfswm-pager.lisp (pager-move-window-on-next/previous-line,
1468 (pager-move-group-on-next/previous-workspace): new functions.
1470 * clfswm-pack.lisp (resize-half-x-x-current-group): resize group
1471 to its half size (new functions).
1473 2006-10-11 Philippe Brochard <pbrochard@common-lisp.net>
1475 * clfswm-pager.lisp: workspaces, groups and windows can now be
1476 selectionned with the keyboard or the mouse.
1478 2006-10-09 Philippe Brochard <pbrochard@common-lisp.net>
1480 * clfswm-pager.lisp (pager-select-workspace-right/left):
1481 workspaces can now be selectionned with the keyboard.
1483 2006-10-08 Philippe Brochard <pbrochard@common-lisp.net>
1485 * clfswm-keys.lisp (undefine-main-key, undefine-second-key, undefine-mouse-action):
1486 new function to remove a previous defined key or mouse combination.
1488 2006-10-07 Philippe Brochard <pbrochard@common-lisp.net>
1490 * clfswm.lisp (main): Check for access error in init-display.
1492 * clfswm-keys.lisp (define-ungrab/grab): check for keysym and
1493 keycode before grabbing.
1495 * bindings.lisp: Remove nlambda and use defun to keep the function
1496 documentation with clisp.
1497 (define-shell): new macro to define shell command for the second
1500 2006-10-06 Philippe Brochard <pbrochard@common-lisp.net>
1502 * clfswm-keys.lisp (define-ungrab/grab): use a cond instead of a
1505 2006-10-05 Philippe Brochard <pbrochard@common-lisp.net>
1507 * bindings.lisp (accept-motion): Move group bugfix in upper mouse
1508 workspace circulation.
1510 * clfswm-util.lisp (absorb-orphan-window): new function.
1512 * clfswm-keys.lisp: Keysyms support.
1514 2006-10-02 Philippe Brochard <pbrochard@common-lisp.net>
1516 * clfswm.lisp (show-group): Use one gc for all groups and not one
1519 2006-10-01 Philippe Brochard <pbrochard@common-lisp.net>
1521 * bindings.lisp (define-second-key (#\l :mod-1)): fix a typo.
1523 * clfswm.lisp (adapt-window-to-group): Adapt only windows with
1524 width and height outside group.
1526 2006-09-28 Philippe Brochard <pbrochard@common-lisp.net>
1528 * clfswm.lisp: First public release.