src/clfswm-util.lisp (open-notify-window): Convert hello-window functions to a more...
[clfswm.git] / src / config.lisp
blob599f3024b307f11f198541223843dc255abf3f34
1 ;;; --------------------------------------------------------------------------
2 ;;; CLFSWM - FullScreen Window Manager
3 ;;;
4 ;;; --------------------------------------------------------------------------
5 ;;; Documentation: Configuration file
6 ;;;
7 ;;; Change this file to your own needs or update some of this variables in
8 ;;; your ~/.clfswmrc
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 ;;; --------------------------------------------------------------------------
12 ;;;
13 ;;; (C) 2010 Philippe Brochard <hocwp@free.fr>
14 ;;;
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.
19 ;;;
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.
24 ;;;
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.
28 ;;;
29 ;;; --------------------------------------------------------------------------
31 (in-package :clfswm)
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 '((string-equal xlib:get-wm-class "ROX-Pinboard")
51 (string-equal xlib:get-wm-class "xvkbd")
52 (string-equal xlib:wm-name "clfswm-terminal"))
53 "Config(): CLFSWM will never manage windows of this type.
54 A list of (predicate-function-on-window expected-string)")
57 (defparameter *hide-unmanaged-window* t
58 "Config(): Hide or not unmanaged windows when a child is deselected.")
60 ;;; CONFIG - Screen size
61 (defun get-fullscreen-size ()
62 "Return the size of root child (values rx ry rw rh)
63 You can tweak this to what you want"
64 (values -2 -2 (+ (xlib:screen-width *screen*) 2) (+ (xlib:screen-height *screen*) 2)))
65 ;;(values -1 -1 (xlib:screen-width *screen*) (xlib:screen-height *screen*)))
66 ;; (values -1 -1 1024 768))
67 ;; (values 100 100 800 600))
70 (defparameter *corner-size* 3
71 "Config(Corner group): The size of the corner square")
74 ;;; CONFIG: Corner actions - See in clfswm-corner.lisp for
75 ;;; allowed functions
76 (defparameter *corner-main-mode-left-button*
77 '((:top-left open-menu)
78 (:top-right present-virtual-keyboard)
79 (:bottom-right expose-windows-mode)
80 (:bottom-left nil))
81 "Config(Corner group): Actions on corners in the main mode with the left mouse button")
83 (defparameter *corner-main-mode-middle-button*
84 '((:top-left help-on-clfswm)
85 (:top-right ask-close/kill-current-window)
86 (:bottom-right nil)
87 (:bottom-left nil))
88 "Config(Corner group): Actions on corners in the main mode with the middle mouse button")
90 (defparameter *corner-main-mode-right-button*
91 '((:top-left present-clfswm-terminal)
92 (:top-right ask-close/kill-current-window)
93 (:bottom-right expose-all-windows-mode)
94 (:bottom-left nil))
95 "Config(Corner group): Actions on corners in the main mode with the right mouse button")
97 (defparameter *corner-second-mode-left-button*
98 '((:top-left nil)
99 (:top-right nil)
100 (:bottom-right expose-windows-mode)
101 (:bottom-left nil))
102 "Config(Corner group): Actions on corners in the second mode with the left mouse button")
104 (defparameter *corner-second-mode-middle-button*
105 '((:top-left help-on-clfswm)
106 (:top-right nil)
107 (:bottom-right nil)
108 (:bottom-left nil))
109 "Config(Corner group): Actions on corners in the second mode with the middle mouse button")
111 (defparameter *corner-second-mode-right-button*
112 '((:top-left nil)
113 (:top-right nil)
114 (:bottom-right expose-all-windows-mode)
115 (:bottom-left nil))
116 "Config(Corner group): Actions on corners in the second mode with the right mouse button")
119 (defparameter *virtual-keyboard-cmd* "xvkbd"
120 "Config(Corner group): The command to display the virtual keybaord
121 Here is an ~/.Xresources example for xvkbd:
122 xvkbd.windowGeometry: 300x100-0-0
123 xvkbd*Font: 6x12
124 xvkbd.modalKeytop: true
125 xvkbd.customization: -french
126 xvkbd.keypad: false
127 And make it always on top")
129 (defparameter *clfswm-terminal-name* "clfswm-terminal"
130 "Config(Corner group): The clfswm terminal name")
131 ;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*)
132 (defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*)
133 "Config(Corner group): The clfswm terminal command.
134 This command must set the window title to *clfswm-terminal-name*")
139 ;;; Hook definitions
141 ;;; A hook is a function, a symbol or a list of functions with a rest
142 ;;; arguments.
144 ;;; This hooks are set in clfswm.lisp, you can overwrite them or extend
145 ;;; them with a hook list.
147 ;;; See clfswm.lisp for hooks examples.
149 (defparameter *init-hook* '(default-init-hook display-hello-window)
150 "Config(Hook group): Init hook. This hook is run just after the first root frame is created")
152 (defparameter *default-nw-hook* 'default-frame-nw-hook
153 "Config(Hook group): Default action to do on newly created windows")
158 ;;; CONFIG
159 (defparameter *create-frame-on-root* nil
160 "Config(): Create frame on root.
161 Set this variable to true if you want to allow to create a new frame
162 on the root window in the main mode with the mouse")
165 ;;; CONFIG: Main mode colors
166 (defparameter *color-selected* "Red"
167 "Config(Main mode group): Color of selected window")
168 (defparameter *color-unselected* "Blue"
169 "Config(Main mode group): Color of unselected color")
170 (defparameter *color-maybe-selected* "Yellow"
171 "Config(Main mode group): Color of maybe selected windows")
174 ;;; CONFIG: Frame colors
175 (defparameter *frame-background* "Black"
176 "Config(Frame colors group): Frame background")
177 (defparameter *frame-foreground* "Green"
178 "Config(Frame colors group): Frame foreground")
179 (defparameter *frame-foreground-root* "Red"
180 "Config(Frame colors group): Frame foreground when the frame is the root frame")
181 (defparameter *frame-foreground-hidden* "Darkgreen"
182 "Config(Frame colors group): Frame foreground for hidden windows")
184 ;;; CONFIG: Default window size
185 (defparameter *default-window-width* 400
186 "Config(): Default window width")
187 (defparameter *default-window-height* 300
188 "Config(): Default window height")
190 ;;; CONFIG: Second mode colors and fonts
191 (defparameter *sm-border-color* "Green"
192 "Config(Second mode group): Second mode window border color")
193 (defparameter *sm-background-color* "Black"
194 "Config(Second mode group): Second mode window background color")
195 (defparameter *sm-foreground-color* "Red"
196 "Config(Second mode group): Second mode window foreground color")
197 (defparameter *sm-font-string* *default-font-string*
198 "Config(Second mode group): Second mode window font string")
199 (defparameter *sm-width* 300
200 "Config(Second mode group): Second mode window width")
201 (defparameter *sm-height* 25
202 "Config(Second mode group): Second mode window height")
208 ;;; CONFIG - Identify key colors
209 (defparameter *identify-font-string* *default-font-string*
210 "Config(Identify key group): Identify window font string")
211 (defparameter *identify-background* "black"
212 "Config(Identify key group): Identify window background color")
213 (defparameter *identify-foreground* "green"
214 "Config(Identify key group): Identify window foreground color")
215 (defparameter *identify-border* "red"
216 "Config(Identify key group): Identify window border color")
218 ;;; CONFIG - Query string colors
219 (defparameter *query-font-string* *default-font-string*
220 "Config(Query string group): Query string window font string")
221 (defparameter *query-background* "black"
222 "Config(Query string group): Query string window background color")
223 (defparameter *query-message-color* "yellow"
224 "Config(Query string group): Query string window message color")
225 (defparameter *query-foreground* "green"
226 "Config(Query string group): Query string window foreground color")
227 (defparameter *query-cursor-color* "white"
228 "Config(Query string group): Query string window foreground cursor color")
229 (defparameter *query-parent-color* "blue"
230 "Config(Query string group): Query string window parenthesis color")
231 (defparameter *query-parent-error-color* "red"
232 "Config(Query string group): Query string window parenthesis color when no match")
233 (defparameter *query-border* "red"
234 "Config(Query string group): Query string window border color")
237 ;;; CONFIG - Info mode
238 (defparameter *info-background* "black"
239 "Config(Info mode group): Info window background color")
240 (defparameter *info-foreground* "green"
241 "Config(Info mode group): Info window foreground color")
242 (defparameter *info-border* "red"
243 "Config(Info mode group): Info window border color")
244 (defparameter *info-line-cursor* "white"
245 "Config(Info mode group): Info window line cursor color color")
246 (defparameter *info-selected-background* "blue"
247 "Config(Info mode group): Info selected item background color")
248 (defparameter *info-font-string* *default-font-string*
249 "Config(Info mode group): Info window font string")
251 (defparameter *info-click-to-select* t
252 "Config(Info mode group): If true, click on info window select item. Otherwise, click to drag the menu")
254 ;;; CONFIG - Circulate string colors
255 (defparameter *circulate-font-string* *default-font-string*
256 "Config(Circulate mode group): Circulate string window font string")
257 (defparameter *circulate-background* "black"
258 "Config(Circulate mode group): Circulate string window background color")
259 (defparameter *circulate-foreground* "green"
260 "Config(Circulate mode group): Circulate string window foreground color")
261 (defparameter *circulate-border* "red"
262 "Config(Circulate mode group): Circulate string window border color")
263 (defparameter *circulate-width* 400
264 "Config(Circulate mode group): Circulate mode window width")
265 (defparameter *circulate-height* 15
266 "Config(Circulate mode group): Circulate mode window height")
269 (defparameter *circulate-text-limite* 30
270 "Config(Circulate mode group): Maximum text limite in the circulate window")
273 ;;; CONFIG - Expose string colors
274 (defparameter *expose-font-string* *default-font-string*
275 "Config(Expose mode group): Expose string window font string")
276 (defparameter *expose-background* "black"
277 "Config(Expose mode group): Expose string window background color")
278 (defparameter *expose-foreground* "green"
279 "Config(Expose mode group): Expose string window foreground color")
280 (defparameter *expose-border* "red"
281 "Config(Expose mode group): Expose string window border color")
282 (defparameter *expose-valid-on-key* t
283 "Config(Expose mode group): Valid expose mode when an accel key is pressed")
284 (defparameter *expose-show-window-title* t
285 "Config(Expose mode group): Show the window title on accel window")
289 ;;; CONFIG - Show key binding colors
290 (defparameter *info-color-title* "Magenta"
291 "Config(Info mode group): Colored info title color")
292 (defparameter *info-color-underline* "Yellow"
293 "Config(Info mode group): Colored info underline color")
294 (defparameter *info-color-first* "Cyan"
295 "Config(Info mode group): Colored info first color")
296 (defparameter *info-color-second* "lightblue"
297 "Config(Info mode group): Colored info second color")
300 ;;; CONFIG - Menu colors
301 ;;; Set *info-foreground* to change the default menu foreground
302 (defparameter *menu-color-submenu* "Cyan"
303 "Config(Menu group): Submenu color in menu")
304 (defparameter *menu-color-comment* "Yellow"
305 "Config(Menu group): Comment color in menu")
306 (defparameter *menu-color-key* "Magenta"
307 "Config(Menu group): Key color in menu")
308 (defparameter *menu-color-menu-key* (->color #xFF9AFF)
309 "Config(Menu group): Menu key color in menu")
312 ;;; CONFIG - Notify window string colors
313 (defparameter *notify-window-font-string* *default-font-string*
314 "Config(Notify Window mode group): Notify window font string")
315 (defparameter *notify-window-background* "black"
316 "Config(Notify Window group): Notify Window background color")
317 (defparameter *notify-window-foreground* "green"
318 "Config(Notify Window group): Notify Window foreground color")
319 (defparameter *notify-window-border* "red"
320 "Config(Notify Window group): Notify Window border color")
321 (defparameter *notify-window-delay* 10
322 "Config(Notify Window group): Notify Window display delay")