summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-08-13 23:06:06 +0200
committerGravatar Tom Willemse2013-08-13 23:06:06 +0200
commit92f88a72a7e110534ead261725f198f2f759f7eb (patch)
tree0591e639076c3055ddafe61a12f6fd2b928dbcf7
downloadscwm-92f88a72a7e110534ead261725f198f2f759f7eb.tar.gz
scwm-92f88a72a7e110534ead261725f198f2f759f7eb.zip
Initial commit of my scwm configuration in vcshHEADmaster
-rw-r--r--.scwmrc305
1 files changed, 305 insertions, 0 deletions
diff --git a/.scwmrc b/.scwmrc
new file mode 100644
index 0000000..72ddae8
--- /dev/null
+++ b/.scwmrc
@@ -0,0 +1,305 @@
+;; -*- mode: scheme; -*-
+;; simple.scwmrc was system.scwmrc until Scwm-0.99.2
+
+;; Uncomment the below to send a single UDP packet to
+;; the scwm usage counter machine at startup
+;; The single packet just contains the hostname and version number
+;; To disable, set environment variable SCWM_DO_NOT_LOG_USAGE
+;;(define thank-scwm-authors-with-usage-note #t)
+
+(define user-image-load-path
+ (list (string-append (user-home) "/src/scwm/pixmaps")
+ (string-append (user-home) "/src/scwm/bitmaps")))
+
+;;; set path to use for image searches
+(set! image-load-path
+ (append
+ user-image-load-path
+ '("/usr/X11/lib/X11/mini-icons" "/usr/X11/include/X11/pixmaps"
+ "/usr/lib/icons" "/usr/local/X11/include/X11/pixmaps"
+ "/usr/local/lib/icons" "/usr/local/icons"
+ "/uns/share/include/X11/pixmaps" "/uns/share/include/X11/bitmaps")
+ image-load-path))
+
+;;-------------------------------;;
+;; import the scwm modules ;;
+
+#!
+(use-scwm-modules minimal base winops winlist wininfo
+ doc style message-window face
+ preferences style
+ ;optargs winlist-menu)
+ winlist-menu)
+!#
+
+
+(use-modules
+ (app scwm minimal)
+ (app scwm base)
+ (app scwm style)
+ (app scwm winops)
+ (app scwm winlist)
+ (app scwm wininfo)
+ (app scwm doc)
+ (app scwm message-window)
+ (app scwm face)
+ ;(app scwm preferences)
+ (app scwm optargs)
+ (app scwm winlist-menu))
+
+
+;;-------------------------------;;
+;; set some basic styles info ;;
+
+
+(define font
+ (make-font "-unknown-DejaVu Sans Mono-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1"))
+
+(menu-style #:fg "#eeeeec"
+ #:bg "#252a2b"
+ #:stipple "blue"
+ #:hl-fg "yellow"
+ #:font font)
+
+(title-style #:font font #:justify 'left)
+
+(set-icon-font! font)
+(set-highlight-foreground! "white")
+(set-highlight-background! "blueviolet")
+(set-rubber-band-mask! 127)
+
+;;-------------------------------;;
+;; set some paths ;;
+;;
+
+;; these are OK for my system, but may need to be changed for
+;; yours. This should probably be eventually autoconfed or something.
+
+;;; set path to use for image searches
+(set! image-load-path
+ (append
+ user-image-load-path
+ '("/usr/X11/lib/X11/mini-icons" "/usr/X11/include/X11/pixmaps"
+ "/usr/lib/icons" "/usr/local/X11/include/X11/pixmaps"
+ "/usr/local/lib/icons" "/usr/local/icons"
+ "/uns/share/include/X11/pixmaps" "/uns/share/include/X11/bitmaps")
+ image-load-path))
+
+;;-------------------------------;;
+;; set some window styles ;;
+
+(window-style "*"
+ #:fg "white" #:bg "navy"
+ #:icon "unknown1.xpm"
+ #:icon-box (list (x- 70) 1 69 (y- 141))
+ #:border-width 6
+ #:focus 'mouse
+ #:mwm-func-hint #t #:mwm-decor-hint #t
+ #:hint-override #t #:decorate-transient #t
+ #:PPosition-hint #f
+ #:lenience #t
+ )
+(define desk-widget
+ (make-style #:plain-border #t #:sticky #t #:winlist-skip #t
+ #:border-width 3 #:focus 'none))
+
+(window-style "*lock" #:use-style desk-widget)
+(window-style "xload" #:no-titlebar #t #:use-style desk-widget)
+(window-style "xscreensaver" #:no-titlebar #t #:use-style desk-widget)
+(window-style "xbiff" #:no-titlebar #t #:use-style desk-widget)
+(window-style "xcalc" #:icon "xcalc.xpm")
+(window-style "xman" #:icon "xman.xpm")
+(window-style "xmag" #:icon "mag_glass.xpm")
+(window-style "Emacs" #:icon "gnu-animal.xpm")
+(window-style "XTerm" #:icon "xterm.xpm")
+
+
+;; People seem to prefer move by full virtual desks
+(set-edge-resistance! 500 10)
+(set-edge-scroll! (%x 100) (%y 100))
+
+
+;;-------------------------------;;
+;; define some useful menus ;;
+
+
+(define window-ops-menu
+ (menu
+ (list
+ (menu-title "Window Ops") menu-separator
+ (menuitem "Move" #:action interactive-move)
+ (menuitem "Resize" #:action interactive-resize)
+ (menuitem "Raise" #:action raise-window)
+ (menuitem "Lower" #:action lower-window)
+;; (menuitem "Print" #:action print-window)
+ (menuitem "(Un)Window-Shade" #:action toggle-window-shade)
+ (menuitem "(De)Iconify" #:action toggle-iconify)
+ (menuitem "(Un)Maximize" #:action toggle-maximize-vertical)
+ (menuitem "(Un)Stick" #:action toggle-stick)
+ (menuitem "(Un)Keep On Top" #:action toggle-on-top)
+ menu-separator
+ (menuitem "Close" #:action close-window)
+ (menuitem "Delete" #:action delete-window)
+ (menuitem "Destroy" #:action destroy-window)
+ menu-separator
+ (menuitem "Refresh Screen" #:action refresh))))
+
+(define* (popup-ops)
+ ""
+ (interactive)
+ (popup-menu window-ops-menu))
+
+;; Hack to let quit work
+(set-procedure-property! quit 'interactive #t)
+
+(define menu-quit-verify
+ (menu
+ (list
+ (menu-title "Really quit scwm?") menu-separator
+ ;;(menuitem "Yes" #:action scheme-quit)
+ (menuitem "Yes" #:action quit)
+ (menuitem "No" #:action #f)
+ menu-separator
+ (menuitem "Restart scwm" #:action (lambda () (restart "scwm"))))))
+
+(define (quit-verify)
+ (popup-menu menu-quit-verify))
+
+(define desk-menu
+ (menu
+ (list
+ (menu-title "Desks") menu-separator
+ (menuitem "Desk 1" #:action (lambda () (set-current-desk! 0)))
+ (menuitem "Desk 2" #:action (lambda () (set-current-desk! 1)))
+ (menuitem "Desk 3" #:action (lambda () (set-current-desk! 2)))
+ (menuitem "Desk 4" #:action (lambda () (set-current-desk! 3))))))
+
+(define util-menu
+ (menu
+ (list
+ (menu-title "Utilities") menu-separator
+ ;(menuitem "Preferences..." #:action scwm-options-dialog)
+ menu-separator
+ (menuitem "urxvt" #:action (lambda () (execute "urxvt")))
+ (menuitem "emacs" #:action (lambda () (execute "emacsclient -c -a emacs")))
+ (menuitem "firefox" #:action (lambda () (execute "firefox")))
+ (menuitem "top" #:action
+ (lambda () (execute "urxvt -T Top -n Top -e top")))
+ menu-separator
+ (menuitem "Desks" #:action desk-menu)
+ menu-separator
+ (menuitem "Exit scwm" #:action menu-quit-verify))))
+
+(define* (popup-util)
+ ""
+ (interactive)
+ (popup-menu util-menu))
+
+(define (make-small-window-ops-menu w)
+ (menu
+ (list
+;; (menu-title "Window Ops2")
+;; menu-separator
+ (menuitem "Move" #:action interactive-move)
+ (menuitem "Resize" #:action interactive-resize)
+ (menuitem "Raise" #:action raise-window)
+ (menuitem "Lower" #:action lower-window)
+ (menuitem "Iconify" #:action iconify-window)
+ menu-separator
+ (menuitem "More..." #:action
+ (menu
+ (list
+ (menuitem (if (maximized? w)
+ "Unmaximize"
+ "Maximize")
+ #:action toggle-maximize-vertical)
+ (menuitem (if (sticky-window? w)
+ "Unstick"
+ "Stick") #:action toggle-stick)
+ (menuitem (if (shaded-window? w)
+ "UnWindow-Shade"
+ "Window-Shade")
+ #:action toggle-window-shade)
+ (menuitem (if (kept-on-top? w)
+ "UnKeep On Top"
+ "Keep On Top") #:action toggle-on-top))))
+ menu-separator
+ (menuitem "Close" #:action close-window)
+ (menuitem "Destroy" #:action destroy-window))))
+
+(define* (popup-small-ops)
+ "" (interactive)
+ (popup-menu (make-small-window-ops-menu (get-window))))
+
+
+;; now set some mouse and key bindings ;;
+
+;; first our root menus
+(bind-mouse 'root 1 popup-util)
+(bind-mouse 'root 2 popup-ops)
+(bind-mouse 'root 3 (lambda ()
+ (show-window-list-menu #f #f #:show-geometry #t)))
+(bind-mouse 'root "M-3" (lambda () (popup-menu desk-menu)))
+
+
+;; window buttons
+(bind-mouse 'left-button-1 1 popup-small-ops)
+(bind-mouse 'right-button-1 1 toggle-maximize-vertical)
+(bind-mouse 'right-button-2 1 iconify-window)
+
+;; operations on parts of the window
+(bind-mouse '(frame-corners frame-sides) 2 popup-small-ops)
+(bind-mouse 'frame-corners 1 resize-or-raise)
+(bind-mouse 'frame-sides 1 move-or-raise)
+
+(define* (move-or-shade)
+ ""
+ (interactive)
+ (case (mouse-event-type)
+ ((double-click) (toggle-window-shade))
+ (else (move-or-raise))))
+
+(bind-mouse 'title 1 move-or-shade)
+(bind-mouse 'title 3 lower-window)
+
+
+;; key bindings for the menus
+(bind-key 'all "M-F1" popup-util)
+(bind-key 'all "M-F2" popup-ops)
+
+;; in case of emergency, hit Control-Meta-Shift-Q
+(bind-key 'all "C-M-S-q" quit-verify)
+
+;; some stuff for icons
+(define* (move-or-deiconify)
+ ""
+ (interactive)
+ (case (mouse-event-type)
+ ((motion) (interactive-move))
+ ((double-click) (deiconify-window))))
+
+(bind-mouse 'icon 1 move-or-deiconify)
+(bind-mouse 'icon 2 deiconify-window)
+
+
+
+;; move the pointer with the keyboard
+(bind-key 'all "M-Left" (lambda () (move-pointer (%x -1) 0)))
+(bind-key 'all "M-Right" (lambda () (move-pointer (%x 1) 0)))
+(bind-key 'all "M-Up" (lambda () (move-pointer 0 (%y -1))))
+(bind-key 'all "M-Down" (lambda () (move-pointer 0 (%y 1))))
+
+;; move the viewport with the keyboard
+(bind-key 'all "C-M-Left" (lambda () (move-viewport (%x -100) 0)))
+(bind-key 'all "C-M-Right" (lambda () (move-viewport (%x 100) 0)))
+(bind-key 'all "C-M-Up" (lambda () (move-viewport 0 (%y -100))))
+(bind-key 'all "C-M-Down" (lambda () (move-viewport 0 (%y 100))))
+
+;; rotate the current window with the keyboard
+(bind-key 'all "C-S-Tab"
+ (lambda ()
+ (next-window #:only visible? #:except iconified-window?)))
+
+(bind-key 'all "M-S-Tab"
+ (lambda ()
+ (prev-window #:only visible? #:except iconified-window?)))