1 ;;; --------------------------------------------------------------------------
2 ;;; CLFSWM - FullScreen Window Manager
4 ;;; --------------------------------------------------------------------------
5 ;;; Documentation: Configuration file
7 ;;; Change this file to your own needs or update some of this variables in
9 ;;; Some simple hack can be done in the code begining with the word CONFIG
10 ;;; (you can do a 'grep CONFIG *.lisp' to see what you can configure)
11 ;;; --------------------------------------------------------------------------
13 ;;; (C) 2010 Philippe Brochard <hocwp@free.fr>
15 ;;; This program is free software; you can redistribute it and/or modify
16 ;;; it under the terms of the GNU General Public License as published by
17 ;;; the Free Software Foundation; either version 3 of the License, or
18 ;;; (at your option) any later version.
20 ;;; This program is distributed in the hope that it will be useful,
21 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;; GNU General Public License for more details.
25 ;;; You should have received a copy of the GNU General Public License
26 ;;; along with this program; if not, write to the Free Software
27 ;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 ;;; --------------------------------------------------------------------------
34 ;;; CONFIG - Compress motion notify ?
35 ;; This variable may be useful to speed up some slow version of CLX.
36 ;; It is particulary useful with CLISP/MIT-CLX.
37 (setf *have-to-compress-notify
* t
)
40 ;;; CONFIG - Default modifiers
41 (defparameter *default-modifiers
* '()
42 "Config(): Default modifiers list to append to explicit modifiers
43 Example: :mod-2 for num_lock, :lock for Caps_lock...")
48 ;;; CONFIG - Never managed window list
49 (defparameter *never-managed-window-list
*
50 (list (list (equal-wm-class-fun "ROX-Pinboard") nil
)
51 (list (equal-wm-class-fun "xvkbd") 'raise-window
)
52 (list 'equal-clfswm-terminal-id
'raise-and-focus-window
))
53 "Config(): CLFSWM will never manage windows of this type.
54 A list of (list match-function handle-function)")
58 (defparameter *hide-unmanaged-window
* t
59 "Config(): Hide or not unmanaged windows when a child is deselected.")
61 ;;; CONFIG - Screen size
62 (defun get-fullscreen-size ()
63 "Return the size of root child (values rx ry rw rh)
64 You can tweak this to what you want"
65 (values -
2 -
2 (+ (xlib:screen-width
*screen
*) 2) (+ (xlib:screen-height
*screen
*) 2)))
66 ;;(values -1 -1 (xlib:screen-width *screen*) (xlib:screen-height *screen*)))
67 ;; (values -1 -1 1024 768))
68 ;; (values 100 100 800 600))
71 (defparameter *corner-size
* 3
72 "Config(Corner group): The size of the corner square")
75 ;;; CONFIG: Corner actions - See in clfswm-corner.lisp for
77 (defparameter *corner-main-mode-left-button
*
78 '((:top-left open-menu
)
79 (:top-right present-virtual-keyboard
)
80 (:bottom-right expose-windows-mode
)
82 "Config(Corner group): Actions on corners in the main mode with the left mouse button")
84 (defparameter *corner-main-mode-middle-button
*
85 '((:top-left help-on-clfswm
)
86 (:top-right ask-close
/kill-current-window
)
89 "Config(Corner group): Actions on corners in the main mode with the middle mouse button")
91 (defparameter *corner-main-mode-right-button
*
92 '((:top-left present-clfswm-terminal
)
93 (:top-right ask-close
/kill-current-window
)
94 (:bottom-right expose-all-windows-mode
)
96 "Config(Corner group): Actions on corners in the main mode with the right mouse button")
98 (defparameter *corner-second-mode-left-button
*
101 (:bottom-right expose-windows-mode
)
103 "Config(Corner group): Actions on corners in the second mode with the left mouse button")
105 (defparameter *corner-second-mode-middle-button
*
106 '((:top-left help-on-clfswm
)
110 "Config(Corner group): Actions on corners in the second mode with the middle mouse button")
112 (defparameter *corner-second-mode-right-button
*
115 (:bottom-right expose-all-windows-mode
)
117 "Config(Corner group): Actions on corners in the second mode with the right mouse button")
120 (defparameter *virtual-keyboard-cmd
* "xvkbd"
121 "Config(Corner group): The command to display the virtual keybaord
122 Here is an ~/.Xresources example for xvkbd:
123 xvkbd.windowGeometry: 300x100-0-0
125 xvkbd.modalKeytop: true
126 xvkbd.customization: -french
128 And make it always on top")
130 (defparameter *clfswm-terminal-name
* "clfswm-terminal"
131 "Config(Corner group): The clfswm terminal name")
132 ;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
133 ;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
134 (defparameter *clfswm-terminal-cmd
* (format nil
"xterm -T ~A" *clfswm-terminal-name
*)
135 "Config(Corner group): The clfswm terminal command.
136 This command must set the window title to *clfswm-terminal-name*")
143 ;;; A hook is a function, a symbol or a list of functions with a rest
146 ;;; This hooks are set in clfswm.lisp, you can overwrite them or extend
147 ;;; them with a hook list.
149 ;;; See clfswm.lisp for hooks examples.
151 (defparameter *init-hook
* '(default-init-hook display-hello-window
)
152 "Config(Hook group): Init hook. This hook is run just after the first root frame is created")
154 (defparameter *close-hook
* '(close-notify-window close-clfswm-terminal close-virtual-keyboard
)
155 "Config(Hook group): Close hook. This hook is run just before closing the display")
157 (defparameter *default-nw-hook
* 'default-frame-nw-hook
158 "Config(Hook group): Default action to do on newly created windows")
164 (defparameter *create-frame-on-root
* nil
165 "Config(): Create frame on root.
166 Set this variable to true if you want to allow to create a new frame
167 on the root window in the main mode with the mouse")
170 ;;; CONFIG: Main mode colors
171 (defparameter *color-selected
* "Red"
172 "Config(Main mode group): Color of selected window")
173 (defparameter *color-unselected
* "Blue"
174 "Config(Main mode group): Color of unselected color")
175 (defparameter *color-maybe-selected
* "Yellow"
176 "Config(Main mode group): Color of maybe selected windows")
179 ;;; CONFIG: Frame colors
180 (defparameter *frame-background
* "Black"
181 "Config(Frame colors group): Frame background")
182 (defparameter *frame-foreground
* "Green"
183 "Config(Frame colors group): Frame foreground")
184 (defparameter *frame-foreground-root
* "Red"
185 "Config(Frame colors group): Frame foreground when the frame is the root frame")
186 (defparameter *frame-foreground-hidden
* "Darkgreen"
187 "Config(Frame colors group): Frame foreground for hidden windows")
189 ;;; CONFIG: Default window size
190 (defparameter *default-window-width
* 400
191 "Config(): Default window width")
192 (defparameter *default-window-height
* 300
193 "Config(): Default window height")
195 ;;; CONFIG: Second mode colors and fonts
196 (defparameter *sm-border-color
* "Green"
197 "Config(Second mode group): Second mode window border color")
198 (defparameter *sm-background-color
* "Black"
199 "Config(Second mode group): Second mode window background color")
200 (defparameter *sm-foreground-color
* "Red"
201 "Config(Second mode group): Second mode window foreground color")
202 (defparameter *sm-font-string
* *default-font-string
*
203 "Config(Second mode group): Second mode window font string")
204 (defparameter *sm-width
* 300
205 "Config(Second mode group): Second mode window width")
206 (defparameter *sm-height
* 25
207 "Config(Second mode group): Second mode window height")
213 ;;; CONFIG - Identify key colors
214 (defparameter *identify-font-string
* *default-font-string
*
215 "Config(Identify key group): Identify window font string")
216 (defparameter *identify-background
* "black"
217 "Config(Identify key group): Identify window background color")
218 (defparameter *identify-foreground
* "green"
219 "Config(Identify key group): Identify window foreground color")
220 (defparameter *identify-border
* "red"
221 "Config(Identify key group): Identify window border color")
223 ;;; CONFIG - Query string colors
224 (defparameter *query-font-string
* *default-font-string
*
225 "Config(Query string group): Query string window font string")
226 (defparameter *query-background
* "black"
227 "Config(Query string group): Query string window background color")
228 (defparameter *query-message-color
* "yellow"
229 "Config(Query string group): Query string window message color")
230 (defparameter *query-foreground
* "green"
231 "Config(Query string group): Query string window foreground color")
232 (defparameter *query-cursor-color
* "white"
233 "Config(Query string group): Query string window foreground cursor color")
234 (defparameter *query-parent-color
* "blue"
235 "Config(Query string group): Query string window parenthesis color")
236 (defparameter *query-parent-error-color
* "red"
237 "Config(Query string group): Query string window parenthesis color when no match")
238 (defparameter *query-border
* "red"
239 "Config(Query string group): Query string window border color")
242 ;;; CONFIG - Info mode
243 (defparameter *info-background
* "black"
244 "Config(Info mode group): Info window background color")
245 (defparameter *info-foreground
* "green"
246 "Config(Info mode group): Info window foreground color")
247 (defparameter *info-border
* "red"
248 "Config(Info mode group): Info window border color")
249 (defparameter *info-line-cursor
* "white"
250 "Config(Info mode group): Info window line cursor color color")
251 (defparameter *info-selected-background
* "blue"
252 "Config(Info mode group): Info selected item background color")
253 (defparameter *info-font-string
* *default-font-string
*
254 "Config(Info mode group): Info window font string")
256 (defparameter *info-click-to-select
* t
257 "Config(Info mode group): If true, click on info window select item. Otherwise, click to drag the menu")
259 ;;; CONFIG - Circulate string colors
260 (defparameter *circulate-font-string
* *default-font-string
*
261 "Config(Circulate mode group): Circulate string window font string")
262 (defparameter *circulate-background
* "black"
263 "Config(Circulate mode group): Circulate string window background color")
264 (defparameter *circulate-foreground
* "green"
265 "Config(Circulate mode group): Circulate string window foreground color")
266 (defparameter *circulate-border
* "red"
267 "Config(Circulate mode group): Circulate string window border color")
268 (defparameter *circulate-width
* 400
269 "Config(Circulate mode group): Circulate mode window width")
270 (defparameter *circulate-height
* 15
271 "Config(Circulate mode group): Circulate mode window height")
274 (defparameter *circulate-text-limite
* 30
275 "Config(Circulate mode group): Maximum text limite in the circulate window")
278 ;;; CONFIG - Expose string colors
279 (defparameter *expose-font-string
* *default-font-string
*
280 "Config(Expose mode group): Expose string window font string")
281 (defparameter *expose-background
* "black"
282 "Config(Expose mode group): Expose string window background color")
283 (defparameter *expose-foreground
* "green"
284 "Config(Expose mode group): Expose string window foreground color")
285 (defparameter *expose-border
* "red"
286 "Config(Expose mode group): Expose string window border color")
287 (defparameter *expose-valid-on-key
* t
288 "Config(Expose mode group): Valid expose mode when an accel key is pressed")
289 (defparameter *expose-show-window-title
* t
290 "Config(Expose mode group): Show the window title on accel window")
294 ;;; CONFIG - Show key binding colors
295 (defparameter *info-color-title
* "Magenta"
296 "Config(Info mode group): Colored info title color")
297 (defparameter *info-color-underline
* "Yellow"
298 "Config(Info mode group): Colored info underline color")
299 (defparameter *info-color-first
* "Cyan"
300 "Config(Info mode group): Colored info first color")
301 (defparameter *info-color-second
* "lightblue"
302 "Config(Info mode group): Colored info second color")
305 ;;; CONFIG - Menu colors
306 ;;; Set *info-foreground* to change the default menu foreground
307 (defparameter *menu-color-submenu
* "Cyan"
308 "Config(Menu group): Submenu color in menu")
309 (defparameter *menu-color-comment
* "Yellow"
310 "Config(Menu group): Comment color in menu")
311 (defparameter *menu-color-key
* "Magenta"
312 "Config(Menu group): Key color in menu")
313 (defparameter *menu-color-menu-key
* (->color
#xFF9AFF
)
314 "Config(Menu group): Menu key color in menu")
317 ;;; CONFIG - Notify window string colors
318 (defparameter *notify-window-font-string
* *default-font-string
*
319 "Config(Notify Window mode group): Notify window font string")
320 (defparameter *notify-window-background
* "black"
321 "Config(Notify Window group): Notify Window background color")
322 (defparameter *notify-window-foreground
* "green"
323 "Config(Notify Window group): Notify Window foreground color")
324 (defparameter *notify-window-border
* "red"
325 "Config(Notify Window group): Notify Window border color")
326 (defparameter *notify-window-delay
* 10
327 "Config(Notify Window group): Notify Window display delay")