Merge remote-tracking branches 'spirit', 'crybaby' and 'staging'
authorMark Wooding <mdw@distorted.org.uk>
Thu, 20 May 2021 18:08:06 +0000 (19:08 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 20 May 2021 18:08:06 +0000 (19:08 +0100)
* spirit:
  firefox/stylus/stackoverflow.com.css: Add style for Stackmumble.
  firefox/stylus/wikimedia.org.css: Apply Mediawiki styling at the client side.
  firefox/stylus/tvtropes.com.css: Make the text be actually white.
  firefox/stylus/salsa.debian.org.css: Focus style changes more carefully.
  firefox/stylus/salsa.debian.org.css: Reformat the body style.
  bin/, Makefile: Add some scripts for doing stuff to remote machines.
  dot/emacs: Reconfigure PostScript printing of buffers.
  el/dot-emacs.el: Fix fontification in printouts.
  el/dot-emacs.el: Print buffers in a condensed version of Courier.
  el/dot-emacs.el: Don't print `flyspell' overlays.
  firefox/chrome-userContent.css: Remove (invisible) borders round monospace.
  firefox/chrome-userContent.css: Set headings in sans.
  firefox/searchplugins/: Add some search engine definitions.
  bin/mdw-build: Prepare for a world where `mdw-setup' doesn't exist any more.

* crybaby:
  el/dot-emacs.el: Fix `loop' indentation for older Emacsen.
  bin/hyperspec: Track changes to Emacs hyperspec internals.

* staging:
  firefox/stylus.slack.com.css: Kick Slack styling some more.
  el/dot-emacs.el: Rename the Trustonic C styles.

16 files changed:
Makefile
bin/hyperspec
bin/mdw-build
bin/remote-disorder [new file with mode: 0755]
bin/remote-slideshow [new file with mode: 0755]
bin/xremote [new file with mode: 0755]
dot/emacs
el/dot-emacs.el
firefox/chrome-userContent.css
firefox/searchplugins/googlehack.xml [new file with mode: 0644]
firefox/searchplugins/wikipedia-tls.xml [new file with mode: 0644]
firefox/stylus/salsa.debian.org.css
firefox/stylus/slack.com.css
firefox/stylus/stackoverflow.com.css [new file with mode: 0644]
firefox/stylus/tvtropes.com.css
firefox/stylus/wikimedia.org.css [new file with mode: 0644]

index cc84f9b..992fdab 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -245,6 +245,9 @@ SCRIPTLINKS         += datasyms
 SCRIPTLINKS            += fixsub
 SCRIPTLINKS            += check-debsyms
 SCRIPTLINKS            += check-blkdev-size
+SCRIPTLINKS            += xremote
+SCRIPTLINKS            += remote-disorder
+SCRIPTLINKS            += remote-slideshow
 
 ## Random odds and ends.
 DOTLINKS               += .infokey .sqliterc
index 9f902fe..507910c 100755 (executable)
@@ -44,6 +44,9 @@
                          signal))))
     (fset 'message original-message)))
 
+;; No.
+(setq kill-emacs-hook nil)
+
 ;;;--------------------------------------------------------------------------
 ;;; Utilities.
 
 ;;;--------------------------------------------------------------------------
 ;;; Look up a string and find its URL in the Hyperspec.
 
+(defmacro some-var (&rest vars)
+  (let ((v (gensym)))
+    `(let ((,v (find-if #'boundp ',vars)))
+       (if ,v (symbol-value ,v)
+        (error "huh")))))
+
 (defun hyperspec-urls (key)
   "Return a list of hyperspec URLs corresponding to KEY."
   (let ((urls nil)
        (lookups (list (list (downcase key)
-                            common-lisp-hyperspec-symbols
+                            (some-var common-lisp-hyperspec--symbols
+                                      common-lisp-hyperspec-symbols)
                             #'(lambda (values)
                                 (mapcar (lambda (value)
                                           (concat common-lisp-hyperspec-root
                                                   value))
                                         values)))
                       (list (downcase key)
-                            common-lisp-hyperspec-issuex-symbols
+                            (some-var common-lisp-hyperspec--issuex-symbols
+                                      common-lisp-hyperspec-issuex-symbols)
                             #'(lambda (value)
                                 (list (concat common-lisp-hyperspec-root
                                               "Issues/"
                                               value)))))))
     (when (= (aref key 0) ?~)
       (push (list (substring key 1)
-                 common-lisp-hyperspec-format-characters
+                 (some-var common-lisp-hyperspec--format-characters
+                           common-lisp-hyperspec-format-characters)
                  #'(lambda (values)
-                     (mapcar #'common-lisp-hyperspec-section values)))
+                     (mapcar #'common-lisp-hyperspec-section
+                             values)))
            lookups))
     (dolist (lookup lookups)
       (let* ((name (car lookup))
-            (obarray (cadr lookup))
+            (table (cadr lookup))
             (format (car (cddr lookup)))
-            (symbol (intern-soft name obarray)))
-       (when (and symbol (boundp symbol))
-         (setq urls (nconc urls
-                           (funcall format (symbol-value symbol)))))))
+            (value (cond ((vectorp table)
+                          (let ((symbol (intern-soft name table)))
+                            (and symbol
+                                 (boundp symbol)
+                                 (symbol-value symbol))))
+                         ((hash-table-p table)
+                          (gethash name table))
+                         (t
+                          (error "what even?")))))
+       (when value
+         (setq urls (nconc urls (funcall format value))))))
     urls))
 
-(defun good-symbols (obarray &optional filter)
-  "Return the list of bound symbols in OBARRAY for which FILTER returns
+(defun good-symbols (table &optional filter)
+  "Return the list of bound symbols in TABLE for which FILTER returns
 non-nil; FILTER defaults to always-true if unspecified."
   (let ((syms nil))
-    (mapatoms (lambda (sym)
-               (when (and (boundp sym)
-                          (or (not filter)
-                              (funcall filter sym)))
-                 (setq syms (cons sym syms))))
-             obarray)
+    (cond ((vectorp table)
+          (mapatoms (lambda (sym)
+                      (when (and (boundp sym)
+                                 (or (not filter)
+                                     (funcall filter sym)))
+                        (push (symbol-name sym) syms)))
+                    table))
+         ((hash-table-p table)
+          (maphash (lambda (key value)
+                     (when (or (not filter) (funcall filter key))
+                       (push key syms)))
+                   table))
+         (t
+          (error "what even?")))
     (sort syms #'string<)))
 
 (defun hyperspec-keys ()
   "Return the list of all valid hyperspec lookup keys.  Useful for
 completion."
-  (nconc (good-symbols common-lisp-hyperspec-symbols)
+  (nconc (good-symbols (some-var common-lisp-hyperspec--symbols
+                                common-lisp-hyperspec-symbols))
         (mapcar #'(lambda (name)
-                    (format "~%s" name))
-                (good-symbols common-lisp-hyperspec-format-characters
-                              #'(lambda (sym)
-                                  (= (length (symbol-name sym)) 1))))
-        (good-symbols common-lisp-hyperspec-issuex-symbols)))
+                    (format "~%c" (aref name 0)))
+                (good-symbols (some-var common-lisp-hyperspec--format-characters
+                                        common-lisp-hyperspec-format-characters)
+                              #'(lambda (name)
+                                  (and (>= (length name) 3)
+                                       (= (aref name 2) ?-)
+                                       (let ((ch (aref name 0)))
+                                         (= ch (downcase ch)))))))
+        (good-symbols (some-var common-lisp-hyperspec--issuex-symbols
+                                common-lisp-hyperspec-issuex-symbols))))
 
 ;;;--------------------------------------------------------------------------
 ;;; Parse the command line.
index eff2c00..6c034b8 100755 (executable)
@@ -77,7 +77,7 @@ default_depends () {
 }
 : ${checkout=yes} ${checkoutrev=HEAD}
 : ${build=test}
-: ${setup=yes} ${setupcmd=mdw-setup}
+: ${setup=yes} ${setupcmd=!guess}
 : ${distcheck=yes}
 : ${debian=yes}
 : ${clean=yes}
@@ -145,7 +145,7 @@ for opt; do
     checkout=*) checkout=yes checkoutrev=${opt#*=} ;;
     release)   build=release ;;
     norelease) build=test ;;
-    setup)     setup=yes setupcmd=mdw-setup ;;
+    setup)     setup=yes setupcmd=!guess ;;
     setup=*)   setup=yes setupcmd=${opt#*=} ;;
     upload)    maybe_set upload uploadpath ;;
     upload=*)  upload=yes uploadpath=${opt#*=} ;;
@@ -366,6 +366,16 @@ esac
 ## Maybe refresh the build machinery.
 case "$setup" in
   yes)
+    case $setupcmd in
+      !guess)
+       if [ -f .links ]; then setupcmd=mdw-setup
+       elif [ -x autogen.sh ]; then setupcmd=./autogen.sh
+       elif [ -x setup ]; then setupcmd=./setup
+       elif [ -f configure.ac ]; then setupcmd="autoreconf -is"
+       else setupcmd=mdw-setup
+       fi
+       ;;
+    esac
     run $setupcmd
     ;;
 esac
diff --git a/bin/remote-disorder b/bin/remote-disorder
new file mode 100755 (executable)
index 0000000..2c8d268
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh -e
+case $# in 1) ;; *) echo >&2 "usage: $0 HOST"; exit 2 ;; esac
+host=$1; shift
+case $host in
+  *[!-a-zA-Z0-9]*) echo >&2 "$0: bad host name \`$host'"; exit 2 ;;
+esac
+cd "$HOME/.disorder"
+if ! [ -f "passwd.$host" ] ||
+   ! grep -q "^connect -unix /.*/\.disorder/sock/disorder@$host" \
+       "passwd.$host"
+then echo >&2 "$0: unknown disorder host \`$host'"; exit 2; fi
+if [ -S "sock/ssh@$host" ]; then
+  ssh -oControlPath="sock/ssh@$host" -Oexit "$host"
+fi
+rm -f "sock/disorder@$host"
+ssh -oControlMaster=yes -oControlPath="sock/ssh@$host" -fnN \
+    -L"sock/disorder@$host:/var/lib/disorder/socket" \
+    "$host"
diff --git a/bin/remote-slideshow b/bin/remote-slideshow
new file mode 100755 (executable)
index 0000000..4a49a60
--- /dev/null
@@ -0,0 +1,72 @@
+#! /bin/sh -e
+
+case $#,$2 in
+  0,* | 1,*) ok=nil ;;
+  *,*:*) ok=t ;;
+  *) ok=nil ;;
+esac
+case $ok in
+  nil) echo >&2 "usage: $0 DIR,... HOST:DISP [CMD ARGS ...]"; exit 2; ;;
+esac
+dirs=$1 host=${2%:*} dpy=${2##*:}; shift 2
+case $#,$1 in
+  0 | 1,:slideshow)
+    set -- /usr/lib/xscreensaver/glslideshow -duration 60 -pan 10 \
+       -xrm "'*desktopGrabber: ./getimg %s'"
+     ;;
+  1,:photopile)
+    set -- /usr/lib/xscreensaver/photopile -no-titles -no-polaroid -shadows \
+       -xrm "'*desktopGrabber: ./getimg %s'"
+     ;;
+esac
+
+t=$(mktemp -d "${TMPDIR-/tmp}/remote-slidesshow.XXXXXXXX")
+mkfifo "$t/pipe"
+exec 3<>"$t/pipe"
+rm -rf "$t"
+
+ssh -ax "$host" "
+       set -e
+       tmp=\$(mktemp -d \"\${TMPDIR-/tmp}/remote-slideshow.XXXXXXXX\")
+       trap 'cd / && rm -rf \$tmp' EXIT INT TERM HUP
+       cd \$tmp
+       IMAGEFILE=\$tmp/img; export IMAGEFILE
+       DISPLAY=:$dpy; export DISPLAY
+       exec 3<&0 4>&1
+       cat >getimg <<'EOF'
+#! /bin/sh -e
+rm -f img
+echo \"\$IMAGEFILE\" >&4
+xscreensaver-command -deactivate >/dev/null 2>&1 || :
+IFS= read -r f <&3
+exec xscreensaver-getimage -directory \"\${IMAGEFILE%/*}\" -file img \"\$@\"
+EOF
+       chmod +x getimg
+       $*" <&3 |
+while IFS= read -r rdir; do
+  set -- \( -false
+  for e in jpg jpeg pjpeg pjpg png gif tif tiff xbm xpm; do
+    set --  "$@" -o -name "*.$e"
+  done
+  set -- "$@" \) -type f -print -o -type d \( -false
+  dd=$dirs
+  while :; do
+    case $dd in
+      "") break ;;
+      *,*) d=${dd##*,} dd=${dd%,*} ;;
+      *) d=$dd dd= ;;
+    esac
+    for i in $(find "$d" -name .slideshow-ignore -type f -print); do
+      while IFS= read -r line; do
+       case $line in \#*) continue ;; esac
+       set -- "$@" -o -path "${i%/*}/$line"
+      done <"$i"
+    done
+    set -- "$d" "$@"
+  done
+  set -- "$@" \) -prune
+  f=$(find "$@" | shuf -n1)
+  echo "$f"
+  scp "$f" "$host:$rdir" >/dev/null 2>&1
+  echo done >&3
+done
diff --git a/bin/xremote b/bin/xremote
new file mode 100755 (executable)
index 0000000..9aefdb9
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh -e
+
+case $#,$1 in
+  0,* | 1,*) ok=nil ;;
+  *,*:*) ok=t ;;
+  *) ok=nil ;;
+esac
+case $ok in
+  nil) echo >&2 "usage: $0 HOST:RDPY/LDPY PROG ARGS ..."; exit 2 ;;
+esac
+host=${1%:*} dpy=${1##*:}; rdpy=${dpy%%/*} ldpy=${dpy#*/}; shift 1
+
+ssh -L"/tmp/.X11-unix/X$ldpy:/tmp/.X11-unix/X$rdpy" -Nafx "$host"
+sleep 1
+trap 'trap - INT QUIT HUP EXIT; ssh -Oexit "$host"; rm -f "/tmp/.X11-unix/X$ldpy"' INT QUIT HUP EXIT
+DISPLAY=:$ldpy "$@"
index 115c65a..370cfee 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
 ;; Postscript printing.
 
 (setq ps-paper-type 'a4
-      ps-print-color-p nil
-      ps-landscape-mode t
-      ps-number-of-columns 2
-      ps-font-family 'Courier
-      ps-font-size 6.5)
+      ps-print-only-one-header t
+      ps-print-color-p t
+      ps-landscape-mode t ps-number-of-columns 4
+      ps-line-number t ps-line-number-step 5 ps-line-number-start 5
+      ps-zebra-stripes nil ps-zebra-stripe-height 5
+      ps-spool-duplex t ps-spool-tumble nil ps-spool-config 'setpagedevice
+      ps-top-margin (* 12 (/ 72 25.4))
+      ps-bottom-margin (* 16 (/ 72 25.4))
+      ps-header-offset (* 8 (/ 72 25.4))
+      ps-left-margin (* 12 (/ 72 25.4))
+      ps-right-margin (* 12 (/ 72 25.4))
+      ps-inter-column (* 4 (/ 72 25.4))
+      ps-font-family 'CourierCondensed ps-font-size '(4.5 . 5.16)
+      ps-line-number-font 'Palatino ps-line-number-font-size 3
+      ps-header-font-family 'Helvetica
+       ps-header-title-font-size '(8 . 10)
+       ps-header-font-size '(6 . 8))
 
 ;; Splash screen stuff.
 
index c1beb94..f164c40 100644 (file)
@@ -1380,6 +1380,82 @@ case."
             (pad . ,(or mat 2))))))
 
 ;;;--------------------------------------------------------------------------
+;;; Printing.
+
+;; Teach PostScript about a condensed variant of Courier.  I'm using 85% of
+;; the usual width, which happens to match `mdwfonts', and David Carlisle's
+;; `pslatex'.  (Once upon a time, I used 80%, but decided consistency with
+;; `pslatex' was useful.)
+(setq ps-user-defined-prologue "
+/CourierCondensed /Courier
+/CourierCondensed-Bold /Courier-Bold
+/CourierCondensed-Oblique /Courier-Oblique
+/CourierCondensed-BoldOblique /Courier-BoldOblique
+  4 { findfont [0.85 0 0 1 0 0] makefont definefont pop } repeat
+")
+
+;; Hack `ps-print''s settings.
+(eval-after-load 'ps-print
+  '(progn
+
+     ;; Notice that the comment-delimiters should be in italics too.
+     (pushnew 'font-lock-comment-delimiter-face ps-italic-faces)
+
+     ;; Select more suitable colours for the main kinds of tokens.  The
+     ;; colours set on the Emacs faces are chosen for use against a dark
+     ;; background, and work very badly on white paper.
+     (ps-extend-face '(font-lock-comment-face "darkgreen" nil italic))
+     (ps-extend-face '(font-lock-comment-delimiter-face "darkgreen" nil italic))
+     (ps-extend-face '(font-lock-string-face "RoyalBlue4" nil))
+     (ps-extend-face '(mdw-punct-face "sienna" nil))
+     (ps-extend-face '(mdw-number-face "OrangeRed3" nil))
+
+     ;; Teach `ps-print' about my condensed varsions of Courier.
+     (setq ps-font-info-database
+            (append '((CourierCondensed
+                       (fonts (normal . "CourierCondensed")
+                              (bold . "CourierCondensed-Bold")
+                              (italic . "CourierCondensed-Oblique")
+                              (bold-italic . "CourierCondensed-BoldOblique"))
+                       (size . 10.0)
+                       (line-height . 10.55)
+                       (space-width . 5.1)
+                       (avg-char-width . 5.1)))
+                    (cl-remove 'CourierCondensed ps-font-info-database
+                               :key #'car)))))
+
+;; Arrange to strip overlays from the buffer before we print .  This will
+;; prevent `flyspell' from interfering with the printout.  (It would be less
+;; bad if `ps-print' could merge the `flyspell' overlay face with the
+;; underlying `font-lock' face, but it can't (and that seems hard).  So
+;; instead we have this hack.
+;;
+;; The basic trick is to copy the relevant text from the buffer being printed
+;; into a temporary buffer and... just print that.  The text properties come
+;; with the text and end up in the new buffer, and the overlays get lost
+;; along the way.  Only problem is that the headers identifying the file
+;; being printed get confused, so remember the original buffer and reinstate
+;; it when constructing the headers.
+(defvar mdw-printing-buffer)
+
+(defadvice ps-generate-header
+    (around mdw-use-correct-buffer () activate compile)
+  "Print the correct name of the buffer being printed."
+  (with-current-buffer mdw-printing-buffer
+    ad-do-it))
+
+(defadvice ps-generate
+    (around mdw-strip-overlays (buffer from to genfunc) activate compile)
+  "Strip overlays -- in particular, from `flyspell' -- before printout."
+  (with-temp-buffer
+    (let ((mdw-printing-buffer buffer))
+      (insert-buffer-substring buffer from to)
+      (ad-set-arg 0 (current-buffer))
+      (ad-set-arg 1 (point-min))
+      (ad-set-arg 2 (point-max))
+      ad-do-it)))
+
+;;;--------------------------------------------------------------------------
 ;;; Other common declarations.
 
 ;; Common mode settings.
@@ -2130,16 +2206,16 @@ set."
                   (statement-cont . +)
                   (statement-case-intro . +)))
 
-(mdw-define-c-style mdw-trustonic-basic-c (mdw-c)
+(mdw-define-c-style mdw-trustonic-c (mdw-c)
   (c-basic-offset . 4)
-  (comment-column . 0)
   (c-indent-comment-alist (anchored-comment . (column . 0))
                          (end-block . (space . 1))
                          (cpp-end-block . (space . 1))
                          (other . (space . 1)))
   (c-offsets-alist (access-label . -2)))
 
-(mdw-define-c-style mdw-trustonic-c (mdw-trustonic-basic-c)
+(mdw-define-c-style mdw-trustonic-alec-c (mdw-trustonic-c)
+  (comment-column . 0)
   (c-offsets-alist (arglist-cont-nonempty . mdw-c-indent-arglist-nested)))
 
 (defun mdw-set-default-c-style (modes style)
@@ -4623,7 +4699,8 @@ align the other subforms beneath it.  Otherwise, indent them
                             (current-column))))
 
     ;; Don't really care about this.
-    (when (and (eq lisp-indent-backquote-substitution-mode 'corrected))
+    (when (and (boundp 'lisp-indent-backquote-substitution-mode)
+              (eq lisp-indent-backquote-substitution-mode 'corrected))
       (save-excursion
        (goto-char (elt state 1))
        (cl-incf loop-indentation
@@ -4652,7 +4729,14 @@ align the other subforms beneath it.  Otherwise, indent them
 
       (setq ad-return-value
              (list
-              (cond ((not (lisp-extended-loop-p (elt state 1)))
+              (cond ((condition-case ()
+                         (save-excursion
+                           (goto-char (elt state 1))
+                           (forward-char 1)
+                           (forward-sexp 2)
+                           (backward-sexp 1)
+                           (not (looking-at "\\(:\\|\\sw\\)")))
+                       (error nil))
                      (+ baseline-indent lisp-simple-loop-indentation))
                     ((looking-at "^\\s-*\\(:?\\sw+\\|;\\)")
                      (+ baseline-indent lisp-loop-keyword-indentation))
index a65e620..a1bc6bd 100644 (file)
        }
        blockquote { padding-inline-start: 30px !important; }
        p, li { padding: 0 !important; }
+
+       code {
+               margin: 0 !important;
+               padding: 0 !important;
+               border-radius: 0 !important;
+       }
+
+       h1, h2, h3, h4 { font-family: sans-serif; !important; }
 }
 
 @-moz-document url-prefix("about:blank") {
diff --git a/firefox/searchplugins/googlehack.xml b/firefox/searchplugins/googlehack.xml
new file mode 100644 (file)
index 0000000..cabd1b0
--- /dev/null
@@ -0,0 +1,15 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Google (.com, TLS)</os:ShortName>
+<os:Description>Google Search (com hack)</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAASCwAAEgsAAAAAAAAAAAAA9IVCSvSFQuf0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULk9IVCSvSFQub0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQuf0hUL/9IVC//SFQv/0hUL/9Y1O//rIq//+7+f//eXX//vUvf/7z7X/96Fu//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vYwv/97OH/9ZRZ//SFQv/0hUL/9IhG//zbx//3om7/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/97uX/+buW//SFQv/0hUL/9IVC//SFQv/5upT/+9O6//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+b6b//zezP/0iEf/9IVC//SFQv/1klf//ezh//vPtP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/3qXr/+siq//m8lv/5wqD//vTu//3t4//1klb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0h0b//vbx//zi0//1j1H/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/2nmn/+bmS/////v/4sIX/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/5uJH///v5//eoef/1jU//+82y//afav/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//vXw//vOs//0hUL/9IVC//ekcf/96+D/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//728v/4sIX/9IVC//SFQv/4s4n///v4//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6yKn/+byX//SFQv/0hkT//eTV//vWv//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IZE//m6lP/5u5b//OHQ///+/f/6y6//96d3//SFQv/0hUL/9IVC//SFQv/0hULm9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULm9IVCSfSFQub0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULm9IVCSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA9IVCAPSFQif0hUKt9IVC8vSFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQvL0hUKt9IVCJ/SFQgD0hUIo9IVC7/SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULv9IVCKPSFQq30hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUKt9IVC8fSFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQvP0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9YtL//i2jv/828f//vLr///7+P///Pv//vTu//3n2v/6zbH/96Nw//SFQ//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ekcv/+8+z////////////+9fD/+9K5//m9mf/4to7/+buV//vSuf/++PT//OPT//aYYP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/2l13///r3/////////fv/+b2Z//SIRv/0hUL/9IVC//SFQv/0hUL/9IVC//WNT//84M///vXv//aZYf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vPtP////////////i0i//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//WQUv///Pr//OPU//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//eTV///////+9O7/9IVD//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//3m2P//////9ppi//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/718H///////3s4f/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL//vDn///////4soj/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//erff////////38//WTWP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//iziv////////////iwhf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rMsP///////eXW//WSVv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/4sYb///z7/////////Pv/9ZFV//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ixhv/+8Of//vn1//rMsP/4rH//9plh//WQUv/1j1L/+s2x//////////////////m9mf/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SGQ//2nmn/+buW//vNsv/82sb//e3j/////////////////////v/5wZ//9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/83Mj////////////++fb/+K+C//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9ZRZ/////////////vTt//aaYv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/1lFr////////////6xqf/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//ehbf/70bj//end//3o2////v3///////3l1//0iEb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/5wqD////////////96t7/96Z2//WOUP/2nWf//NvH//zcyP/1i0z/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/96l6/////////////vLr//WPUf/0hUL/9IVC//SFQv/0h0b//end//3k1f/0iUn/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/8387////////////4sYf/9IVC//SFQv/0hUL/9IVC//SFQv/6w6L///////nBn//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC///69////////vj1//SIR//0hUL/9IVC//SFQv/0hUL/9IVC//m+mv///////e3j//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL///r3///////8387/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+syw///////++fb/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/95NX///////vUvP/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/97OH///////7y6//0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//i2jv///////N/O//SFQv/0hUL/9IVC//SFQv/0hUL/96Nx////////////+s2x//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IdF//zh0P//+/j/9ZJW//SFQv/0hUL/9IVC//SKSv/96t7///////738v/1k1f/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9YxN//vUvf/96+D/96Z0//WNT//3om///ebY/////////Pv/+LKI//WVW//0h0X/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//agbP/7zbL//enc//749P////////////////////////////3r4P/3p3f/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hULx9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC8/SFQq30hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUKt9IVCJ/SFQu/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC7/SFQif0hUIA9IVCJfSFQq30hULx9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC8fSFQq30hUIl9IVCAIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB</os:Image>
+<os:Url type="application/x-suggestions+json" method="GET" template="https://www.google.com/complete/search?client=firefox&amp;q={searchTerms}" resultDomain="google.com">
+</os:Url><os:Url type="text/html" method="GET" template="https://www.google.com/search" resultDomain="google.com">
+  <os:Param name="q" value="{searchTerms}"/>
+  <os:Param name="ie" value="utf-8"/>
+  <os:Param name="oe" value="utf-8"/>
+  <os:Param name="aq" value="t"/>
+  <os:Param name="gws_rd" value="cr"/>
+</os:Url><os:Url type="text/html" method="GET" template="https://www.google.com/" rel="searchform" resultDomain="google.com">
+</os:Url>
+</SearchPlugin>
\ No newline at end of file
diff --git a/firefox/searchplugins/wikipedia-tls.xml b/firefox/searchplugins/wikipedia-tls.xml
new file mode 100644 (file)
index 0000000..304c482
--- /dev/null
@@ -0,0 +1,13 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Wikipedia (en, TLS)</os:ShortName>
+<os:Description>Wikipedia, the free encyclopedia</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,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</os:Image>
+<SearchForm>https://en.wikipedia.org/wiki/Special:Search</SearchForm>
+<os:Url type="application/x-suggestions+json" method="GET" template="https://en.wikipedia.org/w/api.php" resultDomain="en.wikipedia.org">
+  <os:Param name="action" value="opensearch"/>
+  <os:Param name="search" value="{searchTerms}"/>
+</os:Url><os:Url type="text/html" method="GET" template="https://en.wikipedia.org/wiki/Special:Search" resultDomain="wikipedia.org">
+  <os:Param name="search" value="{searchTerms}"/>
+</os:Url>
+</SearchPlugin>
\ No newline at end of file
index ad8089d..4710bbc 100644 (file)
@@ -4,8 +4,13 @@
 .navbar-gitlab { position: relative; }
 
 /* Fix the fonts. */
-body { font-size: inherit; font-family: sans-serif; }
-.md { font-family: serif; }
-.md h1, .md h2, .md h3 { font-family: sans-serif; }
-.md h2, .md h3 { border-bottom: none; }
+body {
+        font-size: inherit;
+        font-family: sans-serif;
+}
+.blob-viewer[data-type="rich"] { font-family: serif; }
+.blob-viewer[data-type="rich"] h1,
+.blob-viewer[data-type="rich"] h2,
+.blob-viewer[data-type="rich"] h3
+        { font-family: sans-serif; }
 /*@END*/
index 3d0e8ec..a3f4a60 100644 (file)
@@ -26,11 +26,19 @@ body,
 .p-ia__sidebar_header__user__name,
 .p-ia__view_header .p-classic_nav__model__title__name,
 .c-message_list__unread_divider__label,
-.p-rich_text_block 
+.p-rich_text_block, .c-message_attachment__body,
+.c-pillow_file__description,
+.p-section_block, .p-call_subtype__title,
+.p-call_subtype__status, .p-call_subtype__description,
+.c-button
        { font-size: 11px !important; }
+.c-pillow_file__title { font-size: 12px !important; }
 body { font-family: sans-serif !important; }
 code, pre {
        font-family: monospace !important;
        font-size: 9px !important;
+       border: none;
+       padding: 0;
+       tab-size: 8; -webkit-tab-size: 8; -moz-tab-size: 8;
 }
 /*@END*/
diff --git a/firefox/stylus/stackoverflow.com.css b/firefox/stylus/stackoverflow.com.css
new file mode 100644 (file)
index 0000000..4e807a6
--- /dev/null
@@ -0,0 +1,7 @@
+/* -*-css-*- */
+/*@ domains: stackoverflow.com, stackexchange.com, superuser.com */
+html, body, .post-text, .wmd-preview, .comment-copy, .question-status, .excerpt
+        { font-family: inherit; }
+h1, h2, h3, h4, .post-menu, .user-info, .question-hyperlink, .mdhelp, .nav-links
+        { font-family: sans; }
+/*@END*/
index 21b26e0..7fc6b58 100644 (file)
@@ -15,4 +15,10 @@ h1, h2, h3,
 .tablet-on.inline { display: inline-block !important; }
 .tablet-off { display: none !important; }
 #main-header-logoButton { margin-left: 20px; }
+
+body >#user-prefs.night-vision ~ #main-container #main-content,
+body >#user-prefs.night-vision ~ #main-container #main-entry .article-content {
+        color: #fff !important;
+        background-color: #111;
+}
 /*@END*/
diff --git a/firefox/stylus/wikimedia.org.css b/firefox/stylus/wikimedia.org.css
new file mode 100644 (file)
index 0000000..ee10996
--- /dev/null
@@ -0,0 +1,14 @@
+/* -*-css-*- */
+/*@ domains: wikimedia.org, wikipedia.org, wiktionary.org, rationalwiki.org */
+html, body { font-family: serif; }
+.mw-body-content { font-size: 1em; }
+.mw-body h1, .mw-body-content h1,
+.mw-body-content h2,
+.mw-body-content h3,
+.mw-body-content h4,
+.mw-body-content h5,
+.mw-body-content h6 {
+       font-family: sans-serif;
+       font-weight: bold;
+}
+/*@END*/