From 4d815967917b239f4e0134747409919233f3ac0d Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 16 Nov 2012 12:14:19 +0100 Subject: [PATCH 01/12] .offlineimap.py --- .offlineimap.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.offlineimap.py b/.offlineimap.py index a63709b..fb4f66e 100644 --- a/.offlineimap.py +++ b/.offlineimap.py @@ -1,8 +1,50 @@ +from offlineimap import imaputil + + +def lld_flagsimap2maildir(flagstring): + flagmap = {'\\seen': 'S', + '\\answered': 'R', + '\\flagged': 'F', + '\\deleted': 'T', + '\\draft': 'D', + 'gnus-expire': 'E'} + retval = [] + imapflaglist = [x.lower() for x in flagstring[1:-1].split()] + + for imapflag in imapflaglist: + if imapflag in flagmap: + retval.append(flagmap[imapflag]) + + retval.sort() + return set(retval) + + +def lld_flagsmaildir2imap(list): + flagmap = {'S': '\\Seen', + 'R': '\\Answered', + 'F': '\\Flagged', + 'T': '\\Deleted', + 'D': '\\Draft', + 'E': 'gnus-expire'} + retval = [] + + for mdflag in list: + if mdflag in flagmap: + retval.append(flagmap[mdflag]) + + retval.sort() + return '(' + ' '.join(retval) + ')' + +imaputil.flagsmaildir2imap = lld_flagsmaildir2imap +imaputil.flagsimap2maildir = lld_flagsimap2maildir + + def getuser(host): import netrc mynet = netrc.netrc() return mynet.authenticators(host)[0] + def getpassword(host): import netrc mynet = netrc.netrc() From cfcb9d6b3c6a336f1bd1aed1eb57d26d9d598487 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:22:13 +0100 Subject: [PATCH 02/12] .conkerorrc/init.js --- .conkerorrc/init.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 5d03951..f4818d8 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -17,6 +17,11 @@ define_browser_object_class( } ); +function ext_title_format(window) { + return '(' + get_current_profile() +') ' + + window.buffers.current.description; +} + function oni_before_quit_func() { var w = get_recent_conkeror_window(); var result = (w == null) || @@ -154,6 +159,7 @@ content_policy_bytype_table.object = oni_block_flash; cwd = make_file("/home/slash/downloads/"); hint_digits = "arstdhneio"; read_buffer_show_icons = true; +title_format_fn = ext_title_format; url_remoting_fn = load_url_in_new_buffer; define_key(content_buffer_normal_keymap, "h", From 73298c40cd8ae014124e3e9ed0f2031cb18cf958 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:22:27 +0100 Subject: [PATCH 03/12] .emacs.d/gnus.el --- .emacs.d/gnus.el | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.emacs.d/gnus.el b/.emacs.d/gnus.el index a13a1ad..03f1b41 100644 --- a/.emacs.d/gnus.el +++ b/.emacs.d/gnus.el @@ -14,9 +14,6 @@ (setq gnus-read-newsrc-file nil) (setq gnus-novice-user t) (setq gnus-article-truncate-lines nil) -(setq message-send-mail-function 'message-send-mail-with-sendmail) -(setq sendmail-program "/usr/bin/msmtp") -(setq message-sendmail-extra-arguments '("-a" "gmail")) ;; (setq gnus-parameters ;; '(("gmail" ;; (display . all)) @@ -51,8 +48,6 @@ (signature-file "~/documents/work/aethon/signature.txt") (eval (setq message-sendmail-extra-arguments '("-a" "aethon") flyspell-default-dictionary "nl"))))) -(setq user-mail-address "tom@ryuslash.org") -(setq user-full-name "Tom Willemsen") ;-----[ BBDB ]-------------------------------------------------------- ;; (require 'bbdb) From c99d57dbf3c388661729091087fe2ced638cbc04 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:22:51 +0100 Subject: [PATCH 04/12] .emacs.d/init.el --- .emacs.d/init.el | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 837f49f..6b20d31 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -43,6 +43,7 @@ (defalias 'yes-or-no-p 'y-or-n-p) (defalias 'list-buffers 'ibuffer) +(defalias 'dabbrev-expand 'hippie-expand) (defface git-commit-summary-face '((t (:inherit org-level-1))) @@ -98,6 +99,9 @@ 'flymake-allowed-file-name-masks ; flymaking 'easy'. '("\\.go$" flymake-simple-make-init)))) +(eval-after-load "hippie-exp" + '(oni:load-hippie-exp 'yasnippet)) + (eval-after-load "ido" '(setq ido-ignore-buffers `(,@ido-ignore-buffers "^\\*.*\\*$" "^irc\\." "^\\#"))) @@ -119,6 +123,9 @@ (global-set-key (kbd "M-x") 'smex) (global-set-key (kbd "C-M-x") 'smex-major-mode-commands))) +(eval-after-load "yasnippet" + '(oni:load-hippie-exp 'hippie-exp)) + (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) (put 'narrow-to-region 'disabled nil) @@ -253,6 +260,7 @@ (setq magit-repo-dirs '("~/var/src/")) (setq message-log-max 1000) (setq message-send-mail-function 'message-send-mail-with-sendmail) +(setq message-sendmail-extra-arguments '("-a" "ryuslash")) (setq mode-line-position nil) (setq package-archives '(("melpa" . "http://melpa.milkbox.net/packages/") @@ -278,6 +286,7 @@ (setq uniquify-buffer-name-style 'post-forward) (setq use-dialog-box nil) (setq user-full-name "Tom Willemsen") +(setq user-mail-address "tom@ryuslash.org") (setq window-combination-resize t) (setq yas-prompt-functions '(yas-ido-prompt)) @@ -363,10 +372,6 @@ (add-to-list 'debug-ignored-errors "^Can't shift all lines enough") -(add-to-list 'display-buffer-alist - '(".*" . ((bw-display-in-other-window . nil)))) -(add-to-list 'display-buffer-alist - '("^\\*.*\\*$" . ((bw-display-in-bottom-window . nil)))) (add-to-list 'display-buffer-alist '("^\\*magit: .*\\*$" . ((display-buffer-same-window . nil)))) (add-to-list 'display-buffer-alist From 07be108b4ea6e89120948ea2cb10841be5616d4c Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:23:13 +0100 Subject: [PATCH 05/12] .emacs.d/site-lisp/oni.el --- .emacs.d/site-lisp/oni.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index a0aa003..bfdf369 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -273,6 +273,13 @@ If COUNT has been specified indent by that much, otherwise look at (kill-region (region-beginning) (region-end)) (kill-line))) +(defun oni:load-hippie-exp (other) + "Make sure both hippie-expand and yasnippet are loaded in order + to add yasnippet's expand function to hippie-expand." + (require other) + (add-to-list 'hippie-expand-try-functions-list + 'yas/hippie-try-expand)) + (defun oni:lua-mode-func() "Function for `lua-mode-hook'." (local-unset-key (kbd ")")) From bef56b65d49feaa148f3cbc4e1add6dd7a1c9220 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:23:22 +0100 Subject: [PATCH 06/12] .sawfish/rc --- .sawfish/rc | 173 +++++++++++++++++++++++++++------------------------- 1 file changed, 90 insertions(+), 83 deletions(-) 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))) From 916245c018f1c8cdf09e9d90fc0b51fee3529341 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 19 Nov 2012 23:23:27 +0100 Subject: [PATCH 07/12] .xinitrc --- .xinitrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.xinitrc b/.xinitrc index 3f10143..9684c80 100755 --- a/.xinitrc +++ b/.xinitrc @@ -12,5 +12,5 @@ fi emacs --daemon & fehlstart & -test -n "$1" && wm=$1 || wm="herbstluftwm" +test -n "$1" && wm=$1 || wm="sawfish" exec $wm From 9c426f266eea5166df8f900d472cbfd5323af61a Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Nov 2012 01:13:19 +0100 Subject: [PATCH 08/12] .sawfish/rc --- .sawfish/rc | 53 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/.sawfish/rc b/.sawfish/rc index cae7880..8a6e9c5 100644 --- a/.sawfish/rc +++ b/.sawfish/rc @@ -5,6 +5,8 @@ (require 'sawfish.wm.ext.match-window) (require 'sawfish.wm.util.display-window) (require 'sawfish.wm.util.prompt) +(require 'sawfish.wm.util.window-order) +(require 'sawfish.wm.commands.x-cycle) (define oni:window-packing-keymap (make-keymap)) (define oni:window-growing-keymap (make-keymap)) @@ -43,17 +45,24 @@ way I like them." (define-command 'oni:place-emacs-windows oni:place-emacs-windows) -(defun oni:run-or-raise (command class) +(defun oni:run-or-raise (command #!key id name class role) "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) + (let* ((windows (filter + (lambda (x) + (and (or (not id) (equal (window-id x) id)) + (or (not name (equal (window-name x) name))) + (or (not class) (equal (window-class x) class)) + (or (not role) (equal (window-role x) role)))) + (window-order))) + (first (car windows)) + (w (if (equal first (input-focus)) (last windows) first))) + (if w (display-window w) (run-shell-command command)))) (setq default-frame-style 'naquadah) (setq prompt-color (cons (get-color "#eeeeec") - (get-color "#252e2b"))) + (get-color "#111113"))) (setq user-apps-menu '(("Emacs" (system "emacsclient -c &")) ("Terminal" (system "urxvt &")))) @@ -103,21 +112,25 @@ raise it." "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) +(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") #:class "Emacs") + "Super-E" '(run-shell-command (getenv "EDITOR")) + "Super-w" '(oni:run-or-raise (getenv "BROWSER") #:class "Conkeror") + "Super-W" '(run-shell-command (getenv "BROWSER")) + "Super-c" '(oni:run-or-raise "urxvt" #:class "URxvt") + "Super-C" '(run-shell-command "urxvt") + "Super-TAB" 'cycle-windows + "C-Super-TAB" 'cycle-class + "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$")) From a5d05d17534e315524cdb5221428d9b01cbc95e6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Nov 2012 02:12:42 +0100 Subject: [PATCH 09/12] .sawfish/rc --- .sawfish/rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.sawfish/rc b/.sawfish/rc index 8a6e9c5..700c1de 100644 --- a/.sawfish/rc +++ b/.sawfish/rc @@ -58,7 +58,7 @@ raise it." (first (car windows)) (w (if (equal first (input-focus)) (last windows) first))) (if w (display-window w) - (run-shell-command command)))) + (call-command `(run-shell-command ,command))))) (setq default-frame-style 'naquadah) (setq prompt-color (cons (get-color "#eeeeec") From d027e718398b1f03644ac74bfbd1575a4e09845b Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Nov 2012 18:53:28 +0100 Subject: [PATCH 10/12] .emacs.d/init.el --- .emacs.d/init.el | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 6b20d31..ee23d0d 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -106,9 +106,6 @@ '(setq ido-ignore-buffers `(,@ido-ignore-buffers "^\\*.*\\*$" "^irc\\." "^\\#"))) -(eval-after-load "info" - '(require 'info+)) - (eval-after-load "jabber" '(remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) @@ -273,9 +270,10 @@ (setq php-function-call-face 'font-lock-function-name-face) (setq php-mode-force-pear t) (setq pony-tpl-indent-moves t) +(setq pp^L-^L-string-function 'oni:pretty-control-l-function) +(setq pp^L-^L-string-pre nil) (setq rainbow-delimiters-max-face-count 12) (setq redisplay-dont-pause t) -(setq scroll-conservatively 101) (setq send-mail-function 'smtpmail-send-it) (setq sendmail-program "/usr/bin/msmtp") (setq smex-key-advice-ignore-menu-bar t) From e2ed387df12186dba6f6e0c60044ae5d4d59aa20 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Nov 2012 18:53:43 +0100 Subject: [PATCH 11/12] .emacs.d/site-lisp/oni.el --- .emacs.d/site-lisp/oni.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index bfdf369..286f19b 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -402,6 +402,12 @@ When dealing with braces, add another line and indent that too." (rainbow-delimiters-mode) (setq fci-rule-column 80)) +(defun oni:pretty-control-l-function (win) + "Just make a string of either `fci-rule-colum' or `fill-column' +length -1. Use the `-' character. WIN is ignored." + (make-string + (1- (if (boundp 'fci-rule-column) fci-rule-column fill-column)) ?-)) + (defun oni:prog-mode-func () "Function for `prog-mode-hook'." (rainbow-delimiters-mode) From c545bedf7fa756531b0c486845a6f9af36a83eb2 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Nov 2012 18:54:03 +0100 Subject: [PATCH 12/12] .sawfish/rc --- .sawfish/rc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.sawfish/rc b/.sawfish/rc index 700c1de..684ce1d 100644 --- a/.sawfish/rc +++ b/.sawfish/rc @@ -109,7 +109,8 @@ raise it." "XF86AudioNext" '(run-shell-command "mpc next")) (bind-keys oni:extended-keymap - "w" oni:window-management-keymap) + "w" oni:window-management-keymap + "Super-b" 'popup-window-list-menu) ;; (ungrab-keymap global-keymap) (bind-keys @@ -133,7 +134,6 @@ raise it." "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))) +(add-window-matcher '((WM_CLASS . "^(Firefox|Conkeror)/Navigator$")) + '((position . north-east) + (maximized . all)))