[clfswm-cvs] [clfswm-git]CLFSWM - A(nother) Common Lisp FullScreen Window Manager annotated tag R-1106 created. R-1106
Philippe Brochard
pbrochard at common-lisp.net
Wed Jun 8 20:25:53 UTC 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CLFSWM - A(nother) Common Lisp FullScreen Window Manager".
The annotated tag, R-1106 has been created
at 4689def5ccbb76bd9d1864797e89737e79c11450 (tag)
tagging 59cd35db78c29e540c7b4af221c0c42662d231af (commit)
tagged by Philippe Brochard
on Wed Jun 8 22:25:15 2011 +0200
- Log -----------------------------------------------------------------
1106 release
Desmond O. Chang (6):
XDG_CONFIG_HOME should be $HOME/.config by default.
src/clfswm-util.lisp (run-or-raise): New function (thanks to Desmond O. Chang).
src/keysyms.lisp: Add extended keysyms from stumpwm.
No need to create the functions every time.
src/clfswm.lisp (main): Use ASDF:SYSTEM-SOURCE-DIRECTORY instead of *LOAD-TRUENAME*. *LOAD-TRUENAME* is only bound during a call to LOAD. If one eval CLFSWM:MAIN in repl, BASE-DIR will be an empty string. Use ASDF:SYSTEM-SOURCE-DIRECTORY to fix it.
contrib/volume-mode.lisp: Add a volume mode inspired by the emms volume package. and its alsa mixer interface
Krzysztof Drewniak (1):
Fix a README spelling error
Philippe Brochard (401):
first commit
first commit
first commit
first commit
first commit
remove all
Merge git+ssh://hocwp@repo.or.cz/srv/git/clfswm
A test of new git repository
remove all again
populating
Merge git+ssh://hocwp@repo.or.cz/srv/git/clfswm
populating
populating
populating
populating
test of svn and git
test of svn and git
adding .gitignore
Unmanaged windows are now allowed to be moved or resized.
resize-window: Take care of window size hints.
manage-current-window, unmanage-current-window: New functions: Allow to force to manage or unmanage a window by its parent frame.
Display unmanaged windows only when its window parent is the current child.
paste-selection-no-clear: Prevent to paste a child on one of its own children. (this prevent a recursive bug).
mouse-move-window-over-frame: New function to move the window under the mouse cursor to another frame.
produce-doc-*: Moved to clfswm-autodoc.lisp. Produce-menu-doc, produce-menu-doc-html: New functions.
update the TODO file
update the TODO file
menu-def.lisp: New file
Add boundaries in the info mode window.
Info mode: Add boundaries with mouse wheel movement
Display all texts with a double buffering method
-m
Documentation update
display all frame info before leaving the second mode or the info mode.
For different mouse actions: Ensure that the current child is a frame.
set-current-child, adapt-child-to-parent, show-child, hide-child): Handle the case where child is not a frame or a window.
Version update
Update the dot-clfswm. New bindings to frame-pack/fill/resize-menu
README update
Give a minimal size for windows. Center windows in the screen instead of in there frame. tile-space-current-frame bound on C-t.
Autodoc update
Take care of unmanaged (hidden) windows.
Use 'Tab' instead of 'Iso_Left_Tab'. bind-or-jump: Bind 'Tab', 'Return' and 'Space' to jump to a child. 'B' to bind a slot on the current child.
Show a message to follow the autodocumentation process. Second mode #\a: New binding on 'add-default-frame'.
In *.lisp: Rename 'brother' frames to 'sister' frames.
with-movement: Display frame info for all frames in current root.
resize-window: Use a better algorithme to resize windows.
show-child: Always display frame info even if the frame is hidden.
current-frame-manage-window-type: Fix a typo in managed types.
place-window-from-hints: Center unmanaged windows in the root screen. clear-nw-hook, clear-all-nw-hooks: new functions.
leave-focus-frame-nw-hook: remove an ignore declaration
(tile-left-space-layout): New layout. (tile-left-layout, tile-right-layout, tile-top-layout, tile-bottom-layout): Use all the frame space when there is only one child.
default-frame-nw-hook: Do not handle the ROX pinboard (ie: leave it lowered in the root window as expected).
Autodoc: produce-*-doc-*: Add a note to use the autodoc functions.
More dot-clfswmrc examples
remove-child-in-frame: Destroy the frame window for the removed child and its children.
remove-child-in-frame: better algorithm to remove window and gc frame
rename-current-child: Do not display the frame info for a window.
hide/show-frame-window: new function and menu item.
hide-current-child, unhide-a-child, unhide-all-children: New functions. info-mode-menu: Handle symbols and functions.
(TODO update) hide-current-child, unhide-a-child, unhide-all-children: New functions.
unhide-a-child-from-all-frames: Unhide a child from a choice in all frames with hidden children. info-mode-menu: Handle separators.
have-to-present-windows, have-to-present-all-windows: New functions to have an MaxOS expose like on mouse click in screen corner. Info-mode: Page_Down, Page_Up: Add boundaries.
frame-lower-child, frame-raise-child: New functions to raise/lower a child in its frame.
mouse-click-to-focus-and-move-window, mouse-click-to-focus-and-resize-window: Stop button event. This prevent a keyboard/pointer freeze.
leave-focus-frame-nw-hook: Adapt behaviour to the new raise/lower property.
leave-focus-frame-nw-hook: Call clear-nw-hook before the rest of the hook.
Add raise/lower keys on second mode and in a menu entry
show-all-children: Always raise all displayed children. Remove all references to raise-p.
raise-p-list, show-all-children: Raise only viewable children.
focus-child: Algorithm change to raise only the selected child.
(show-all-children): Compute geometry and selection first and then show only necessary children. (show-child): remove unneeded display-p parameter. (get-fullscreen-size): Place the frame border outside the screen (this prevent the loose of 2 pixels per directions :)
Compress motion events in event loop
display-current-window-info: Display the window id. have-to-present-virtual-keyboard: Add a virtual keyboard corner (top right by default). By default 'xvkbd' is used.
place maxsized and fullscreened windows in the center of the screen
Massive update: Fast layout switch, switch to last child, color nearly everywhere (Help, keys...), simple way for corners configuration, auto-doc on corners, show configuration variables
Different focus policy by frame. A possible GIMP layout
Factorize layouts in menu. Allow comments in menu. Main window layout for top, bottom and left direction
src/clfswm-layout.lisp (set-gimp-layout): Change the layout to main-window-right-layout. Change the keybinding for (shift)alt+tab to not select windows in the main window lisst. Bind F8 to add a window in the main window list. Bind F9 to remove a window in the main window list. Change the focus policy to :sloppy.
Add a specific GIMP layout menu. (help-on-gimp-layout): Describe how to use the GIMP layout.
main, main-unprotected: Handle error in a superior main function. Now CLFSWM can't break the X session. It just reinitialize the display and run a new main loop. reload-clfswm: New function to reload CLFSWM. Rename quit-clfswm to exit-clfswm.
Reset-clfswm: new function
handle-enter-notify: Add a sloppy strict focus policy -> Sloppy focus only for windows in the current frame.
main-unprotected: Exit clfswm on init error (ie: when another window manager is running).
handle-enter-notify: sloppy-select mode. Select a child and its parents on mouse over. Add a menu entry to set a focus policy for all frames.
Handle the case where cursor is nil. (workaround on some CLX implementation). Change key binding for the CLFSWM menu entry. Bind 't' to tile-current-frame.
Documentation update
Documentation update
show-all-children: Do not raise a child by default => far less flickering.
show-all-children: Do not raise a child by default => far less flickering. (Changelog update)
named-frame-nw-hook/numbered-frame-nw-hook: open the next window in a named/numbered frame.
Documentation update
clfswm.asd update
ensure-unique-name/number: New function and menu entry.
Documentation update
dot-clfswmrc update
TODO update
TODO update
jump-to-slot: Prevent to jump on a deleted child.
jump-to-slot: Prevent to jump on a deleted child. TODO update
my-character->keysyms: Use a macro to avoid warning with clisp/new-clx.
display-frame-info: Use configurable colors and fix a bug with background.
display-frame-info: Set window background when displaying info.
query-string: Do not ungrab keyboard if it's already grabbed.
show-standard-menu: Display the standard menu from the 'update-menus' command.
menu-def.lisp: Use a menu instead of a function for the standard menu.
open-menu: Remember parent menu to undo menu opening.
src/clfswm-keys.lisp: Add a default modifiers list before bindings keys. This allow the use of Numlock or Caps_Lock while using clfswm.
Remove a with-numlock not yet defined
Use the *binding-hook* to create main/second/info keys and mouse bindings. with-capslock, without-capslock, with-numlock, without-cnumlock: New functions.
TODO and configuration file update
remove-hook: New function. TODO update. Fix a typo in without-numlock
unalias-modifiers: Convert a modifier alias in a real modifier. For example: :alt is :mod-1, :numlock is :mod-2...
Rename sister frame to brother frame. Doc update
Add children navigation menu in the movement menu (select next/previous child/brother/level). - clisp/new-clx is supported with a least the 2.48 version (not yet released)
wait-no-key-or-button-press, wait-a-key-or-button-press: Check buttons press/release correctly
Add a needed argument in funcall-button-from-code
get-color: Allocate colors only once -> fix a segfault with clisp/new-clx.
handle-map-request: Add a fix to manage correctly fullscreen windows (SDL particularly).
handle-map-request: Remove unused override-redirect-p argument
Handle fullscreen windows the icewm way
null-size-window-p): Better check of null sized windows.
info-mode: Ensure integer windows size. Use *default-font-string* for all font-string.
Test username
run-program-from-query-string: Launch command only with a return validation.
Begining of circulate-mode
circulate-mode: Optimisation in window redraw.
sm-handle-motion-notify: Optimisation when drawing second mode window.
src/*.lisp (*): Use map-window instead of xlib:map-window. So calls xlib:display-finish-output on each map-request. So speed up the window display.
reorder-child, reorder-brother: Reinitialise on circulate type change child to brother or brother to child.
Add support for Clozure Common Lisp (CCL)
maximize-layout: New layout: Maximize windows and frames in there parent frame.
frame-toggle-maximize: New function: Maximize/Unmaximize the current frame in its parent frame.
frame-toggle-maximize: Redisplay only the parent frame of the current frame.
reorder-child, reorder-brother: Handle empty frames.
reorder-brother: Redisplay only the parent frame of the current child.
update documentation
clfswm.asd: Dependency fix for clfswm-generic-mode.
reorder-brother: Handle root-frame correctly.
info-mode: Optimization in loop function. *.lisp: Handle motion with a default modifier.
reorder-brother: Ensure that the parent is a frame.
test
src/clfswm-placement.lisp: New file. Allow to place info windows or query windows on an arbitrary place. Allow to bannish the pointer on an arbitrary place.
package.lisp: fixe default placements
fixe TODO and bannish pointer placement
query-enter-function: Assign font before width and height calculation.
*-child-placement: Adjust coordinates to one pixel in the current child.
get-fullscreen-size: Adjust default fullscreen sizes.
draw-circulate-mode-window: Ensure that all characters are printable.
clfswm-circulate-mode: Adjust circulate-mode-placement
get-fullscreen-size, *-child-placement: One pixel adjustment (again).
TODO update
Minor documentation update
contrib/mpd.lisp: New file to handle the Music Player Daemon (MPD)
clfswm-info.lisp: Use a standard menu for the help-menu.
contrib/mpd.lisp: Use a standard menu.
TODO update
contrib/keyb_fr.lisp: New file to handle an azerty keyboard.
set-default-second-keys: Bind 'o' on set-open-in-new-frame-in-parent-frame-nw-hook.
set-no-layout-remember-size): New layout: Maximize windows in there frame - Leave frames to there actual size.
contrib/xmms.lisp: New file to handle the xmms player.
contrib/cd-player.lisp: New file to handle the CD player.
one-column-layout, one-line-layout: New layouts. tile-layout, tile-horizontal-layout: Keep child order and don't make unnecessary child movement.
tile-layout, tile-horizontal-layout: Keep child order and don't make unnecessary child movement. One-column-layout, One-line-layout: New layouts.
contrib/mpd.lisp (start-gmpc): Add gmpc in the mpd menu.
TODO update
Simplification of Escape key to close/kill/remove the focus window and unhide all windows.
TODO update. Add a read-conf-file-p parameter to prevent reading the configuration file.
Add a Suspend/Reboot/Halt menu in contrib
reboot-halt.lisp: Remove test code
Begining of mouse support in info mode.
Add mouse support in info mode. clfswm is now usable only with the mouse
save-configuration-variables): New function to save all configuration variables in clfswmrc.
clfswm.lisp: fixe configuration file name
Configuration menu: New menu to configure all clfswm variables while clfswm is running.
Add an information about configuration variables
TODO update. Change key order in configuration menu
Begin with #\a key in the configuration menu
Change save key in configuration menu
Prevent errors while in configuration menu
Prevent to add a newline on each configuration variables save
src/clfswm.lisp (main): Add an alternate configuration filename parameter. load.lisp: Add a debuging code example.
Replace Menu* keys with Alt-F10* in bindings*.lisp
Add a loop-hook parameter and a loop timeout.
contrib/reboot-halt.lisp: Do nothing on the first menu entry
-m
-m
run-other-window-manager: Add the ability to launch an other window manager and to return to clfswm.
Add a configure/make procedure to build clfswm
identify-key, move-window, resize-window, wait-mouse-button-release: Add a timeout in xlib:process-event.
clfswm-util.lisp (mouse-click-to-focus-generic): Use find-child-under-mouse instead of the window passed by xlib:process-event.
clfswm-util.lisp (delete-focus-window, destroy-focus-window): Remove child in parent frame before stopping it.
src/clfswm-util.lisp (mouse-click-to-focus-generic): Redisplay all children in *current-root* after moving/resizing a frame.
src/clfswm-internal.lisp (remove-child-in-frame): Do not destroy the frame window and the frame gc. Close a very annoying bug when cuting/pasting a frame or moving a child over frames with the mouse.
bindings-second-mode.lisp (set-default-second-mouse): Use mouse-move-child-over-frame instead of mouse-move-window-over-frame
src/clfswm-internal.lisp (delete-child-and-children-in-all-frames): New function and binding: Second mode - Control+Delete delete the current child and its children in all frames (ie: close the current child and its children).
src/binding*.lisp: Bind control+g to escape the current action like emacs.
src/package.lisp: Add a placement configuration group.
src/clfswm-util.lisp (delete-current-child): Invert bindings and menu entry between delete-current-child and remove-current-child. ie: Delete a child and its children in all frames by default.
big summer commit
Add a clfswm server/client
clean contrib/server/
src/*.lisp: Replace the case to handle event with a more (tricky) lispy method which bind a function to each keywords associated to graphics events. Remove event handler hooks as they're not needed anymore (To replace them: use closure and define-handler).
Date copyright and version update
Documentation update
Documentation update
src/clfswm-util.lisp (mouse-click-to-focus-generic): Fix an unwanted flickering with unmanaged windows.
TODO update
src/clfswm-internal.lisp. with-find-in-all-frames: New macro. find-parent-frame, find-frame-window, find-frame-by-name find-frame-by-number: Use with-find-in-all-frames to search in frames in the right order.
src/xlib-util.lisp (compress-motion-notify): Use a loop instead of an event-case.
contrib/server/key.lisp (ushell-sh): Add ccl and ecl support.
main-loop, generic-mode: Use an xlib:event-listen before processing event with xlib:process-event. This prevent a bug with CLX threaded implementation like sbcl.
* src/*.lisp: Use the new child-equal-p to compare children. This prevent a bug with sbcl/cmucl when the standard equal function does not work with xlib:window. * src/clfswm-internal.lisp (child-equal-p): New predicate.
src/clfswm-keys.lisp (define-ungrab/grab): Use all values returned by xlib:keysym->keycodes.
src/clfswm-keys.lisp (define-ungrab/grab): Remove debug test
src/clfswm-circulate-mode.lisp (circulate-loop-function): Use is-a-key-pressed-p. src/xlib-util.lisp (is-a-key-pressed-p): New predicate.
main-mode:configure-request: Raise the window only when present on the current child and focus it accordingly.
src/clfswm.lisp (main-loop): Ensure that all events have been processed after a process-event.
main-mode:configure-request: Do not raise fullscreened windows.
child-member, child-remove: New predicates. src/*.lisp: Use child-member and child-remove everywhere it's needed.
hide-current-child: Prevent from removing the current root.
run-other-window-manager: Update for clisp compatibility.
src/clfswm-corner.lisp (present-clfswm-terminal): Make the clfswm terminal working even on xterm title changes.
src/xlib-util.lisp (handle-event): use with-xlib-protect only in handle-event. Add a with-simple-restart to prevent a clisp/new-lisp infinite loop.
src/clfswm.lisp (main-loop): Protect all xlib functions with an with-xlib-protect.
with-xlib-protect: Add a with-simple-restart on top of body execution.
src/clfswm.lisp (error-handler): New function do handle asynchronous errors and ignore them. (open-display): Install the new error-handler on display.
src/clfswm-util.lisp (update-menus): Follow XDG specifications instead of the non-portable Debian update-menu.
src/clfswm-corner.lisp (generate-present-body): New macro. (present-clfswm-terminal, present-virtual-keyboard): Use generate-present-body.
Remove useless comment
src/clfswm-util.lisp (update-menus): List all directories and subdirectories in /usr/share:/usr/local/share:/usr/share:/usr/local/share:/usr/share:/usr/local/share:/usr/share:/usr/local/share:/usr/share:/usr/local/share/applications.
Add a Screensaver section in standard menu
set-hide-unmanaged-window, set-show-unmanaged-window, set-default-hide-unmanaged-window: New functions and menu entry to hide or not unmanaged windows.
Documentation update
set-globally-hide-unmanaged-window, set-globally-show-unmanaged-window: New functions and menu entry.
Documentation update
TODO update
contrib/clfswm: Add support to cmucl, ccl and ecl.
contrib/clfswm: Move clfswm sources to if there is no write permission on . So anybody can start clfswm even if there is no write permission on the source directory.
src/clfswm-util.lisp (speed-mouse-reset, speed-mouse-left, speed-mouse-right, speed-mouse-up, speed-mouse-down, speed-mouse-undo, speed-mouse-first-history): New functions to quickly move the mouse. Implemented for the second mode.
src/clfswm-util.lisp (speed-mouse-reset, speed-mouse-left, speed-mouse-right, speed-mouse-up, speed-mouse-down, speed-mouse-undo, speed-mouse-first-history): New functions to quickly move the mouse. Implemented for the second mode.
src/clfswm-util.lisp (speed-mouse-right, speed-mouse-down): Use screen size instead of hardcoded test coordinates.
src/clfswm-expose-mode.lisp: Move and rename present*-windows in a separate clfswm-expose-mode.lisp file.
src/xlib-util.lisp (with-handle-event-symbol): Use a filled list with handle-event-fun symbols instead of inspecting clfswm internals symbols on each mode change.
Update corners from present-windows to expose-windows-mode
src/clfswm-expose-mode.lisp (expose-windows-mode, expose-all-windows-mode): Use a generic mode. src/clfswm-internal.lisp (child-position): New function.
src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows): New functions. Add a window on each child in the expose mode to quickly select them.
Fixe a double gcontext free
configure: Use the Xavier Maillard clfswm script in contrib to build an executable in the standard way.
Upgrade to asdf 2.0
TODO update. Documentation update.
TODO update
src/clfswm-expose-mode.lisp (expose-create-window): Show window title in accel window.
src/clfswm-nw-hooks.lisp (absorb-window-nw-hook): Absorb new window hook: the frame absorb all new windows that match nw-absorb-test frame data slot.
src/clfswm-util.lisp (bind-on-slot): Add an optional parameter to bind the current child from the configuration file.
src/clfswm-circulate-mode.lisp (select-next-subchild): Add the possibility to circulate over subchild of the current child.
TODO update
Documentation update
Circulate in subchild: show-all-children only for current frame
src/clfswm-internal.lisp (show-all-children): Do not raise a child when its parent is hidden.
src/clfswm-query.lisp (query-print-string): Change cursor color and show parenthesis matching with colors (on match and on errors).
src/clfswm-query.lisp (add-in-query-string): Handle correctly the mod-5 modifier.
* src/clfswm-util.lisp (): Add an Hello window at startup. * src/tools.lisp (process-timers): Add a timer system.
clfswm.lisp: move display-hello-window in the *init-hook* list
src/clfswm-util.lisp (display-hello-window): Add a timer to hide the hello window. Add Configuration variables.
src/tools.lisp (add-timer): Add an id to identify the timer.
Remove test functions
src/clfswm-util.lisp (open-notify-window): Convert hello-window functions to a more generic Notify-window system.
src/clfswm-info.lisp (show-first-aid-kit): Display the essential key binding in main and second mode.
Documentation update
contrib/osd.lisp: New file: OSD (On Screen Display) for presentations. src/clfswm-menu.lisp (open-menu): Modularise function.
src/clfswm-keys.lisp (binding-substitute-modifier): Utility to change modifiers after binding definition.
src/clfswm-internal.lisp (show-child): Show window only if not hidden.
* src/xlib-util.lisp: Remove unnecessary xlib:display-finish-output.
contrib/server/server.lisp: Load clfswm client code in the main program and let the user start it with a --client command line option. * src/package.lisp (*main-entrance-hook*): New hook executed after loading configuration file and before opening the display.
TODO update
src/clfswm-expose-mode.lisp (expose-create-window): Ensure that all characters are printable.
FIle test
File suppression test
Remove uneeded files
contrib/server: Remove uneeded files
contrib/server: add a test file
Add CLX as system dependency
Add CLX as system dependency (2)
src/clfswm-query.lisp (query-print-string): Handle long lines correctly.
TODO update
src/clfswm-query.lisp (query-mode-complet): New function: Handle completion in query-mode.
src/clfswm-internal.lisp (frame-select-next-child, frame-select-previous-child): New functions and bindings. Select the next/previous child in the current frame.
Documentation update
load.lisp: fix typo
src/clfswm-layout.lisp (tile-layout-ask-keep-position): New function to let the user choose to keep child position with tile layout.
src/clfswm-layout.lisp (tile-layout, set-tile-layout): Fill blanks if needed.
Documentation and dot-clfswmrc update
src/clfswm-expose-mode.lisp (expose-windows-current-child-mode): New function an bindings.
Documentation update
src/clfswm-util.lisp (mouse-click-to-focus-generic): Do not focus the parent child when the current root is a window.
src/clfswm-internal.lisp (set-current-root): Handle window-parent in set-current-root.
version update
contrib/osd.lisp: minor tweaking
src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows): Do not display the accel window for unmanaged windows.
src/clfswm-util.lisp (find-child-under-mouse): Do not find hidden windows.
expose-windows-generic: banish pointer on exit
contrib/server.lisp: minor tweaking
contrib/osd.lisp: Display doc before calling associated function
src/clfswm-second-mode.lisp (*second-mode-leave-function*): New variable bound to a function executed (when not null) on second mode leaving.
src/clfswm-second-mode.lisp (sm-leave-function): Do not use *second-mode-program* anymore.
src/clfswm-second-mode.lisp (second-key-mode): Call the second mode leave function only when the generic mode was ended.
src/xlib-util.lisp (with-xlib-protect): Force to revert to the main mode state.
contrib/osd.lisp (display-doc): Add another method where a CLFSWM native window is used to display the key documentation.
Documentation update
Put load.lisp in normal mode and not documentation mode
src/clfswm.lisp (main-mode): Raise or not unmanaged windows following request in *never-managed-window-list*.
src/clfswm-util.lisp (mouse-focus-move/resize-generic): Take care of never managed windows to move or resize them if the raise parameter is true.
mouse-focus-move/resize-generic: do not focus a never managed window
*never-managed-window-list*: Structure change to be more flexible. Let the choice to focus, raise and do nothing on never managed windows.
Better clfswm terminal identification
src/clfswm.lisp (main-unprotected): Destroy the notify window before closing the display. Tis fix a bug when resetting/reloading clfswm.
src/clfswm.lisp (main-unprotected): Add a close hook. And close the notify window, the virtual keyboard and the clfswm terminal by default.
src/clfswm.lisp (main-unprotected): Create the configuration menu only once at startup.
src/clfswm-configuration.lisp (add-all-configuration-default-value): Add a default value to configurable variables.
src/clfswm-configuration.lisp (reset-all-config-variables): New function and menu entry.
src/clfswm-configuration.lisp (query-conf-value): Add the ability to leave the field blank to reset the variable to its default value.
src/clfswm-util.lisp (query-yes-or-no): New function.
src/clfswm-internal.lisp (show-all-children): Rethink of display child order to prevent very annoying flickering.
src/clfswm-internal.lisp (show-all-children): Perform only one recusion on the clfswm tree: calculate geometry and place child in one pass.
TODO update
src/xlib-util.lisp (move-window,resize-window): Add a *color-move-window* border when moving or resizing a window.
src/clfswm-internal.lisp (show-all-children): Simplify the selection method.
(show-all-children): add the ability to display all child from *root-frame* and hide all those who are not in *current-root*. -> remove hide-all-children when needed.
src/clfswm-configuration.lisp (create-configuration-menu): Change the config system with a more lispy one and a less string based one: (defconfig name value group doc).
src/clfswm-info.lisp (show-config-variable); src/clfswm-autodoc.lisp (produce-configuration-variables): Use the new defconfig method.
src/clfswm-configuration.lisp (save-variables-in-conf-file): Save only variables with a different value than there original value.
src/clfswm-internal.lisp (show-all-children): Hide windows not in the current root before displaying those in current root. Remove all hide-all unnecessary calls.
src/clfswm-util.lisp (cut-current-child, remove-current-child, delete-current-child): Hide the current child before doing the action.
src/clfswm-layout.lisp: Add a variable border size for frames and windows. contrib/volume-mode.lisp (set-default-volume-keys): Add more keybindings (up/down, right/left) to raise/lower the volume.
src/clfswm-internal.lisp (show-all-children): Handle properly duplicated child in multipe frames.
clfswm.asd: Change compilation order to prevent undefined variables. src/clfswm-internal.lisp (show-child(frame)): Handle properly the show-root-frame-p parameter. src/clfswm-util.lisp (move-frame, resize-frame): Do not move or resize a frame when it's the current root.
Copyright date update
Documentation update
src/clfswm-layout.lisp (set-gimp-layout): Display a notify window with the help on the GIMP layout.
src/clfswm-autodoc.lisp (produce-all-docs): Produce a documentation for all configurable variables in CLFSWM.
src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a documentation for all configurable variables in CLFSWM - HTML version.
Fix never-managed-windows in contrib/osd.lisp
src/clfswm-info.lisp (show-config-variable): call produce-conf-var-doc.
src/clfswm-internal.lisp (x-px->fl, y-px->fl): Takes care of border size.
binding(-second-mode).lisp: minor keys update (switch-to-last-child)
contrib/server.lisp: Use the same port variable in the server and the client
contrib/clfswm, configure: Add a lisp binary option to choose the binary program used to build clfswm
clfswm-query.lisp, clfswm-info.lisp: redefine keys before entering in the mode
src/clfswm-menu.lisp (open-menu): Save info hash table keys instead of deleting newly created keys.
src/clfswm-util.lisp (with-movement-select-next-brother, with-movement-select-previous-brother, with-movement-select-next-child): Use a simple method (do not enter in the circulate mode) to allow to circulate in all children or brothers.
src/clfswm-pack.lisp (move-frame-constrained, resize-frame-constrained): New function. Move and resize frame with the mouse constrained by other frame brothers.
src/clfswm-pack.lisp (resize-frame-constrained): Takes care of border size.
* src/clfswm-pack.lisp (implode-frame, implode-current-frame): New functions. Absorb all frames subchildren in frame. Explode frame opposite.
* src/clfswm-pack.lisp (implode-frame): Hide child before removing it
src/clfswm-pack.lisp (move-frame-constrained, resize-frame-constrained): Use pixels instead of floating measure.
src/clfswm-circulate-mode.lisp (select-brother-generic-spatial-move+right/left/up/down): New function to select a brother from another in a spatial move.
src/clfswm-circulate-mode.lisp (select-brother-generic-spatial-move+right/left/up/down): New function to select a brother from another in a spatial move.
src/clfswm-layout.lisp (update-layout-managed-children): Fix a bug by using the parent frame instead of the current child.
src/clfswm-internal.lisp (fixe-real-size): Takes care of border size.
src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask to keep children positions or not.
src/bindings-second-mode.lisp (set-default-second-keys): select-brother-spatial-move-* binding update.
Documentation update
src/clfswm-layout.lisp (update-layout-managed-children-position): New function.
src/clfswm-layout.lisp (update-layout-managed-children-position): New function.
TODO update
src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New function. Prevent to add or delete a new window hook for this frame.
Documentation update
contrib/osd.lisp (funcall-button-from-code): Display osd documention for buttons and fix some redefining warnings.
src/clfswm-util.lisp (ask-close/kill-current-window): Add an *ask-close/kill-placement* placement window variable.
src/clfswm-util.lisp (copy-focus-window, cut-focus-window): New functions and ask-close/kill-current-window menu and bindings entry.
src/clfswm-util.lisp (copy-focus-window, cut-focus-window): New functions and ask-close/kill-current-window menu and bindings entry.
Documentation update
src/clfswm-internal.lisp (show-all-children): Rectangular optimization to display only needed children.
src/clfswm-internal.lisp (show-all-children): Remove flickering on select-next/previous-brother.
src/clfswm-util.lisp (delete-focus-window-generic): Do not hide child before removing, so prevent a flickering.
src/clfswm-internal.lisp (get-parent-layout): Handle correctly unmanaged windows.
src/clfswm-internal.lisp (delete-child-and-children-in-all-frames): Show all children before deleting/destroying a windows, so prevent a flickering.
src/clfswm-internal.lisp (get-parent-layout): Return the fullscreen size when the current root is a window.
src/clfswm-internal.lisp (get-parent-layout): Minor fullscreen size tweaking.
src/clfswm-util.lisp (mouse-click-to-focus-generic): Update behaviour accordingly to function specifications.
src/clfswm-internal.lisp (display-frame-info): Remove hidden infos in frames windows.
src/clfswm-expose-mode.lisp (define-expose-letter-keys): Add 0..1 and A..Z keys to select a child in exposé mode.
src/clfswm-layout.lisp (inc-tile-layout-size, dec-tile-layout-size, inc-slow-tile-layout-size, dec-slow-tile-layout-size): New functions and bindings.
src/clfswm.lisp (main-unprotected): Destroy all frames windows before closing the display (not really needed).
Documentation update
Version update
src/clfswm-util.lisp (add-frame-in-parent-frame): New function and binding.
Common-lisp.net git test
Git on common-lisp.net test. Trac test
Git on common-lisp.net test. Git emails test
Git on common-lisp.net test. Git emails test
Git on common-lisp.net test. Git emails test
Git on common-lisp.net test. Git emails test - End
Test of both repo.or.cz and common-lisp.net git repositories
src/clfswm-internal.lisp (delete-child-and-children-in-all-frames): Delete or destroy children before displaying all children.
Release 1106
Changelog update
src/clfswm-internal.lisp (clean-windows-in-all-frames): New function to prevent xlib error when a window is deleted.
load.lisp: remove unprotected test case
Finale 1106 release
Xavier Maillard (10):
Username test
Username test 2
Untest
Add a generic mode to define all other modes.
Remove a test key
Use generic-mode for info-mode.
Adding generic-mode
Add an xlib-util dependency for clfswm-generic-mode
Transitional: revert to old circulate behaviour
Use a generic mode for query-string
pbrochard (92):
first commit
first commit
first commit
use a default group datas
navigation keys change to always select the current child
Alt-tab navigate throw childs-Alt-arrow navigate throw brothers
create-group use &rest arguments
New contrib directory for additional user code
Hide groups when moving by name
add a contributed example
Rename and renumber childs. Move query-* in a separate file
Solve a wrong with-gcontext bug (xlib::string-concat)
Specify the base directory in the main loop. The main loop has key parameters
Remove all reference to pager
Handle mouse in the main mode the same way as in the second mode. Main mouse actions are now defined in bindings.lisp
Remove button-pess/release in window-event. They are handled another way
Begining of mouse handling -> wheel mouse
Check /home/phil/.config/clfswm/clfswmrc first. New clfswm script thanks to Xavier Maillard. Beginning of new window hook
New file: clfswm-nw-hooks.lisp to store hooks on new windows
test of git
new git test
Add clfswm-nw-hooks in clfswm.asd
A git test with svn and rsync
New git test
another test
Last test?
and another one
And this is the last
Apply patch on contrib/clfswm
Display the documentation associated to keys when identifying a key.
Fix a glitch in clfswm-keys.lisp - Thanks Xavier
New doc directory. Move asdf.lisp to contrib/
Adding doc directory
Check for Keysym+Shift. Remove all #Date# references.
force-window-in-group/force-window-center-in-group: new functions
Use ISO_Left_Tab instead of Tab for select-previous-child.
Move *.lisp in src/
Move clfswm.asd and load.lisp on main directory
TODO: new file
Add alt+1/2/3... description
More TODO things
New functions: Show/hide groups info windows.
Register system for new window hooks. Bind control+o to open the next window in a new group in the root group (as open in next window in a new workspace in 0801 version).
Remove :button-* in *window-events* -> prevent an access-error bug
This patch just fixes an annoyance when calling our script without any argument.
Ignore files for git
New version package. Move date-string to tools.lisp. Localize date-string
Pack, Fill, Resize functions.
Remove show-all-childs in info-mode -> less flickering
more TODO things
explode-group/explode-current-group: new functions.
Rename 'group' in 'frame'. Rename 'childs' in 'children'. keys-from-list new clfswm-info function
Do not raise windows with no-layout
Use :first-only to raise only the first child (useful with no-layout).
Mouse move and resize. New functions for coordinates conversions
In second mode: Focus, move and resize the current child (even if it's a window).
Create a new frame on the root window. (in the main mode only if *create-frame-on-root* is true)
In with-all-*: Reverse the child list to manage the first child last (like in show-all-children)
Create a default frame in the root frame (Be sure to update your configuration file). Up/Down: Swap select previous/next level
Stop button event only if there is a geometry change. More TODO things
Bind Alt+mouse-1/3 to move or resize a frame or the window's father.
Limit minimal child size to 1x1.
bind-or-jump: New (great) function.
Allow additional arguments to function on key/mouse press/release. Add keys definitions to bind-or-jump in the second mode.
New nw-hook: Open the next window in the current frame and leave the focus to the current child.
test of git pack
Test again
Set the layout only one time and revert to no-layout to freely handle frames. Apply this with open-in-new-frame-in-root-frame-nw-hook
switch-to-root-frame: show later - new key parameter to have less flickering.
Keyboard handle strategie change: Grab all keys by default and replay just what is needed. No change for the second mode.
Add key handling on no focus window and on frame windows.
Better handle of keysyms. Revert to hold grabning method for the main mode.
Handle all keysyms in the main mode (for example: 1 on an azerty keyboard).
Move the default frame creation on the default init hook.
Move the size computation outside the show-child part. Redisplay only the current child when needed. More TODO things
Display-child is the first child by default -> less flickering. Solve a bug with father-p in show-all-children.
New menu system that let user change keys or functions associated to keys.
Show the documentation for the function bound on a key.
Move with-movement, current-frame-fill/pack/resize-* from bindings-second-mode.lisp to clfswm-util.lisp.
clfswm.asd: Add a dependency from clfswm-second-mode.lisp to clfswm.lisp.
open-in-new-frame-in-parent-frame-nw-hook: New new window hook. adapt-current-frame-to-window-hints: New function. ensure-printable: Return always a string even with a null string.
src/*.lisp: Rename all 'father' occurrences to 'parent'.
Managed type: new frame parameter. This allow to choose what window type a frame must handle.
A git test
Another git test
Another test
Another test...
And another git test
Another test..
A test of svn
Final git/svn test?
New TODO things
-----------------------------------------------------------------------
hooks/post-receive
--
CLFSWM - A(nother) Common Lisp FullScreen Window Manager
More information about the clfswm-cvs
mailing list