diff --git a/.sawfish/rc b/.sawfish/rc index 23fd5e6..cae7880 100644 --- a/.sawfish/rc +++ b/.sawfish/rc @@ -1,89 +1,17 @@ -(setq user-apps-menu - '(("Emacs" (system "emacsclient -c &")) - ("Terminal" (system "urxvt &")))) - -(define oni:window-packing-keymap (make-keymap)) - -(bind-keys oni:window-packing-keymap - "p" 'pack-window-up - "n" 'pack-window-down - "b" 'pack-window-left - "f" 'pack-window-right) - -(define oni:window-growing-keymap (make-keymap)) - -(bind-keys oni:window-growing-keymap - "p" 'grow-window-up - "n" 'grow-window-down - "b" 'grow-window-left - "f" 'grow-window-right) - -(define oni:window-shrinking-keymap (make-keymap)) - -(bind-keys oni:window-shrinking-keymap - "p" 'shrink-window-up - "n" 'shrink-window-down - "b" 'shrink-window-left - "f" 'shrink-window-right) - -(define oni:window-yanking-keymap (make-keymap)) - -(bind-keys oni:window-yanking-keymap - "p" 'yank-window-up - "n" 'yank-window-down - "b" 'yank-window-left - "f" 'yank-window-right) - -(define oni:window-management-keymap (make-keymap)) - -(bind-keys oni:window-management-keymap - "M" 'maximize-window-toggle - "p" oni:window-packing-keymap - "g" oni:window-growing-keymap - "s" oni:window-shrinking-keymap - "y" oni:window-yanking-keymap) - -(bind-keys global-keymap - "XF86AudioPlay" '(run-shell-command "mpc toggle") - "XF86AudioStop" '(run-shell-command "mpc stop") - "XF86AudioMute" '(run-shell-command "amixer sset Master toggle") - "XF86AudioLowerVolume" '(run-shell-command "mpc volume -5") - "XF86AudioRaiseVolume" '(run-shell-command "mpc volume +5") - "XF86AudioPrev" '(run-shell-command "mpc prev") - "XF86AudioNext" '(run-shell-command "mpc next")) - -(require 'sawfish.wm.util.prompt) - -(define oni:extended-keymap (make-keymap)) - -(bind-keys oni:extended-keymap - "w" oni:window-management-keymap) - -;; (ungrab-keymap global-keymap) -(bind-keys global-keymap - "Super-!" '(run-shell-command (prompt-for-string "Run: ")) - "C-M-l" '(run-shell-command "i3lock -c \"#000000\"") - "Super-e" '(run-shell-command (getenv "EDITOR")) - "Super-w" '(run-shell-command (getenv "BROWSER")) - "Super-c" '(run-shell-command "urxvt") - "Super-TAB" 'cycle-windows - "Super-x" oni:extended-keymap - "Menu" 'popup-root-menu) -;; (grab-keymap global-keymap) - -(setq prompt-color (cons (get-color "#eeeeec") - (get-color "#252e2b"))) - -(setq default-frame-style 'naquadah) - -(require 'sawfish.wm.ext.match-window) - -(add-window-matcher '((WM_CLASS . "^Firefox/Navigator$")) - '((position . north-east))) - +;; -*- mode: sawfish; -*- (require 'rep.regexp) (require 'sawfish.wm.commands.grow-pack) (require 'sawfish.wm.commands.shrink-yank) +(require 'sawfish.wm.ext.match-window) +(require 'sawfish.wm.util.display-window) +(require 'sawfish.wm.util.prompt) + +(define oni:window-packing-keymap (make-keymap)) +(define oni:window-growing-keymap (make-keymap)) +(define oni:window-shrinking-keymap (make-keymap)) +(define oni:window-yanking-keymap (make-keymap)) +(define oni:window-management-keymap (make-keymap)) +(define oni:extended-keymap (make-keymap)) (defun oni:emacs-main-window-p (window) "Check wether or not WINDOW is Emacs' main window." @@ -115,5 +43,84 @@ way I like them." (define-command 'oni:place-emacs-windows oni:place-emacs-windows) +(defun oni:run-or-raise (command class) + "Either run COMMAND, or if a window with class CLASS is found, +raise it." + (let ((w (get-window-by-class class))) + (if w + (display-window w) + (run-shell-command command)))) + +(setq default-frame-style 'naquadah) +(setq prompt-color (cons (get-color "#eeeeec") + (get-color "#252e2b"))) +(setq user-apps-menu + '(("Emacs" (system "emacsclient -c &")) + ("Terminal" (system "urxvt &")))) + +(bind-keys oni:window-packing-keymap + "p" 'pack-window-up + "n" 'pack-window-down + "b" 'pack-window-left + "f" 'pack-window-right) + +(bind-keys oni:window-growing-keymap + "p" 'grow-window-up + "n" 'grow-window-down + "b" 'grow-window-left + "f" 'grow-window-right) + +(bind-keys oni:window-shrinking-keymap + "p" 'shrink-window-up + "n" 'shrink-window-down + "b" 'shrink-window-left + "f" 'shrink-window-right) + +(bind-keys oni:window-yanking-keymap + "p" 'yank-window-up + "n" 'yank-window-down + "b" 'yank-window-left + "f" 'yank-window-right) + (bind-keys oni:window-management-keymap + "M" 'maximize-window-toggle + "p" oni:window-packing-keymap + "g" oni:window-growing-keymap + "s" oni:window-shrinking-keymap + "y" oni:window-yanking-keymap "E" 'oni:place-emacs-windows) + +(bind-keys global-keymap + "XF86AudioPlay" '(run-shell-command "mpc toggle") + "XF86AudioStop" '(run-shell-command "mpc stop") + "XF86AudioMute" '(run-shell-command "amixer sset Master toggle") + "XF86AudioLowerVolume" '(run-shell-command "mpc volume -5") + "XF86AudioRaiseVolume" '(run-shell-command "mpc volume +5") + "XF86AudioPrev" '(run-shell-command "mpc prev") + "XF86AudioNext" '(run-shell-command "mpc next")) + +(bind-keys oni:extended-keymap + "w" oni:window-management-keymap) + +;; (ungrab-keymap global-keymap) +(bind-keys global-keymap + "Super-!" '(run-shell-command (prompt-for-string "Run: ")) + "C-M-l" '(run-shell-command "i3lock -c \"#000000\"") + "Super-e" '(oni:run-or-raise (getenv "EDITOR") "Emacs") + "Super-E" '(run-shell-command (getenv "EDITOR")) + "Super-w" '(run-shell-command (getenv "BROWSER")) + "Super-c" '(run-shell-command "urxvt") + "Super-TAB" 'cycle-windows + "Super-x" oni:extended-keymap + "Super-f" 'pack-window-right + "Super-b" 'pack-window-left + "Super-n" 'pack-window-down + "Super-p" 'pack-window-up + "Menu" 'popup-root-menu + "Super-M" 'maximize-window-toggle) +;; (grab-keymap global-keymap) + +(add-window-matcher '((WM_CLASS . "^Firefox/Navigator$")) + '((position . north-east))) +(add-window-matcher '((WM_CLASS . "^Conkeror/Navigator$")) + '((position . north-east)))