[clfswm-cvs] CVS clfswm
pbrochard
pbrochard at common-lisp.net
Fri Dec 21 22:38:14 UTC 2007
Update of /project/clfswm/cvsroot/clfswm
In directory clnet:/tmp/cvs-serv30069
Modified Files:
README clfswm-second-mode.lisp clfswm.asd clfswm.lisp
Log Message:
readme update
--- /project/clfswm/cvsroot/clfswm/README 2007/05/15 19:49:49 1.1
+++ /project/clfswm/cvsroot/clfswm/README 2007/12/21 22:38:14 1.2
@@ -28,11 +28,21 @@
To use CLFSWM, load the load.lisp file. It loads the ASDF package,
build the system and start the main loop.
+Another way is to do something like this:
+$ cd /in/the/directory/of/clfswm/
+$ clisp/cmucl/sbcl/... # start a lisp
+ > (load "asdf.lisp") ; asdf for clisp or cmucl
+or> (require :asdf) ; asdf for sbcl
+ > (require :clx) ; clx for cmucl
+ > (asdf:oos 'asdf:load-op :clfswm) ; compile and load the system
+ > (in-package :clfswm) ; go in the clfswm package
+ > (clfswm:main) ; start the main loop
+
Tweaking
-To change the default keybinding, have a look at the bindings.lisp
-file and at the package.lisp file for global variables.
+To change the default keybinding, have a look at the bindings*.lisp
+files and at the config.lisp file for global variables.
If you want to add workspaces or groups at startup, tell this to
clfswm in the init-display function in clfswm.lisp (there is already a
default workspace and a default group created).
@@ -45,23 +55,11 @@
startup. There is an example in the clfswm source (dot-clfswmrc).
-Development note
-
-As I think that there is as many CLFSWM as users, I propose a fork
-based development. CLFSWM has no configuration file in this
-respect. If you don't like something in clfswm use something else or
-learn Common Lisp (if not already done) and hack what you want on
-it. When you'll have done your hack, publish your code (if you want)
-and tell me its URL to link it from the clfswm web site. This way,
-everybody can share its ideas and have only what he wants in its
-window manager.
-
-
License
CLFSWM is under the GNU General Public License - GPL license.
- You can find more information in the files [3]COPYING. or on the
- [4]Free Software Foundation site.
+ You can find more information in the files COPYING. or on the
+ [3]Free Software Foundation site.
Philippe Brochard <hocwp at free dot fr>.
@@ -70,5 +68,4 @@
1. http://incise.org/index.cgi/TinyWM
2. http://www.nongnu.org/stumpwm/
- 3. file://localhost/other-home/lisp/clfswm/web/COPYING
- 4. http://www.gnu.org/
+ 3. http://www.gnu.org/
--- /project/clfswm/cvsroot/clfswm/clfswm-second-mode.lisp 2007/12/21 22:01:14 1.4
+++ /project/clfswm/cvsroot/clfswm/clfswm-second-mode.lisp 2007/12/21 22:38:14 1.5
@@ -1,7 +1,7 @@
;;; --------------------------------------------------------------------------
;;; CLFSWM - FullScreen Window Manager
;;;
-;;; #Date#: Fri Dec 21 23:00:19 2007
+;;; #Date#: Fri Dec 21 23:04:46 2007
;;;
;;; --------------------------------------------------------------------------
;;; Documentation: Second mode functions
@@ -190,3 +190,232 @@
(focus-window (current-window))
(show-all-group (current-workspace))
(wait-no-key-or-button-press))
+
+
+
+
+
+
+;;;;; Alternative - Second mode with dashed screen
+;;(let ((num 5)
+;; (line-color "Green"))
+;; (defun draw-second-mode-window (window gc)
+;; (show-all-windows-in-workspace (current-workspace))
+;; (sleep 0.1)
+;; (display-finish-output *display*)
+;; (raise-window window)
+;; (setf (gcontext-foreground gc) (get-color line-color)
+;; (gcontext-line-style gc) :dash)
+;; (let ((dx (/ (drawable-width window) num))
+;; (dy (/ (drawable-height window) num)))
+;; (loop for i from 1 below num do
+;; (draw-line window gc (truncate (* i dx)) 0 0 (truncate (* i dy)))
+;; (draw-line window gc (truncate (* i dx)) (drawable-height window) (drawable-width window) (truncate (* i dy)))
+;; (draw-line window gc (truncate (* i dx)) 0 (drawable-width window) (truncate (* (- num i) dy)))
+;; (draw-line window gc (truncate (* (- num i) dx)) (drawable-height window) 0 (truncate (* i dy)))))
+;; (draw-line window gc 0 (drawable-height window) (drawable-width window) 0)
+;; (draw-line window gc 0 0 (drawable-width window) (drawable-height window))
+;; (setf (gcontext-line-style gc) :solid)
+;; (show-all-group (current-workspace) window gc)
+;; (no-focus)))
+;;
+;;(defmacro with-draw-second-mode-window ((hide show) &body body)
+;; (cond ((and hide show) `(progn
+;; (hide-window sm-window)
+;; , at body
+;; (draw-second-mode-window sm-window sm-gc)
+;; (display-force-output *display*)))
+;; (hide `(progn
+;; (hide-window sm-window)
+;; , at body
+;; (display-force-output *display*)))
+;; (show `(progn
+;; , at body
+;; (draw-second-mode-window sm-window sm-gc)
+;; (display-force-output *display*)))
+;; (t `(progn
+;; , at body
+;; (display-force-output *display*)))))
+;;
+;;
+;;(defun second-key-mode ()
+;; "Switch to editing mode"
+;; (let* ((sm-window (create-window :parent *root* :x 0 :y 0
+;; :width (screen-width *screen*) :height (screen-height *screen*)
+;; :colormap (screen-default-colormap *screen*)
+;; :event-mask '()))
+;; (sm-gc (create-gcontext :drawable sm-window
+;; :foreground (get-color "Red")
+;; :background (get-color "Black")
+;; :line-style :solid)))
+;; (labels ((handle-key-press (&rest event-slots &key root code state &allow-other-keys)
+;; (declare (ignore event-slots root))
+;; (funcall-key-from-code *second-keys* code state))
+;; (sm-handle-enter-notify (&rest event-slots &key window root-x root-y &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (unless (or (window-equal sm-window window)
+;; (window-equal window *root*))
+;; (with-draw-second-mode-window (t t)
+;; (focus-group-under-mouse root-x root-y))))
+;; (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
+;; (:motion-notify () t))
+;; (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)
+;; (show-all-group (current-workspace) sm-window sm-gc)
+;; (no-focus)))
+;; (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
+;; (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
+;; (sm-handle-configure-request (&rest event-slots &key window &allow-other-keys)
+;; (unless (window-equal sm-window window)
+;; (with-draw-second-mode-window (t t)
+;; (apply #'handle-configure-request event-slots))))
+;; (sm-handle-map-request (&rest event-slots &key window &allow-other-keys)
+;; (unless (window-equal sm-window window)
+;; (with-draw-second-mode-window (t t)
+;; (apply #'handle-map-request event-slots))))
+;; (sm-handle-unmap-notify (&rest event-slots &key window &allow-other-keys)
+;; (unless (window-equal sm-window window)
+;; (with-draw-second-mode-window (t t)
+;; (apply #'handle-unmap-notify event-slots))))
+;; (sm-handle-destroy-notify (&rest event-slots &key window &allow-other-keys)
+;; (unless (window-equal sm-window window)
+;; (with-draw-second-mode-window (t t)
+;; (apply #'handle-destroy-notify event-slots))))
+;; (handle-event (&rest event-slots &key display event-key &allow-other-keys)
+;; (declare (ignore display))
+;; (handler-case
+;; (case event-key
+;; (:key-press (with-draw-second-mode-window (t t)
+;; (apply #'handle-key-press event-slots)))
+;; (:enter-notify nil)
+;; (:motion-notify (apply #'handle-motion-notify event-slots))
+;; (:button-press (with-draw-second-mode-window (t nil)
+;; (apply #'handle-button-press event-slots)))
+;; (:button-release (with-draw-second-mode-window (nil t)
+;; (apply #'handle-button-release event-slots)))
+;; (:configure-request (apply #'sm-handle-configure-request event-slots))
+;; (:map-request (apply #'sm-handle-map-request event-slots))
+;; (:unmap-notify (apply #'sm-handle-unmap-notify event-slots))
+;; (:destroy-notify (apply #'sm-handle-destroy-notify event-slots))
+;; (:mapping-notify nil)
+;; (:property-notify nil)
+;; (:create-notify nil))
+;; ((or drawable-error window-error) (c)
+;; (declare (ignore c))))
+;; t))
+;; ;;(dbg "Second key ignore" c)))))
+;; (minimize-group (current-group))
+;; (map-window sm-window)
+;; (raise-window sm-window)
+;; (draw-second-mode-window sm-window sm-gc)
+;; (no-focus)
+;; (ungrab-main-keys)
+;; (xgrab-keyboard *root*)
+;; (xgrab-pointer *root* 66 67)
+;; (unwind-protect
+;; (catch 'exit-second-loop
+;; (loop
+;; (process-event *display* :handler #'handle-event)
+;; (display-finish-output *display*)))
+;; (free-gcontext sm-gc)
+;; (destroy-window sm-window)
+;; (xungrab-keyboard)
+;; (xungrab-pointer)
+;; (grab-main-keys))
+;; (adapt-window-to-group (current-window) (current-group))
+;; (focus-window (current-window))
+;; (show-all-group (current-workspace))
+;; (wait-no-key-or-button-press))))
+
+
+
+;;;;; Alternative - Second mode with big screen border
+;;(let ((border-size 5)
+;; (border-color "Green"))
+;; (defun second-key-mode ()
+;; "Switch to editing mode"
+;; (let* ((windows (list (create-window :parent *root* :x 0 :y 0
+;; :width (screen-width *screen*) :height border-size
+;; :background (get-color border-color)
+;; :colormap (screen-default-colormap *screen*))
+;; (create-window :parent *root* :x 0 :y (- (screen-height *screen*) border-size)
+;; :width (screen-width *screen*) :height border-size
+;; :background (get-color border-color)
+;; :colormap (screen-default-colormap *screen*))
+;; (create-window :parent *root* :x 0 :y border-size
+;; :width border-size :height (- (screen-height *screen*) (* border-size 2))
+;; :background (get-color border-color)
+;; :colormap (screen-default-colormap *screen*))
+;; (create-window :parent *root* :x (- (screen-width *screen*) border-size)
+;; :y border-size
+;; :width border-size :height (- (screen-height *screen*) (* border-size 2))
+;; :background (get-color border-color)
+;; :colormap (screen-default-colormap *screen*)))))
+;; (labels ((draw-second-mode-window ()
+;; (dolist (win windows)
+;; (raise-window win)))
+;; (handle-key-press (&rest event-slots &key root code state &allow-other-keys)
+;; (declare (ignore event-slots root))
+;; (funcall-key-from-code *second-keys* code state))
+;; (handle-enter-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (focus-group-under-mouse root-x root-y))
+;; (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
+;; (:motion-notify () t))
+;; (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)))
+;; (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
+;; (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
+;; (declare (ignore event-slots))
+;; (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
+;; (handle-event (&rest event-slots &key display event-key &allow-other-keys)
+;; (declare (ignore display))
+;; (handler-case
+;; (case event-key
+;; (:key-press (apply #'handle-key-press event-slots))
+;; (:enter-notify (apply #'handle-enter-notify event-slots))
+;; (:motion-notify (apply #'handle-motion-notify event-slots))
+;; (:button-press (apply #'handle-button-press event-slots))
+;; (:button-release (apply #'handle-button-release event-slots))
+;; (:configure-request (apply #'handle-configure-request event-slots))
+;; (:map-request (apply #'handle-map-request event-slots))
+;; (:unmap-notify (apply #'handle-unmap-notify event-slots))
+;; (:destroy-notify (apply #'handle-destroy-notify event-slots))
+;; (:mapping-notify nil)
+;; (:property-notify nil)
+;; (:create-notify nil))
+;; ((or drawable-error window-error) (c)
+;; (declare (ignore c))))
+;; (draw-second-mode-window)
+;; t))
+;; ;;(dbg "Second key ignore" c)))))
+;; (minimize-group (current-group))
+;; (dolist (win windows)
+;; (map-window win))
+;; (draw-second-mode-window)
+;; (no-focus)
+;; (ungrab-main-keys)
+;; (xgrab-keyboard *root*)
+;; (xgrab-pointer *root* 66 67)
+;; (unwind-protect
+;; (catch 'exit-second-loop
+;; (loop
+;; (process-event *display* :handler #'handle-event)
+;; (display-finish-output *display*)))
+;; (dolist (win windows)
+;; (destroy-window win))
+;; (xungrab-keyboard)
+;; (xungrab-pointer)
+;; (grab-main-keys))
+;; (adapt-window-to-group (current-window) (current-group))
+;; (focus-window (current-window))
+;; (show-all-group (current-workspace))
+;; (wait-no-key-or-button-press)))))
--- /project/clfswm/cvsroot/clfswm/clfswm.asd 2007/12/21 21:44:04 1.2
+++ /project/clfswm/cvsroot/clfswm/clfswm.asd 2007/12/21 22:38:14 1.3
@@ -2,7 +2,7 @@
;;;; Author: Philippe Brochard <hocwp at free.fr>
;;;; ASDF System Definition
;;;
-;;; #date#: Fri Dec 21 22:08:23 2007
+;;; #date#: Fri Dec 21 23:30:21 2007
(in-package #:asdf)
@@ -32,7 +32,7 @@
:depends-on ("package" "clfswm-internal"))
(:file "clfswm"
:depends-on ("xlib-util" "netwm-util" "clfswm-keys"
- "clfswm-internal" "clfswm-second-mode"))
+ "clfswm-internal" "clfswm-second-mode" "tools"))
(:file "clfswm-util"
:depends-on ("clfswm" "keysyms"))
(:file "clfswm-pack"
--- /project/clfswm/cvsroot/clfswm/clfswm.lisp 2007/12/21 22:01:14 1.3
+++ /project/clfswm/cvsroot/clfswm/clfswm.lisp 2007/12/21 22:38:14 1.4
@@ -1,7 +1,7 @@
;;; --------------------------------------------------------------------------
;;; CLFSWM - FullScreen Window Manager
;;;
-;;; #Date#: Fri Dec 21 23:00:25 2007
+;;; #Date#: Fri Dec 21 23:04:39 2007
;;;
;;; --------------------------------------------------------------------------
;;; Documentation: Main functions
@@ -270,227 +270,3 @@
-
-;;;;; Alternative - Second mode with dashed screen
-;;(let ((num 5)
-;; (line-color "Green"))
-;; (defun draw-second-mode-window (window gc)
-;; (show-all-windows-in-workspace (current-workspace))
-;; (sleep 0.1)
-;; (display-finish-output *display*)
-;; (raise-window window)
-;; (setf (gcontext-foreground gc) (get-color line-color)
-;; (gcontext-line-style gc) :dash)
-;; (let ((dx (/ (drawable-width window) num))
-;; (dy (/ (drawable-height window) num)))
-;; (loop for i from 1 below num do
-;; (draw-line window gc (truncate (* i dx)) 0 0 (truncate (* i dy)))
-;; (draw-line window gc (truncate (* i dx)) (drawable-height window) (drawable-width window) (truncate (* i dy)))
-;; (draw-line window gc (truncate (* i dx)) 0 (drawable-width window) (truncate (* (- num i) dy)))
-;; (draw-line window gc (truncate (* (- num i) dx)) (drawable-height window) 0 (truncate (* i dy)))))
-;; (draw-line window gc 0 (drawable-height window) (drawable-width window) 0)
-;; (draw-line window gc 0 0 (drawable-width window) (drawable-height window))
-;; (setf (gcontext-line-style gc) :solid)
-;; (show-all-group (current-workspace) window gc)
-;; (no-focus)))
-;;
-;;(defmacro with-draw-second-mode-window ((hide show) &body body)
-;; (cond ((and hide show) `(progn
-;; (hide-window sm-window)
-;; , at body
-;; (draw-second-mode-window sm-window sm-gc)
-;; (display-force-output *display*)))
-;; (hide `(progn
-;; (hide-window sm-window)
-;; , at body
-;; (display-force-output *display*)))
-;; (show `(progn
-;; , at body
-;; (draw-second-mode-window sm-window sm-gc)
-;; (display-force-output *display*)))
-;; (t `(progn
-;; , at body
-;; (display-force-output *display*)))))
-;;
-;;
-;;(defun second-key-mode ()
-;; "Switch to editing mode"
-;; (let* ((sm-window (create-window :parent *root* :x 0 :y 0
-;; :width (screen-width *screen*) :height (screen-height *screen*)
-;; :colormap (screen-default-colormap *screen*)
-;; :event-mask '()))
-;; (sm-gc (create-gcontext :drawable sm-window
-;; :foreground (get-color "Red")
-;; :background (get-color "Black")
-;; :line-style :solid)))
-;; (labels ((handle-key-press (&rest event-slots &key root code state &allow-other-keys)
-;; (declare (ignore event-slots root))
-;; (funcall-key-from-code *second-keys* code state))
-;; (sm-handle-enter-notify (&rest event-slots &key window root-x root-y &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (unless (or (window-equal sm-window window)
-;; (window-equal window *root*))
-;; (with-draw-second-mode-window (t t)
-;; (focus-group-under-mouse root-x root-y))))
-;; (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
-;; (:motion-notify () t))
-;; (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)
-;; (show-all-group (current-workspace) sm-window sm-gc)
-;; (no-focus)))
-;; (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
-;; (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
-;; (sm-handle-configure-request (&rest event-slots &key window &allow-other-keys)
-;; (unless (window-equal sm-window window)
-;; (with-draw-second-mode-window (t t)
-;; (apply #'handle-configure-request event-slots))))
-;; (sm-handle-map-request (&rest event-slots &key window &allow-other-keys)
-;; (unless (window-equal sm-window window)
-;; (with-draw-second-mode-window (t t)
-;; (apply #'handle-map-request event-slots))))
-;; (sm-handle-unmap-notify (&rest event-slots &key window &allow-other-keys)
-;; (unless (window-equal sm-window window)
-;; (with-draw-second-mode-window (t t)
-;; (apply #'handle-unmap-notify event-slots))))
-;; (sm-handle-destroy-notify (&rest event-slots &key window &allow-other-keys)
-;; (unless (window-equal sm-window window)
-;; (with-draw-second-mode-window (t t)
-;; (apply #'handle-destroy-notify event-slots))))
-;; (handle-event (&rest event-slots &key display event-key &allow-other-keys)
-;; (declare (ignore display))
-;; (handler-case
-;; (case event-key
-;; (:key-press (with-draw-second-mode-window (t t)
-;; (apply #'handle-key-press event-slots)))
-;; (:enter-notify nil)
-;; (:motion-notify (apply #'handle-motion-notify event-slots))
-;; (:button-press (with-draw-second-mode-window (t nil)
-;; (apply #'handle-button-press event-slots)))
-;; (:button-release (with-draw-second-mode-window (nil t)
-;; (apply #'handle-button-release event-slots)))
-;; (:configure-request (apply #'sm-handle-configure-request event-slots))
-;; (:map-request (apply #'sm-handle-map-request event-slots))
-;; (:unmap-notify (apply #'sm-handle-unmap-notify event-slots))
-;; (:destroy-notify (apply #'sm-handle-destroy-notify event-slots))
-;; (:mapping-notify nil)
-;; (:property-notify nil)
-;; (:create-notify nil))
-;; ((or drawable-error window-error) (c)
-;; (declare (ignore c))))
-;; t))
-;; ;;(dbg "Second key ignore" c)))))
-;; (minimize-group (current-group))
-;; (map-window sm-window)
-;; (raise-window sm-window)
-;; (draw-second-mode-window sm-window sm-gc)
-;; (no-focus)
-;; (ungrab-main-keys)
-;; (xgrab-keyboard *root*)
-;; (xgrab-pointer *root* 66 67)
-;; (unwind-protect
-;; (catch 'exit-second-loop
-;; (loop
-;; (process-event *display* :handler #'handle-event)
-;; (display-finish-output *display*)))
-;; (free-gcontext sm-gc)
-;; (destroy-window sm-window)
-;; (xungrab-keyboard)
-;; (xungrab-pointer)
-;; (grab-main-keys))
-;; (adapt-window-to-group (current-window) (current-group))
-;; (focus-window (current-window))
-;; (show-all-group (current-workspace))
-;; (wait-no-key-or-button-press))))
-
-
-
-;;;;; Alternative - Second mode with big screen border
-;;(let ((border-size 5)
-;; (border-color "Green"))
-;; (defun second-key-mode ()
-;; "Switch to editing mode"
-;; (let* ((windows (list (create-window :parent *root* :x 0 :y 0
-;; :width (screen-width *screen*) :height border-size
-;; :background (get-color border-color)
-;; :colormap (screen-default-colormap *screen*))
-;; (create-window :parent *root* :x 0 :y (- (screen-height *screen*) border-size)
-;; :width (screen-width *screen*) :height border-size
-;; :background (get-color border-color)
-;; :colormap (screen-default-colormap *screen*))
-;; (create-window :parent *root* :x 0 :y border-size
-;; :width border-size :height (- (screen-height *screen*) (* border-size 2))
-;; :background (get-color border-color)
-;; :colormap (screen-default-colormap *screen*))
-;; (create-window :parent *root* :x (- (screen-width *screen*) border-size)
-;; :y border-size
-;; :width border-size :height (- (screen-height *screen*) (* border-size 2))
-;; :background (get-color border-color)
-;; :colormap (screen-default-colormap *screen*)))))
-;; (labels ((draw-second-mode-window ()
-;; (dolist (win windows)
-;; (raise-window win)))
-;; (handle-key-press (&rest event-slots &key root code state &allow-other-keys)
-;; (declare (ignore event-slots root))
-;; (funcall-key-from-code *second-keys* code state))
-;; (handle-enter-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (focus-group-under-mouse root-x root-y))
-;; (handle-motion-notify (&rest event-slots &key root-x root-y &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (unless (event-case (*display* :discard-p nil :peek-p t :timeout 0)
-;; (:motion-notify () t))
-;; (funcall-button-from-code *mouse-action* 'motion 0 root-x root-y #'first)))
-;; (handle-button-press (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (funcall-button-from-code *mouse-action* code state root-x root-y #'first))
-;; (handle-button-release (&rest event-slots &key root-x root-y code state &allow-other-keys)
-;; (declare (ignore event-slots))
-;; (funcall-button-from-code *mouse-action* code state root-x root-y #'third))
-;; (handle-event (&rest event-slots &key display event-key &allow-other-keys)
-;; (declare (ignore display))
-;; (handler-case
-;; (case event-key
-;; (:key-press (apply #'handle-key-press event-slots))
-;; (:enter-notify (apply #'handle-enter-notify event-slots))
-;; (:motion-notify (apply #'handle-motion-notify event-slots))
-;; (:button-press (apply #'handle-button-press event-slots))
-;; (:button-release (apply #'handle-button-release event-slots))
-;; (:configure-request (apply #'handle-configure-request event-slots))
-;; (:map-request (apply #'handle-map-request event-slots))
-;; (:unmap-notify (apply #'handle-unmap-notify event-slots))
-;; (:destroy-notify (apply #'handle-destroy-notify event-slots))
-;; (:mapping-notify nil)
-;; (:property-notify nil)
-;; (:create-notify nil))
-;; ((or drawable-error window-error) (c)
-;; (declare (ignore c))))
-;; (draw-second-mode-window)
-;; t))
-;; ;;(dbg "Second key ignore" c)))))
-;; (minimize-group (current-group))
-;; (dolist (win windows)
-;; (map-window win))
-;; (draw-second-mode-window)
-;; (no-focus)
-;; (ungrab-main-keys)
-;; (xgrab-keyboard *root*)
-;; (xgrab-pointer *root* 66 67)
-;; (unwind-protect
-;; (catch 'exit-second-loop
-;; (loop
-;; (process-event *display* :handler #'handle-event)
-;; (display-finish-output *display*)))
-;; (dolist (win windows)
-;; (destroy-window win))
-;; (xungrab-keyboard)
-;; (xungrab-pointer)
-;; (grab-main-keys))
-;; (adapt-window-to-group (current-window) (current-group))
-;; (focus-window (current-window))
-;; (show-all-group (current-workspace))
-;; (wait-no-key-or-button-press)))))
More information about the clfswm-cvs
mailing list