chiark / gitweb /
Merge branch 'master' of metalzone:etc/profile
authorMark Wooding <mdw@distorted.org.uk>
Sat, 21 Nov 2009 11:21:07 +0000 (11:21 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 21 Nov 2009 11:21:07 +0000 (11:21 +0000)
* 'master' of metalzone:etc/profile:
  dot/emacs: Consolidate chunks of `add-hook' settings and similar.
  el/dot-emacs.el: Turn on `reveal-mode' because it wins.
  bin/mdw-editor: Use `emacsclient' to edit files.
  dot/emacs: Always start the servers in Emacs 23.
  dot/emacs: Set frame parameters unconditionally.
  el/dot-emacs.el: Add `indent' and `debug' declarations to macros.
  dot/emacs, el/dot-emacs.el: Fix font configuration.
  dot/gnus.el: Use fancy tree drawing if using window-system output.
  dot/xinitrc: Run Emacs with GDK_NATIVE_WINDOWS=1.
  dot/xinitrc: Search for Emacs 23, and prefer it over other Emacsen.

Conflicts:
dot/emacs -- server startup differences

dot/emacs
el/dot-emacs.el

index 1b7b5c1146b554fba64a0e4cf84c7c58c44cafa7..480abd116fba4cc21a0870c4742995b7ae67d719 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
 ;; Emacs server behaviour.
 
 (and (or window-system (>= emacs-major-version 23))
-     (trap (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$"))
-          (start-server)
-          (gnuserv-start)))
+     (progn (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$")
+                 gnuserv-frame t)
+           (trap (server-start))
+           (trap (gnuserv-start))))
 
 ;; Control backup behaviour.
 
index 069f202e4d89c3606e93cc149b0fb5006181be53..1112f35599b5b9dfeb1914873b34e0842f740b59 100644 (file)
@@ -505,6 +505,42 @@ (defun mdw-good-url-browser ()
          (setq answer func)))
     answer))
 
+(eval-after-load "w3m-search"
+  '(progn
+     (dolist
+        (item
+         '(("g" "Google" "http://www.google.co.uk/search?q=%s")
+           ("gd" "Google Directory"
+            "http://www.google.com/search?cat=gwd/Top&q=%s")
+           ("gg" "Google Groups" "http://groups.google.com/groups?q=%s")
+           ("ward" "Ward's wiki" "http://c2.com/cgi/wiki?%s")
+           ("gi" "Images" "http://images.google.com/images?q=%s")
+           ("rfc" "RFC"
+            "http://metalzone.distorted.org.uk/ftp/pub/mirrors/rfc/rfc%s.txt.gz")
+           ("wp" "Wikipedia"
+            "http://en.wikipedia.org/wiki/Special:Search?go=Go&search=%s")
+           ("imdb" "IMDb" "http://www.imdb.com/Find?%s")
+           ("nc-wiki" "nCipher wiki"
+            "http://wiki.ncipher.com/wiki/bin/view/Devel/?topic=%s")
+           ("map" "Google maps" "http://maps.google.co.uk/maps?q=%s&hl=en")
+           ("lp" "Launchpad bug by number"
+            "https://bugs.launchpad.net/bugs/%s")
+           ("lppkg" "Launchpad bugs by package"
+            "https://bugs.launchpad.net/%s")
+           ("msdn" "MSDN"
+            "http://social.msdn.microsoft.com/Search/en-GB/?query=%s&ac=8")
+           ("debbug" "Debian bug by number"
+            "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s")
+           ("debbugpkg" "Debian bugs by package"
+            "http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=%s")
+           ("ljlogin" "LJ login" "http://www.livejournal.com/login.bml")))
+       (add-to-list 'w3m-search-engine-alist
+                   (list (cadr item) (caddr item) nil))
+       (add-to-list 'w3m-uri-replace-alist
+                   (list (concat "\\`" (car item) ":")
+                         'w3m-search-uri-replace
+                         (cadr item))))))
+
 ;;;--------------------------------------------------------------------------
 ;;; Paragraph filling.
 
@@ -678,6 +714,24 @@ (defun mdw-backup-enable-predicate (name)
           answer))))
 (setq backup-enable-predicate 'mdw-backup-enable-predicate)
 
+;; Frame cleanup.
+
+(defun mdw-last-one-out-turn-off-the-lights (frame)
+  "Disconnect from an X display if this was the last frame on that display."
+  (let ((frame-display (frame-parameter frame 'display)))
+    (when (and frame-display
+              (eq window-system 'x)
+              (not (some (lambda (fr)
+                           (message "checking frame %s" frame)
+                           (and (not (eq fr frame))
+                                (string= (frame-parameter frame 'display)
+                                         frame-display)
+                                (progn "frame %s still uses us" nil)))
+                         (frame-list))))
+      (message "turn out the lights")
+      (run-with-idle-timer 0 nil #'x-close-connection frame-display))))
+(add-hook 'delete-frame-functions 'mdw-last-one-out-turn-off-the-lights)
+
 ;;;--------------------------------------------------------------------------
 ;;; General fontification.
 
@@ -2215,6 +2269,21 @@      (define-key term-raw-map [?\e ?\M-O ?C] 'term-send-meta-right)
      (define-key term-raw-map [M-left] 'term-send-meta-left)
      (define-key term-raw-map [?\e ?\M-O ?D] 'term-send-meta-left)))
 
+;;;--------------------------------------------------------------------------
+;;; Inferior Emacs Lisp.
+
+(setq comint-prompt-read-only t)
+
+(eval-after-load "comint"
+  '(progn
+     (define-key comint-mode-map "\C-w" 'comint-kill-region)
+     (define-key comint-mode-map [C-S-backspace] 'comint-kill-whole-line)))
+
+(eval-after-load "ielm"
+  '(progn
+     (define-key ielm-map "\C-w" 'comint-kill-region)
+     (define-key ielm-map [C-S-backspace] 'comint-kill-whole-line)))
+
 ;;;----- That's all, folks --------------------------------------------------
 
 (provide 'dot-emacs)