This adds two keyword parameters to rules: * :create , when non-NIL the group matching the rule is created if it doesn't already exist. The group may be restored from a dump-file in *data-dir* if such a file exists. The dump filename may be specified as :create "dump-file", if not it defaults to group-name. Defaults to NIL. * :restore , for group restoration from a dump file even if the matching group already exists. The dump filename should be specified as :restore "dump-file". Defaults to NIL.
* interactive-command renamed to the less ambiguous "eval-command". * Optional argument "interactivep" used to know if the command should be run with %interactivep% set to T. * (declare (ignorable %interactivep%)) in defcommand to avoid a warning about the potentially unused variable.
add clear-window-placement-rules function. use it in sample-stumpwmrc.lisp
moved all the frame dumping stuff to fdump.lisp and rewrote most of it.
* user.lisp (set-prefix-key): verify the KEY's type.
* stumpwm.lisp (stumpwm-internal-loop): catch errors and handle them according to *top-level-error-action*. (stumpwm): echo startup string after rc file is loaded * stumpwm.asd: attempt to require :cmucl-clx * sample-stumpwmrc.lisp: bring up to date * primitives.lisp (*font-name*): remove defvar (*foreground-color*): likewise (*background-color*): likewise (*border-color*): likewise (+default-foreground-color+): new constant (+default-background-color+): likewise (+default-border-color+): likewise (+default-font-name+): likewise (*top-level-error-action*): new defvar (screen): new slots border-color, fg-color, bg-color * core.lisp (focus-window): catch match-error, window-error, and drawable-errors. (set-fg-color): new function (set-bg-color): likewise (set-border-color): likewise (set-font): likewise (get-fg-color-pixel): use screen's fg-color slot (get-bg-color-pixel): use screen's bg-color slot (get-border-color-pixel): use screen's border-color slot (init-screen): use +default-foreground-color+, +default-background-color+ +default-border-color+. (init-screen): init screen's fg-color, bg-color, border-color and font slots
* input.lisp (read-one-line): remove done var * core.lisp (*top-map*): moved from user.lisp (tree-x): dont accept a screen arg. all callers updated. (tree-y): likewise (tree-width): likewise (tree-height): likewise (tree-row-split): likewise (tree-column-split): likewise (expand-tree): likewise (join-subtrees): likewise (remove-frame): likewise (resize-frame): unknown changes
(*command-hash*): new defvar (define-stumpwm-command): new macro (set-key-binding): change 3rd arg to cmd ("next"): new stumpwm command ("prev"): likewise ("delete"): likewise ("kill"): likewise ("banish"): likewise ("windows"): likewise ("select"): likewise (shell-command): remove function ("other"): new stumpwm command (run-shell-command): new function ("exec"): new stumpwm command ("hsplit"): likewise ("vsplit"): likewise (remove-split): use format for debugging output ("remove"): new stumpwm command ("sibling"): likewise (choose-frame-by-number): new function ("fselect"): new stumpwm command (eval-line): take the expression to eval as the second arg ("eval"): new stumpwm command (split-by-one-space): new function (parse-and-run-command): likewise (interactive-command): new function ("colon"): new stumpwm command ("pull"): likewise ("meta"): likewise (renumber): take the new number as arg #2 ("number"): new stumpwm command ("reload"): likewise (set-default-bindings): bind keys to stumpwm commands * stumpwm.lisp (load-rc-file): change ~/.stumpwmrc path to be more portable. (error-handler): use format for debugging output * primitives.lisp (*key-bindings*): change to defvar. (find-free-number): use format for debugging output * input.lisp (setup-input-window): use format for debugging output (shutdown-input-window): likewise * core.lisp (process-existing-windows): use format for debugging output (no-focus): likewise (delete-window): likewise (kill-window): likewise (focus-frame): likewise (sync-frame-windows): likewise (draw-frame-numbers): likewise (:configure-request): likewise (handle-command-key): likewise (:key-press): likewise (handle-event): likewise (echo-string-list): force output