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 - Default modifiers
35 (defconfig *default-modifiers
* '() nil
36 "Default modifiers list to append to explicit modifiers
37 Example: :mod-2 for num_lock, :lock for Caps_lock...")
41 (defun-equal-wm-class equal-wm-class-rox-pinboard
"ROX-Pinboard")
42 (defun-equal-wm-class equal-wm-class-xvkbd
"xvkbd")
44 ;;; CONFIG - Never managed window list
45 (defconfig *never-managed-window-list
*
46 (list (list 'equal-wm-class-rox-pinboard nil
)
47 (list 'equal-wm-class-xvkbd
'raise-window
)
48 (list 'equal-clfswm-terminal
'raise-and-focus-window
))
49 nil
"CLFSWM will never manage windows of this type.
50 A list of (list match-function handle-function)")
54 (defconfig *hide-unmanaged-window
* t nil
55 "Hide or not unmanaged windows when a child is deselected.")
57 ;;; CONFIG - Screen size
58 (defun get-fullscreen-size ()
59 "Return the size of root child (values rx ry rw rh)
60 You can tweak this to what you want"
61 (values -
2 -
2 (+ (xlib:screen-width
*screen
*) 2) (+ (xlib:screen-height
*screen
*) 2)))
62 ;;(values -1 -1 (xlib:screen-width *screen*) (xlib:screen-height *screen*)))
63 ;; (values -1 -1 1024 768))
64 ;; (values 100 100 800 600))
67 (defconfig *corner-size
* 3 'Corner
68 "The size of the corner square")
71 ;;; CONFIG: Corner actions - See in clfswm-corner.lisp for
73 (defconfig *corner-main-mode-left-button
*
74 '((:top-left open-menu
)
75 (:top-right present-virtual-keyboard
)
76 (:bottom-right expose-windows-mode
)
78 'Corner
"Actions on corners in the main mode with the left mouse button")
80 (defconfig *corner-main-mode-middle-button
*
81 '((:top-left help-on-clfswm
)
82 (:top-right ask-close
/kill-current-window
)
85 'Corner
"Actions on corners in the main mode with the middle mouse button")
87 (defconfig *corner-main-mode-right-button
*
88 '((:top-left present-clfswm-terminal
)
89 (:top-right ask-close
/kill-current-window
)
90 (:bottom-right expose-all-windows-mode
)
92 'Corner
"Actions on corners in the main mode with the right mouse button")
94 (defconfig *corner-second-mode-left-button
*
97 (:bottom-right expose-windows-mode
)
99 'Corner
"Actions on corners in the second mode with the left mouse button")
101 (defconfig *corner-second-mode-middle-button
*
102 '((:top-left help-on-clfswm
)
106 'Corner
"Actions on corners in the second mode with the middle mouse button")
108 (defconfig *corner-second-mode-right-button
*
111 (:bottom-right expose-all-windows-mode
)
113 'Corner
"Actions on corners in the second mode with the right mouse button")
116 (defconfig *virtual-keyboard-cmd
* "xvkbd"
117 'Corner
"The command to display the virtual keybaord
118 Here is an ~/.Xresources example for xvkbd:
119 xvkbd.windowGeometry: 300x100-0-0
121 xvkbd.modalKeytop: true
122 xvkbd.customization: -french
124 And make it always on top")
126 (defconfig *clfswm-terminal-name
* "clfswm-terminal"
127 'Corner
"The clfswm terminal name")
128 ;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
129 ;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*)
130 (defconfig *clfswm-terminal-cmd
* (format nil
"xterm -T ~A" *clfswm-terminal-name
*)
131 'Corner
"The clfswm terminal command.
132 This command must set the window title to *clfswm-terminal-name*")
139 ;;; A hook is a function, a symbol or a list of functions with a rest
142 ;;; This hooks are set in clfswm.lisp, you can overwrite them or extend
143 ;;; them with a hook list.
145 ;;; See clfswm.lisp for hooks examples.
147 (defconfig *init-hook
* '(default-init-hook display-hello-window
)
148 'Hook
"Init hook. This hook is run just after the first root frame is created")
150 (defconfig *close-hook
* '(close-notify-window close-clfswm-terminal close-virtual-keyboard
)
151 'Hook
"Close hook. This hook is run just before closing the display")
153 (defconfig *default-nw-hook
* 'default-frame-nw-hook
154 'Hook
"Default action to do on newly created windows")
160 (defconfig *create-frame-on-root
* nil
161 nil
"Create frame on root.
162 Set this variable to true if you want to allow to create a new frame
163 on the root window in the main mode with the mouse")
166 ;;; CONFIG: Main mode colors
167 (defconfig *color-selected
* "Red"
168 'Main-mode
"Color of selected window")
169 (defconfig *color-unselected
* "Blue"
170 'Main-mode
"Color of unselected color")
171 (defconfig *color-maybe-selected
* "Yellow"
172 'Main-mode
"Color of maybe selected windows")
175 ;;; CONFIG: Frame colors
176 (defconfig *frame-background
* "Black"
177 'Frame-colors
"Frame background")
178 (defconfig *frame-foreground
* "Green"
179 'Frame-colors
"Frame foreground")
180 (defconfig *frame-foreground-root
* "Red"
181 'Frame-colors
"Frame foreground when the frame is the root frame")
182 (defconfig *frame-foreground-hidden
* "Darkgreen"
183 'Frame-colors
"Frame foreground for hidden windows")
185 ;;; CONFIG: Default window size
186 (defconfig *default-window-width
* 400
187 nil
"Default window width")
188 (defconfig *default-window-height
* 300
189 nil
"Default window height")
191 ;;; CONFIG: Second mode colors and fonts
192 (defconfig *sm-border-color
* "Green"
193 'Second-mode
"Second mode window border color")
194 (defconfig *sm-background-color
* "Black"
195 'Second-mode
"Second mode window background color")
196 (defconfig *sm-foreground-color
* "Red"
197 'Second-mode
"Second mode window foreground color")
198 (defconfig *sm-font-string
* *default-font-string
*
199 'Second-mode
"Second mode window font string")
200 (defconfig *sm-width
* 300
201 'Second-mode
"Second mode window width")
202 (defconfig *sm-height
* 25
203 'Second-mode
"Second mode window height")
209 ;;; CONFIG - Identify key colors
210 (defconfig *identify-font-string
* *default-font-string
*
211 'Identify-key
"Identify window font string")
212 (defconfig *identify-background
* "black"
213 'Identify-key
"Identify window background color")
214 (defconfig *identify-foreground
* "green"
215 'Identify-key
"Identify window foreground color")
216 (defconfig *identify-border
* "red"
217 'Identify-key
"Identify window border color")
219 ;;; CONFIG - Query string colors
220 (defconfig *query-font-string
* *default-font-string
*
221 'Query-string
"Query string window font string")
222 (defconfig *query-background
* "black"
223 'Query-string
"Query string window background color")
224 (defconfig *query-message-color
* "yellow"
225 'Query-string
"Query string window message color")
226 (defconfig *query-foreground
* "green"
227 'Query-string
"Query string window foreground color")
228 (defconfig *query-cursor-color
* "white"
229 'Query-string
"Query string window foreground cursor color")
230 (defconfig *query-parent-color
* "blue"
231 'Query-string
"Query string window parenthesis color")
232 (defconfig *query-parent-error-color
* "red"
233 'Query-string
"Query string window parenthesis color when no match")
234 (defconfig *query-border
* "red"
235 'Query-string
"Query string window border color")
238 ;;; CONFIG - Info mode
239 (defconfig *info-background
* "black"
240 'Info-mode
"Info window background color")
241 (defconfig *info-foreground
* "green"
242 'Info-mode
"Info window foreground color")
243 (defconfig *info-border
* "red"
244 'Info-mode
"Info window border color")
245 (defconfig *info-line-cursor
* "white"
246 'Info-mode
"Info window line cursor color color")
247 (defconfig *info-selected-background
* "blue"
248 'Info-mode
"Info selected item background color")
249 (defconfig *info-font-string
* *default-font-string
*
250 'Info-mode
"Info window font string")
252 (defconfig *info-click-to-select
* t
253 'Info-mode
"If true, click on info window select item. Otherwise, click to drag the menu")
255 ;;; CONFIG - Circulate string colors
256 (defconfig *circulate-font-string
* *default-font-string
*
257 'Circulate-mode
"Circulate string window font string")
258 (defconfig *circulate-background
* "black"
259 'Circulate-mode
"Circulate string window background color")
260 (defconfig *circulate-foreground
* "green"
261 'Circulate-mode
"Circulate string window foreground color")
262 (defconfig *circulate-border
* "red"
263 'Circulate-mode
"Circulate string window border color")
264 (defconfig *circulate-width
* 400
265 'Circulate-mode
"Circulate mode window width")
266 (defconfig *circulate-height
* 15
267 'Circulate-mode
"Circulate mode window height")
270 (defconfig *circulate-text-limite
* 30
271 'Circulate-mode
"Maximum text limite in the circulate window")
274 ;;; CONFIG - Expose string colors
275 (defconfig *expose-font-string
* *default-font-string
*
276 'Expose-mode
"Expose string window font string")
277 (defconfig *expose-background
* "black"
278 'Expose-mode
"Expose string window background color")
279 (defconfig *expose-foreground
* "green"
280 'Expose-mode
"Expose string window foreground color")
281 (defconfig *expose-border
* "red"
282 'Expose-mode
"Expose string window border color")
283 (defconfig *expose-valid-on-key
* t
284 'Expose-mode
"Valid expose mode when an accel key is pressed")
285 (defconfig *expose-show-window-title
* t
286 'Expose-mode
"Show the window title on accel window")
290 ;;; CONFIG - Show key binding colors
291 (defconfig *info-color-title
* "Magenta"
292 'Info-mode
"Colored info title color")
293 (defconfig *info-color-underline
* "Yellow"
294 'Info-mode
"Colored info underline color")
295 (defconfig *info-color-first
* "Cyan"
296 'Info-mode
"Colored info first color")
297 (defconfig *info-color-second
* "lightblue"
298 'Info-mode
"Colored info second color")
301 ;;; CONFIG - Menu colors
302 ;;; Set *info-foreground* to change the default menu foreground
303 (defconfig *menu-color-submenu
* "Cyan"
304 'Menu
"Submenu color in menu")
305 (defconfig *menu-color-comment
* "Yellow"
306 'Menu
"Comment color in menu")
307 (defconfig *menu-color-key
* "Magenta"
308 'Menu
"Key color in menu")
309 (defconfig *menu-color-menu-key
* (->color
#xFF9AFF
)
310 'Menu
"Menu key color in menu")
313 ;;; CONFIG - Notify window string colors
314 (defconfig *notify-window-font-string
* *default-font-string
*
315 'Notify-Window
"Notify window font string")
316 (defconfig *notify-window-background
* "black"
317 'Notify-Window
"Notify Window background color")
318 (defconfig *notify-window-foreground
* "green"
319 'Notify-Window
"Notify Window foreground color")
320 (defconfig *notify-window-border
* "red"
321 'Notify-Window
"Notify Window border color")
322 (defconfig *notify-window-delay
* 10
323 'Notify-Window
"Notify Window display delay")