From pbrochard at common-lisp.net Tue Feb 1 22:08:03 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Tue, 01 Feb 2011 17:08:03 -0500
Subject: [clfswm-cvs] r397 - in clfswm: . doc src
Message-ID:
Author: pbrochard
Date: Tue Feb 1 17:08:02 2011
New Revision: 397
Log:
src/clfswm-util.lisp (run-or-raise): New function (thanks to Desmond O. Chang).
Modified:
clfswm/ChangeLog
clfswm/doc/dot-clfswmrc
clfswm/src/clfswm-circulate-mode.lisp
clfswm/src/clfswm-internal.lisp
clfswm/src/clfswm-util.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Tue Feb 1 17:08:02 2011
@@ -1,3 +1,10 @@
+2011-02-01 Desmond O. Chang
+
+ * src/clfswm-util.lisp (run-or-raise): New function (thanks to
+ Desmond O. Chang).
+
+ * src/clfswm-internal.lisp (with-all-*): add a nil block.
+
2011-01-28 Desmond O. Chang
* src/clfswm-util.lisp (xdg-config-home): XDG_CONFIG_HOME should
Modified: clfswm/doc/dot-clfswmrc
==============================================================================
--- clfswm/doc/dot-clfswmrc (original)
+++ clfswm/doc/dot-clfswmrc Tue Feb 1 17:08:02 2011
@@ -57,11 +57,31 @@
;;; Binding example: Undefine Control-F1 and define Control-F5 as a
;;; new binding in main mode
;;;
-;;; See bindings.lisp, bindings-second-mode.lisp and bindings-pager.lisp
-;;; for all default bindings definitions.
+;;; See bindings.lisp, bindings-second-mode.lisp for all default bindings definitions.
+;;
+;;(defun $start-emacs ()
+;; "Run or raise emacs"
+;; (setf *second-mode-leave-function*
+;; (lambda ()
+;; (run-or-raise (lambda (win) (string-equal "emacs"
+;; (xlib:get-wm-class win)))
+;; (lambda () (do-shell "cd $HOME && exec emacsclient -c")))))
+;; (leave-second-mode))
+;;
+;;(defun $start-conkeror ()
+;; "Run or raise conkeror"
+;; (setf *second-mode-leave-function*
+;; (lambda ()
+;; (run-or-raise (lambda (win) (string-equal "Navigator"
+;; (xlib:get-wm-class win)))
+;; (lambda () (do-shell "cd $HOME && exec conkeror")))))
+;; (leave-second-mode))
+;;
;;(defun binding-example ()
;; (undefine-main-key ("F1" :mod-1))
;; (define-main-key ("F5" :mod-1) 'help-on-clfswm)
+;; (define-second-key ("e") '$start-emacs)
+;; (define-second-key ("c") '$start-conkeror)
;; ;; Binding example for apwal
;; (define-second-key (#\Space)
;; (defun tpm-apwal ()
Modified: clfswm/src/clfswm-circulate-mode.lisp
==============================================================================
--- clfswm/src/clfswm-circulate-mode.lisp (original)
+++ clfswm/src/clfswm-circulate-mode.lisp Tue Feb 1 17:08:02 2011
@@ -76,7 +76,7 @@
(let ((len (length *circulate-orig*)))
(when (plusp len)
(let ((elem (nth (mod (incf *circulate-hit* direction) len) *circulate-orig*)))
- (setf child (nconc (list elem) (child-remove elem *circulate-orig*)))))
+ (setf child (cons elem (child-remove elem *circulate-orig*)))))
(show-all-children)
(draw-circulate-mode-window))))
@@ -94,7 +94,7 @@
(when (plusp len)
(when (frame-p *circulate-parent*)
(let ((elem (nth (mod (incf *circulate-hit* direction) len) *circulate-orig*)))
- (setf (frame-child *circulate-parent*) (nconc (list elem) (child-remove elem *circulate-orig*))
+ (setf (frame-child *circulate-parent*) (cons elem (child-remove elem *circulate-orig*))
*current-child* (frame-selected-child *circulate-parent*))))
(when frame-is-root?
(setf *current-root* *current-child*))))
@@ -111,7 +111,7 @@
(no-focus)
(with-slots (child) selected-child
(let ((elem (first (last child))))
- (setf child (nconc (list elem) (child-remove elem child)))
+ (setf child (cons elem (child-remove elem child)))
(show-all-children selected-child)
(draw-circulate-mode-window)))))))
Modified: clfswm/src/clfswm-internal.lisp
==============================================================================
--- clfswm/src/clfswm-internal.lisp (original)
+++ clfswm/src/clfswm-internal.lisp Tue Feb 1 17:08:02 2011
@@ -260,49 +260,53 @@
(defmacro with-all-children ((root child) &body body)
(let ((rec (gensym))
(sub-child (gensym)))
- `(labels ((,rec (,child)
- , at body
- (when (frame-p ,child)
- (dolist (,sub-child (reverse (frame-child ,child)))
- (,rec ,sub-child)))))
- (,rec ,root))))
+ `(block nil
+ (labels ((,rec (,child)
+ , at body
+ (when (frame-p ,child)
+ (dolist (,sub-child (reverse (frame-child ,child)))
+ (,rec ,sub-child)))))
+ (,rec ,root)))))
;; (with-all-children (*root-frame* child) (typecase child (xlib:window (print child)) (frame (print (frame-number child)))))
(defmacro with-all-children-reversed ((root child) &body body)
(let ((rec (gensym))
(sub-child (gensym)))
- `(labels ((,rec (,child)
- , at body
- (when (frame-p ,child)
- (dolist (,sub-child (frame-child ,child))
- (,rec ,sub-child)))))
- (,rec ,root))))
+ `(block nil
+ (labels ((,rec (,child)
+ , at body
+ (when (frame-p ,child)
+ (dolist (,sub-child (frame-child ,child))
+ (,rec ,sub-child)))))
+ (,rec ,root)))))
;; (with-all-frames (*root-frame* frame) (print (frame-number frame)))
(defmacro with-all-frames ((root frame) &body body)
(let ((rec (gensym))
(child (gensym)))
- `(labels ((,rec (,frame)
- (when (frame-p ,frame)
- , at body
- (dolist (,child (reverse (frame-child ,frame)))
- (,rec ,child)))))
- (,rec ,root))))
+ `(block nil
+ (labels ((,rec (,frame)
+ (when (frame-p ,frame)
+ , at body
+ (dolist (,child (reverse (frame-child ,frame)))
+ (,rec ,child)))))
+ (,rec ,root)))))
;; (with-all-windows (*root-frame* window) (print window))
(defmacro with-all-windows ((root window) &body body)
(let ((rec (gensym))
(child (gensym)))
- `(labels ((,rec (,window)
- (when (xlib:window-p ,window)
- , at body)
- (when (frame-p ,window)
- (dolist (,child (reverse (frame-child ,window)))
- (,rec ,child)))))
- (,rec ,root))))
+ `(block nil
+ (labels ((,rec (,window)
+ (when (xlib:window-p ,window)
+ , at body)
+ (when (frame-p ,window)
+ (dolist (,child (reverse (frame-child ,window)))
+ (,rec ,child)))))
+ (,rec ,root)))))
@@ -310,24 +314,26 @@
(defmacro with-all-windows-frames ((root child) body-window body-frame)
(let ((rec (gensym))
(sub-child (gensym)))
- `(labels ((,rec (,child)
- (typecase ,child
- (xlib:window ,body-window)
- (frame ,body-frame
- (dolist (,sub-child (reverse (frame-child ,child)))
- (,rec ,sub-child))))))
- (,rec ,root))))
+ `(block nil
+ (labels ((,rec (,child)
+ (typecase ,child
+ (xlib:window ,body-window)
+ (frame ,body-frame
+ (dolist (,sub-child (reverse (frame-child ,child)))
+ (,rec ,sub-child))))))
+ (,rec ,root)))))
(defmacro with-all-windows-frames-and-parent ((root child parent) body-window body-frame)
(let ((rec (gensym))
(sub-child (gensym)))
- `(labels ((,rec (,child ,parent)
- (typecase ,child
- (xlib:window ,body-window)
- (frame ,body-frame
- (dolist (,sub-child (reverse (frame-child ,child)))
- (,rec ,sub-child ,child))))))
- (,rec ,root nil))))
+ `(block nil
+ (labels ((,rec (,child ,parent)
+ (typecase ,child
+ (xlib:window ,body-window)
+ (frame ,body-frame
+ (dolist (,sub-child (reverse (frame-child ,child)))
+ (,rec ,sub-child ,child))))))
+ (,rec ,root nil)))))
@@ -1057,3 +1063,19 @@
(pushnew (xlib:window-id win) id-list))))))
(netwm-set-client-list id-list))
(setf *in-process-existing-windows* nil))
+
+
+;;; Child order manipulation functions
+(defun put-child-on-top (child parent)
+ "Put the child on top of its parent children"
+ (when (frame-p parent)
+ (setf (frame-child parent) (cons child (child-remove child (frame-child parent)))
+ (frame-selected-pos parent) 0)))
+
+(defun put-child-on-bottom (child parent)
+ "Put the child at the bottom of its parent children"
+ (when (frame-p parent)
+ (setf (frame-child parent) (append (child-remove child (frame-child parent)) (list child))
+ (frame-selected-pos parent) 0)))
+
+
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Tue Feb 1 17:08:02 2011
@@ -1512,3 +1512,22 @@
(open-notify-window '(("Welcome to CLFSWM" "yellow")
"Press Alt+F1 for help"))
(add-timer *notify-window-delay* #'close-notify-window))
+
+
+;;; Run or raise functions
+(defun run-or-raise (raisep run-fn &key (maximized nil))
+ (let ((window (with-all-windows (*root-frame* win)
+ (when (funcall raisep win)
+ (return win)))))
+ (if window
+ (let ((parent (find-parent-frame window)))
+ (hide-all-children *current-root*)
+ (setf *current-child* parent)
+ (put-child-on-top window parent)
+ (when maximized
+ (setf *current-root* parent))
+ (focus-all-children window parent)
+ (show-all-children *current-root*))
+ (funcall run-fn))))
+
+
From pbrochard at common-lisp.net Sat Feb 5 21:07:15 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sat, 05 Feb 2011 16:07:15 -0500
Subject: [clfswm-cvs] r398 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sat Feb 5 16:07:14 2011
New Revision: 398
Log:
src/keysyms.lisp: Add extended keysyms from stumpwm.
Modified:
clfswm/ChangeLog
clfswm/src/keysyms.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sat Feb 5 16:07:14 2011
@@ -1,3 +1,7 @@
+2011-02-05 Desmond O. Chang
+
+ * src/keysyms.lisp: Add extended keysyms from stumpwm.
+
2011-02-01 Desmond O. Chang
* src/clfswm-util.lisp (run-or-raise): New function (thanks to
Modified: clfswm/src/keysyms.lisp
==============================================================================
--- clfswm/src/keysyms.lisp (original)
+++ clfswm/src/keysyms.lisp Sat Feb 5 16:07:14 2011
@@ -1757,3 +1757,332 @@
(cl-define-keysym #x1002247 "notapproxeq") ;U+2247 NOT ALMOST EQUAL TO
(cl-define-keysym #x1002262 "notidentical") ;U+2262 NOT IDENTICAL TO
(cl-define-keysym #x1002263 "stricteq") ;U+2263 STRICTLY EQUIVALENT TO
+
+;; A bunch of extended keysyms
+
+(cl-define-keysym #x100000A8 "hpmute_acute")
+(cl-define-keysym #x100000A9 "hpmute_grave")
+(cl-define-keysym #x100000AA "hpmute_asciicircum")
+(cl-define-keysym #x100000AB "hpmute_diaeresis")
+(cl-define-keysym #x100000AC "hpmute_asciitilde")
+(cl-define-keysym #x100000AF "hplira")
+(cl-define-keysym #x100000BE "hpguilder")
+(cl-define-keysym #x100000EE "hpYdiaeresis")
+(cl-define-keysym #x100000EE "hpIO")
+(cl-define-keysym #x100000F6 "hplongminus")
+(cl-define-keysym #x100000FC "hpblock")
+(cl-define-keysym #x1000FF00 "apLineDel")
+(cl-define-keysym #x1000FF01 "apCharDel")
+(cl-define-keysym #x1000FF02 "apCopy")
+(cl-define-keysym #x1000FF03 "apCut")
+(cl-define-keysym #x1000FF04 "apPaste")
+(cl-define-keysym #x1000FF05 "apMove")
+(cl-define-keysym #x1000FF06 "apGrow")
+(cl-define-keysym #x1000FF07 "apCmd")
+(cl-define-keysym #x1000FF08 "apShell")
+(cl-define-keysym #x1000FF09 "apLeftBar")
+(cl-define-keysym #x1000FF0A "apRightBar")
+(cl-define-keysym #x1000FF0B "apLeftBox")
+(cl-define-keysym #x1000FF0C "apRightBox")
+(cl-define-keysym #x1000FF0D "apUpBox")
+(cl-define-keysym #x1000FF0E "apDownBox")
+(cl-define-keysym #x1000FF0F "apPop")
+(cl-define-keysym #x1000FF10 "apRead")
+(cl-define-keysym #x1000FF11 "apEdit")
+(cl-define-keysym #x1000FF12 "apSave")
+(cl-define-keysym #x1000FF13 "apExit")
+(cl-define-keysym #x1000FF14 "apRepeat")
+(cl-define-keysym #x1000FF48 "hpModelock1")
+(cl-define-keysym #x1000FF49 "hpModelock2")
+(cl-define-keysym #x1000FF6C "hpReset")
+(cl-define-keysym #x1000FF6D "hpSystem")
+(cl-define-keysym #x1000FF6E "hpUser")
+(cl-define-keysym #x1000FF6F "hpClearLine")
+(cl-define-keysym #x1000FF70 "hpInsertLine")
+(cl-define-keysym #x1000FF71 "hpDeleteLine")
+(cl-define-keysym #x1000FF72 "hpInsertChar")
+(cl-define-keysym #x1000FF73 "hpDeleteChar")
+(cl-define-keysym #x1000FF74 "hpBackTab")
+(cl-define-keysym #x1000FF75 "hpKP_BackTab")
+(cl-define-keysym #x1000FFA8 "apKP_parenleft")
+(cl-define-keysym #x1000FFA9 "apKP_parenright")
+(cl-define-keysym #x10004001 "I2ND_FUNC_L")
+(cl-define-keysym #x10004002 "I2ND_FUNC_R")
+(cl-define-keysym #x10004003 "IREMOVE")
+(cl-define-keysym #x10004004 "IREPEAT")
+(cl-define-keysym #x10004101 "IA1")
+(cl-define-keysym #x10004102 "IA2")
+(cl-define-keysym #x10004103 "IA3")
+(cl-define-keysym #x10004104 "IA4")
+(cl-define-keysym #x10004105 "IA5")
+(cl-define-keysym #x10004106 "IA6")
+(cl-define-keysym #x10004107 "IA7")
+(cl-define-keysym #x10004108 "IA8")
+(cl-define-keysym #x10004109 "IA9")
+(cl-define-keysym #x1000410A "IA10")
+(cl-define-keysym #x1000410B "IA11")
+(cl-define-keysym #x1000410C "IA12")
+(cl-define-keysym #x1000410D "IA13")
+(cl-define-keysym #x1000410E "IA14")
+(cl-define-keysym #x1000410F "IA15")
+(cl-define-keysym #x10004201 "IB1")
+(cl-define-keysym #x10004202 "IB2")
+(cl-define-keysym #x10004203 "IB3")
+(cl-define-keysym #x10004204 "IB4")
+(cl-define-keysym #x10004205 "IB5")
+(cl-define-keysym #x10004206 "IB6")
+(cl-define-keysym #x10004207 "IB7")
+(cl-define-keysym #x10004208 "IB8")
+(cl-define-keysym #x10004209 "IB9")
+(cl-define-keysym #x1000420A "IB10")
+(cl-define-keysym #x1000420B "IB11")
+(cl-define-keysym #x1000420C "IB12")
+(cl-define-keysym #x1000420D "IB13")
+(cl-define-keysym #x1000420E "IB14")
+(cl-define-keysym #x1000420F "IB15")
+(cl-define-keysym #x10004210 "IB16")
+(cl-define-keysym #x1000FF00 "DRemove")
+(cl-define-keysym #x1000FEB0 "Dring_accent")
+(cl-define-keysym #x1000FE5E "Dcircumflex_accent")
+(cl-define-keysym #x1000FE2C "Dcedilla_accent")
+(cl-define-keysym #x1000FE27 "Dacute_accent")
+(cl-define-keysym #x1000FE60 "Dgrave_accent")
+(cl-define-keysym #x1000FE7E "Dtilde")
+(cl-define-keysym #x1000FE22 "Ddiaeresis")
+(cl-define-keysym #x1004FF02 "osfCopy")
+(cl-define-keysym #x1004FF03 "osfCut")
+(cl-define-keysym #x1004FF04 "osfPaste")
+(cl-define-keysym #x1004FF07 "osfBackTab")
+(cl-define-keysym #x1004FF08 "osfBackSpace")
+(cl-define-keysym #x1004FF0B "osfClear")
+(cl-define-keysym #x1004FF1B "osfEscape")
+(cl-define-keysym #x1004FF31 "osfAddMode")
+(cl-define-keysym #x1004FF32 "osfPrimaryPaste")
+(cl-define-keysym #x1004FF33 "osfQuickPaste")
+(cl-define-keysym #x1004FF40 "osfPageLeft")
+(cl-define-keysym #x1004FF41 "osfPageUp")
+(cl-define-keysym #x1004FF42 "osfPageDown")
+(cl-define-keysym #x1004FF43 "osfPageRight")
+(cl-define-keysym #x1004FF44 "osfActivate")
+(cl-define-keysym #x1004FF45 "osfMenuBar")
+(cl-define-keysym #x1004FF51 "osfLeft")
+(cl-define-keysym #x1004FF52 "osfUp")
+(cl-define-keysym #x1004FF53 "osfRight")
+(cl-define-keysym #x1004FF54 "osfDown")
+(cl-define-keysym #x1004FF55 "osfPrior")
+(cl-define-keysym #x1004FF56 "osfNext")
+(cl-define-keysym #x1004FF57 "osfEndLine")
+(cl-define-keysym #x1004FF58 "osfBeginLine")
+(cl-define-keysym #x1004FF59 "osfEndData")
+(cl-define-keysym #x1004FF5A "osfBeginData")
+(cl-define-keysym #x1004FF5B "osfPrevMenu")
+(cl-define-keysym #x1004FF5C "osfNextMenu")
+(cl-define-keysym #x1004FF5D "osfPrevField")
+(cl-define-keysym #x1004FF5E "osfNextField")
+(cl-define-keysym #x1004FF60 "osfSelect")
+(cl-define-keysym #x1004FF63 "osfInsert")
+(cl-define-keysym #x1004FF65 "osfUndo")
+(cl-define-keysym #x1004FF67 "osfMenu")
+(cl-define-keysym #x1004FF69 "osfCancel")
+(cl-define-keysym #x1004FF6A "osfHelp")
+(cl-define-keysym #x1004FF71 "osfSelectAll")
+(cl-define-keysym #x1004FF72 "osfDeselectAll")
+(cl-define-keysym #x1004FF73 "osfReselect")
+(cl-define-keysym #x1004FF74 "osfExtend")
+(cl-define-keysym #x1004FF78 "osfRestore")
+(cl-define-keysym #x1004FF7E "osfSwitchDirection")
+(cl-define-keysym #x1004FFF5 "osfPriorMinor")
+(cl-define-keysym #x1004FFF6 "osfNextMinor")
+(cl-define-keysym #x1004FFF7 "osfRightLine")
+(cl-define-keysym #x1004FFF8 "osfLeftLine")
+(cl-define-keysym #x1004FFFF "osfDelete")
+(cl-define-keysym #x1005FF00 "SunFA_Grave")
+(cl-define-keysym #x1005FF01 "SunFA_Circum")
+(cl-define-keysym #x1005FF02 "SunFA_Tilde")
+(cl-define-keysym #x1005FF03 "SunFA_Acute")
+(cl-define-keysym #x1005FF04 "SunFA_Diaeresis")
+(cl-define-keysym #x1005FF05 "SunFA_Cedilla")
+(cl-define-keysym #x1005FF10 "SunF36")
+(cl-define-keysym #x1005FF11 "SunF37")
+(cl-define-keysym #x1005FF60 "SunSys_Req")
+(cl-define-keysym #x1005FF70 "SunProps")
+(cl-define-keysym #x1005FF71 "SunFront")
+(cl-define-keysym #x1005FF72 "SunCopy")
+(cl-define-keysym #x1005FF73 "SunOpen")
+(cl-define-keysym #x1005FF74 "SunPaste")
+(cl-define-keysym #x1005FF75 "SunCut")
+(cl-define-keysym #x1005FF76 "SunPowerSwitch")
+(cl-define-keysym #x1005FF77 "SunAudioLowerVolume")
+(cl-define-keysym #x1005FF78 "SunAudioMute")
+(cl-define-keysym #x1005FF79 "SunAudioRaiseVolume")
+(cl-define-keysym #x1005FF7A "SunVideoDegauss")
+(cl-define-keysym #x1005FF7B "SunVideoLowerBrightness")
+(cl-define-keysym #x1005FF7C "SunVideoRaiseBrightness")
+(cl-define-keysym #x1005FF7D "SunPowerSwitchShift")
+(cl-define-keysym #xFF20 "SunCompose")
+(cl-define-keysym #xFF55 "SunPageUp")
+(cl-define-keysym #xFF56 "SunPageDown")
+(cl-define-keysym #xFF61 "SunPrint_Screen")
+(cl-define-keysym #xFF65 "SunUndo")
+(cl-define-keysym #xFF66 "SunAgain")
+(cl-define-keysym #xFF68 "SunFind")
+(cl-define-keysym #xFF69 "SunStop")
+(cl-define-keysym #xFF7E "SunAltGraph")
+(cl-define-keysym #x1006FF00 "WYSetup")
+(cl-define-keysym #x1006FF00 "ncdSetup")
+(cl-define-keysym #x10070001 "XeroxPointerButton1")
+(cl-define-keysym #x10070002 "XeroxPointerButton2")
+(cl-define-keysym #x10070003 "XeroxPointerButton3")
+(cl-define-keysym #x10070004 "XeroxPointerButton4")
+(cl-define-keysym #x10070005 "XeroxPointerButton5")
+(cl-define-keysym #x1008FF01 "XF86ModeLock")
+(cl-define-keysym #x1008FF10 "XF86Standby")
+(cl-define-keysym #x1008FF11 "XF86AudioLowerVolume")
+(cl-define-keysym #x1008FF12 "XF86AudioMute")
+(cl-define-keysym #x1008FF13 "XF86AudioRaiseVolume")
+(cl-define-keysym #x1008FF14 "XF86AudioPlay")
+(cl-define-keysym #x1008FF15 "XF86AudioStop")
+(cl-define-keysym #x1008FF16 "XF86AudioPrev")
+(cl-define-keysym #x1008FF17 "XF86AudioNext")
+(cl-define-keysym #x1008FF18 "XF86HomePage")
+(cl-define-keysym #x1008FF19 "XF86Mail")
+(cl-define-keysym #x1008FF1A "XF86Start")
+(cl-define-keysym #x1008FF1B "XF86Search")
+(cl-define-keysym #x1008FF1C "XF86AudioRecord")
+(cl-define-keysym #x1008FF1D "XF86Calculator")
+(cl-define-keysym #x1008FF1E "XF86Memo")
+(cl-define-keysym #x1008FF1F "XF86ToDoList")
+(cl-define-keysym #x1008FF20 "XF86Calendar")
+(cl-define-keysym #x1008FF21 "XF86PowerDown")
+(cl-define-keysym #x1008FF22 "XF86ContrastAdjust")
+(cl-define-keysym #x1008FF23 "XF86RockerUp")
+(cl-define-keysym #x1008FF24 "XF86RockerDown")
+(cl-define-keysym #x1008FF25 "XF86RockerEnter")
+(cl-define-keysym #x1008FF26 "XF86Back")
+(cl-define-keysym #x1008FF27 "XF86Forward")
+(cl-define-keysym #x1008FF28 "XF86Stop")
+(cl-define-keysym #x1008FF29 "XF86Refresh")
+(cl-define-keysym #x1008FF2A "XF86PowerOff")
+(cl-define-keysym #x1008FF2B "XF86WakeUp")
+(cl-define-keysym #x1008FF2C "XF86Eject")
+(cl-define-keysym #x1008FF2D "XF86ScreenSaver")
+(cl-define-keysym #x1008FF2E "XF86WWW")
+(cl-define-keysym #x1008FF2F "XF86Sleep")
+(cl-define-keysym #x1008FF30 "XF86Favorites")
+(cl-define-keysym #x1008FF31 "XF86AudioPause")
+(cl-define-keysym #x1008FF32 "XF86AudioMedia")
+(cl-define-keysym #x1008FF33 "XF86MyComputer")
+(cl-define-keysym #x1008FF34 "XF86VendorHome")
+(cl-define-keysym #x1008FF35 "XF86LightBulb")
+(cl-define-keysym #x1008FF36 "XF86Shop")
+(cl-define-keysym #x1008FF37 "XF86History")
+(cl-define-keysym #x1008FF38 "XF86OpenURL")
+(cl-define-keysym #x1008FF39 "XF86AddFavorite")
+(cl-define-keysym #x1008FF3A "XF86HotLinks")
+(cl-define-keysym #x1008FF3B "XF86BrightnessAdjust")
+(cl-define-keysym #x1008FF3C "XF86Finance")
+(cl-define-keysym #x1008FF3D "XF86Community")
+(cl-define-keysym #x1008FF3E "XF86AudioRewind")
+(cl-define-keysym #x1008FF3F "XF86BackForward")
+(cl-define-keysym #x1008FF40 "XF86Launch0")
+(cl-define-keysym #x1008FF41 "XF86Launch1")
+(cl-define-keysym #x1008FF42 "XF86Launch2")
+(cl-define-keysym #x1008FF43 "XF86Launch3")
+(cl-define-keysym #x1008FF44 "XF86Launch4")
+(cl-define-keysym #x1008FF45 "XF86Launch5")
+(cl-define-keysym #x1008FF46 "XF86Launch6")
+(cl-define-keysym #x1008FF47 "XF86Launch7")
+(cl-define-keysym #x1008FF48 "XF86Launch8")
+(cl-define-keysym #x1008FF49 "XF86Launch9")
+(cl-define-keysym #x1008FF4A "XF86LaunchA")
+(cl-define-keysym #x1008FF4B "XF86LaunchB")
+(cl-define-keysym #x1008FF4C "XF86LaunchC")
+(cl-define-keysym #x1008FF4D "XF86LaunchD")
+(cl-define-keysym #x1008FF4E "XF86LaunchE")
+(cl-define-keysym #x1008FF4F "XF86LaunchF")
+(cl-define-keysym #x1008FF50 "XF86ApplicationLeft")
+(cl-define-keysym #x1008FF51 "XF86ApplicationRight")
+(cl-define-keysym #x1008FF52 "XF86Book")
+(cl-define-keysym #x1008FF53 "XF86CD")
+(cl-define-keysym #x1008FF54 "XF86Calculater")
+(cl-define-keysym #x1008FF55 "XF86Clear")
+(cl-define-keysym #x1008FF56 "XF86Close")
+(cl-define-keysym #x1008FF57 "XF86Copy")
+(cl-define-keysym #x1008FF58 "XF86Cut")
+(cl-define-keysym #x1008FF59 "XF86Display")
+(cl-define-keysym #x1008FF5A "XF86DOS")
+(cl-define-keysym #x1008FF5B "XF86Documents")
+(cl-define-keysym #x1008FF5C "XF86Excel")
+(cl-define-keysym #x1008FF5D "XF86Explorer")
+(cl-define-keysym #x1008FF5E "XF86Game")
+(cl-define-keysym #x1008FF5F "XF86Go")
+(cl-define-keysym #x1008FF60 "XF86iTouch")
+(cl-define-keysym #x1008FF61 "XF86LogOff")
+(cl-define-keysym #x1008FF62 "XF86Market")
+(cl-define-keysym #x1008FF63 "XF86Meeting")
+(cl-define-keysym #x1008FF65 "XF86MenuKB")
+(cl-define-keysym #x1008FF66 "XF86MenuPB")
+(cl-define-keysym #x1008FF67 "XF86MySites")
+(cl-define-keysym #x1008FF68 "XF86New")
+(cl-define-keysym #x1008FF69 "XF86News")
+(cl-define-keysym #x1008FF6A "XF86OfficeHome")
+(cl-define-keysym #x1008FF6B "XF86Open")
+(cl-define-keysym #x1008FF6C "XF86Option")
+(cl-define-keysym #x1008FF6D "XF86Paste")
+(cl-define-keysym #x1008FF6E "XF86Phone")
+(cl-define-keysym #x1008FF70 "XF86Q")
+(cl-define-keysym #x1008FF72 "XF86Reply")
+(cl-define-keysym #x1008FF73 "XF86Reload")
+(cl-define-keysym #x1008FF74 "XF86RotateWindows")
+(cl-define-keysym #x1008FF75 "XF86RotationPB")
+(cl-define-keysym #x1008FF76 "XF86RotationKB")
+(cl-define-keysym #x1008FF77 "XF86Save")
+(cl-define-keysym #x1008FF78 "XF86ScrollUp")
+(cl-define-keysym #x1008FF79 "XF86ScrollDown")
+(cl-define-keysym #x1008FF7A "XF86ScrollClick")
+(cl-define-keysym #x1008FF7B "XF86Send")
+(cl-define-keysym #x1008FF7C "XF86Spell")
+(cl-define-keysym #x1008FF7D "XF86SplitScreen")
+(cl-define-keysym #x1008FF7E "XF86Support")
+(cl-define-keysym #x1008FF7F "XF86TaskPane")
+(cl-define-keysym #x1008FF80 "XF86Terminal")
+(cl-define-keysym #x1008FF81 "XF86Tools")
+(cl-define-keysym #x1008FF82 "XF86Travel")
+(cl-define-keysym #x1008FF84 "XF86UserPB")
+(cl-define-keysym #x1008FF85 "XF86User1KB")
+(cl-define-keysym #x1008FF86 "XF86User2KB")
+(cl-define-keysym #x1008FF87 "XF86Video")
+(cl-define-keysym #x1008FF88 "XF86WheelButton")
+(cl-define-keysym #x1008FF89 "XF86Word")
+(cl-define-keysym #x1008FF8A "XF86Xfer")
+(cl-define-keysym #x1008FF8B "XF86ZoomIn")
+(cl-define-keysym #x1008FF8C "XF86ZoomOut")
+(cl-define-keysym #x1008FF8D "XF86Away")
+(cl-define-keysym #x1008FF8E "XF86Messenger")
+(cl-define-keysym #x1008FF8F "XF86WebCam")
+(cl-define-keysym #x1008FF90 "XF86MailForward")
+(cl-define-keysym #x1008FF91 "XF86Pictures")
+(cl-define-keysym #x1008FF92 "XF86Music")
+(cl-define-keysym #x1008FE01 "XF86_Switch_VT_1")
+(cl-define-keysym #x1008FE02 "XF86_Switch_VT_2")
+(cl-define-keysym #x1008FE03 "XF86_Switch_VT_3")
+(cl-define-keysym #x1008FE04 "XF86_Switch_VT_4")
+(cl-define-keysym #x1008FE05 "XF86_Switch_VT_5")
+(cl-define-keysym #x1008FE06 "XF86_Switch_VT_6")
+(cl-define-keysym #x1008FE07 "XF86_Switch_VT_7")
+(cl-define-keysym #x1008FE08 "XF86_Switch_VT_8")
+(cl-define-keysym #x1008FE09 "XF86_Switch_VT_9")
+(cl-define-keysym #x1008FE0A "XF86_Switch_VT_10")
+(cl-define-keysym #x1008FE0B "XF86_Switch_VT_11")
+(cl-define-keysym #x1008FE0C "XF86_Switch_VT_12")
+(cl-define-keysym #x1008FE20 "XF86_Ungrab")
+(cl-define-keysym #x1008FE21 "XF86_ClearGrab")
+(cl-define-keysym #x1008FE22 "XF86_Next_VMode")
+(cl-define-keysym #x1008FE23 "XF86_Prev_VMode")
+(cl-define-keysym #x100000A8 "usldead_acute")
+(cl-define-keysym #x100000A9 "usldead_grave")
+(cl-define-keysym #x100000AB "usldead_diaeresis")
+(cl-define-keysym #x100000AA "usldead_asciicircum")
+(cl-define-keysym #x100000AC "usldead_asciitilde")
+(cl-define-keysym #x1000FE2C "usldead_cedilla")
+(cl-define-keysym #x1000FEB0 "usldead_ring")
From pbrochard at common-lisp.net Sat Feb 5 21:34:18 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sat, 05 Feb 2011 16:34:18 -0500
Subject: [clfswm-cvs] r399 - in clfswm: . doc
Message-ID:
Author: pbrochard
Date: Sat Feb 5 16:34:18 2011
New Revision: 399
Log:
Documentation update
Modified:
clfswm/doc/menu.html
clfswm/doc/menu.txt
clfswm/load.lisp
Modified: clfswm/doc/menu.html
==============================================================================
--- clfswm/doc/menu.html (original)
+++ clfswm/doc/menu.html Sat Feb 5 16:34:18 2011
@@ -171,7 +171,10 @@
f: Mousepad - Simple text editor
- g: Xfw - A simple text editor for Xfe
+ g: PDF Editor
+
+
+ h: Xfw - A simple text editor for Xfe
@@ -212,25 +215,28 @@
b: Chromium - Access the Internet
- c: Epiphany - Browse the web
+ c: Conkeror - Conkeror is a Mozilla-based web browser whose design is inspired by GNU Emacs
- d: Firefox - Safe Mode
+ d: Epiphany - Browse the web
- e: Firefox
+ e: Firefox - Safe Mode
- f: IcedTea Web Start - IcedTea Application Launcher
+ f: Firefox
g: Konqueror
- h: Midori - Lightweight web browser
+ h: rekonq
+
+
+ i: Midori - Lightweight web browser
- i: Opera - A fast and secure web browser and Internet suite
+ j: Opera - A fast and secure web browser and Internet suite
@@ -252,67 +258,100 @@
e: Brasero - Create and copy CDs and DVDs
- f: Gnome Music Player Client - A gnome frontend for the mpd daemon
+ f: Cinelerra - Video Editor
+
+
+ g: Freevo - Home theatre
+
+
+ h: Camelot - Gmerlin webcam application
+
+
+ i: Gmerlin KBD - Configure the Gmerlin keyboard daemon
+
+
+ j: Gmerlin player - Multiformat mediaplayer
+
+
+ k: Gmerlin plugin configurator - Configure gmerlin plugins
- g: Sound Recorder - Record sound clips
+ l: Gmerlin transcoder - Gmerlin multimedia transcoder
- h: Volume Control - Change sound volume and sound events
+ m: Gmerlin visualizer - Run visualization plugins
- i: Grip - CD player/ripper
+ n: Gnome Music Player Client - A gnome frontend for the mpd daemon
- j: gtk-recordMyDesktop - Frontend for recordMyDesktop
+ o: Sound Recorder - Record sound clips
- k: Hydrogen Drum Machine - Create drum sequences
+ p: Volume Control - Change sound volume and sound events
- l: Dragon Player
+ q: Grip - CD player/ripper
- m: JuK
+ r: gtk-recordMyDesktop - Frontend for recordMyDesktop
- n: K3b - Disk writing program
+ s: Hydrogen Drum Machine - Create drum sequences
- o: KMix
+ t: Dragon Player
- p: KsCD
+ u: JuK
- q: Mixxx - A digital DJ interface
+ v: K3b - Disk writing program
- r: MPlayer Media Player - Play movies and songs
+ w: Kdenlive - Nonlinear video editor for KDE
- s: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
+ x: KMix
- t: qt-recordMyDesktop - Frontend for recordMyDesktop
+ y: KsCD
- u: Sonata - An elegant GTK+ MPD client
+ z: Mixxx - A digital DJ interface
- v: Audio CD Extractor - Copy music from your CDs
+ |: MPlayer Media Player - Play movies and songs
- w: VLC media player - Read, capture, broadcast your multimedia streams
+ |: Open Movie Editor - Video Editor
- x: Mixer - Audio mixer for the Xfce Desktop Environment
+ |: OpenShot Video Editor - Create and edit videos and movies
- y: XMMS - X Multimedia System
+ |: QjackCtl
- QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
- z: zynaddsubfx - An opensource software synthesizer
+ |: qt-recordMyDesktop - Frontend for recordMyDesktop
+
+
+ |: Sonata - An elegant GTK+ MPD client
+
+
+ |: Audio CD Extractor - Copy music from your CDs
+
+
+ |: VLC media player - Read, capture, broadcast your multimedia streams
+
+
+ |: Mixer - Audio mixer for the Xfce Desktop Environment
+
+
+ |: XMMS - X Multimedia System
+
+
+ |: zynaddsubfx - An opensource software synthesizer
@@ -340,7 +379,7 @@
g: MPlayer Media Player - Play movies and songs
- h: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
+ h: QjackCtl
- QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
i: Audio CD Extractor - Copy music from your CDs
@@ -358,6 +397,9 @@
b: MPlayer Media Player - Play movies and songs
+
+ c: OpenShot Video Editor - Create and edit videos and movies
+
Development
@@ -366,64 +408,76 @@
a: CMake - Cross-platform buildsystem
- b: Qt Assistant
+ b: Qt Assistant - Shows Qt documentation and examples
c: Data Display Debugger - Graphical debugger frontend
- d: Qt Designer
+ d: Qt Designer - Design GUIs for Qt applications
+
+
+ e: DrRacket - DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages.
+
+
+ f: EAGLE Light Edition
+
+
+ g: Eeschema - Design a printed circuit board.
- e: Emacs Text Editor - Edit text
+ h: Emacs Text Editor - Edit text
- f: Factor - Factor is a general purpose, dynamically typed, stack-based programming language
+ i: Factor - Factor is a general purpose, dynamically typed, stack-based programming language
- g: OpenJDK Monitoring & Management Console - Monitor and manage OpenJDK applications
+ j: Java Monitoring and Management Console
- h: Akonadi Console - Akonadi Management and Debugging Console
+ k: Java VisualVM
- i: Cervisia
+ l: Akonadi Console - Akonadi Management and Debugging Console
- j: KAppTemplate
+ m: Cervisia
- k: KBugBuster
+ n: KAppTemplate
- l: KCachegrind - Visualization of Performance Profiling Data
+ o: KBugBuster
- m: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program.
+ p: KCachegrind - Visualization of Performance Profiling Data
- n: KImageMapEditor
+ q: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program.
- o: KLinkStatus
+ r: KImageMapEditor
- p: Kompare
+ s: KLinkStatus
- q: KUIViewer
+ t: Kompare
- r: Lokalize
+ u: KUIViewer
- s: Umbrello
+ v: Lokalize
- t: Qt Linguist
+ w: Umbrello
- u: OpenJDK Policy Tool - Manage OpenJDK policy files
+ x: KiCad - Design a printed circuit board.
+
+
+ y: Qt Linguist - Add translations to Qt applications
@@ -433,64 +487,91 @@
a: Avogadro - Advanced molecular editor
- b: Blinken - A memory enhancement game
+ b: Circle and Ruler - Geometry program
+
+
+ c: DrGeo
+
+
+ d: DrRacket - DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages.
- c: Cantor
+ e: GeoGebra
- Create interactive mathematical constructions and applets.
- d: KAlgebra - Math Expression Solver and Plotter
+ f: geometria
- e: Kalzium - KDE Periodic Table of Elements
+ g: Blinken - A memory enhancement game
- f: Kanagram - KDE Letter Order Game
+ h: Cantor
- g: KBruch - Practice exercises with fractions
+ i: KAlgebra - Math Expression Solver and Plotter
- h: KGeography - A Geography Learning Program
+ j: Kalzium - KDE Periodic Table of Elements
- i: KHangMan - KDE Hangman Game
+ k: Kanagram - KDE Letter Order Game
- j: Kig - Explore Geometric Constructions
+ l: KBruch - Practice exercises with fractions
- k: Kiten - Japanese Reference and Study Tool
+ m: KGeography - A Geography Learning Program
- l: KLettres - a KDE program to learn the alphabet
+ n: KHangMan - KDE Hangman Game
- m: KmPlot - Function Plotter
+ o: Kig - Explore Geometric Constructions
- n: KStars - Desktop Planetarium
+ p: Kiten - Japanese Reference and Study Tool
- o: KTouch
+ q: KLettres - a KDE program to learn the alphabet
- p: KTurtle
+ r: KmPlot - Function Plotter
- q: KWordQuiz - A flashcard and vocabulary learning program
+ s: KStars - Desktop Planetarium
- r: Marble
+ t: KTouch
- s: Parley
+ u: KTurtle
- t: Rocs - Graph Theory Tool for Professors and Students.
+ v: KWordQuiz - A flashcard and vocabulary learning program
- u: Step - Simulate physics experiments
+ w: Marble
+
+
+ x: Parley
+
+
+ y: Rocs - Graph Theory Tool for Professors and Students.
+
+
+ z: Step - Simulate physics experiments
+
+
+ |: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits
+
+
+ |: Pyromaths - G?n?rateur d'exercices de maths
+
+
+ |: QtOctave - GUI for GNU Octave
+
+
+ |: wxMaxima - Perform symbolic and numeric calculations using Maxima
@@ -506,73 +587,85 @@
c: AssaultCube
- d: DROD - Simple puzzle game.
+ d: DreamChess
+
+
+ e: DROD - Simple puzzle game.
+
+
+ f: eBoard
+
+
+ g: Einstein - Einstein puzzle
- e: Flobopuyo - A remake of the famous PuyoPuyo
+ h: Flobopuyo - A remake of the famous PuyoPuyo
- f: Foobillard - A 3D billiards game using OpenGL
+ i: Foobillard - A 3D billiards game using OpenGL
- g: Frasse - Frasse and the Peas of Kejick adventure game
+ j: Frasse - Frasse and the Peas of Kejick adventure game
- h: Frogatto - Old-school 2D platformer
+ k: Frogatto - Old-school 2D platformer
- i: GGoban - Play go and review game records
+ l: GGoban - Play go and review game records
- j: Hedgewars - Worms style game
+ m: glChess
- k: KGoldrunner - A game of action and puzzle-solving
+ n: Hedgewars - Worms style game
- l: AMOR
+ o: KGoldrunner - A game of action and puzzle-solving
- m: Blinken - A memory enhancement game
+ p: AMOR
- n: Bomber
+ q: Blinken - A memory enhancement game
- o: Bovo
+ r: Bomber
- p: Granatier
+ s: Bovo
- q: Kanagram - KDE Letter Order Game
+ t: Granatier
- r: Kapman - Eat pills escaping ghosts
+ u: Kanagram - KDE Letter Order Game
- s: KAtomic
+ v: Kapman - Eat pills escaping ghosts
- t: KBattleship
+ w: KAtomic
- u: KBlackBox
+ x: KBattleship
- v: KBlocks
+ y: KBlackBox
- w: KBounce
+ z: KBlocks
- x: KBreakOut
+ |: KBounce
- y: KSnake
+ |: KBreakOut
- z: KDiamond
+ |: KSnake
+
+
+ |: KDiamond
|: KFourInLine
@@ -605,6 +698,9 @@
|: KNetWalk
+ |: Knights
+
+
|: Kolf
@@ -659,15 +755,39 @@
|: Palapeli
+ |: KoboDeluxe - An excellent 2D Shootem-up game.
+
+
+ |: ManiaDrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay
+
+
+ |: mechtower(failsafe)
+
+
+ |: mechtower
+
+
|: Neverball - A 3D arcade game with a ball
|: Neverputt - A 3D mini golf game
+ |: Numpty Physics
+
+
|: OpenArena - A Quake3-based FPS Game
+ |: OpenTTD
+
+
+ |: Pacdefence - Tower defence game.
+
+
+ |: pouetChess - Play a game of chess, either against another player or against the AI
+
+
|: SolarWolf
@@ -686,6 +806,9 @@
|: Battle for Wesnoth Map Editor - A map editor for Battle for Wesnoth maps
+ |: XBoard - An X Window System graphical chessboard
+
+
|: Xmoto
@@ -696,58 +819,58 @@
Graphics
- a: Image Viewer
+ a: LibreOffice Draw
- b: PostScript Viewer - View PostScript files
+ b: Image Viewer
- c: GNU Image Manipulation Program - Create images and edit photographs
+ c: Document Viewer - View multi-page documents
- d: Image Viewer
+ d: Geeqie - View and manage images
- e: GV
+ e: PostScript Viewer - View PostScript files
- f: Inkscape - Create and edit Scalable Vector Graphics images
+ f: GNU Image Manipulation Program - Create images and edit photographs
- g: Gwenview - A simple image viewer
+ g: Image Viewer
- h: KColorChooser
+ h: GQview - View and manage images
- i: KolourPaint
+ i: gThumb - View and organize your images
- j: KRuler
+ j: gThumb - View and organize your images
- k: KSnapshot
+ k: GV
- l: Okular
+ l: Inkscape - Create and edit Scalable Vector Graphics images
- m: Okular
+ m: digiKam
- n: Okular
+ n: Gwenview - A simple image viewer
- o: Okular
+ o: KColorChooser
- p: Okular
+ p: KolourPaint
- q: Okular
+ q: KRuler
- r: Okular
+ r: KSnapshot
s: Okular
@@ -777,9 +900,42 @@
|: Okular
+ |: Okular
+
+
+ |: Okular
+
+
+ |: Okular
+
+
+ |: Okular
+
+
+ |: Okular
+
+
+ |: Okular
+
+
+ |: Okular
+
+
+ |: showFoto - Manage your photographs like a professional with the power of open source
+
+
+ |: MuPDF - PDF file viewer
+
+
|: Xfig
+ |: xgps - Display GPS information from a gpsd daemon
+
+
+ |: xgpsspeed - Display GPS speed from a gpsd daemon
+
+
|: XSane - Scanning - Acquire images from a scanner
@@ -802,72 +958,87 @@
e: Chromium - Access the Internet
- f: Epiphany - Browse the web
+ f: Conkeror - Conkeror is a Mozilla-based web browser whose design is inspired by GNU Emacs
- g: Minefield - Safe Mode
+ g: Ekiga Softphone - Talk to people over the Internet
- h: Minefield
+ h: Epiphany - Browse the web
- i: Firefox - Safe Mode
+ i: Minefield - Safe Mode
- j: Firefox
+ j: Minefield
- k: Gnaughty - Porn downloader
+ k: Firefox - Safe Mode
- l: Gwget Download Manager - Download files from the Internet
+ l: Firefox
- m: JAP - JAP makes it possible to surf the internet anonymously and unobservably.
+ m: Gnaughty - Porn downloader
- n: IcedTea Web Start - IcedTea Application Launcher
+ n: Gwget Download Manager - Download files from the Internet
- o: KMail
+ o: Iron Web Browser - Browse the World Wide Web
- p: KNode
+ p: JAP - JAP makes it possible to surf the internet anonymously and unobservably.
- q: KPPP
+ q: Java Web Start
- r: Akregator - A Feed Reader for KDE
+ r: KMail
- s: Blogilo
+ s: KNode
- t: KGet
+ t: KPPP
- u: KNetAttach
+ u: Akregator - A Feed Reader for KDE
- v: Konqueror
+ v: Blogilo
- w: Kopete - Instant Messenger
+ w: KGet
- x: KPPPLogview
+ x: KNetAttach
- y: KRDC
+ y: Konqueror
- z: Krfb
+ z: Kopete - Instant Messenger
+
+
+ |: KPPPLogview
+
+
+ |: KRDC
+
+
+ |: Krfb
+
+
+ |: rekonq
|: Midori - Lightweight web browser
+ |: MLDonkey GUI - multi-protocol P2P program
+
+
|: MultiGet
@@ -889,6 +1060,12 @@
|: Tucan Manager - Download and upload manager for hosting sites.
+ |: unison - File synchronisation tool for X11
+
+
+ |: LibreOffice Writer/Web
+
+
|: Wicd - Manage Wired/Wireless Networks
@@ -905,22 +1082,22 @@
a: AbiWord
- b: OpenOffice.org 3.2 Base
+ b: LibreOffice Base
- c: OpenOffice.org 3.2 Calc
+ c: LibreOffice Calc
- d: OpenOffice.org 3.2 Draw
+ d: ePDFViewer - Lightweight PDF document viewer
- e: ePDFViewer - Lightweight PDF document viewer
+ e: Evolution - Manage your email, contacts and schedule
f: GV
- g: OpenOffice.org 3.2 Impress
+ g: LibreOffice Impress
h: Kontact
@@ -956,28 +1133,40 @@
r: LibreOffice 3.3 Writer
- s: OOo4Kids 1.0 Calc
+ s: Lyx - Latex WYSIWYM Editor
+
+
+ t: LibreOffice Extension Manager
+
+
+ u: OOo4Kids 1.1 Calc
+
+
+ v: OOo4Kids 1.1 Draw
- t: OOo4Kids 1.0 Draw
+ w: OOo4Kids 1.1 Impress
- u: OOo4Kids 1.0 Impress
+ x: OOo4Kids 1.1 Math
- v: OOo4Kids 1.0 Math
+ y: OOo4Kids 1.1
- w: OOo4Kids 1.0
+ z: OOo4Kids 1.1 Printer Administration
- x: OOo4Kids 1.0 Printer Administration
+ |: OOo4Kids 1.1 Writer
- y: OOo4Kids 1.0 Writer
+ |: LibreOffice Quickstarter
- z: Orage - Desktop calendar
+ |: LibreOffice
+
+
+ |: Orage - Desktop calendar
|: Xpdf - Views Adobe PDF (acrobat) files
@@ -996,73 +1185,82 @@
c: Monitors - Change resolution and position of monitors
- d: Preferred Applications
+ d: Email Settings - Configure email accounts
+
+
+ e: Preferred Applications
- e: Keyboard Indicator plugins - Enable/disable installed plugins
+ f: Keyboard Indicator plugins - Enable/disable installed plugins
- f: Privilege granting - Configure behavior of the privilege-granting tool
+ g: Privilege granting - Configure behavior of the privilege-granting tool
- g: About Me - Set your personal information
+ h: About Me - Set your personal information
- h: Appearance - Customize the look of your desktop
+ i: Appearance - Customize the look of your desktop
- i: Network Proxy - Set your network proxy preferences
+ j: Network Proxy - Set your network proxy preferences
- j: Screensaver - Change screensaver properties
+ k: Screensaver - Change screensaver properties
- k: Mouse - Configure pointer device behavior and appearance
+ l: Mouse - Configure pointer device behavior and appearance
- l: Volume Control - Change sound volume and sound events
+ m: Volume Control - Change sound volume and sound events
- m: Control Center
+ n: Control Center
- n: Multimedia Systems Selector - Configure defaults for GStreamer applications
+ o: Multimedia Systems Selector - Configure defaults for GStreamer applications
- o: Touchpad - Set your touchpad preferences
+ p: Touchpad - Set your touchpad preferences
- p: Menu Updating Tool
+ q: Java Control Panel
- q: Change Password
+ r: Java Policy Settings
- r: Menu Editor
+ s: Menu Updating Tool
- s: System Settings
+ t: Change Password
- t: Keyboard Shortcuts - Assign shortcut keys to commands
+ u: Menu Editor
- u: Keyboard - Edit keyboard settings and application shortcuts
+ v: System Settings
- v: Preferred Applications
+ w: Keyboard Shortcuts - Assign shortcut keys to commands
- w: Customize Look and Feel - Customizes look and feel of your desktop and applications
+ x: Keyboard - Edit keyboard settings and application shortcuts
- x: Monitor Settings - Change screen resolution and configure external monitors
+ y: Preferred Applications
- y: File Management - Change the behaviour and appearance of file manager windows
+ z: Customize Look and Feel - Customizes look and feel of your desktop and applications
- z: Pop-Up Notifications - Set your pop-up notification preferences
+ |: Monitor Settings - Change screen resolution and configure external monitors
+
+
+ |: File Management - Change the behaviour and appearance of file manager windows
+
+
+ |: Pop-Up Notifications - Set your pop-up notification preferences
|: Opera Widget Manager
@@ -1077,6 +1275,9 @@
|: File Manager
+ |: Startup Disk Creator - Create a startup disk using a CD or disc image
+
+
|: Windows - Set your window properties
@@ -1210,6 +1411,9 @@
z: KwikDisk
+ |: Yakuake
+
+
|: Task Manager - Manage running processes
@@ -1225,6 +1429,12 @@
|: UNetbootin - Tool for creating Live USB drives
+ |: Startup Disk Creator - Create a startup disk using a CD or disc image
+
+
+ |: Startup Disk Creator - Create a startup disk using a CD or disc image
+
+
|: Oracle VM VirtualBox
@@ -1253,70 +1463,79 @@
d: Thunar File Manager - Browse the filesystem with the file manager
- e: dosbox Emulator - An emulator to run old DOS games
+ e: Circle and Ruler - Geometry program
+
+
+ f: dosbox Emulator - An emulator to run old DOS games
+
+
+ g: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
- f: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
+ h: About GNOME - Learn more about GNOME
- g: About GNOME - Learn more about GNOME
+ i: Panel - Customize the panel settings
- h: Panel - Customize the panel settings
+ j: Theme Installer - Installs themes packages for various parts of the desktop
- i: Theme Installer - Installs themes packages for various parts of the desktop
+ k: Image Viewer
- j: Image Viewer
+ l: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators
- k: Character Map - Insert special characters into documents
+ m: Character Map - Insert special characters into documents
- l: gVim - GTK2 enhanced vim text editor
+ n: gVim - GTK2 enhanced vim text editor
- m: HP Device Manager - View device status, ink levels and perform maintenance.
+ o: HP Device Manager - View device status, ink levels and perform maintenance.
- n: Help - Get help with GNOME
+ p: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions
- o: Home
+ q: Help - Get help with GNOME
- p: KCharSelect
+ r: Home
- q: KFloppy
+ s: KCharSelect
- r: KJots
+ t: KFloppy
- s: Akonaditray
+ u: KJots
- t: Ark
+ v: Akonaditray
- u: KDE Groupware Wizard
+ w: Ark
- v: KAlarm
+ x: KDE Groupware Wizard
- w: Kate
+ y: KAlarm
- x: KCalc
+ z: Kate
- y: KFileReplace
+ |: KCalc
- z: Find Files/Folders
+ |: KFileReplace
+
+
+ |: Find Files/Folders
|: KFontView
@@ -1397,6 +1616,12 @@
|: File Manager
+ |: PDF Editor
+
+
+ |: PlayOnLinux - PlayOnLinux
+
+
|: Scilab - A scientific software package for numerical computations
@@ -1453,6 +1678,9 @@
|: Help - Get help with GNOME
+
+ |: KDE Resources - Configure KDE Resources
+
Terminalemulator
@@ -1467,13 +1695,16 @@
c: Konsole
- d: LXTerminal - Use the command line
+ d: Yakuake
+
+
+ e: LXTerminal - Use the command line
- e: rxvt-unicode - An Unicode capable rxvt clone
+ f: rxvt-unicode - An Unicode capable rxvt clone
- f: Tilda
+ g: Tilda
- c: < Expose mode group >
+ c: < Identify key group >
- d: < Hook group >
+ d: < Expose mode group >
- e: < Main mode group >
+ e: < Hook group >
- f: < Frame colors group >
+ f: < Main mode group >
- g: < Identify key group >
+ g: < Frame colors group >
- h: < Corner group >
+ h: < Second mode group >
- i: < Circulate mode group >
+ i: < Corner group >
- j: < Query string group >
+ j: < Circulate mode group >
- k: < Placement group >
+ k: < Query string group >
- l: < Miscellaneous group >
+ l: < Placement group >
- m: < Info mode group >
+ m: < Miscellaneous group >
- n: < Second mode group >
+ n: < Info mode group >
o: < Menu group >
@@ -2764,6 +2995,22 @@
+
+ a: Configure IDENTIFY-FOREGROUND
+
+
+ b: Configure IDENTIFY-BACKGROUND
+
+
+ c: Configure IDENTIFY-FONT-STRING
+
+
+ d: Configure IDENTIFY-BORDER
+
+
+
@@ -2834,19 +3081,25 @@
- a: Configure IDENTIFY-FOREGROUND
+ a: Configure SM-FOREGROUND-COLOR
+
+
+ b: Configure SM-BACKGROUND-COLOR
+
+
+ c: Configure SM-HEIGHT
- b: Configure IDENTIFY-FONT-STRING
+ d: Configure SM-WIDTH
- c: Configure IDENTIFY-BORDER
+ e: Configure SM-BORDER-COLOR
- d: Configure IDENTIFY-BACKGROUND
+ f: Configure SM-FONT-STRING
@@ -2862,19 +3115,19 @@
c: Configure CORNER-SECOND-MODE-LEFT-BUTTON
- d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
+ d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
- e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
+ e: Configure CORNER-SIZE
- f: Configure CORNER-SIZE
+ f: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
- g: Configure CLFSWM-TERMINAL-CMD
+ g: Configure VIRTUAL-KEYBOARD-CMD
- h: Configure VIRTUAL-KEYBOARD-CMD
+ h: Configure CLFSWM-TERMINAL-CMD
i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON
@@ -2887,19 +3140,19 @@
Conf-Circulate-Mode-Group
- a: Configure CIRCULATE-TEXT-LIMITE
+ a: Configure CIRCULATE-BORDER
- b: Configure CIRCULATE-BORDER
+ b: Configure CIRCULATE-HEIGHT
- c: Configure CIRCULATE-WIDTH
+ c: Configure CIRCULATE-TEXT-LIMITE
- d: Configure CIRCULATE-HEIGHT
+ d: Configure CIRCULATE-FONT-STRING
- e: Configure CIRCULATE-FONT-STRING
+ e: Configure CIRCULATE-WIDTH
f: Configure CIRCULATE-BACKGROUND
@@ -2965,28 +3218,28 @@
Conf-Miscellaneous-Group
- a: Configure HAVE-TO-COMPRESS-NOTIFY
+ a: Configure CREATE-FRAME-ON-ROOT
- b: Configure HIDE-UNMANAGED-WINDOW
+ b: Configure HAVE-TO-COMPRESS-NOTIFY
c: Configure DEFAULT-WINDOW-WIDTH
- d: Configure CREATE-FRAME-ON-ROOT
+ d: Configure NEVER-MANAGED-WINDOW-LIST
e: Configure DEFAULT-MANAGED-TYPE
- f: Configure DEFAULT-FRAME-DATA
+ f: Configure HIDE-UNMANAGED-WINDOW
- g: Configure DEFAULT-MODIFIERS
+ g: Configure DEFAULT-FRAME-DATA
- h: Configure NEVER-MANAGED-WINDOW-LIST
+ h: Configure DEFAULT-MODIFIERS
i: Configure DEFAULT-WINDOW-HEIGHT
@@ -3039,28 +3292,6 @@
-
- a: Configure SM-FOREGROUND-COLOR
-
-
- b: Configure SM-BACKGROUND-COLOR
-
-
- c: Configure SM-HEIGHT
-
-
- d: Configure SM-WIDTH
-
-
- e: Configure SM-BORDER-COLOR
-
-
- f: Configure SM-FONT-STRING
-
-
-
Modified: clfswm/doc/menu.txt
==============================================================================
--- clfswm/doc/menu.txt (original)
+++ clfswm/doc/menu.txt Sat Feb 5 16:34:18 2011
@@ -55,7 +55,8 @@
d: Snippets datafile editor
e: KWrite
f: Mousepad - Simple text editor
-g: Xfw - A simple text editor for Xfe
+g: PDF Editor
+h: Xfw - A simple text editor for Xfe
Filemanager
a: Open Folder with Thunar - Open the specified folders in Thunar
@@ -70,13 +71,14 @@
Webbrowser
a: Arora - Browse the World Wide Web
b: Chromium - Access the Internet
-c: Epiphany - Browse the web
-d: Firefox - Safe Mode
-e: Firefox
-f: IcedTea Web Start - IcedTea Application Launcher
+c: Conkeror - Conkeror is a Mozilla-based web browser whose design is inspired by GNU Emacs
+d: Epiphany - Browse the web
+e: Firefox - Safe Mode
+f: Firefox
g: Konqueror
-h: Midori - Lightweight web browser
-i: Opera - A fast and secure web browser and Internet suite
+h: rekonq
+i: Midori - Lightweight web browser
+j: Opera - A fast and secure web browser and Internet suite
Audiovideo
a: AcidRip DVD Ripper - DVD Ripper
@@ -84,27 +86,38 @@
c: Audacity - Record and edit audio files
d: Beep Media Player - Play music
e: Brasero - Create and copy CDs and DVDs
-f: Gnome Music Player Client - A gnome frontend for the mpd daemon
-g: Sound Recorder - Record sound clips
-h: Volume Control - Change sound volume and sound events
-i: Grip - CD player/ripper
-j: gtk-recordMyDesktop - Frontend for recordMyDesktop
-k: Hydrogen Drum Machine - Create drum sequences
-l: Dragon Player
-m: JuK
-n: K3b - Disk writing program
-o: KMix
-p: KsCD
-q: Mixxx - A digital DJ interface
-r: MPlayer Media Player - Play movies and songs
-s: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
-t: qt-recordMyDesktop - Frontend for recordMyDesktop
-u: Sonata - An elegant GTK+ MPD client
-v: Audio CD Extractor - Copy music from your CDs
-w: VLC media player - Read, capture, broadcast your multimedia streams
-x: Mixer - Audio mixer for the Xfce Desktop Environment
-y: XMMS - X Multimedia System
-z: zynaddsubfx - An opensource software synthesizer
+f: Cinelerra - Video Editor
+g: Freevo - Home theatre
+h: Camelot - Gmerlin webcam application
+i: Gmerlin KBD - Configure the Gmerlin keyboard daemon
+j: Gmerlin player - Multiformat mediaplayer
+k: Gmerlin plugin configurator - Configure gmerlin plugins
+l: Gmerlin transcoder - Gmerlin multimedia transcoder
+m: Gmerlin visualizer - Run visualization plugins
+n: Gnome Music Player Client - A gnome frontend for the mpd daemon
+o: Sound Recorder - Record sound clips
+p: Volume Control - Change sound volume and sound events
+q: Grip - CD player/ripper
+r: gtk-recordMyDesktop - Frontend for recordMyDesktop
+s: Hydrogen Drum Machine - Create drum sequences
+t: Dragon Player
+u: JuK
+v: K3b - Disk writing program
+w: Kdenlive - Nonlinear video editor for KDE
+x: KMix
+y: KsCD
+z: Mixxx - A digital DJ interface
+|: MPlayer Media Player - Play movies and songs
+|: Open Movie Editor - Video Editor
+|: OpenShot Video Editor - Create and edit videos and movies
+|: QjackCtl
- QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
+|: qt-recordMyDesktop - Frontend for recordMyDesktop
+|: Sonata - An elegant GTK+ MPD client
+|: Audio CD Extractor - Copy music from your CDs
+|: VLC media player - Read, capture, broadcast your multimedia streams
+|: Mixer - Audio mixer for the Xfce Desktop Environment
+|: XMMS - X Multimedia System
+|: zynaddsubfx - An opensource software synthesizer
Audio
a: Ardour - Multitrack hard disk recorder
@@ -114,87 +127,105 @@
e: KMix
f: Mixxx - A digital DJ interface
g: MPlayer Media Player - Play movies and songs
-h: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
+h: QjackCtl
- QjackCtl is a JACK Audio Connection Kit Qt GUI Interface
i: Audio CD Extractor - Copy music from your CDs
j: Mixer - Audio mixer for the Xfce Desktop Environment
Video
a: Ardour - Multitrack hard disk recorder
b: MPlayer Media Player - Play movies and songs
+c: OpenShot Video Editor - Create and edit videos and movies
Development
a: CMake - Cross-platform buildsystem
-b: Qt Assistant
+b: Qt Assistant - Shows Qt documentation and examples
c: Data Display Debugger - Graphical debugger frontend
-d: Qt Designer
-e: Emacs Text Editor - Edit text
-f: Factor - Factor is a general purpose, dynamically typed, stack-based programming language
-g: OpenJDK Monitoring & Management Console - Monitor and manage OpenJDK applications
-h: Akonadi Console - Akonadi Management and Debugging Console
-i: Cervisia
-j: KAppTemplate
-k: KBugBuster
-l: KCachegrind - Visualization of Performance Profiling Data
-m: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program.
-n: KImageMapEditor
-o: KLinkStatus
-p: Kompare
-q: KUIViewer
-r: Lokalize
-s: Umbrello
-t: Qt Linguist
-u: OpenJDK Policy Tool - Manage OpenJDK policy files
+d: Qt Designer - Design GUIs for Qt applications
+e: DrRacket - DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages.
+f: EAGLE Light Edition
+g: Eeschema - Design a printed circuit board.
+h: Emacs Text Editor - Edit text
+i: Factor - Factor is a general purpose, dynamically typed, stack-based programming language
+j: Java Monitoring and Management Console
+k: Java VisualVM
+l: Akonadi Console - Akonadi Management and Debugging Console
+m: Cervisia
+n: KAppTemplate
+o: KBugBuster
+p: KCachegrind - Visualization of Performance Profiling Data
+q: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program.
+r: KImageMapEditor
+s: KLinkStatus
+t: Kompare
+u: KUIViewer
+v: Lokalize
+w: Umbrello
+x: KiCad - Design a printed circuit board.
+y: Qt Linguist - Add translations to Qt applications
Education
a: Avogadro - Advanced molecular editor
-b: Blinken - A memory enhancement game
-c: Cantor
-d: KAlgebra - Math Expression Solver and Plotter
-e: Kalzium - KDE Periodic Table of Elements
-f: Kanagram - KDE Letter Order Game
-g: KBruch - Practice exercises with fractions
-h: KGeography - A Geography Learning Program
-i: KHangMan - KDE Hangman Game
-j: Kig - Explore Geometric Constructions
-k: Kiten - Japanese Reference and Study Tool
-l: KLettres - a KDE program to learn the alphabet
-m: KmPlot - Function Plotter
-n: KStars - Desktop Planetarium
-o: KTouch
-p: KTurtle
-q: KWordQuiz - A flashcard and vocabulary learning program
-r: Marble
-s: Parley
-t: Rocs - Graph Theory Tool for Professors and Students.
-u: Step - Simulate physics experiments
+b: Circle and Ruler - Geometry program
+c: DrGeo
+d: DrRacket - DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages.
+e: GeoGebra
- Create interactive mathematical constructions and applets.
+f: geometria
+g: Blinken - A memory enhancement game
+h: Cantor
+i: KAlgebra - Math Expression Solver and Plotter
+j: Kalzium - KDE Periodic Table of Elements
+k: Kanagram - KDE Letter Order Game
+l: KBruch - Practice exercises with fractions
+m: KGeography - A Geography Learning Program
+n: KHangMan - KDE Hangman Game
+o: Kig - Explore Geometric Constructions
+p: Kiten - Japanese Reference and Study Tool
+q: KLettres - a KDE program to learn the alphabet
+r: KmPlot - Function Plotter
+s: KStars - Desktop Planetarium
+t: KTouch
+u: KTurtle
+v: KWordQuiz - A flashcard and vocabulary learning program
+w: Marble
+x: Parley
+y: Rocs - Graph Theory Tool for Professors and Students.
+z: Step - Simulate physics experiments
+|: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits
+|: Pyromaths - G?n?rateur d'exercices de maths
+|: QtOctave - GUI for GNU Octave
+|: wxMaxima - Perform symbolic and numeric calculations using Maxima
Game
a: 0 A.D. Editor
b: 0 A.D.
c: AssaultCube
-d: DROD - Simple puzzle game.
-e: Flobopuyo - A remake of the famous PuyoPuyo
-f: Foobillard - A 3D billiards game using OpenGL
-g: Frasse - Frasse and the Peas of Kejick adventure game
-h: Frogatto - Old-school 2D platformer
-i: GGoban - Play go and review game records
-j: Hedgewars - Worms style game
-k: KGoldrunner - A game of action and puzzle-solving
-l: AMOR
-m: Blinken - A memory enhancement game
-n: Bomber
-o: Bovo
-p: Granatier
-q: Kanagram - KDE Letter Order Game
-r: Kapman - Eat pills escaping ghosts
-s: KAtomic
-t: KBattleship
-u: KBlackBox
-v: KBlocks
-w: KBounce
-x: KBreakOut
-y: KSnake
-z: KDiamond
+d: DreamChess
+e: DROD - Simple puzzle game.
+f: eBoard
+g: Einstein - Einstein puzzle
+h: Flobopuyo - A remake of the famous PuyoPuyo
+i: Foobillard - A 3D billiards game using OpenGL
+j: Frasse - Frasse and the Peas of Kejick adventure game
+k: Frogatto - Old-school 2D platformer
+l: GGoban - Play go and review game records
+m: glChess
+n: Hedgewars - Worms style game
+o: KGoldrunner - A game of action and puzzle-solving
+p: AMOR
+q: Blinken - A memory enhancement game
+r: Bomber
+s: Bovo
+t: Granatier
+u: Kanagram - KDE Letter Order Game
+v: Kapman - Eat pills escaping ghosts
+w: KAtomic
+x: KBattleship
+y: KBlackBox
+z: KBlocks
+|: KBounce
+|: KBreakOut
+|: KSnake
+|: KDiamond
|: KFourInLine
|: KHangMan - KDE Hangman Game
|: Kigo
@@ -205,6 +236,7 @@
|: KMahjongg
|: KMines
|: KNetWalk
+|: Knights
|: Kolf
|: Kollision - A simple ball dodging game
|: Konquest
@@ -223,37 +255,46 @@
|: Kubrick
|: LSkat
|: Palapeli
+|: KoboDeluxe - An excellent 2D Shootem-up game.
+|: ManiaDrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay
+|: mechtower(failsafe)
+|: mechtower
|: Neverball - A 3D arcade game with a ball
|: Neverputt - A 3D mini golf game
+|: Numpty Physics
|: OpenArena - A Quake3-based FPS Game
+|: OpenTTD
+|: Pacdefence - Tower defence game.
+|: pouetChess - Play a game of chess, either against another player or against the AI
|: SolarWolf
|: Spring - An open source RTS with similar gameplay to TA
|: SuperTux 2 - Play a classic 2D platform game
|: Trackballs - Simple game similar to the classical game Marble Madness
|: Battle for Wesnoth - A fantasy turn-based strategy game
|: Battle for Wesnoth Map Editor - A map editor for Battle for Wesnoth maps
+|: XBoard - An X Window System graphical chessboard
|: Xmoto
|: XSpaceWarp - Live long and prosper!
Graphics
-a: Image Viewer
-b: PostScript Viewer - View PostScript files
-c: GNU Image Manipulation Program - Create images and edit photographs
-d: Image Viewer
-e: GV
-f: Inkscape - Create and edit Scalable Vector Graphics images
-g: Gwenview - A simple image viewer
-h: KColorChooser
-i: KolourPaint
-j: KRuler
-k: KSnapshot
-l: Okular
-m: Okular
-n: Okular
-o: Okular
-p: Okular
-q: Okular
-r: Okular
+a: LibreOffice Draw
+b: Image Viewer
+c: Document Viewer - View multi-page documents
+d: Geeqie - View and manage images
+e: PostScript Viewer - View PostScript files
+f: GNU Image Manipulation Program - Create images and edit photographs
+g: Image Viewer
+h: GQview - View and manage images
+i: gThumb - View and organize your images
+j: gThumb - View and organize your images
+k: GV
+l: Inkscape - Create and edit Scalable Vector Graphics images
+m: digiKam
+n: Gwenview - A simple image viewer
+o: KColorChooser
+p: KolourPaint
+q: KRuler
+r: KSnapshot
s: Okular
t: Okular
u: Okular
@@ -263,7 +304,18 @@
y: Okular
z: Okular
|: Okular
+|: Okular
+|: Okular
+|: Okular
+|: Okular
+|: Okular
+|: Okular
+|: Okular
+|: showFoto - Manage your photographs like a professional with the power of open source
+|: MuPDF - PDF file viewer
|: Xfig
+|: xgps - Display GPS information from a gpsd daemon
+|: xgpsspeed - Display GPS speed from a gpsd daemon
|: XSane - Scanning - Acquire images from a scanner
Network
@@ -272,28 +324,33 @@
c: Avahi SSH Server Browser - Browse for Zeroconf-enabled SSH Servers
d: Avahi VNC Server Browser - Browse for Zeroconf-enabled VNC Servers
e: Chromium - Access the Internet
-f: Epiphany - Browse the web
-g: Minefield - Safe Mode
-h: Minefield
-i: Firefox - Safe Mode
-j: Firefox
-k: Gnaughty - Porn downloader
-l: Gwget Download Manager - Download files from the Internet
-m: JAP - JAP makes it possible to surf the internet anonymously and unobservably.
-n: IcedTea Web Start - IcedTea Application Launcher
-o: KMail
-p: KNode
-q: KPPP
-r: Akregator - A Feed Reader for KDE
-s: Blogilo
-t: KGet
-u: KNetAttach
-v: Konqueror
-w: Kopete - Instant Messenger
-x: KPPPLogview
-y: KRDC
-z: Krfb
+f: Conkeror - Conkeror is a Mozilla-based web browser whose design is inspired by GNU Emacs
+g: Ekiga Softphone - Talk to people over the Internet
+h: Epiphany - Browse the web
+i: Minefield - Safe Mode
+j: Minefield
+k: Firefox - Safe Mode
+l: Firefox
+m: Gnaughty - Porn downloader
+n: Gwget Download Manager - Download files from the Internet
+o: Iron Web Browser - Browse the World Wide Web
+p: JAP - JAP makes it possible to surf the internet anonymously and unobservably.
+q: Java Web Start
+r: KMail
+s: KNode
+t: KPPP
+u: Akregator - A Feed Reader for KDE
+v: Blogilo
+w: KGet
+x: KNetAttach
+y: Konqueror
+z: Kopete - Instant Messenger
+|: KPPPLogview
+|: KRDC
+|: Krfb
+|: rekonq
|: Midori - Lightweight web browser
+|: MLDonkey GUI - multi-protocol P2P program
|: MultiGet
|: OpenArena Server - Run an OpenArena server
|: Opera - A fast and secure web browser and Internet suite
@@ -301,18 +358,20 @@
|: Thunderbird - Mail & News Reader
|: Transmission - Download and share files over BitTorrent
|: Tucan Manager - Download and upload manager for hosting sites.
+|: unison - File synchronisation tool for X11
+|: LibreOffice Writer/Web
|: Wicd - Manage Wired/Wireless Networks
|: Zenmap (as root)
|: Zenmap
Office
a: AbiWord
-b: OpenOffice.org 3.2 Base
-c: OpenOffice.org 3.2 Calc
-d: OpenOffice.org 3.2 Draw
-e: ePDFViewer - Lightweight PDF document viewer
+b: LibreOffice Base
+c: LibreOffice Calc
+d: ePDFViewer - Lightweight PDF document viewer
+e: Evolution - Manage your email, contacts and schedule
f: GV
-g: OpenOffice.org 3.2 Impress
+g: LibreOffice Impress
h: Kontact
i: KAddressBook
j: KOrganizer - Calendar and Scheduling Program
@@ -324,47 +383,55 @@
p: LibreOffice 3.3 Printer Administration
q: LibreOffice 3.3
r: LibreOffice 3.3 Writer
-s: OOo4Kids 1.0 Calc
-t: OOo4Kids 1.0 Draw
-u: OOo4Kids 1.0 Impress
-v: OOo4Kids 1.0 Math
-w: OOo4Kids 1.0
-x: OOo4Kids 1.0 Printer Administration
-y: OOo4Kids 1.0 Writer
-z: Orage - Desktop calendar
+s: Lyx - Latex WYSIWYM Editor
+t: LibreOffice Extension Manager
+u: OOo4Kids 1.1 Calc
+v: OOo4Kids 1.1 Draw
+w: OOo4Kids 1.1 Impress
+x: OOo4Kids 1.1 Math
+y: OOo4Kids 1.1
+z: OOo4Kids 1.1 Printer Administration
+|: OOo4Kids 1.1 Writer
+|: LibreOffice Quickstarter
+|: LibreOffice
+|: Orage - Desktop calendar
|: Xpdf - Views Adobe PDF (acrobat) files
Settings
a: Assistive Technologies - Choose which accessibility features to enable when you log in
b: Preferred Applications
c: Monitors - Change resolution and position of monitors
-d: Preferred Applications
-e: Keyboard Indicator plugins - Enable/disable installed plugins
-f: Privilege granting - Configure behavior of the privilege-granting tool
-g: About Me - Set your personal information
-h: Appearance - Customize the look of your desktop
-i: Network Proxy - Set your network proxy preferences
-j: Screensaver - Change screensaver properties
-k: Mouse - Configure pointer device behavior and appearance
-l: Volume Control - Change sound volume and sound events
-m: Control Center
-n: Multimedia Systems Selector - Configure defaults for GStreamer applications
-o: Touchpad - Set your touchpad preferences
-p: Menu Updating Tool
-q: Change Password
-r: Menu Editor
-s: System Settings
-t: Keyboard Shortcuts - Assign shortcut keys to commands
-u: Keyboard - Edit keyboard settings and application shortcuts
-v: Preferred Applications
-w: Customize Look and Feel - Customizes look and feel of your desktop and applications
-x: Monitor Settings - Change screen resolution and configure external monitors
-y: File Management - Change the behaviour and appearance of file manager windows
-z: Pop-Up Notifications - Set your pop-up notification preferences
+d: Email Settings - Configure email accounts
+e: Preferred Applications
+f: Keyboard Indicator plugins - Enable/disable installed plugins
+g: Privilege granting - Configure behavior of the privilege-granting tool
+h: About Me - Set your personal information
+i: Appearance - Customize the look of your desktop
+j: Network Proxy - Set your network proxy preferences
+k: Screensaver - Change screensaver properties
+l: Mouse - Configure pointer device behavior and appearance
+m: Volume Control - Change sound volume and sound events
+n: Control Center
+o: Multimedia Systems Selector - Configure defaults for GStreamer applications
+p: Touchpad - Set your touchpad preferences
+q: Java Control Panel
+r: Java Policy Settings
+s: Menu Updating Tool
+t: Change Password
+u: Menu Editor
+v: System Settings
+w: Keyboard Shortcuts - Assign shortcut keys to commands
+x: Keyboard - Edit keyboard settings and application shortcuts
+y: Preferred Applications
+z: Customize Look and Feel - Customizes look and feel of your desktop and applications
+|: Monitor Settings - Change screen resolution and configure external monitors
+|: File Management - Change the behaviour and appearance of file manager windows
+|: Pop-Up Notifications - Set your pop-up notification preferences
|: Opera Widget Manager
|: Qt Config - Configure Qt behavior, styles, fonts
|: Startup Applications - Choose what applications to start when you log in
|: File Manager
+|: Startup Disk Creator - Create a startup disk using a CD or disc image
|: Windows - Set your window properties
|: Desktop - Set desktop background and menu and icon behaviour
|: Display - Configure screen settings and layout
@@ -410,11 +477,14 @@
x: KUser
y: KWalletManager
z: KwikDisk
+|: Yakuake
|: Task Manager - Manage running processes
|: File Browser - Browse the file system with the file manager
|: Disk Utility - Manage Drives and Media
|: rxvt-unicode - An Unicode capable rxvt clone
|: UNetbootin - Tool for creating Live USB drives
+|: Startup Disk Creator - Create a startup disk using a CD or disc image
+|: Startup Disk Creator - Create a startup disk using a CD or disc image
|: Oracle VM VirtualBox
|: Wireshark - Network traffic analyzer
|: Xfe - A lightweight file manager for X Window
@@ -425,28 +495,31 @@
b: Bulk Rename - Rename Multiple Files
c: Open Folder with Thunar - Open the specified folders in Thunar
d: Thunar File Manager - Browse the filesystem with the file manager
-e: dosbox Emulator - An emulator to run old DOS games
-f: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
-g: About GNOME - Learn more about GNOME
-h: Panel - Customize the panel settings
-i: Theme Installer - Installs themes packages for various parts of the desktop
-j: Image Viewer
-k: Character Map - Insert special characters into documents
-l: gVim - GTK2 enhanced vim text editor
-m: HP Device Manager - View device status, ink levels and perform maintenance.
-n: Help - Get help with GNOME
-o: Home
-p: KCharSelect
-q: KFloppy
-r: KJots
-s: Akonaditray
-t: Ark
-u: KDE Groupware Wizard
-v: KAlarm
-w: Kate
-x: KCalc
-y: KFileReplace
-z: Find Files/Folders
+e: Circle and Ruler - Geometry program
+f: dosbox Emulator - An emulator to run old DOS games
+g: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
+h: About GNOME - Learn more about GNOME
+i: Panel - Customize the panel settings
+j: Theme Installer - Installs themes packages for various parts of the desktop
+k: Image Viewer
+l: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators
+m: Character Map - Insert special characters into documents
+n: gVim - GTK2 enhanced vim text editor
+o: HP Device Manager - View device status, ink levels and perform maintenance.
+p: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions
+q: Help - Get help with GNOME
+r: Home
+s: KCharSelect
+t: KFloppy
+u: KJots
+v: Akonaditray
+w: Ark
+x: KDE Groupware Wizard
+y: KAlarm
+z: Kate
+|: KCalc
+|: KFileReplace
+|: Find Files/Folders
|: KFontView
|: KGpg - A GnuPG frontend
|: Kleopatra
@@ -473,6 +546,8 @@
|: Home Folder - Open your personal folder
|: Network - Browse bookmarked and local network locations
|: File Manager
+|: PDF Editor
+|: PlayOnLinux - PlayOnLinux
|: Scilab - A scientific software package for numerical computations
|: Tilda
|: Worker - File manager for X.
@@ -492,14 +567,16 @@
|: Xfw - A simple text editor for Xfe
|: XNC - Graphical File manager, X Northern Captain
|: Help - Get help with GNOME
+|: KDE Resources - Configure KDE Resources
Terminalemulator
a: Terminal
b: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
c: Konsole
-d: LXTerminal - Use the command line
-e: rxvt-unicode - An Unicode capable rxvt clone
-f: Tilda
+d: Yakuake
+e: LXTerminal - Use the command line
+f: rxvt-unicode - An Unicode capable rxvt clone
+g: Tilda
Archlinux
a: AUR - Archlinux AUR
@@ -926,18 +1003,18 @@
Configuration-Menu
a: < Notify Window group >
b: < Notify Window mode group >
-c: < Expose mode group >
-d: < Hook group >
-e: < Main mode group >
-f: < Frame colors group >
-g: < Identify key group >
-h: < Corner group >
-i: < Circulate mode group >
-j: < Query string group >
-k: < Placement group >
-l: < Miscellaneous group >
-m: < Info mode group >
-n: < Second mode group >
+c: < Identify key group >
+d: < Expose mode group >
+e: < Hook group >
+f: < Main mode group >
+g: < Frame colors group >
+h: < Second mode group >
+i: < Corner group >
+j: < Circulate mode group >
+k: < Query string group >
+l: < Placement group >
+m: < Miscellaneous group >
+n: < Info mode group >
o: < Menu group >
F2: Save all configuration variables in clfswmrc
@@ -950,6 +1027,12 @@
Conf-Notify-Window-Mode-Group
a: Configure NOTIFY-WINDOW-FONT-STRING
+Conf-Identify-Key-Group
+a: Configure IDENTIFY-FOREGROUND
+b: Configure IDENTIFY-BACKGROUND
+c: Configure IDENTIFY-FONT-STRING
+d: Configure IDENTIFY-BORDER
+
Conf-Expose-Mode-Group
a: Configure EXPOSE-FOREGROUND
b: Configure EXPOSE-SHOW-WINDOW-TITLE
@@ -976,30 +1059,32 @@
c: Configure FRAME-FOREGROUND-HIDDEN
d: Configure FRAME-BACKGROUND
-Conf-Identify-Key-Group
-a: Configure IDENTIFY-FOREGROUND
-b: Configure IDENTIFY-FONT-STRING
-c: Configure IDENTIFY-BORDER
-d: Configure IDENTIFY-BACKGROUND
+Conf-Second-Mode-Group
+a: Configure SM-FOREGROUND-COLOR
+b: Configure SM-BACKGROUND-COLOR
+c: Configure SM-HEIGHT
+d: Configure SM-WIDTH
+e: Configure SM-BORDER-COLOR
+f: Configure SM-FONT-STRING
Conf-Corner-Group
a: Configure CORNER-MAIN-MODE-LEFT-BUTTON
b: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON
c: Configure CORNER-SECOND-MODE-LEFT-BUTTON
-d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
-e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
-f: Configure CORNER-SIZE
-g: Configure CLFSWM-TERMINAL-CMD
-h: Configure VIRTUAL-KEYBOARD-CMD
+d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
+e: Configure CORNER-SIZE
+f: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
+g: Configure VIRTUAL-KEYBOARD-CMD
+h: Configure CLFSWM-TERMINAL-CMD
i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON
j: Configure CLFSWM-TERMINAL-NAME
Conf-Circulate-Mode-Group
-a: Configure CIRCULATE-TEXT-LIMITE
-b: Configure CIRCULATE-BORDER
-c: Configure CIRCULATE-WIDTH
-d: Configure CIRCULATE-HEIGHT
-e: Configure CIRCULATE-FONT-STRING
+a: Configure CIRCULATE-BORDER
+b: Configure CIRCULATE-HEIGHT
+c: Configure CIRCULATE-TEXT-LIMITE
+d: Configure CIRCULATE-FONT-STRING
+e: Configure CIRCULATE-WIDTH
f: Configure CIRCULATE-BACKGROUND
g: Configure CIRCULATE-FOREGROUND
@@ -1023,14 +1108,14 @@
g: Configure SECOND-MODE-PLACEMENT
Conf-Miscellaneous-Group
-a: Configure HAVE-TO-COMPRESS-NOTIFY
-b: Configure HIDE-UNMANAGED-WINDOW
+a: Configure CREATE-FRAME-ON-ROOT
+b: Configure HAVE-TO-COMPRESS-NOTIFY
c: Configure DEFAULT-WINDOW-WIDTH
-d: Configure CREATE-FRAME-ON-ROOT
+d: Configure NEVER-MANAGED-WINDOW-LIST
e: Configure DEFAULT-MANAGED-TYPE
-f: Configure DEFAULT-FRAME-DATA
-g: Configure DEFAULT-MODIFIERS
-h: Configure NEVER-MANAGED-WINDOW-LIST
+f: Configure HIDE-UNMANAGED-WINDOW
+g: Configure DEFAULT-FRAME-DATA
+h: Configure DEFAULT-MODIFIERS
i: Configure DEFAULT-WINDOW-HEIGHT
j: Configure DEFAULT-FONT-STRING
k: Configure DEFAULT-FOCUS-POLICY
@@ -1049,14 +1134,6 @@
j: Configure INFO-COLOR-TITLE
k: Configure INFO-COLOR-SECOND
-Conf-Second-Mode-Group
-a: Configure SM-FOREGROUND-COLOR
-b: Configure SM-BACKGROUND-COLOR
-c: Configure SM-HEIGHT
-d: Configure SM-WIDTH
-e: Configure SM-BORDER-COLOR
-f: Configure SM-FONT-STRING
-
Conf-Menu-Group
a: Configure MENU-COLOR-COMMENT
b: Configure MENU-COLOR-KEY
Modified: clfswm/load.lisp
==============================================================================
--- clfswm/load.lisp (original)
+++ clfswm/load.lisp Sat Feb 5 16:34:18 2011
@@ -57,14 +57,14 @@
(in-package :clfswm)
-(ignore-errors
- (main :read-conf-file-p t))
+;;(ignore-errors
+;; (main :read-conf-file-p t))
;;;; Uncomment lines above to save the default documentation.
-;;(ignore-errors
-;; (main :read-conf-file-p nil))
-;;(produce-all-docs)
+(ignore-errors
+ (main :read-conf-file-p nil))
+(produce-all-docs)
;;; For debuging: start another sever (for example: 'startx -- :1'), Xnest
From pbrochard at common-lisp.net Sun Feb 6 20:50:09 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 06 Feb 2011 15:50:09 -0500
Subject: [clfswm-cvs] r400 - clfswm
Message-ID:
Author: pbrochard
Date: Sun Feb 6 15:50:09 2011
New Revision: 400
Log:
Fix a README spelling error
Modified:
clfswm/ChangeLog
clfswm/README
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sun Feb 6 15:50:09 2011
@@ -1,3 +1,7 @@
+2011-02-05 Philippe Brochard
+
+ * *: **** Release 1102 ****
+
2011-02-05 Desmond O. Chang
* src/keysyms.lisp: Add extended keysyms from stumpwm.
@@ -497,6 +501,8 @@
2009-06-29 Philippe Brochard
+ * *: **** Release 0906 ****
+
* contrib/cd-player.lisp: New file to handle the CD player.
* contrib/xmms.lisp: New file to handle the xmms player.
@@ -754,6 +760,7 @@
deleted child.
2008-09-23 Philippe Brochard
+
* *: **** Release 0809 ****
2008-09-23 Philippe Brochard
Modified: clfswm/README
==============================================================================
--- clfswm/README (original)
+++ clfswm/README Sun Feb 6 15:50:09 2011
@@ -14,19 +14,19 @@
frames are created/deleted on the fly. A window can be in more than
one frame, so it can have multiple views of the same windows.
- Using CLFSWM is like walking throw a tree of frames and windows.
+ Using CLFSWM is like walking through a tree of frames and windows.
Enter in a child to make it the current root and make it fullscreen
maximized. Leave it to make its parent the current root.
- Here is the default key binding to navigate throw this tree:
+ Here is the default key binding to navigate through this tree:
- * Alt-Tab: circulate throw children of the current child.
+ * Alt-Tab: circulate through children of the current child.
* Alt-Left/Right: circulate through brother children (ie: this is like
workspaces for a more conventional window manager)
* Alt-Up: select the first child of the current frame.
* Alt-Down: select the parent of the current child.
* Alt-Enter: Make the current selected child the current root (ie
- maximize it)
+ maximize it)
* Alt+Shift-Enter: Make the parent of the current root the current
root (ie unmaximize the current root).
@@ -36,7 +36,7 @@
A main mode with minimal keys and mouse grabbing to avoid conflicts
with others applications.
And a second mode with more keys and mouse actions.
- For details of its usage, have a look at the files doc/keys.txt or
+ For details of its usage, have a look at the files doc/keys.txt or
doc/keys.html
A lot of functions to manage CLFSWM can be found in the second mode
menu. See the file menu-def.lisp for an overview.
From pbrochard at common-lisp.net Sun Feb 6 22:28:15 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 06 Feb 2011 17:28:15 -0500
Subject: [clfswm-cvs] r401 - in clfswm: . doc
Message-ID:
Author: pbrochard
Date: Sun Feb 6 17:28:14 2011
New Revision: 401
Log:
Put load.lisp in normal mode and not documentation mode
Modified:
clfswm/doc/menu.html
clfswm/doc/menu.txt
clfswm/load.lisp
Modified: clfswm/doc/menu.html
==============================================================================
--- clfswm/doc/menu.html (original)
+++ clfswm/doc/menu.html Sun Feb 6 17:28:14 2011
@@ -1094,67 +1094,70 @@
e: Evolution - Manage your email, contacts and schedule
- f: GV
+ f: Gnumeric - Calculation, Analysis, and Visualization of Information
- g: LibreOffice Impress
+ g: GV
- h: Kontact
+ h: LibreOffice Impress
- i: KAddressBook
+ i: Kontact
- j: KOrganizer - Calendar and Scheduling Program
+ j: KAddressBook
- k: KTimeTracker
+ k: KOrganizer - Calendar and Scheduling Program
- l: KWord - Write text documents
+ l: KTimeTracker
- m: Lokalize
+ m: KWord - Write text documents
- n: Okular
+ n: Lokalize
- o: LibreOffice 3.3 Math
+ o: Okular
- p: LibreOffice 3.3 Printer Administration
+ p: LibreOffice 3.3 Math
- q: LibreOffice 3.3
+ q: LibreOffice 3.3 Printer Administration
- r: LibreOffice 3.3 Writer
+ r: LibreOffice 3.3
- s: Lyx - Latex WYSIWYM Editor
+ s: LibreOffice 3.3 Writer
- t: LibreOffice Extension Manager
+ t: Lyx - Latex WYSIWYM Editor
- u: OOo4Kids 1.1 Calc
+ u: LibreOffice Extension Manager
- v: OOo4Kids 1.1 Draw
+ v: OOo4Kids 1.1 Calc
- w: OOo4Kids 1.1 Impress
+ w: OOo4Kids 1.1 Draw
- x: OOo4Kids 1.1 Math
+ x: OOo4Kids 1.1 Impress
- y: OOo4Kids 1.1
+ y: OOo4Kids 1.1 Math
- z: OOo4Kids 1.1 Printer Administration
+ z: OOo4Kids 1.1
+
+
+ |: OOo4Kids 1.1 Printer Administration
|: OOo4Kids 1.1 Writer
@@ -2929,40 +2932,40 @@
b: < Notify Window mode group >
- c: < Identify key group >
+ c: < Expose mode group >
- d: < Expose mode group >
+ d: < Hook group >
- e: < Hook group >
+ e: < Main mode group >
- f: < Main mode group >
+ f: < Frame colors group >
- g: < Frame colors group >
+ g: < Identify key group >
- h: < Second mode group >
+ h: < Corner group >
- i: < Corner group >
+ i: < Circulate mode group >
- j: < Circulate mode group >
+ j: < Query string group >
- k: < Query string group >
+ k: < Placement group >
- l: < Placement group >
+ l: < Miscellaneous group >
- m: < Miscellaneous group >
+ m: < Info mode group >
- n: < Info mode group >
+ n: < Second mode group >
o: < Menu group >
@@ -2995,22 +2998,6 @@
-
- a: Configure IDENTIFY-FOREGROUND
-
-
- b: Configure IDENTIFY-BACKGROUND
-
-
- c: Configure IDENTIFY-FONT-STRING
-
-
- d: Configure IDENTIFY-BORDER
-
-
-
@@ -3081,25 +3068,19 @@
- a: Configure SM-FOREGROUND-COLOR
-
-
- b: Configure SM-BACKGROUND-COLOR
-
-
- c: Configure SM-HEIGHT
+ a: Configure IDENTIFY-FOREGROUND
- d: Configure SM-WIDTH
+ b: Configure IDENTIFY-FONT-STRING
- e: Configure SM-BORDER-COLOR
+ c: Configure IDENTIFY-BORDER
- f: Configure SM-FONT-STRING
+ d: Configure IDENTIFY-BACKGROUND
@@ -3115,19 +3096,19 @@
c: Configure CORNER-SECOND-MODE-LEFT-BUTTON
- d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
+ d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
- e: Configure CORNER-SIZE
+ e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
- f: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
+ f: Configure CORNER-SIZE
- g: Configure VIRTUAL-KEYBOARD-CMD
+ g: Configure CLFSWM-TERMINAL-CMD
- h: Configure CLFSWM-TERMINAL-CMD
+ h: Configure VIRTUAL-KEYBOARD-CMD
i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON
@@ -3143,16 +3124,16 @@
a: Configure CIRCULATE-BORDER
- b: Configure CIRCULATE-HEIGHT
+ b: Configure CIRCULATE-WIDTH
- c: Configure CIRCULATE-TEXT-LIMITE
+ c: Configure CIRCULATE-HEIGHT
- d: Configure CIRCULATE-FONT-STRING
+ d: Configure CIRCULATE-TEXT-LIMITE
- e: Configure CIRCULATE-WIDTH
+ e: Configure CIRCULATE-FONT-STRING
f: Configure CIRCULATE-BACKGROUND
@@ -3218,28 +3199,28 @@
Conf-Miscellaneous-Group
- a: Configure CREATE-FRAME-ON-ROOT
+ a: Configure HAVE-TO-COMPRESS-NOTIFY
- b: Configure HAVE-TO-COMPRESS-NOTIFY
+ b: Configure HIDE-UNMANAGED-WINDOW
c: Configure DEFAULT-WINDOW-WIDTH
- d: Configure NEVER-MANAGED-WINDOW-LIST
+ d: Configure CREATE-FRAME-ON-ROOT
e: Configure DEFAULT-MANAGED-TYPE
- f: Configure HIDE-UNMANAGED-WINDOW
+ f: Configure DEFAULT-FRAME-DATA
- g: Configure DEFAULT-FRAME-DATA
+ g: Configure DEFAULT-MODIFIERS
- h: Configure DEFAULT-MODIFIERS
+ h: Configure NEVER-MANAGED-WINDOW-LIST
i: Configure DEFAULT-WINDOW-HEIGHT
@@ -3292,6 +3273,28 @@
+
+ a: Configure SM-FOREGROUND-COLOR
+
+
+ b: Configure SM-BACKGROUND-COLOR
+
+
+ c: Configure SM-HEIGHT
+
+
+ d: Configure SM-WIDTH
+
+
+ e: Configure SM-BORDER-COLOR
+
+
+ f: Configure SM-FONT-STRING
+
+
+
Modified: clfswm/doc/menu.txt
==============================================================================
--- clfswm/doc/menu.txt (original)
+++ clfswm/doc/menu.txt Sun Feb 6 17:28:14 2011
@@ -370,27 +370,28 @@
c: LibreOffice Calc
d: ePDFViewer - Lightweight PDF document viewer
e: Evolution - Manage your email, contacts and schedule
-f: GV
-g: LibreOffice Impress
-h: Kontact
-i: KAddressBook
-j: KOrganizer - Calendar and Scheduling Program
-k: KTimeTracker
-l: KWord - Write text documents
-m: Lokalize
-n: Okular
-o: LibreOffice 3.3 Math
-p: LibreOffice 3.3 Printer Administration
-q: LibreOffice 3.3
-r: LibreOffice 3.3 Writer
-s: Lyx - Latex WYSIWYM Editor
-t: LibreOffice Extension Manager
-u: OOo4Kids 1.1 Calc
-v: OOo4Kids 1.1 Draw
-w: OOo4Kids 1.1 Impress
-x: OOo4Kids 1.1 Math
-y: OOo4Kids 1.1
-z: OOo4Kids 1.1 Printer Administration
+f: Gnumeric - Calculation, Analysis, and Visualization of Information
+g: GV
+h: LibreOffice Impress
+i: Kontact
+j: KAddressBook
+k: KOrganizer - Calendar and Scheduling Program
+l: KTimeTracker
+m: KWord - Write text documents
+n: Lokalize
+o: Okular
+p: LibreOffice 3.3 Math
+q: LibreOffice 3.3 Printer Administration
+r: LibreOffice 3.3
+s: LibreOffice 3.3 Writer
+t: Lyx - Latex WYSIWYM Editor
+u: LibreOffice Extension Manager
+v: OOo4Kids 1.1 Calc
+w: OOo4Kids 1.1 Draw
+x: OOo4Kids 1.1 Impress
+y: OOo4Kids 1.1 Math
+z: OOo4Kids 1.1
+|: OOo4Kids 1.1 Printer Administration
|: OOo4Kids 1.1 Writer
|: LibreOffice Quickstarter
|: LibreOffice
@@ -1003,18 +1004,18 @@
Configuration-Menu
a: < Notify Window group >
b: < Notify Window mode group >
-c: < Identify key group >
-d: < Expose mode group >
-e: < Hook group >
-f: < Main mode group >
-g: < Frame colors group >
-h: < Second mode group >
-i: < Corner group >
-j: < Circulate mode group >
-k: < Query string group >
-l: < Placement group >
-m: < Miscellaneous group >
-n: < Info mode group >
+c: < Expose mode group >
+d: < Hook group >
+e: < Main mode group >
+f: < Frame colors group >
+g: < Identify key group >
+h: < Corner group >
+i: < Circulate mode group >
+j: < Query string group >
+k: < Placement group >
+l: < Miscellaneous group >
+m: < Info mode group >
+n: < Second mode group >
o: < Menu group >
F2: Save all configuration variables in clfswmrc
@@ -1027,12 +1028,6 @@
Conf-Notify-Window-Mode-Group
a: Configure NOTIFY-WINDOW-FONT-STRING
-Conf-Identify-Key-Group
-a: Configure IDENTIFY-FOREGROUND
-b: Configure IDENTIFY-BACKGROUND
-c: Configure IDENTIFY-FONT-STRING
-d: Configure IDENTIFY-BORDER
-
Conf-Expose-Mode-Group
a: Configure EXPOSE-FOREGROUND
b: Configure EXPOSE-SHOW-WINDOW-TITLE
@@ -1059,32 +1054,30 @@
c: Configure FRAME-FOREGROUND-HIDDEN
d: Configure FRAME-BACKGROUND
-Conf-Second-Mode-Group
-a: Configure SM-FOREGROUND-COLOR
-b: Configure SM-BACKGROUND-COLOR
-c: Configure SM-HEIGHT
-d: Configure SM-WIDTH
-e: Configure SM-BORDER-COLOR
-f: Configure SM-FONT-STRING
+Conf-Identify-Key-Group
+a: Configure IDENTIFY-FOREGROUND
+b: Configure IDENTIFY-FONT-STRING
+c: Configure IDENTIFY-BORDER
+d: Configure IDENTIFY-BACKGROUND
Conf-Corner-Group
a: Configure CORNER-MAIN-MODE-LEFT-BUTTON
b: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON
c: Configure CORNER-SECOND-MODE-LEFT-BUTTON
-d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
-e: Configure CORNER-SIZE
-f: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
-g: Configure VIRTUAL-KEYBOARD-CMD
-h: Configure CLFSWM-TERMINAL-CMD
+d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON
+e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON
+f: Configure CORNER-SIZE
+g: Configure CLFSWM-TERMINAL-CMD
+h: Configure VIRTUAL-KEYBOARD-CMD
i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON
j: Configure CLFSWM-TERMINAL-NAME
Conf-Circulate-Mode-Group
a: Configure CIRCULATE-BORDER
-b: Configure CIRCULATE-HEIGHT
-c: Configure CIRCULATE-TEXT-LIMITE
-d: Configure CIRCULATE-FONT-STRING
-e: Configure CIRCULATE-WIDTH
+b: Configure CIRCULATE-WIDTH
+c: Configure CIRCULATE-HEIGHT
+d: Configure CIRCULATE-TEXT-LIMITE
+e: Configure CIRCULATE-FONT-STRING
f: Configure CIRCULATE-BACKGROUND
g: Configure CIRCULATE-FOREGROUND
@@ -1108,14 +1101,14 @@
g: Configure SECOND-MODE-PLACEMENT
Conf-Miscellaneous-Group
-a: Configure CREATE-FRAME-ON-ROOT
-b: Configure HAVE-TO-COMPRESS-NOTIFY
+a: Configure HAVE-TO-COMPRESS-NOTIFY
+b: Configure HIDE-UNMANAGED-WINDOW
c: Configure DEFAULT-WINDOW-WIDTH
-d: Configure NEVER-MANAGED-WINDOW-LIST
+d: Configure CREATE-FRAME-ON-ROOT
e: Configure DEFAULT-MANAGED-TYPE
-f: Configure HIDE-UNMANAGED-WINDOW
-g: Configure DEFAULT-FRAME-DATA
-h: Configure DEFAULT-MODIFIERS
+f: Configure DEFAULT-FRAME-DATA
+g: Configure DEFAULT-MODIFIERS
+h: Configure NEVER-MANAGED-WINDOW-LIST
i: Configure DEFAULT-WINDOW-HEIGHT
j: Configure DEFAULT-FONT-STRING
k: Configure DEFAULT-FOCUS-POLICY
@@ -1134,6 +1127,14 @@
j: Configure INFO-COLOR-TITLE
k: Configure INFO-COLOR-SECOND
+Conf-Second-Mode-Group
+a: Configure SM-FOREGROUND-COLOR
+b: Configure SM-BACKGROUND-COLOR
+c: Configure SM-HEIGHT
+d: Configure SM-WIDTH
+e: Configure SM-BORDER-COLOR
+f: Configure SM-FONT-STRING
+
Conf-Menu-Group
a: Configure MENU-COLOR-COMMENT
b: Configure MENU-COLOR-KEY
Modified: clfswm/load.lisp
==============================================================================
--- clfswm/load.lisp (original)
+++ clfswm/load.lisp Sun Feb 6 17:28:14 2011
@@ -57,14 +57,14 @@
(in-package :clfswm)
-;;(ignore-errors
-;; (main :read-conf-file-p t))
+(ignore-errors
+ (main :read-conf-file-p t))
-;;;; Uncomment lines above to save the default documentation.
-(ignore-errors
- (main :read-conf-file-p nil))
-(produce-all-docs)
+;;;;;; Uncomment lines above to save the default documentation.
+;;(ignore-errors
+;; (main :read-conf-file-p nil))
+;;(produce-all-docs)
;;; For debuging: start another sever (for example: 'startx -- :1'), Xnest
From pbrochard at common-lisp.net Tue Feb 8 22:35:03 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Tue, 08 Feb 2011 17:35:03 -0500
Subject: [clfswm-cvs] r402 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Tue Feb 8 17:35:03 2011
New Revision: 402
Log:
src/clfswm.lisp (main-mode): Raise or not unmanaged windows following request in *never-managed-window-list*.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-corner.lisp
clfswm/src/clfswm-internal.lisp
clfswm/src/clfswm-util.lisp
clfswm/src/clfswm.lisp
clfswm/src/config.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Tue Feb 8 17:35:03 2011
@@ -1,3 +1,8 @@
+2011-02-08 Philippe Brochard
+
+ * src/clfswm.lisp (main-mode): Raise or not unmanaged windows
+ following request in *never-managed-window-list*.
+
2011-02-05 Philippe Brochard
* *: **** Release 1102 ****
Modified: clfswm/src/clfswm-corner.lisp
==============================================================================
--- clfswm/src/clfswm-corner.lisp (original)
+++ clfswm/src/clfswm-corner.lisp Tue Feb 8 17:35:03 2011
@@ -91,7 +91,8 @@
(do-shell cmd)
(setf win (wait-window-in-query-tree wait-test))
(hide-window win))
- (cond ((window-hidden-p win) (unhide-window win)
+ (cond ((window-hidden-p win)
+ (unhide-window win)
(when focus-p
(focus-window win))
(raise-window win))
Modified: clfswm/src/clfswm-internal.lisp
==============================================================================
--- clfswm/src/clfswm-internal.lisp (original)
+++ clfswm/src/clfswm-internal.lisp Tue Feb 8 17:35:03 2011
@@ -157,12 +157,9 @@
(defun never-managed-window-p (window)
(dolist (type *never-managed-window-list*)
- (destructuring-bind (test predicate result) type
+ (destructuring-bind (test predicate result raise) type
(when (funcall test (funcall predicate window) result)
- (return t)))))
- ;;(when (string-equal (funcall (first type) window) (second type))
- ;; (return t))))
-
+ (return (values t raise))))))
(defgeneric child-name (child))
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Tue Feb 8 17:35:03 2011
@@ -1464,7 +1464,7 @@
(defun close-notify-window ()
(erase-timer :refresh-notify-window)
(setf *never-managed-window-list*
- (remove (list #'equal #'is-notify-window-p t) *never-managed-window-list* :test #'equal))
+ (remove (list #'equal #'is-notify-window-p t t) *never-managed-window-list* :test #'equal))
(when gc
(xlib:free-gcontext gc))
(when window
@@ -1502,7 +1502,7 @@
:line-style :solid))
(when (frame-p *current-child*)
(setf current-child *current-child*)
- (push (list #'equal #'is-notify-window-p t) *never-managed-window-list*))
+ (push (list #'equal #'is-notify-window-p t t) *never-managed-window-list*))
(map-window window)
(refresh-notify-window)
(xlib:display-finish-output *display*))))))
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Tue Feb 8 17:35:03 2011
@@ -84,7 +84,11 @@
(process-new-window window)
(map-window window)
(unless (null-size-window-p window)
- (show-all-children))))
+ (multiple-value-bind (never-managed raise)
+ (never-managed-window-p window)
+ (unless (and never-managed raise)
+ (show-all-children))))))
+
(define-handler main-mode :unmap-notify (send-event-p event-window window)
(unless (and (not send-event-p)
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Tue Feb 8 17:35:03 2011
@@ -47,11 +47,11 @@
;;; CONFIG - Never managed window list
(defparameter *never-managed-window-list*
- '((string-equal xlib:get-wm-class "ROX-Pinboard")
- (string-equal xlib:get-wm-class "xvkbd")
- (string-equal xlib:wm-name "clfswm-terminal"))
+ '((string-equal xlib:get-wm-class "ROX-Pinboard" nil)
+ (string-equal xlib:get-wm-class "xvkbd" t)
+ (string-equal xlib:wm-name "clfswm-terminal" t))
"Config(): CLFSWM will never manage windows of this type.
-A list of (predicate-function-on-window expected-string)")
+A list of (predicate-function-on-window expected-string raise-p)")
(defparameter *hide-unmanaged-window* t
From pbrochard at common-lisp.net Wed Feb 9 21:59:59 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Wed, 09 Feb 2011 16:59:59 -0500
Subject: [clfswm-cvs] r403 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Wed Feb 9 16:59:58 2011
New Revision: 403
Log:
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.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-corner.lisp
clfswm/src/clfswm-internal.lisp
clfswm/src/clfswm-util.lisp
clfswm/src/config.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Wed Feb 9 16:59:58 2011
@@ -1,3 +1,12 @@
+2011-02-09 Philippe Brochard
+
+ * 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.
+
+ * src/clfswm-internal.lisp (in-frame, in-window, in-child): New
+ functions.
+
2011-02-08 Philippe Brochard
* src/clfswm.lisp (main-mode): Raise or not unmanaged windows
Modified: clfswm/src/clfswm-corner.lisp
==============================================================================
--- clfswm/src/clfswm-corner.lisp (original)
+++ clfswm/src/clfswm-corner.lisp Wed Feb 9 16:59:58 2011
@@ -122,3 +122,4 @@
t))
t))
+
Modified: clfswm/src/clfswm-internal.lisp
==============================================================================
--- clfswm/src/clfswm-internal.lisp (original)
+++ clfswm/src/clfswm-internal.lisp Wed Feb 9 16:59:58 2011
@@ -64,7 +64,6 @@
-
(defgeneric frame-p (frame))
(defmethod frame-p ((frame frame))
(declare (ignore frame))
@@ -75,6 +74,28 @@
+;;; in-*: Find if point (x,y) is in frame, window or child
+(defun in-frame (frame x y)
+ (and (frame-p frame)
+ (<= (frame-rx frame) x (+ (frame-rx frame) (frame-rw frame)))
+ (<= (frame-ry frame) y (+ (frame-ry frame) (frame-rh frame)))))
+
+(defun in-window (window x y)
+ (and (xlib:window-p window)
+ (<= (xlib:drawable-x window) x (+ (xlib:drawable-x window) (xlib:drawable-width window)))
+ (<= (xlib:drawable-y window) y (+ (xlib:drawable-y window) (xlib:drawable-height window)))))
+
+(defgeneric in-child (child x y))
+
+(defmethod in-child ((child frame) x y)
+ (in-frame child x y))
+(defmethod in-child ((child xlib:window) x y)
+ (in-window child x y))
+(defmethod in-child (child x y)
+ (declare (ignore child x y))
+ nil)
+
+
(defun frame-selected-child (frame)
@@ -156,10 +177,11 @@
(defun never-managed-window-p (window)
- (dolist (type *never-managed-window-list*)
- (destructuring-bind (test predicate result raise) type
- (when (funcall test (funcall predicate window) result)
- (return (values t raise))))))
+ (when (xlib:window-p window)
+ (dolist (type *never-managed-window-list*)
+ (destructuring-bind (test predicate result raise) type
+ (when (funcall test (funcall predicate window) result)
+ (return (values t raise)))))))
(defgeneric child-name (child))
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Wed Feb 9 16:59:58 2011
@@ -149,34 +149,48 @@
(let ((win *root*))
(with-all-windows-frames-and-parent (*current-root* child parent)
(when (and (or (managed-window-p child parent) (child-equal-p parent *current-child*))
- (<= (xlib:drawable-x child) x (+ (xlib:drawable-x child) (xlib:drawable-width child)))
- (<= (xlib:drawable-y child) y (+ (xlib:drawable-y child) (xlib:drawable-height child))))
+ (in-window child x y))
(setf win child))
- (when (and (<= (frame-rx child) x (+ (frame-rx child) (frame-rw child)))
- (<= (frame-ry child) y (+ (frame-ry child) (frame-rh child))))
+ (when (in-frame child x y)
(setf win (frame-window child))))
win))
-(defun find-child-under-mouse (x y &optional first-foundp)
+
+
+(defun find-child-under-mouse-in-never-managed-windows (x y)
+ "Return the child under mouse from never managed windows"
+ (dolist (win (xlib:query-tree *root*))
+ (unless (window-hidden-p win)
+ (multiple-value-bind (managed raise)
+ (never-managed-window-p win)
+ (when (and managed raise (in-window win x y))
+ (return-from find-child-under-mouse-in-never-managed-windows win))))))
+
+
+(defun find-child-under-mouse-in-child-tree (x y &optional first-foundp)
"Return the child under the mouse"
(let ((ret nil))
(with-all-windows-frames-and-parent (*current-root* child parent)
(when (and (not (window-hidden-p child))
(or (managed-window-p child parent) (child-equal-p parent *current-child*))
- (<= (xlib:drawable-x child) x (+ (xlib:drawable-x child) (xlib:drawable-width child)))
- (<= (xlib:drawable-y child) y (+ (xlib:drawable-y child) (xlib:drawable-height child))))
+ (in-window child x y))
(if first-foundp
- (return-from find-child-under-mouse child)
+ (return-from find-child-under-mouse-in-child-tree child)
(setf ret child)))
- (when (and (<= (frame-rx child) x (+ (frame-rx child) (frame-rw child)))
- (<= (frame-ry child) y (+ (frame-ry child) (frame-rh child))))
+ (when (in-frame child x y)
(if first-foundp
- (return-from find-child-under-mouse child)
+ (return-from find-child-under-mouse-in-child-tree child)
(setf ret child))))
ret))
+(defun find-child-under-mouse (x y &optional first-foundp also-never-managed)
+ "Return the child under the mouse"
+ (or (and also-never-managed
+ (find-child-under-mouse-in-never-managed-windows x y))
+ (find-child-under-mouse-in-child-tree x y first-foundp)))
+
@@ -596,26 +610,39 @@
mouse-fun is #'move-frame or #'resize-frame.
Focus child and its parents -
For window: set current child to window or its parent according to window-parent"
- (let* ((child (find-child-under-mouse root-x root-y))
- (parent (find-parent-frame child)))
- (when (and (child-equal-p child *current-root*)
- (frame-p *current-root*))
- (setf child (create-frame)
- parent *current-root*
- mouse-fn #'resize-frame)
- (place-frame child parent root-x root-y 10 10)
- (map-window (frame-window child))
- (pushnew child (frame-child *current-root*)))
- (typecase child
- (xlib:window
- (if (managed-window-p child parent)
- (funcall mouse-fn parent (find-parent-frame parent) root-x root-y)
- (funcall(cond ((eql mouse-fn #'move-frame) #'move-window)
- ((eql mouse-fn #'resize-frame) #'resize-window))
- child root-x root-y)))
- (frame (funcall mouse-fn child parent root-x root-y)))
- (focus-all-children child parent window-parent)
- (show-all-children *current-root*)))
+ (labels ((move/resize-managed (child)
+ (let ((parent (find-parent-frame child)))
+ (when (and (child-equal-p child *current-root*)
+ (frame-p *current-root*))
+ (setf child (create-frame)
+ parent *current-root*
+ mouse-fn #'resize-frame)
+ (place-frame child parent root-x root-y 10 10)
+ (map-window (frame-window child))
+ (pushnew child (frame-child *current-root*)))
+ (typecase child
+ (xlib:window
+ (if (managed-window-p child parent)
+ (funcall mouse-fn parent (find-parent-frame parent) root-x root-y)
+ (funcall (cond ((eql mouse-fn #'move-frame) #'move-window)
+ ((eql mouse-fn #'resize-frame) #'resize-window))
+ child root-x root-y)))
+ (frame (funcall mouse-fn child parent root-x root-y)))
+ (focus-all-children child parent window-parent)
+ (show-all-children *current-root*)))
+ (move/resize-never-managed (child)
+ (raise-window child)
+ (funcall (cond ((eql mouse-fn #'move-frame) #'move-window)
+ ((eql mouse-fn #'resize-frame) #'resize-window))
+ child root-x root-y)
+ (focus-window child)))
+ (let ((child (find-child-under-mouse root-x root-y nil t)))
+ (multiple-value-bind (never-managed raise)
+ (never-managed-window-p child)
+ (if (and (xlib:window-p child) never-managed raise)
+ (move/resize-never-managed child)
+ (move/resize-managed child))))))
+
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Wed Feb 9 16:59:58 2011
@@ -48,7 +48,7 @@
;;; CONFIG - Never managed window list
(defparameter *never-managed-window-list*
'((string-equal xlib:get-wm-class "ROX-Pinboard" nil)
- (string-equal xlib:get-wm-class "xvkbd" t)
+ (string-equal xlib:get-wm-class "xvkbd" t)
(string-equal xlib:wm-name "clfswm-terminal" t))
"Config(): CLFSWM will never manage windows of this type.
A list of (predicate-function-on-window expected-string raise-p)")
@@ -129,6 +129,7 @@
(defparameter *clfswm-terminal-name* "clfswm-terminal"
"Config(Corner group): The clfswm terminal name")
;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
+;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
"Config(Corner group): The clfswm terminal command.
This command must set the window title to *clfswm-terminal-name*")
From pbrochard at common-lisp.net Wed Feb 9 22:09:55 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Wed, 09 Feb 2011 17:09:55 -0500
Subject: [clfswm-cvs] r404 - clfswm/src
Message-ID:
Author: pbrochard
Date: Wed Feb 9 17:09:55 2011
New Revision: 404
Log:
mouse-focus-move/resize-generic: do not focus a never managed window
Modified:
clfswm/src/clfswm-util.lisp
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Wed Feb 9 17:09:55 2011
@@ -634,8 +634,7 @@
(raise-window child)
(funcall (cond ((eql mouse-fn #'move-frame) #'move-window)
((eql mouse-fn #'resize-frame) #'resize-window))
- child root-x root-y)
- (focus-window child)))
+ child root-x root-y)))
(let ((child (find-child-under-mouse root-x root-y nil t)))
(multiple-value-bind (never-managed raise)
(never-managed-window-p child)
From pbrochard at common-lisp.net Sat Feb 12 22:43:02 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sat, 12 Feb 2011 17:43:02 -0500
Subject: [clfswm-cvs] r405 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sat Feb 12 17:43:02 2011
New Revision: 405
Log:
*never-managed-window-list*: Structure change to be more flexible. Let the choice to focus, raise and do nothing on never managed windows.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-internal.lisp
clfswm/src/clfswm-util.lisp
clfswm/src/config.lisp
clfswm/src/xlib-util.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sat Feb 12 17:43:02 2011
@@ -1,3 +1,14 @@
+2011-02-12 Philippe Brochard
+
+ * src/xlib-util.lisp (equal-wm-class-fun, equal-wm-name-fun)
+ (raise-window-fun, raise-and-focus-window-fun): New functions.
+
+ * src/config.lisp (*clfswm-terminal-cmd*): Switch from xterm to
+ urxvt.
+ (*never-managed-window-list*): Structure change to be more
+ flexible. Let the choice to focus, raise and do nothing on never
+ managed windows.
+
2011-02-09 Philippe Brochard
* src/clfswm-util.lisp (mouse-focus-move/resize-generic): Take
Modified: clfswm/src/clfswm-internal.lisp
==============================================================================
--- clfswm/src/clfswm-internal.lisp (original)
+++ clfswm/src/clfswm-internal.lisp Sat Feb 12 17:43:02 2011
@@ -179,9 +179,9 @@
(defun never-managed-window-p (window)
(when (xlib:window-p window)
(dolist (type *never-managed-window-list*)
- (destructuring-bind (test predicate result raise) type
- (when (funcall test (funcall predicate window) result)
- (return (values t raise)))))))
+ (when (funcall (first type) window)
+ (return (values t (second type)))))))
+
(defgeneric child-name (child))
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Sat Feb 12 17:43:02 2011
@@ -160,12 +160,14 @@
(defun find-child-under-mouse-in-never-managed-windows (x y)
"Return the child under mouse from never managed windows"
- (dolist (win (xlib:query-tree *root*))
- (unless (window-hidden-p win)
- (multiple-value-bind (managed raise)
- (never-managed-window-p win)
- (when (and managed raise (in-window win x y))
- (return-from find-child-under-mouse-in-never-managed-windows win))))))
+ (let ((ret nil))
+ (dolist (win (xlib:query-tree *root*))
+ (unless (window-hidden-p win)
+ (multiple-value-bind (never-managed raise)
+ (never-managed-window-p win)
+ (when (and never-managed raise (in-window win x y))
+ (setf ret win)))))
+ ret))
(defun find-child-under-mouse-in-child-tree (x y &optional first-foundp)
@@ -630,16 +632,16 @@
(frame (funcall mouse-fn child parent root-x root-y)))
(focus-all-children child parent window-parent)
(show-all-children *current-root*)))
- (move/resize-never-managed (child)
- (raise-window child)
+ (move/resize-never-managed (child raise-fun)
+ (funcall raise-fun child)
(funcall (cond ((eql mouse-fn #'move-frame) #'move-window)
((eql mouse-fn #'resize-frame) #'resize-window))
child root-x root-y)))
(let ((child (find-child-under-mouse root-x root-y nil t)))
- (multiple-value-bind (never-managed raise)
+ (multiple-value-bind (never-managed raise-fun)
(never-managed-window-p child)
- (if (and (xlib:window-p child) never-managed raise)
- (move/resize-never-managed child)
+ (if (and (xlib:window-p child) never-managed raise-fun)
+ (move/resize-never-managed child raise-fun)
(move/resize-managed child))))))
@@ -1473,7 +1475,8 @@
(cons (second tx))
(t *notify-window-foreground*)))))
(defun is-notify-window-p (win)
- (xlib:window-equal win window))
+ (when (and (xlib:window-p win) (xlib:window-p window))
+ (xlib:window-equal win window)))
(defun refresh-notify-window ()
(add-timer 0.1 #'refresh-notify-window :refresh-notify-window)
@@ -1490,7 +1493,8 @@
(defun close-notify-window ()
(erase-timer :refresh-notify-window)
(setf *never-managed-window-list*
- (remove (list #'equal #'is-notify-window-p t t) *never-managed-window-list* :test #'equal))
+ (remove (list #'is-notify-window-p (raise-window-fun))
+ *never-managed-window-list* :test #'equal))
(when gc
(xlib:free-gcontext gc))
(when window
@@ -1528,7 +1532,7 @@
:line-style :solid))
(when (frame-p *current-child*)
(setf current-child *current-child*)
- (push (list #'equal #'is-notify-window-p t t) *never-managed-window-list*))
+ (push (list #'is-notify-window-p (raise-window-fun)) *never-managed-window-list*))
(map-window window)
(refresh-notify-window)
(xlib:display-finish-output *display*))))))
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Sat Feb 12 17:43:02 2011
@@ -47,11 +47,12 @@
;;; CONFIG - Never managed window list
(defparameter *never-managed-window-list*
- '((string-equal xlib:get-wm-class "ROX-Pinboard" nil)
- (string-equal xlib:get-wm-class "xvkbd" t)
- (string-equal xlib:wm-name "clfswm-terminal" t))
+ (list (list (equal-wm-class-fun "ROX-Pinboard") nil)
+ (list (equal-wm-class-fun "xvkbd") (raise-window-fun))
+ (list (equal-wm-name-fun "clfswm-terminal") (raise-and-focus-window-fun)))
"Config(): CLFSWM will never manage windows of this type.
-A list of (predicate-function-on-window expected-string raise-p)")
+A list of (list match-function handle-function)")
+
(defparameter *hide-unmanaged-window* t
@@ -129,8 +130,8 @@
(defparameter *clfswm-terminal-name* "clfswm-terminal"
"Config(Corner group): The clfswm terminal name")
;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
-;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
-(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
+(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
+;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
"Config(Corner group): The clfswm terminal command.
This command must set the window title to *clfswm-terminal-name*")
Modified: clfswm/src/xlib-util.lisp
==============================================================================
--- clfswm/src/xlib-util.lisp (original)
+++ clfswm/src/xlib-util.lisp Sat Feb 12 17:43:02 2011
@@ -393,14 +393,14 @@
(defun raise-window (window)
"Map the window if needed and bring it to the top of the stack. Does not affect focus."
- (when window
+ (when (xlib:window-p window)
(when (window-hidden-p window)
(unhide-window window))
(setf (xlib:window-priority window) :top-if)))
(defun focus-window (window)
"Give the window focus."
- (when window
+ (when (xlib:window-p window)
(xlib:set-input-focus *display* window :parent)))
@@ -797,3 +797,23 @@
when (plusp k)
return t))
+;;; Windows wm class and name tests
+(defun equal-wm-class-fun (class)
+ (lambda (win)
+ (when (xlib:window-p win)
+ (string-equal (xlib:get-wm-class win) class))))
+
+(defun equal-wm-name-fun (name)
+ (lambda (win)
+ (when (xlib:window-p win)
+ (string-equal (xlib:wm-name win) name))))
+
+(defun raise-window-fun ()
+ (lambda (win)
+ (raise-window win)))
+
+(defun raise-and-focus-window-fun ()
+ (lambda (win)
+ (raise-window win)
+ (focus-window win)))
+
From pbrochard at common-lisp.net Sun Feb 13 20:43:28 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 13 Feb 2011 15:43:28 -0500
Subject: [clfswm-cvs] r406 - clfswm/src
Message-ID:
Author: pbrochard
Date: Sun Feb 13 15:43:28 2011
New Revision: 406
Log:
No need to create the functions every time.
Modified:
clfswm/src/clfswm-util.lisp
clfswm/src/config.lisp
clfswm/src/xlib-util.lisp
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Sun Feb 13 15:43:28 2011
@@ -1493,7 +1493,7 @@
(defun close-notify-window ()
(erase-timer :refresh-notify-window)
(setf *never-managed-window-list*
- (remove (list #'is-notify-window-p (raise-window-fun))
+ (remove (list #'is-notify-window-p 'raise-window)
*never-managed-window-list* :test #'equal))
(when gc
(xlib:free-gcontext gc))
@@ -1532,7 +1532,7 @@
:line-style :solid))
(when (frame-p *current-child*)
(setf current-child *current-child*)
- (push (list #'is-notify-window-p (raise-window-fun)) *never-managed-window-list*))
+ (push (list #'is-notify-window-p 'raise-window) *never-managed-window-list*))
(map-window window)
(refresh-notify-window)
(xlib:display-finish-output *display*))))))
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Sun Feb 13 15:43:28 2011
@@ -48,8 +48,8 @@
;;; CONFIG - Never managed window list
(defparameter *never-managed-window-list*
(list (list (equal-wm-class-fun "ROX-Pinboard") nil)
- (list (equal-wm-class-fun "xvkbd") (raise-window-fun))
- (list (equal-wm-name-fun "clfswm-terminal") (raise-and-focus-window-fun)))
+ (list (equal-wm-class-fun "xvkbd") 'raise-window)
+ (list (equal-wm-name-fun "clfswm-terminal") 'raise-and-focus-window))
"Config(): CLFSWM will never manage windows of this type.
A list of (list match-function handle-function)")
Modified: clfswm/src/xlib-util.lisp
==============================================================================
--- clfswm/src/xlib-util.lisp (original)
+++ clfswm/src/xlib-util.lisp Sun Feb 13 15:43:28 2011
@@ -403,6 +403,10 @@
(when (xlib:window-p window)
(xlib:set-input-focus *display* window :parent)))
+(defun raise-and-focus-window (window)
+ "Raise and focus."
+ (raise-window window)
+ (focus-window window))
(defun no-focus ()
"don't focus any window but still read keyboard events."
@@ -807,13 +811,3 @@
(lambda (win)
(when (xlib:window-p win)
(string-equal (xlib:wm-name win) name))))
-
-(defun raise-window-fun ()
- (lambda (win)
- (raise-window win)))
-
-(defun raise-and-focus-window-fun ()
- (lambda (win)
- (raise-window win)
- (focus-window win)))
-
From pbrochard at common-lisp.net Sun Feb 13 22:23:28 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 13 Feb 2011 17:23:28 -0500
Subject: [clfswm-cvs] r407 - clfswm/src
Message-ID:
Author: pbrochard
Date: Sun Feb 13 17:23:28 2011
New Revision: 407
Log:
Better clfswm terminal identification
Modified:
clfswm/src/clfswm-corner.lisp
clfswm/src/config.lisp
clfswm/src/xlib-util.lisp
Modified: clfswm/src/clfswm-corner.lisp
==============================================================================
--- clfswm/src/clfswm-corner.lisp (original)
+++ clfswm/src/clfswm-corner.lisp Sun Feb 13 17:23:28 2011
@@ -90,6 +90,7 @@
(unless (find-window-in-query-tree win)
(do-shell cmd)
(setf win (wait-window-in-query-tree wait-test))
+ (grab-all-buttons win)
(hide-window win))
(cond ((window-hidden-p win)
(unhide-window win)
@@ -113,6 +114,9 @@
(let (win)
+ (defun equal-clfswm-terminal-id (window)
+ (when win
+ (equal (xlib:window-id window) (xlib:window-id win))))
(defun present-clfswm-terminal ()
"Hide/Unhide a terminal"
(setf win (generic-present-body *clfswm-terminal-cmd*
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Sun Feb 13 17:23:28 2011
@@ -49,7 +49,7 @@
(defparameter *never-managed-window-list*
(list (list (equal-wm-class-fun "ROX-Pinboard") nil)
(list (equal-wm-class-fun "xvkbd") 'raise-window)
- (list (equal-wm-name-fun "clfswm-terminal") 'raise-and-focus-window))
+ (list 'equal-clfswm-terminal-id 'raise-and-focus-window))
"Config(): CLFSWM will never manage windows of this type.
A list of (list match-function handle-function)")
@@ -130,8 +130,8 @@
(defparameter *clfswm-terminal-name* "clfswm-terminal"
"Config(Corner group): The clfswm terminal name")
;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
-(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
-;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
+;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
+(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
"Config(Corner group): The clfswm terminal command.
This command must set the window title to *clfswm-terminal-name*")
Modified: clfswm/src/xlib-util.lisp
==============================================================================
--- clfswm/src/xlib-util.lisp (original)
+++ clfswm/src/xlib-util.lisp Sun Feb 13 17:23:28 2011
@@ -396,7 +396,7 @@
(when (xlib:window-p window)
(when (window-hidden-p window)
(unhide-window window))
- (setf (xlib:window-priority window) :top-if)))
+ (setf (xlib:window-priority window) :above)))
(defun focus-window (window)
"Give the window focus."
From pbrochard at common-lisp.net Mon Feb 14 23:34:19 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Mon, 14 Feb 2011 18:34:19 -0500
Subject: [clfswm-cvs] r408 - in clfswm: . contrib src
Message-ID:
Author: pbrochard
Date: Mon Feb 14 18:34:19 2011
New Revision: 408
Log:
src/clfswm.lisp (main-unprotected): Destroy the notify window before closing the display. Tis fix a bug when resetting/reloading clfswm.
Modified:
clfswm/ChangeLog
clfswm/contrib/clfswm
clfswm/src/clfswm.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Mon Feb 14 18:34:19 2011
@@ -1,3 +1,9 @@
+2011-02-15 Philippe Brochard
+
+ * src/clfswm.lisp (main-unprotected): Destroy the notify window
+ before closing the display. This fix a bug when resetting/reloading
+ clfswm.
+
2011-02-12 Philippe Brochard
* src/xlib-util.lisp (equal-wm-class-fun, equal-wm-name-fun)
Modified: clfswm/contrib/clfswm
==============================================================================
--- clfswm/contrib/clfswm (original)
+++ clfswm/contrib/clfswm Mon Feb 14 18:34:19 2011
@@ -72,7 +72,8 @@
build_sbcl()
{
- sbcl $lisp_opt --disable-debugger --eval "(require :asdf)" \
+ sbcl $lisp_opt --disable-debugger --eval "(require :asdf)" \
+ --eval "(require :sb-posix)" \
--eval "(load \"$clfswm_asd_path/clfswm.asd\")" \
--eval "(require :clfswm)" \
--eval "(save-lisp-and-die \"$dump_image\" :toplevel 'clfswm:main)"
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Mon Feb 14 18:34:19 2011
@@ -215,7 +215,6 @@
-
(defun read-conf-file ()
(let* ((conf (conf-file-name)))
(if conf
@@ -276,6 +275,7 @@
(ungrab-main-keys)
(xlib:destroy-window *no-focus-window*)
(xlib:free-pixmap *pixmap-buffer*)
+ (close-notify-window)
(xlib:close-display *display*)
#+:event-debug
(format t "~2&Unhandled events: ~A~%" *unhandled-events*))))
From pbrochard at common-lisp.net Wed Feb 16 10:47:43 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Wed, 16 Feb 2011 05:47:43 -0500
Subject: [clfswm-cvs] r409 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Wed Feb 16 05:47:42 2011
New Revision: 409
Log:
src/clfswm.lisp (main-unprotected): Add a close hook. And close the notify window, the virtual keyboard and the clfswm terminal by default.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-corner.lisp
clfswm/src/clfswm.lisp
clfswm/src/config.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Wed Feb 16 05:47:42 2011
@@ -1,3 +1,9 @@
+2011-02-16 Philippe Brochard
+
+ * src/clfswm.lisp (main-unprotected): Add a close hook. And close
+ the notify window, the virtual keyboard and the clfswm terminal by
+ default.
+
2011-02-15 Philippe Brochard
* src/clfswm.lisp (main-unprotected): Destroy the notify window
Modified: clfswm/src/clfswm-corner.lisp
==============================================================================
--- clfswm/src/clfswm-corner.lisp (original)
+++ clfswm/src/clfswm-corner.lisp Wed Feb 16 05:47:42 2011
@@ -104,6 +104,11 @@
(let (win)
+ (defun close-virtual-keyboard ()
+ (when win
+ (xlib:destroy-window win)
+ (xlib:display-finish-output *display*)
+ (setf win nil)))
(defun present-virtual-keyboard ()
"Present a virtual keyboard"
(setf win (generic-present-body *virtual-keyboard-cmd*
@@ -117,6 +122,11 @@
(defun equal-clfswm-terminal-id (window)
(when win
(equal (xlib:window-id window) (xlib:window-id win))))
+ (defun close-clfswm-terminal ()
+ (when win
+ (xlib:destroy-window win)
+ (xlib:display-finish-output *display*)
+ (setf win nil)))
(defun present-clfswm-terminal ()
"Hide/Unhide a terminal"
(setf win (generic-present-body *clfswm-terminal-cmd*
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Wed Feb 16 05:47:42 2011
@@ -275,7 +275,7 @@
(ungrab-main-keys)
(xlib:destroy-window *no-focus-window*)
(xlib:free-pixmap *pixmap-buffer*)
- (close-notify-window)
+ (call-hook *close-hook*)
(xlib:close-display *display*)
#+:event-debug
(format t "~2&Unhandled events: ~A~%" *unhandled-events*))))
Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp (original)
+++ clfswm/src/config.lisp Wed Feb 16 05:47:42 2011
@@ -151,6 +151,9 @@
(defparameter *init-hook* '(default-init-hook display-hello-window)
"Config(Hook group): Init hook. This hook is run just after the first root frame is created")
+(defparameter *close-hook* '(close-notify-window close-clfswm-terminal close-virtual-keyboard)
+ "Config(Hook group): Close hook. This hook is run just before closing the display")
+
(defparameter *default-nw-hook* 'default-frame-nw-hook
"Config(Hook group): Default action to do on newly created windows")
From pbrochard at common-lisp.net Tue Feb 22 12:11:44 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Tue, 22 Feb 2011 07:11:44 -0500
Subject: [clfswm-cvs] r410 - in clfswm: . contrib/server src
Message-ID:
Author: pbrochard
Date: Tue Feb 22 07:11:42 2011
New Revision: 410
Log:
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.
Modified:
clfswm/ChangeLog
clfswm/contrib/server/server.lisp
clfswm/src/clfswm-util.lisp
clfswm/src/clfswm.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Tue Feb 22 07:11:42 2011
@@ -1,3 +1,10 @@
+2011-02-22 Desmond O. Chang
+
+ * 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.
+
2011-02-16 Philippe Brochard
* src/clfswm.lisp (main-unprotected): Add a close hook. And close
Modified: clfswm/contrib/server/server.lisp
==============================================================================
--- clfswm/contrib/server/server.lisp (original)
+++ clfswm/contrib/server/server.lisp Tue Feb 22 07:11:42 2011
@@ -35,7 +35,7 @@
(format t "Loading the clfswm server code... ")
-(pushnew (truename (concatenate 'string *contrib-dir* "contrib/" "server/")) asdf:*central-registry*)
+(pushnew (truename (merge-pathnames "server/" *contrib-dir*)) asdf:*central-registry*)
(dbg asdf:*central-registry*)
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Tue Feb 22 07:11:42 2011
@@ -50,7 +50,7 @@
(defun load-contrib (file)
"Load a file in the contrib directory"
- (let ((truename (concatenate 'string *contrib-dir* "contrib/" file)))
+ (let ((truename (merge-pathnames file *contrib-dir*)))
(format t "Loading contribution file: ~A~%" truename)
(when (probe-file truename)
(load truename :verbose nil))))
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Tue Feb 22 07:11:42 2011
@@ -244,10 +244,10 @@
(defun main-unprotected (&key (display (or (getenv "DISPLAY") ":0")) protocol
- (base-dir (directory-namestring (or *load-truename* "")))
+ (base-dir (asdf:system-source-directory :clfswm))
(read-conf-file-p t) (alternate-conf nil)
error-msg)
- (setf *contrib-dir* base-dir)
+ (setf *contrib-dir* (merge-pathnames "contrib/" base-dir))
(conf-file-name alternate-conf)
(when read-conf-file-p
(read-conf-file))
@@ -283,7 +283,7 @@
(defun main (&key (display (or (getenv "DISPLAY") ":0")) protocol
- (base-dir (directory-namestring (or *load-truename* "")))
+ (base-dir (asdf:system-source-directory :clfswm))
(read-conf-file-p t)
(alternate-conf nil))
(let (error-msg)
From pbrochard at common-lisp.net Tue Feb 22 14:16:08 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Tue, 22 Feb 2011 09:16:08 -0500
Subject: [clfswm-cvs] r411 - in clfswm: . contrib src
Message-ID:
Author: pbrochard
Date: Tue Feb 22 09:16:08 2011
New Revision: 411
Log:
contrib/volume-mode.lisp: Add a volume mode inspired by the emms volume package. and its alsa mixer interface
Added:
clfswm/contrib/amixer.lisp
clfswm/contrib/volume-mode.lisp
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-configuration.lisp
clfswm/src/clfswm-menu.lisp
clfswm/src/tools.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Tue Feb 22 09:16:08 2011
@@ -1,3 +1,11 @@
+2011-02-22 Desmond O. Chang
+
+ * contrib/amixer.lisp: Add a volume mode inspired by the emms
+ volume package. Alsa mixer interface.
+
+ * contrib/volume-mode.lisp: Add a volume mode inspired by the emms
+ volume package.
+
2011-02-22 Desmond O. Chang
* src/clfswm.lisp (main): Use ASDF:SYSTEM-SOURCE-DIRECTORY instead
Added: clfswm/contrib/amixer.lisp
==============================================================================
--- (empty file)
+++ clfswm/contrib/amixer.lisp Tue Feb 22 09:16:08 2011
@@ -0,0 +1,103 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Volume mode
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2011 Desmond O. Chang
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; Documentation: A volume mode.
+;;; If you want to use this file, just add this line in
+;;; your configuration file:
+;;;
+;;; (load-contrib "volume-mode.lisp")
+;;; And with the alsa mixer:
+;;; (load-contrib "amixer.lisp")
+;;;
+;;; This mode is inspired by the emms volume package. When you change the
+;;; volume in main mode or second mode, clfswm will enter volume mode and
+;;; set a timer to leave this mode. Changing volume in volume mode will
+;;; reset the timer. You can also leave volume mode manually by return,
+;;; escape or control-g.
+;;;
+;;; Special variable *VOLUME-MODE-TIMEOUT* controls the timeout in
+;;; seconds. If it's positive, volume mode will exit when timeout occurs;
+;;; if it's 0, volume mode will exit right now; if it's negative, volume
+;;; will not exit even if timeout occurs. Default timeout is 3 seconds.
+;;;
+;;; Volume mode uses three special variables to control the mixer:
+;;; *VOLUME-MUTE-FUNCTION*, *VOLUME-LOWER-FUNCTION* and
+;;; *VOLUME-RAISE-FUNCTION*. Their values are functions which must accept
+;;; no arguments and return two values indicating the mixer state. The
+;;; first value is the volume ratio whose type must be (real 0 1). If the
+;;; mixer is mute, the second value should be true, otherwise it should be
+;;; false. If volume controller cannot get the mixer state, it must
+;;; return NIL.
+;;;
+;;; Volume mode shows a mute sign, a percentage and a ratio bar on the
+;;; screen. A plus sign '+' means it's unmute and a minus sign '-' means
+;;; it's mute now. If volume mode doesn't know the mixer state, a message
+;;; "unknown" will be shown.
+;;;
+;;; contrib/amixer.lisp shows how to use volume mode with alsa.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+(defvar *amixer-scontrol* "Master"
+ "Default control for amixer commands.")
+
+(defun amixer-cmd (cmd scontrol &rest parameters)
+ (let* ((sed "sed 's/^.*\\[\\([[:digit:]]\\+\\)%\\].*\\[\\(on\\|off\\)\\].*$/\\1%\\2/'")
+ (fmt "amixer ~A ~A~{ ~A~} 2>/dev/null | tail -1 | ~A")
+ (shell (format nil fmt cmd scontrol parameters sed))
+ (line (read-line (do-shell shell) nil nil)))
+ (when line
+ (let* ((ratio (parse-integer line :junk-allowed t))
+ (%-pos (position #\% line)))
+ (values (and ratio (/ ratio 100))
+ (equal "off" (and %-pos (subseq line (1+ %-pos)))))))))
+
+(defun amixer-sset (&rest parameters)
+ (apply 'amixer-cmd "sset" *amixer-scontrol* parameters))
+
+(defparameter *volume-mute-function*
+ (lambda () (amixer-sset "toggle")))
+
+(defparameter *volume-lower-function*
+ (lambda () (amixer-sset "5%-")))
+
+(defparameter *volume-raise-function*
+ (lambda () (amixer-sset "5%+")))
+
+(defun amixer-lower-1% ()
+ "Lower 1% volume."
+ (volume-set (lambda () (amixer-sset "1%-"))))
+
+(defun amixer-raise-1% ()
+ "Raise 1% volume."
+ (volume-set (lambda () (amixer-sset "1%+"))))
+
+(defun amixer-volume-bind ()
+ (define-volume-key ("less") 'amixer-lower-1%)
+ (define-volume-key ("greater") 'amixer-raise-1%)
+ (define-second-key ("less") 'amixer-lower-1%)
+ (define-second-key ("greater") 'amixer-raise-1%))
+
+(add-hook *binding-hook* 'amixer-volume-bind)
Added: clfswm/contrib/volume-mode.lisp
==============================================================================
--- (empty file)
+++ clfswm/contrib/volume-mode.lisp Tue Feb 22 09:16:08 2011
@@ -0,0 +1,260 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Volume mode
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2011 Desmond O. Chang
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;;;
+;;; Documentation: A volume mode.
+;;; If you want to use this file, just add this line in
+;;; your configuration file:
+;;;
+;;; (load-contrib "volume-mode.lisp")
+;;; And with the alsa mixer:
+;;; (load-contrib "amixer.lisp")
+;;;
+;;; This mode is inspired by the emms volume package. When you change the
+;;; volume in main mode or second mode, clfswm will enter volume mode and
+;;; set a timer to leave this mode. Changing volume in volume mode will
+;;; reset the timer. You can also leave volume mode manually by return,
+;;; escape or control-g.
+;;;
+;;; Special variable *VOLUME-MODE-TIMEOUT* controls the timeout in
+;;; seconds. If it's positive, volume mode will exit when timeout occurs;
+;;; if it's 0, volume mode will exit right now; if it's negative, volume
+;;; will not exit even if timeout occurs. Default timeout is 3 seconds.
+;;;
+;;; Volume mode uses three special variables to control the mixer:
+;;; *VOLUME-MUTE-FUNCTION*, *VOLUME-LOWER-FUNCTION* and
+;;; *VOLUME-RAISE-FUNCTION*. Their values are functions which must accept
+;;; no arguments and return two values indicating the mixer state. The
+;;; first value is the volume ratio whose type must be (real 0 1). If the
+;;; mixer is mute, the second value should be true, otherwise it should be
+;;; false. If volume controller cannot get the mixer state, it must
+;;; return NIL.
+;;;
+;;; Volume mode shows a mute sign, a percentage and a ratio bar on the
+;;; screen. A plus sign '+' means it's unmute and a minus sign '-' means
+;;; it's mute now. If volume mode doesn't know the mixer state, a message
+;;; "unknown" will be shown.
+;;;
+;;; contrib/amixer.lisp shows how to use volume mode with alsa.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+
+(defparameter *volume-keys* nil)
+(defparameter *volume-mode-placement* 'bottom-middle-placement
+ "Config(Placement group): Volume mode window placement")
+
+
+(defvar *volume-window* nil)
+(defvar *volume-font* nil)
+(defvar *volume-gc* nil)
+(defvar *in-volume-mode* nil)
+(defvar *leave-volume-mode* nil)
+
+(defvar *volume-ratio* nil)
+(defvar *volume-mute* nil)
+
+(defvar *volume-mode-timeout* 3
+ "Volume mode timeout in seconds:
+> 0 means volume mode will exit when timeout occurs;
+= 0 means exit right now;
+< 0 means exit manually.")
+
+
+;;; CONFIG - Volume mode
+(defparameter *volume-font-string* *default-font-string*
+ "Config(Volume mode group): Volume string window font string")
+(defparameter *volume-background* "black"
+ "Config(Volume mode group): Volume string window background color")
+(defparameter *volume-foreground* "green"
+ "Config(Volume mode group): Volume string window foreground color")
+(defparameter *volume-border* "red"
+ "Config(Volume mode group): Volume string window border color")
+(defparameter *volume-width* 400
+ "Config(Volume mode group): Volume mode window width")
+(defparameter *volume-height* 15
+ "Config(Volume mode group): Volume mode window height")
+(defparameter *volume-text-limit* 30
+ "Config(Volume mode group): Maximum text limit in the volume window")
+(defparameter *volume-external-mixer-cmd* "/usr/bin/gnome-alsamixer"
+ "Config(Volume mode group): Command to start an external mixer program")
+
+(create-configuration-menu :clear t)
+
+(define-init-hash-table-key *volume-keys* "Volume mode keys")
+(define-define-key "volume" *volume-keys*)
+
+(add-hook *binding-hook* 'init-*volume-keys*)
+
+(defun set-default-volume-keys ()
+ (define-volume-key ("XF86AudioMute") 'volume-mute)
+ (define-volume-key ("XF86AudioLowerVolume") 'volume-lower)
+ (define-volume-key ("XF86AudioRaiseVolume") 'volume-raise)
+ (define-volume-key (#\/) 'volume-mute)
+ (define-volume-key (#\,) 'volume-lower)
+ (define-volume-key (#\.) 'volume-raise)
+ (define-volume-key ("m") 'volume-mute)
+ (define-volume-key ("l") 'volume-lower)
+ (define-volume-key ("r") 'volume-raise)
+ (define-volume-key ("Return") 'leave-volume-mode)
+ (define-volume-key ("Escape") 'leave-volume-mode)
+ (define-volume-key ("g" :control) 'leave-volume-mode)
+ (define-volume-key ("e") 'run-external-volume-mixer)
+ ;;; Main mode
+ (define-main-key ("XF86AudioMute") 'volume-mute)
+ (define-main-key ("XF86AudioLowerVolume") 'volume-lower)
+ (define-main-key ("XF86AudioRaiseVolume") 'volume-raise)
+ ;;; Second mode
+ (define-second-key ("XF86AudioMute") 'volume-mute)
+ (define-second-key ("XF86AudioLowerVolume") 'volume-lower)
+ (define-second-key ("XF86AudioRaiseVolume") 'volume-raise))
+
+(add-hook *binding-hook* 'set-default-volume-keys)
+
+(defun volume-mode-window-message (width)
+ (if *volume-ratio*
+ (let* ((mute (if *volume-mute* #\- #\+))
+ (percentage (round (* 100 *volume-ratio*)))
+ (n (round (* width *volume-ratio*))))
+ (format nil "[~A] ~3 at A% ~A~A" mute percentage
+ (repeat-chars n #\#) (repeat-chars (- width n) #\.)))
+ "unknown"))
+
+(defun draw-volume-mode-window ()
+ (raise-window *volume-window*)
+ (clear-pixmap-buffer *volume-window* *volume-gc*)
+ (let* ((text (limit-length (volume-mode-window-message 20) *volume-text-limit*))
+ (len (length text)))
+ (xlib:draw-glyphs *pixmap-buffer* *volume-gc*
+ (truncate (/ (- *volume-width* (* (xlib:max-char-width *volume-font*) len)) 2))
+ (truncate (/ (+ *volume-height* (- (xlib:font-ascent *volume-font*) (xlib:font-descent *volume-font*))) 2))
+ text))
+ (copy-pixmap-buffer *volume-window* *volume-gc*))
+
+(defun leave-volume-mode ()
+ "Leave the volume mode"
+ (throw 'exit-volume-loop nil))
+
+(defun update-volume-mode ()
+ (draw-volume-mode-window)
+ (cond ((plusp *volume-mode-timeout*)
+ (erase-timer :volume-mode-timer)
+ (with-timer (*volume-mode-timeout* :volume-mode-timer)
+ (setf *leave-volume-mode* t)))
+ ((zerop *volume-mode-timeout*)
+ (erase-timer :volume-mode-timer)
+ (setf *leave-volume-mode* t))
+ ((minusp *volume-mode-timeout*)
+ (erase-timer :volume-mode-timer))))
+
+(defun volume-enter-function ()
+ (with-placement (*volume-mode-placement* x y *volume-width* *volume-height*)
+ (setf *volume-font* (xlib:open-font *display* *volume-font-string*)
+ *volume-window* (xlib:create-window :parent *root*
+ :x x
+ :y y
+ :width *volume-width*
+ :height *volume-height*
+ :background (get-color *volume-background*)
+ :border-width 1
+ :border (get-color *volume-border*)
+ :colormap (xlib:screen-default-colormap *screen*)
+ :event-mask '(:exposure :key-press))
+ *volume-gc* (xlib:create-gcontext :drawable *volume-window*
+ :foreground (get-color *volume-foreground*)
+ :background (get-color *volume-background*)
+ :font *volume-font*
+ :line-style :solid))
+ (map-window *volume-window*))
+ (setf *in-volume-mode* t
+ *leave-volume-mode* nil)
+ (update-volume-mode))
+
+(defun volume-loop-function ()
+ (when *leave-volume-mode*
+ (leave-volume-mode)))
+
+(defun volume-leave-function ()
+ (when *volume-gc*
+ (xlib:free-gcontext *volume-gc*))
+ (when *volume-window*
+ (xlib:destroy-window *volume-window*))
+ (when *volume-font*
+ (xlib:close-font *volume-font*))
+ (xlib:display-finish-output *display*)
+ (erase-timer :volume-mode-timer)
+ (setf *volume-window* nil
+ *volume-gc* nil
+ *volume-font* nil
+ *in-volume-mode* nil
+ *leave-volume-mode* nil))
+
+(define-handler volume-mode :key-press (code state)
+ (funcall-key-from-code *volume-keys* code state))
+
+(defun volume-mode ()
+ (let ((grab-keyboard-p (xgrab-keyboard-p))
+ (grab-pointer-p (xgrab-pointer-p)))
+ (xgrab-pointer *root* 92 93)
+ (unless grab-keyboard-p
+ (ungrab-main-keys)
+ (xgrab-keyboard *root*))
+ (generic-mode 'volume-mode 'exit-volume-loop
+ :enter-function 'volume-enter-function
+ :loop-function 'volume-loop-function
+ :leave-function 'volume-leave-function
+ :original-mode '(main-mode))
+ (unless grab-keyboard-p
+ (xungrab-keyboard)
+ (grab-main-keys))
+ (if grab-pointer-p
+ (xgrab-pointer *root* 66 67)
+ (xungrab-pointer))))
+
+(defun volume-set (fn)
+ (when fn
+ (setf (values *volume-ratio* *volume-mute*) (funcall fn))
+ (if *in-volume-mode*
+ (update-volume-mode)
+ (volume-mode))))
+
+(defvar *volume-mute-function* nil)
+(defvar *volume-lower-function* nil)
+(defvar *volume-raise-function* nil)
+
+(defun volume-mute ()
+ "Toggle mute."
+ (volume-set *volume-mute-function*))
+
+(defun volume-lower ()
+ "Lower volume."
+ (volume-set *volume-lower-function*))
+
+(defun volume-raise ()
+ "Raise volume."
+ (volume-set *volume-raise-function*))
+
+(defun run-external-volume-mixer ()
+ "Start an external volume mixer"
+ (do-shell *volume-external-mixer-cmd*))
Modified: clfswm/src/clfswm-configuration.lisp
==============================================================================
--- clfswm/src/clfswm-configuration.lisp (original)
+++ clfswm/src/clfswm-configuration.lisp Tue Feb 22 09:16:08 2011
@@ -156,8 +156,10 @@
symbol))
-(defun create-configuration-menu ()
+(defun create-configuration-menu (&key clear)
"Configuration menu"
+ (when clear
+ (clear-sub-menu 'main 'configuration-menu))
(multiple-value-bind (all-groups all-variables)
(find-configuration-variables)
(loop for group in all-groups
Modified: clfswm/src/clfswm-menu.lisp
==============================================================================
--- clfswm/src/clfswm-menu.lisp (original)
+++ clfswm/src/clfswm-menu.lisp Tue Feb 22 09:16:08 2011
@@ -114,6 +114,8 @@
(defun del-sub-menu (menu-name sub-menu-name &optional (root *menu*))
(del-item-by-value (find-menu sub-menu-name) (find-menu menu-name root)))
+(defun clear-sub-menu (menu-name sub-menu-name &optional (root *menu*))
+ (setf (menu-item (find-menu sub-menu-name (find-menu menu-name root))) nil))
(defun add-menu-comment (menu-name &optional (comment "---") (root *menu*))
Modified: clfswm/src/tools.lisp
==============================================================================
--- clfswm/src/tools.lisp (original)
+++ clfswm/src/tools.lisp Tue Feb 22 09:16:08 2011
@@ -60,6 +60,7 @@
:create-symbol
:number->char
:simple-type-of
+ :repeat-chars
:nth-insert
:split-string
:append-newline-space
@@ -427,6 +428,11 @@
(t type))))
+(defun repeat-chars (n char)
+ "Return a string containing N CHARs."
+ (make-string n :initial-element char))
+
+
(defun nth-insert (n elem list)
"Insert elem in (nth n list)"
From pbrochard at common-lisp.net Wed Feb 23 21:25:51 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Wed, 23 Feb 2011 16:25:51 -0500
Subject: [clfswm-cvs] r412 - in clfswm: . contrib src
Message-ID:
Author: pbrochard
Date: Wed Feb 23 16:25:51 2011
New Revision: 412
Log:
src/clfswm.lisp (main-unprotected): Create the configuration menu only once at startup.
Modified:
clfswm/ChangeLog
clfswm/contrib/amixer.lisp
clfswm/contrib/volume-mode.lisp
clfswm/src/clfswm.lisp
clfswm/src/menu-def.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Wed Feb 23 16:25:51 2011
@@ -1,3 +1,8 @@
+2011-02-23 Philippe Brochard
+
+ * src/clfswm.lisp (main-unprotected): Create the configuration
+ menu only once at startup.
+
2011-02-22 Desmond O. Chang
* contrib/amixer.lisp: Add a volume mode inspired by the emms
Modified: clfswm/contrib/amixer.lisp
==============================================================================
--- clfswm/contrib/amixer.lisp (original)
+++ clfswm/contrib/amixer.lisp Wed Feb 23 16:25:51 2011
@@ -60,6 +60,8 @@
(in-package :clfswm)
+(format t "Loading amixer code... ")
+
(defvar *amixer-scontrol* "Master"
"Default control for amixer commands.")
@@ -101,3 +103,5 @@
(define-second-key ("greater") 'amixer-raise-1%))
(add-hook *binding-hook* 'amixer-volume-bind)
+
+(format t "done~%")
Modified: clfswm/contrib/volume-mode.lisp
==============================================================================
--- clfswm/contrib/volume-mode.lisp (original)
+++ clfswm/contrib/volume-mode.lisp Wed Feb 23 16:25:51 2011
@@ -60,6 +60,7 @@
(in-package :clfswm)
+(format t "Loading Volume mode code... ")
(defparameter *volume-keys* nil)
(defparameter *volume-mode-placement* 'bottom-middle-placement
@@ -100,8 +101,6 @@
(defparameter *volume-external-mixer-cmd* "/usr/bin/gnome-alsamixer"
"Config(Volume mode group): Command to start an external mixer program")
-(create-configuration-menu :clear t)
-
(define-init-hash-table-key *volume-keys* "Volume mode keys")
(define-define-key "volume" *volume-keys*)
@@ -258,3 +257,5 @@
(defun run-external-volume-mixer ()
"Start an external volume mixer"
(do-shell *volume-external-mixer-cmd*))
+
+(format t "done~%")
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Wed Feb 23 16:25:51 2011
@@ -251,6 +251,7 @@
(conf-file-name alternate-conf)
(when read-conf-file-p
(read-conf-file))
+ (create-configuration-menu :clear t)
(call-hook *main-entrance-hook*)
(handler-case
(open-display display protocol)
Modified: clfswm/src/menu-def.lisp
==============================================================================
--- clfswm/src/menu-def.lisp (original)
+++ clfswm/src/menu-def.lisp Wed Feb 23 16:25:51 2011
@@ -62,8 +62,6 @@
(update-menus (find-menu 'standard-menu))
-(create-configuration-menu)
-
(add-menu-key 'help-menu "a" 'show-first-aid-kit)
(add-menu-key 'help-menu "h" 'show-global-key-binding)
(add-menu-key 'help-menu "b" 'show-main-mode-key-binding)
From pbrochard at common-lisp.net Sat Feb 26 16:53:23 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sat, 26 Feb 2011 11:53:23 -0500
Subject: [clfswm-cvs] r413 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sat Feb 26 11:53:22 2011
New Revision: 413
Log:
src/clfswm-configuration.lisp (add-all-configuration-default-value): Add a default value to configurable variables.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-configuration.lisp
clfswm/src/clfswm.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sat Feb 26 11:53:22 2011
@@ -1,3 +1,9 @@
+2011-02-26 Philippe Brochard
+
+ * src/clfswm-configuration.lisp
+ (add-all-configuration-default-value): Add a default value to
+ configurable variables.
+
2011-02-23 Philippe Brochard
* src/clfswm.lisp (main-unprotected): Create the configuration
Modified: clfswm/src/clfswm-configuration.lisp
==============================================================================
--- clfswm/src/clfswm-configuration.lisp (original)
+++ clfswm/src/clfswm-configuration.lisp Sat Feb 26 11:53:22 2011
@@ -51,6 +51,12 @@
(format nil "(->color #x~X)" (color->rgb value)))
(t (format nil "~S" value)))))
+(defun remove-config-group (documentation)
+ (let ((pos (position #\: documentation)))
+ (if pos
+ (string-trim " " (subseq documentation (1+ pos)))
+ documentation)))
+
;;; Configuration variables save
@@ -125,7 +131,7 @@
(format nil "conf-~A" (substitute #\- #\Space group)))
:clfswm))
-(defun query-conf-value (string original)
+(defun query-conf-value (var string original)
(labels ((warn-wrong-type (result original)
(if (equal (simple-type-of result) (simple-type-of original))
result
@@ -138,7 +144,9 @@
result
original))))
(multiple-value-bind (result return)
- (query-string (format nil "Configure ~A" string) original)
+ (query-string (format nil "Configure ~A - ~A" string
+ (remove-config-group (documentation var 'variable)))
+ original)
(let ((result-val (ignore-errors (eval (read-from-string result))))
(original-val (ignore-errors (eval (read-from-string original)))))
(if (equal return :Return)
@@ -150,7 +158,7 @@
(let* ((string (remove #\* (format nil "~A" var)))
(symbol (intern (format nil "CONFIGURE-~A" string) :clfswm)))
(setf (symbol-function symbol) (lambda ()
- (setf (symbol-value var) (query-conf-value string (escape-conf-value var)))
+ (setf (symbol-value var) (query-conf-value var string (escape-conf-value var)))
(open-menu (find-menu 'configuration-menu)))
(documentation symbol 'function) (format nil "Configure ~A" string))
symbol))
@@ -175,6 +183,27 @@
+;;; Default documentation string utility
+(defun remove-configuration-default-value (symbol)
+ (let* ((doc (documentation symbol 'variable))
+ (length (length doc)))
+ (when (and (plusp length) (char= (char doc (1- length)) #\)))
+ (let ((pos (position #\( doc :from-end t)))
+ (when pos
+ (setf (documentation symbol 'variable)
+ (string-trim " " (subseq doc 0 pos))))))))
+
+(defun change-configuration-default-value (symbol)
+ (remove-configuration-default-value symbol)
+ (setf (documentation symbol 'variable)
+ (format nil "~A (~A)" (documentation symbol 'variable)
+ (escape-conf-value symbol))))
+
+(defun add-all-configuration-default-value ()
+ (with-all-internal-symbols (symbol :clfswm)
+ (when (is-config-p symbol)
+ (change-configuration-default-value symbol))))
+
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Sat Feb 26 11:53:22 2011
@@ -252,6 +252,7 @@
(when read-conf-file-p
(read-conf-file))
(create-configuration-menu :clear t)
+ (add-all-configuration-default-value)
(call-hook *main-entrance-hook*)
(handler-case
(open-display display protocol)
From pbrochard at common-lisp.net Sun Feb 27 17:20:36 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 27 Feb 2011 12:20:36 -0500
Subject: [clfswm-cvs] r414 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sun Feb 27 12:20:36 2011
New Revision: 414
Log:
src/clfswm-configuration.lisp (reset-all-config-variables): New function and menu entry.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-configuration.lisp
clfswm/src/clfswm.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sun Feb 27 12:20:36 2011
@@ -1,3 +1,8 @@
+2011-02-27 Philippe Brochard
+
+ * src/clfswm-configuration.lisp (reset-all-config-variables): New
+ function and menu entry.
+
2011-02-26 Philippe Brochard
* src/clfswm-configuration.lisp
Modified: clfswm/src/clfswm-configuration.lisp
==============================================================================
--- clfswm/src/clfswm-configuration.lisp (original)
+++ clfswm/src/clfswm-configuration.lisp Sun Feb 27 12:20:36 2011
@@ -57,6 +57,8 @@
(string-trim " " (subseq documentation (1+ pos)))
documentation)))
+(defun get-config-value (value)
+ (ignore-errors (eval (read-from-string value))))
;;; Configuration variables save
@@ -137,9 +139,9 @@
result
(if (string-equal
(query-string
- (format nil "~S and ~S are not of the same type (~A and ~A). Do you really want to use this value? (yes/no)"
+ (format nil "~S and ~S are not of the same type (~A and ~A). Do you really want to use this value?"
result original (type-of result) (type-of original))
- "no")
+ "" '("yes" "no"))
"yes")
result
original))))
@@ -147,8 +149,8 @@
(query-string (format nil "Configure ~A - ~A" string
(remove-config-group (documentation var 'variable)))
original)
- (let ((result-val (ignore-errors (eval (read-from-string result))))
- (original-val (ignore-errors (eval (read-from-string original)))))
+ (let ((result-val (get-config-value result))
+ (original-val (get-config-value original)))
(if (equal return :Return)
(warn-wrong-type result-val original-val)
original-val)))))
@@ -179,31 +181,58 @@
do (when (equal (second var) group)
(add-menu-key menu (number->char (incf j))
(create-conf-function (first var))))))))
- (add-menu-key 'configuration-menu "F2" 'save-configuration-variables))
+ (add-menu-key 'configuration-menu "F2" 'save-configuration-variables)
+ (add-menu-key 'configuration-menu "F3" 'reset-all-config-variables))
;;; Default documentation string utility
-(defun remove-configuration-default-value (symbol)
- (let* ((doc (documentation symbol 'variable))
- (length (length doc)))
- (when (and (plusp length) (char= (char doc (1- length)) #\)))
- (let ((pos (position #\( doc :from-end t)))
- (when pos
- (setf (documentation symbol 'variable)
- (string-trim " " (subseq doc 0 pos))))))))
+(defmacro with-config-default-value-position ((symbol doc pos1 pos2) &body body)
+ `(let* ((,doc (documentation ,symbol 'variable))
+ (length (length ,doc))
+ (,pos2 (and (plusp length) (1- length))))
+ (when (and ,pos2 (char= (char ,doc ,pos2) #\)))
+ (let ((,pos1 (awhen (search "(Default: " ,doc :from-end t)
+ (+ it (length "(Default: ")))))
+ (when ,pos1
+ , at body)))))
+
+(defun remove-config-default-value (symbol)
+ (with-config-default-value-position (symbol doc pos1 pos2)
+ (setf (documentation symbol 'variable)
+ (string-trim " " (subseq doc 0 pos1)))))
+
+(defun extract-config-default-value (symbol)
+ (with-config-default-value-position (symbol doc pos1 pos2)
+ (string-trim " " (subseq doc pos1 pos2))))
-(defun change-configuration-default-value (symbol)
- (remove-configuration-default-value symbol)
+
+(defun change-config-default-value (symbol)
+ (remove-config-default-value symbol)
(setf (documentation symbol 'variable)
- (format nil "~A (~A)" (documentation symbol 'variable)
+ (format nil "~A (Default: ~A)" (documentation symbol 'variable)
(escape-conf-value symbol))))
-(defun add-all-configuration-default-value ()
+(defun reset-config-to-default-value (symbol)
+ (let ((default (extract-config-default-value symbol)))
+ (setf (symbol-value symbol) (get-config-value default))))
+
+
+(defun add-all-config-default-value ()
(with-all-internal-symbols (symbol :clfswm)
(when (is-config-p symbol)
- (change-configuration-default-value symbol))))
-
+ (change-config-default-value symbol))))
+(defun reset-all-config-variables ()
+ "Reset all configuration variables to there default values"
+ (when (string-equal
+ (query-string
+ (format nil "Do you really want to reset all values to there default?")
+ "" '("yes" "no"))
+ "yes")
+ (with-all-internal-symbols (symbol :clfswm)
+ (when (is-config-p symbol)
+ (reset-config-to-default-value symbol))))
+ (open-menu (find-menu 'configuration-menu)))
Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp (original)
+++ clfswm/src/clfswm.lisp Sun Feb 27 12:20:36 2011
@@ -252,7 +252,7 @@
(when read-conf-file-p
(read-conf-file))
(create-configuration-menu :clear t)
- (add-all-configuration-default-value)
+ (add-all-config-default-value)
(call-hook *main-entrance-hook*)
(handler-case
(open-display display protocol)
From pbrochard at common-lisp.net Sun Feb 27 21:59:18 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 27 Feb 2011 16:59:18 -0500
Subject: [clfswm-cvs] r415 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sun Feb 27 16:59:18 2011
New Revision: 415
Log:
src/clfswm-configuration.lisp (query-conf-value): Add the ability to leave the field blank to reset the variable to its default value.
Modified:
clfswm/ChangeLog
clfswm/load.lisp
clfswm/src/clfswm-configuration.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sun Feb 27 16:59:18 2011
@@ -2,6 +2,8 @@
* src/clfswm-configuration.lisp (reset-all-config-variables): New
function and menu entry.
+ (query-conf-value): Add the ability to leave the field blank to
+ reset the variable to its default value.
2011-02-26 Philippe Brochard
Modified: clfswm/load.lisp
==============================================================================
--- clfswm/load.lisp (original)
+++ clfswm/load.lisp Sun Feb 27 16:59:18 2011
@@ -32,8 +32,8 @@
#+SBCL
(require :asdf)
-;;#+SBCL
-;;(require :sb-posix)
+#+SBCL
+(require :sb-posix)
;;#+SBCL
;; (require :clx)
Modified: clfswm/src/clfswm-configuration.lisp
==============================================================================
--- clfswm/src/clfswm-configuration.lisp (original)
+++ clfswm/src/clfswm-configuration.lisp Sun Feb 27 16:59:18 2011
@@ -144,16 +144,26 @@
"" '("yes" "no"))
"yes")
result
- original))))
- (multiple-value-bind (result return)
- (query-string (format nil "Configure ~A - ~A" string
- (remove-config-group (documentation var 'variable)))
- original)
- (let ((result-val (get-config-value result))
- (original-val (get-config-value original)))
- (if (equal return :Return)
- (warn-wrong-type result-val original-val)
- original-val)))))
+ original)))
+ (ask-set-default-value (original-val)
+ (let ((default (extract-config-default-value var)))
+ (if (string-equal
+ (query-string (format nil "Reset ~A from ~A to ~A?" var original default)
+ "" '("yes" "no"))
+ "yes")
+ (get-config-value default)
+ original-val))))
+ (multiple-value-bind (result return)
+ (query-string (format nil "Configure ~A - ~A" string
+ (remove-config-group (documentation var 'variable)))
+ original)
+ (let ((original-val (get-config-value original)))
+ (if (equal return :Return)
+ (if (string= result "")
+ (ask-set-default-value original-val)
+ (let ((result-val (get-config-value result)))
+ (warn-wrong-type result-val original-val)))
+ original-val)))))
(defun create-conf-function (var)
@@ -187,13 +197,15 @@
;;; Default documentation string utility
+(defparameter *config-default-string* "(blank=Default: ")
+
(defmacro with-config-default-value-position ((symbol doc pos1 pos2) &body body)
`(let* ((,doc (documentation ,symbol 'variable))
(length (length ,doc))
(,pos2 (and (plusp length) (1- length))))
(when (and ,pos2 (char= (char ,doc ,pos2) #\)))
- (let ((,pos1 (awhen (search "(Default: " ,doc :from-end t)
- (+ it (length "(Default: ")))))
+ (let ((,pos1 (awhen (search *config-default-string* ,doc :from-end t)
+ (+ it (length *config-default-string*)))))
(when ,pos1
, at body)))))
@@ -210,7 +222,8 @@
(defun change-config-default-value (symbol)
(remove-config-default-value symbol)
(setf (documentation symbol 'variable)
- (format nil "~A (Default: ~A)" (documentation symbol 'variable)
+ (format nil "~A ~A~A)" (documentation symbol 'variable)
+ *config-default-string*
(escape-conf-value symbol))))
(defun reset-config-to-default-value (symbol)
@@ -228,7 +241,7 @@
"Reset all configuration variables to there default values"
(when (string-equal
(query-string
- (format nil "Do you really want to reset all values to there default?")
+ "Do you really want to reset all values to there default?"
"" '("yes" "no"))
"yes")
(with-all-internal-symbols (symbol :clfswm)
From pbrochard at common-lisp.net Sun Feb 27 22:13:46 2011
From: pbrochard at common-lisp.net (Philippe Brochard)
Date: Sun, 27 Feb 2011 17:13:46 -0500
Subject: [clfswm-cvs] r416 - in clfswm: . src
Message-ID:
Author: pbrochard
Date: Sun Feb 27 17:13:46 2011
New Revision: 416
Log:
src/clfswm-util.lisp (query-yes-or-no): New function.
Modified:
clfswm/ChangeLog
clfswm/src/clfswm-configuration.lisp
clfswm/src/clfswm-layout.lisp
clfswm/src/clfswm-util.lisp
Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog (original)
+++ clfswm/ChangeLog Sun Feb 27 17:13:46 2011
@@ -1,5 +1,7 @@
2011-02-27 Philippe Brochard
+ * src/clfswm-util.lisp (query-yes-or-no): New function.
+
* src/clfswm-configuration.lisp (reset-all-config-variables): New
function and menu entry.
(query-conf-value): Add the ability to leave the field blank to
Modified: clfswm/src/clfswm-configuration.lisp
==============================================================================
--- clfswm/src/clfswm-configuration.lisp (original)
+++ clfswm/src/clfswm-configuration.lisp Sun Feb 27 17:13:46 2011
@@ -137,20 +137,13 @@
(labels ((warn-wrong-type (result original)
(if (equal (simple-type-of result) (simple-type-of original))
result
- (if (string-equal
- (query-string
- (format nil "~S and ~S are not of the same type (~A and ~A). Do you really want to use this value?"
- result original (type-of result) (type-of original))
- "" '("yes" "no"))
- "yes")
+ (if (query-yes-or-no "~S and ~S are not of the same type (~A and ~A). Do you really want to use this value?"
+ result original (type-of result) (type-of original))
result
original)))
(ask-set-default-value (original-val)
(let ((default (extract-config-default-value var)))
- (if (string-equal
- (query-string (format nil "Reset ~A from ~A to ~A?" var original default)
- "" '("yes" "no"))
- "yes")
+ (if (query-yes-or-no "Reset ~A from ~A to ~A?" var original default)
(get-config-value default)
original-val))))
(multiple-value-bind (result return)
@@ -239,11 +232,7 @@
(defun reset-all-config-variables ()
"Reset all configuration variables to there default values"
- (when (string-equal
- (query-string
- "Do you really want to reset all values to there default?"
- "" '("yes" "no"))
- "yes")
+ (when (query-yes-or-no "Do you really want to reset all values to there default?")
(with-all-internal-symbols (symbol :clfswm)
(when (is-config-p symbol)
(reset-config-to-default-value symbol))))
Modified: clfswm/src/clfswm-layout.lisp
==============================================================================
--- clfswm/src/clfswm-layout.lisp (original)
+++ clfswm/src/clfswm-layout.lisp Sun Feb 27 17:13:46 2011
@@ -188,12 +188,9 @@
;;; Tile layout
(defun tile-layout-ask-keep-position ()
(when (frame-p *current-child*)
- (let ((keep-position (query-string "Keep frame children positions?" "" '("yes" "no"))))
- (if (or (string= keep-position "")
- (char= (char keep-position 0) #\y)
- (char= (char keep-position 0) #\Y))
- (setf (frame-data-slot *current-child* :tile-layout-keep-positiion) :yes)
- (remove-frame-data-slot *current-child* :tile-layout-keep-positiion)))))
+ (if (query-yes-or-no "Keep frame children positions?")
+ (setf (frame-data-slot *current-child* :tile-layout-keep-positiion) :yes)
+ (remove-frame-data-slot *current-child* :tile-layout-keep-positiion))))
(defun set-layout-managed-children ()
Modified: clfswm/src/clfswm-util.lisp
==============================================================================
--- clfswm/src/clfswm-util.lisp (original)
+++ clfswm/src/clfswm-util.lisp Sun Feb 27 17:13:46 2011
@@ -64,6 +64,14 @@
+(defun query-yes-or-no (formatter &rest args)
+ (let ((rep (query-string (apply #'format nil formatter args) "" '("yes" "no"))))
+ (or (string= rep "")
+ (char= (char rep 0) #\y)
+ (char= (char rep 0) #\Y))))
+
+
+
(defun rename-current-child ()
"Rename the current child"