bin/wakey.zsh: Implement the active-window check from Lange's version.
[profile] / el / dot-emacs.el
index 180b0b2..4372f82 100644 (file)
@@ -240,6 +240,14 @@ P")
                        sb-width))
     (mdw-divvy-window width)))
 
+(defvar mdw-frame-width-fudge
+  (cond ((<= emacs-major-version 20) 1)
+       ((= emacs-major-version 26) 3)
+       (t 0))
+  "The number of extra columns to add to the desired frame width.
+
+This is sadly necessary because Emacs 26 is broken in this regard.")
+
 ;; Don't raise windows unless I say so.
 
 (defvar mdw-inhibit-raise-frame nil
@@ -800,7 +808,7 @@ Use this to arrange for per-server settings.")
          (delete-region (+ (match-beginning 0) 2) (point))
          (setq string (buffer-substring (point) (+ (point) size)))
          (delete-region (point) (+ (point) size))
-         (insert (format "%S" (mm-subst-char-in-string ?\n ?\s string)))
+         (insert (format "%S" (subst-char-in-string ?\n ?\s string)))
          ;; [mdw] missing from upstream
          (backward-char 1))
        (beginning-of-line)
@@ -846,6 +854,13 @@ Use this to arrange for per-server settings.")
   '(defalias 'nnimap-transform-headers
      (symbol-function 'mdw-nnimap-transform-headers)))
 
+(defadvice gnus-other-frame (around mdw-hack-frame-width compile activate)
+  "Always arrange for mail/news frames to be 80 columns wide."
+  (let ((default-frame-alist (cons `(width . ,(+ 80 mdw-frame-width-fudge))
+                                  (cl-delete 'width default-frame-alist
+                                             :key #'car))))
+    ad-do-it))
+
 ;;;--------------------------------------------------------------------------
 ;;; Utility functions.
 
@@ -1400,6 +1415,10 @@ doesn't match any of the regular expressions in
   (((type w32)) :family "courier new" :height 85)
   (((type x)) :family "6x13" :foundry "trad" :height 130)
   (t :foreground "white" :background "black"))
+(mdw-define-face fixed-pitch-serif
+  (((type w32)) :family "courier new" :height 85 :weight bold)
+  (((type x)) :family "6x13" :foundry "trad" :height 130 :weight bold)
+  (t :foreground "white" :background "black" :weight bold))
 (if (mdw-emacs-version-p 23)
     (mdw-define-face variable-pitch
       (((type x)) :family "sans" :height 100))
@@ -4437,6 +4456,41 @@ there is sadness."
   (set-window-dedicated-p (or window (selected-window)) nil))
 
 ;;;--------------------------------------------------------------------------
+;;; Man pages.
+
+;; Turn off `noip' when running `man': it interferes with `man-db''s own
+;; seccomp(2)-based sandboxing, which is (in this case, at least) strictly
+;; better.
+(defadvice Man-getpage-in-background
+    (around mdw-inhibit-noip (topic) compile activate)
+  "Inhibit the `noip' preload hack when invoking `man'."
+  (let* ((old-preload (getenv "LD_PRELOAD"))
+        (preloads (save-match-data (split-string old-preload ":")))
+        (any nil)
+        (filtered nil))
+    (while preloads
+      (let ((item (pop preloads)))
+       (if (save-match-data
+             (string-match  "\\(/\\|^\\)noip\.so\\(:\\|$\\)" item))
+           (setq any t)
+         (push item filtered))))
+    (if any
+       (unwind-protect
+           (progn
+             (setenv "LD_PRELOAD"
+                     (and filtered
+                          (with-output-to-string
+                            (setq filtered (nreverse filtered))
+                            (let ((first t))
+                              (while filtered
+                                (if first (setq first nil)
+                                  (write-char ?:))
+                                (write-string (pop filtered)))))))
+             ad-do-it)
+         (setenv "LD_PRELOAD" old-preload))
+      ad-do-it)))
+
+;;;--------------------------------------------------------------------------
 ;;; MPC configuration.
 
 (eval-when-compile (trap (require 'mpc)))