chiark / gitweb /
Merge branch 'master' of git+ssh://ponder.ncipher.com/~mwooding/etc/profile
authorMark Wooding <mdw@distorted.org.uk>
Mon, 11 Feb 2008 14:55:00 +0000 (14:55 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 11 Feb 2008 14:55:00 +0000 (14:55 +0000)
* 'master' of git+ssh://ponder.ncipher.com/~mwooding/etc/profile:
  bash_profile: Don't force less to use latin1.
  Xdefaults: Persuade xterm to use `fixed' for Unicode output.

Xdefaults
bash_profile
bashrc
dot-emacs.el
e16-bindings [new file with mode: 0644]
e16-config [new file with mode: 0644]
emacs
mdw.conf
putty-defaults
setup
xinitrc

index 6d6f2e77edb38cafdf8330c29825057166243ac8..62ba871171ac87c8403dfe5a7172237c83f1e870 100644 (file)
--- a/Xdefaults
+++ b/Xdefaults
@@ -2,7 +2,7 @@
 ! .Xdefaults
 !
 
-#define NICEFONT -adobe-helvetica-medium-r-normal--10-*-*-p-*-iso8859-1
+#define NICEFONT -adobe-helvetica-medium-r-normal--10-*-*-*-p-*-iso8859-1
 #define FIXED fixed
 
 ! --- General configuration ---
@@ -62,7 +62,7 @@ XConsole*geometry:    485x455
 
 ! --- Emacs settings ---
 
-emacs.geometry:                78x33
+emacs.geometry:                77x33
 Emacs.pane.menubar.font: NICEFONT
 Emacs.menu*.font:      NICEFONT
 Emacs.font:            FIXED
@@ -195,10 +195,10 @@ xzx*libDir: .:/usr/lib/xzx:/usr/local/share/spectrum
 
 ! --- Axiom HyperDoc ---
 
-Axiom.hyperdoc.RmFont: -adobe-helvetica-medium-r-normal--12-*-*-p-*-iso8859-1
-Axiom.hyperdoc.BoldFont: -adobe-helvetica-bold-r-normal--12-*-*-p-*-iso8859-1
-Axiom.hyperdoc.ActiveFont: -adobe-helvetica-medium-r-normal--12-*-*-p-*-iso8859-1
-Axiom.hyperdoc.EmphasizeFont: -adobe-helvetica-medium-i-normal--12-*-*-p-*-iso8859-1
+Axiom.hyperdoc.RmFont: -adobe-helvetica-medium-r-normal--12-*-*-*-p-*-iso8859-1
+Axiom.hyperdoc.BoldFont: -adobe-helvetica-bold-r-normal--12-*-*-*-p-*-iso8859-1
+Axiom.hyperdoc.ActiveFont: -adobe-helvetica-medium-r-normal--12-*-*-*-p-*-iso8859-1
+Axiom.hyperdoc.EmphasizeFont: -adobe-helvetica-medium-i-normal--12-*-*-*-p-*-iso8859-1
 Axiom.hyperdoc.ActiveColor: blue
 Axiom.hyperdoc.AxiomFont: FIXED
 Axiom.hyperdoc.TtFont: FIXED
index 3cae439448e23ace2f3c5dfff5f19d282e687bdd..f3e1d767601003bd5399818aa3e514578a05ce1a 100644 (file)
@@ -121,7 +121,13 @@ umask 002
 
 [ -z "$HOST" ] && export HOST=`hostname`
 
-unset LANG LC_COLLATE
+if [ "$DISPLAY" = "" ]; then
+  : ${LC_CTYPE=${LANG-${LC_ALL-`__mdw_conf console-ctype`}}}
+else
+  LC_CTYPE=`__mdw_conf x-ctype`
+fi
+unset LANG LC_ALL LC_COLLATE
+export LC_CTYPE
 
 __mdw_programp distcc && export CCACHE_PREFIX=distcc
 
diff --git a/bashrc b/bashrc
index 4e941d188a1e234504f4e82c481f73a51cf2daf3..e7eb9c3913041993c3cc3e2c518b4504d3fde93d 100644 (file)
--- a/bashrc
+++ b/bashrc
@@ -1,4 +1,4 @@
-# -*-sh-*-
+# -*- mode: sh; coding: utf-8 -*-
 #
 # $Id: .bashrc,v 1.6 1996/12/08 20:33:42 mdw Exp $
 #
@@ -30,7 +30,8 @@ if [ -t 0 ]; then
     esac
 
     if (( EUID == 0 )); then
-      left="«" right="»"
+      left=`echo « | iconv -f utf8 -t //translit`
+      right=`echo » | iconv -f utf8 -t //translit`
     else
       case $USER in
        mdw|mwooding)
index 66435675b7704e67ae73cb7a4a308b3c3f8fb8ba..9fe97411bff557389a1b66811ebe5e4f49a178d1 100644 (file)
@@ -1,4 +1,4 @@
-;;; -*-emacs-lisp-*-
+;;; -*- mode: emacs-lisp; coding: utf-8 -*-
 ;;;
 ;;; $Id$
 ;;;
@@ -580,15 +580,15 @@     (default :foreground "white" :background "black"
       ,@(cond ((eq window-system 'w32)
               '(:family "courier new" :height 85))
              ((eq window-system 'x)
-              '(:family "misc-fixed" :width semi-condensed))))
+              '(:family "misc-fixed" :height 130 :width semi-condensed))))
     (fixed-pitch)
     (minibuffer-prompt)
     (mode-line :foreground "blue" :background "yellow"
               :box (:line-width 1 :style released-button))
-    (mode-line-inactive :foreground "grey80" :background "grey30"
+    (mode-line-inactive :foreground "yellow" :background "blue"
                        :box (:line-width 1 :style released-button))
     (scroll-bar :foreground "black" :background "lightgrey")
-    (fringe :foreground "yellow" :background "grey30")
+    (fringe :foreground "yellow" :background "black")
     (show-paren-match-face :background "darkgreen")
     (show-paren-mismatch-face :background "red")
     (font-lock-warning-face :background "red" :weight bold)
@@ -1643,6 +1643,26 @@ (defun mdw-fontify-tex ()
         (list "[$^_{}#&]"
               '(0 mdw-punct-face)))))
 
+;;;----- SGML hacking -------------------------------------------------------
+
+(defun mdw-sgml-mode ()
+  (interactive)
+  (sgml-mode)
+  (mdw-standard-fill-prefix "")
+  (make-variable-buffer-local 'sgml-delimiters)
+  (setq sgml-delimiters
+       '("AND" "&" "COM" "--" "CRO" "&#" "DSC" "]" "DSO" "[" "DTGC" "]"
+         "DTGO" "[" "ERO" "&" "ETAGO" ":e" "GRPC" ")" "GRPO" "(" "LIT" "\""
+         "LITA" "'" "MDC" ">" "MDO" "<!" "MINUS" "-" "MSC" "]]" "NESTC" "{"
+         "NET" "}" "OPT" "?" "OR" "|" "PERO" "%" "PIC" ">" "PIO" "<?"
+         "PLUS" "+" "REFC" "." "REP" "*" "RNI" "#" "SEQ" "," "STAGO" ":"
+         "TAGC" "." "VI" "=" "MS-START" "<![" "MS-END" "]]>"
+         "XML-ECOM" "-->" "XML-PIC" "?>" "XML-SCOM" "<!--" "XML-TAGCE" "/>"
+         "NULL" ""))
+  (setq major-mode 'mdw-sgml-mode)
+  (setq mode-name "[mdw] SGML")
+  (run-hooks 'mdw-sgml-mode-hook))
+
 ;;;----- Shell scripts ------------------------------------------------------
 
 (defun mdw-setup-sh-script-mode ()
@@ -1933,7 +1953,7 @@ (defun mdw-sh-mode-setup ()
            'comint-watch-for-password-prompt))
 
 (defun mdw-term-mode-setup ()
-  (setq term-prompt-regexp "^[^]#$%>»}\n]*[]#$%>»}] *")
+  (setq term-prompt-regexp "^[^]#$%>»}\n]*[]#$%>»}] *")
   (make-local-variable 'mouse-yank-at-point)
   (make-local-variable 'transient-mark-mode)
   (setq mouse-yank-at-point t)
diff --git a/e16-bindings b/e16-bindings
new file mode 100644 (file)
index 0000000..01277a1
--- /dev/null
@@ -0,0 +1,55 @@
+Aclass BUTTONBINDINGS normal
+MouseDown     CA 1 wop * mo ptr
+MouseDouble   CA 1 wop * shade
+MouseDown     CA 2 wop * sz ptr
+MouseDouble   CA 2 wop * th available
+MouseDown     CA 3 menus show winops.menu
+Aclass DESKBINDINGS normal
+Tooltip Clicking your mouse on the desktop will perform
+Tooltip the following actions
+MouseDown      - 1 menus show file.menu
+Tooltip Display User Menus
+MouseDown      C 1 menus show enlightenment.menu
+Tooltip Display Enlightenment Menu
+MouseDown      4 1 menus show settings.menu
+Tooltip Display Settings Menu
+MouseDown      - 2 menus show enlightenment.menu
+Tooltip Display Enlightenment Menu
+MouseDown      A 2 menus show windowlist
+Tooltip Display Task List Menu
+MouseDown      C 2 menus show deskmenu
+Tooltip Display Desktop Menu
+MouseDown      S 2 menus show groupmenu
+Tooltip Display Group Menu
+MouseDown      - 3 menus show settings.menu
+Tooltip Display Settings Menu
+MouseDown      * 4 desk prev
+Tooltip Go Back a Desktop
+MouseDown      * 5 desk next
+Tooltip Go Forward a Desktop
+Aclass KEYBINDINGS global
+KeyDown   CA     Home desk arrange size
+KeyDown   CA      End exit restart
+KeyDown   SA     Down area move 0 1
+KeyDown   SA       Up area move 0 -1
+KeyDown   SA     Left area move -1 0
+KeyDown   SA    Right area move 1 0
+KeyDown    A       F8 exec pterm
+KeyDown    A      Tab focus next
+KeyDown   CA       Up wop * raise
+KeyDown   CA     Down wop * lower
+KeyDown   CA        x wop * close
+KeyDown   CA        k wop * kill
+KeyDown   CA        s wop * stick
+KeyDown   CA        i wop * iconify
+KeyDown   CA        r wop * shade
+KeyDown   CA        f wop * fullscreen
+KeyDown   CA        m wop * ts conservative
+KeyDown   CA        w menus show winops.menu
+KeyDown   CS       F1 menus show file.menu
+KeyDown   CS       F2 menus show enlightenment.menu
+KeyDown   CS       F3 menus show settings.menu
+KeyDown   CS       F4 menus show windowlist
+KeyDown   CA        a button_show all
+KeyDown   CA        b button_show
+KeyDown   CA        c button_show buttons CONFIG*
diff --git a/e16-config b/e16-config
new file mode 100644 (file)
index 0000000..eb405e1
--- /dev/null
@@ -0,0 +1,161 @@
+backgrounds.hiquality = 1
+backgrounds.user = 1
+backgrounds.timeout = 240
+compmgr.enable = 0
+compmgr.mode = 0
+compmgr.shadows.mode = 0
+compmgr.shadows.offset_x = 3
+compmgr.shadows.offset_y = 5
+compmgr.shadows.blur.radius = 5
+compmgr.shadows.blur.opacity = 75
+compmgr.shadows.sharp.opacity = 30
+compmgr.resize_fix_enable = 0
+compmgr.use_name_pixmap = 0
+compmgr.use_cow = 1
+compmgr.fading.enable = 0
+compmgr.fading.time = 0
+compmgr.override_redirect.mode = 1
+compmgr.override_redirect.opacity = 90
+desktops.num = 1
+desktops.dragdir = 2
+desktops.dragbar_width = 0
+desktops.dragbar_length = 0
+desktops.dragbar_ordering = 1
+desktops.desks_wraparound = 0
+desktops.slidein = 0
+desktops.slidespeed = 0
+desktops.areas_nx = 1
+desktops.areas_ny = 5
+desktops.areas_wraparound = 0
+desktops.edge_flip_mode = 0
+desktops.edge_flip_resistance = 25
+effects.ripples.enabled = 0
+effects.waves.enabled = 0
+focus.mode = 1
+focus.clickraises = 0
+focus.transientsfollowleader = 0
+focus.switchfortransientmap = 0
+focus.all_new_windows_get_focus = 0
+focus.new_transients_get_focus = 0
+focus.new_transients_get_focus_if_group_focused = 1
+focus.raise_on_next = 0
+focus.warp_on_next = 0
+focus.warp_always = 0
+focus.autoraise.enable = 0
+focus.autoraise.delay = 500
+groups.dflt.iconify = 1
+groups.dflt.kill = 0
+groups.dflt.mirror = 1
+groups.dflt.move = 1
+groups.dflt.raise = 0
+groups.dflt.set_border = 1
+groups.dflt.stick = 1
+groups.dflt.shade = 1
+groups.swapmove = 1
+iconboxes.anim_time = 250
+locale.internal = 
+locale.exported = 
+menus.animate = 0
+menus.onscreen = 1
+menus.warp = 1
+menus.show_icons = 1
+menus.icon_size = 16
+menus.key.left = 0xff51
+menus.key.right = 0xff53
+menus.key.up = 0xff52
+menus.key.down = 0xff54
+menus.key.escape = 0xff1b
+menus.key.ret = 0xff0d
+misc.animation.step = 10
+misc.buttons.move_resistance = 10
+misc.dialogs.headers = 1
+misc.dialogs.button_image = 0
+misc.dock.enable = 1
+misc.dock.sticky = 1
+misc.dock.dirmode = 3
+misc.dock.startx = 0
+misc.dock.starty = 0
+misc.hints.set_xroot_info_on_root_window = 1
+misc.movres.mode_move = 0
+misc.movres.mode_resize = 0
+misc.movres.mode_info = 1
+misc.movres.mode_maximize_default = 1
+misc.movres.color = 0xff0000
+misc.movres.avoid_server_grab = 1
+misc.movres.update_while_moving = 0
+misc.movres.enable_sync_request = 0
+misc.opacity.menus = 85
+misc.opacity.movres = 60
+misc.opacity.tooltips = 80
+misc.place.manual = 0
+misc.place.manual_mouse_pointer = 0
+misc.place.slidein = 0
+misc.place.cleanupslide = 0
+misc.place.slidemode = 0
+misc.place.slidespeedmap = 6000
+misc.place.slidespeedcleanup = 8000
+misc.place.ignore_struts = 0
+misc.place.raise_fullscreen = 0
+misc.session.enable_script = 0
+misc.session.script = $EROOT/scripts/session.sh
+misc.session.enable_logout_dialog = 1
+misc.session.enable_reboot_halt = 0
+misc.session.cmd_reboot = reboot
+misc.session.cmd_halt = poweroff
+misc.shading.animate = 0
+misc.shading.speed = 8000
+misc.snap.enable = 1
+misc.snap.edge_snap_dist = 8
+misc.snap.screen_snap_dist = 32
+misc.startup.firsttime = 0
+misc.startup.animate = 1
+misc.testing.argb_internal_objects = 0
+misc.testing.argb_internal_clients = 0
+misc.testing.argb_clients = 0
+misc.testing.argb_clients_inherit_attr = 0
+misc.testing.enable_startup_id = 1
+misc.testing.image_cache_size = -1
+misc.testing.mask_alpha_threshold = 8
+misc.autosave = 1
+misc.memory_paranoia = 1
+misc.save_under = 0
+pagers.enable = 1
+pagers.zoom = 0
+pagers.title = 1
+pagers.hiq = 1
+pagers.mode = 2
+pagers.scanspeed = 10
+pagers.sel_button = 2
+pagers.win_button = 1
+pagers.menu_button = 3
+sound.enable = 0
+sound.theme = 
+theme.localise = 0
+theme.name = BrushedMetal-Tigert
+theme.extra_path = 
+theme.ttfont_path = 
+theme.use_alt_font_cfg = 1
+theme.font_cfg = fonts.cfg.xft
+tooltips.enable = 0
+tooltips.showroottooltip = 0
+tooltips.delay = 1500
+transparency.alpha = 0
+transparency.menu = 1
+transparency.menu_item = 1
+transparency.tooltip = 2
+transparency.widget = 1
+transparency.hilight = 0
+transparency.border = 1
+transparency.iconbox = 1
+transparency.dialog = 1
+transparency.pager = 1
+transparency.warplist = 1
+warplist.enable = 1
+warplist.showsticky = 1
+warplist.showshaded = 1
+warplist.showiconified = 1
+warplist.showalldesks = 0
+warplist.warpfocused = 1
+warplist.raise_on_select = 0
+warplist.warp_on_select = 0
+warplist.icon_mode = 3
diff --git a/emacs b/emacs
index 7ca4cc3793d0745da2c2f137268409fc1b85fc56..039f1024f038aac3d6738247b6ab1e5684975dbe 100644 (file)
--- a/emacs
+++ b/emacs
@@ -1,4 +1,4 @@
-;;; -*-emacs-lisp-*-
+;;; -*- mode: emacs-lisp; coding: utf-8 -*-
 ;;;
 ;;; $Id: .emacs,v 1.11 1997/01/01 18:47:09 mdw Exp $
 ;;;
@@ -32,8 +32,6 @@
 
 ;; --- Load some other bits of code ---
 
-(setq load-path (cons "~/lib/emacs" load-path))
-
 (maybe-autoload 'cc-mode "cc-mode" nil t)
 (maybe-autoload 'rexx-mode "rexx-mode" nil t)
 (maybe-autoload 'cvs-update "pcl-cvs" nil t)
 ;; --- Internationalization twiddling ---
 
 (trap
-  (standard-display-european 1)
+  ;; Have top-bit-set characters work properly in terminals.
   (let ((im (current-input-mode)))
     (apply #'set-input-mode
-          (nconc (list (nth 0 im) (nth 1 im) 0) (nthcdr 3 im))))
-  (set-language-environment "Latin-1"))
+          (nconc (list (nth 0 im) (nth 1 im) 0) (nthcdr 3 im)))))
 
 ;; --- Don't disable any commands ---
 
 
 (mdw-divvy-window)
 
+;; --- Postscript printing ---
+
+(setq ps-paper-type 'a4
+      ps-print-color-p nil
+      ps-landscape-mode t
+      ps-number-of-columns 3
+      ps-font-family 'Courier
+      ps-font-size 9)
+
+;; --- Splash screen stuff ---
+
+(or window-system
+    (setq inhibit-splash-screen t
+         inhibit-startup-message t))
+
 ;; --- Other goodies ---
 
 (trap (resize-minibuffer-mode 1))      ;Make minibuffer grow dynamically
 (global-font-lock-mode t)
 (defalias 'perl-mode 'cperl-mode)
 
-;;;----- SGML hacking -------------------------------------------------------
-
-(defun mdw-sgml-mode ()
-  (interactive)
-  (sgml-mode)
-  (mdw-standard-fill-prefix "")
-  (make-variable-buffer-local 'sgml-delimiters)
-  (setq sgml-delimiters
-       '("AND" "&" "COM" "--" "CRO" "&#" "DSC" "]" "DSO" "[" "DTGC" "]"
-         "DTGO" "[" "ERO" "&" "ETAGO" ":e" "GRPC" ")" "GRPO" "(" "LIT" "\""
-         "LITA" "'" "MDC" ">" "MDO" "<!" "MINUS" "-" "MSC" "]]" "NESTC" "{"
-         "NET" "}" "OPT" "?" "OR" "|" "PERO" "%" "PIC" ">" "PIO" "<?"
-         "PLUS" "+" "REFC" "." "REP" "*" "RNI" "#" "SEQ" "," "STAGO" ":"
-         "TAGC" "." "VI" "=" "MS-START" "<![" "MS-END" "]]>"
-         "XML-ECOM" "-->" "XML-PIC" "?>" "XML-SCOM" "<!--" "XML-TAGCE" "/>"
-         "NULL" ""))
-  (setq major-mode 'mdw-sgml-mode)
-  (setq mode-name "[mdw] SGML")
-  (run-hooks 'mdw-sgml-mode-hook))
-
 ;;;----- Rootly editingness -------------------------------------------------
 
 (eval-after-load "tramp"
 
 ;; --- Make the shell mode aware of my prompt ---
 
-(setq shell-prompt-pattern "^[^]#$%>»}\n]*[]#$%>»}] *")
+(setq shell-prompt-pattern "^[^]#$%>»}\n]*[]#$%>»}] *")
 (setq comint-password-prompt-regexp
       (concat "\\(\\([Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)"
              "[Pp]assword\\|pass phrase\\):\\s *\\'"))
index f6c50a24f35a855c6557313d647b84ea1c2b7b26..9c78fbf76f99faad4b775fda6036b584f4e2f7b7 100644 (file)
--- a/mdw.conf
+++ b/mdw.conf
@@ -9,3 +9,5 @@ cvs-root = metalzone.distorted.org.uk:/home/cvs/cvs
 svn-root = svn+ssh://metalzone.distorted.org.uk/home/cvs/svn
 cltl-url = http://metalzone.distorted.org.uk/doc/cltl/
 hyperspec-url = http://metalzone.distorted.org.uk/doc/hyperspec/
+console-ctype = en_GB.iso885915
+x-ctype = en_GB.utf8
index ce7ffb6cf76de3a8d650ddcd86a8d3fbfdbdad84..6a158bca0c7379cda00be882309b3245fcd3d50f 100644 (file)
@@ -98,7 +98,7 @@ WinNameAlways=0
 WinTitle=
 TermWidth=80
 TermHeight=75
-Font=fixed
+Font=-misc-fixed-medium-r-semicondensed-*-*-120-*-*-c-*-iso10646-1
 FontQuality=0
 FontVTMode=4
 UseSystemColours=0
@@ -141,7 +141,7 @@ Wordness128=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
 Wordness160=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
 Wordness192=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2
 Wordness224=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2
-LineCodePage=Use font encoding
+LineCodePage=UTF-8
 CJKAmbigWide=0
 UTF8Override=1
 Printer=
diff --git a/setup b/setup
index 1d30774abe3cede8faadb6ba7b431e232e3f172d..00b7a411a8d91fd51b3b0439110917dffc8b6a5a 100755 (executable)
--- a/setup
+++ b/setup
@@ -157,7 +157,10 @@ dotfiles="
   putty-defaults:.putty/sessions/Default%20Settings
   e-keybindings.cfg:.enlightenment/keybindings.cfg
   evnc-keybindings.cfg:.enlightenment-vnc/keybindings.cfg
-  jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg"
+  e16-bindings:.e16/bindings.cfg
+  e16-config:.e16/e_config--1.0.cfg
+  jue-peek.jpg:.enlightenment/backgrounds/jue-peek.jpg
+  jue-peek.jpg:.e16/backgrounds/jue-peek.jpg"
 echo "Installing dotfiles..."
 for d in $dotfiles; do
   target=.$d
@@ -189,7 +192,7 @@ echo "      all done."
 ### Set up the Emacs config
 $echon "Finding a suitable emacs:$echoc"
 emacs=no
-for i in emacs21 emacs; do
+for i in emacs22 emacs21 emacs; do
   if type -p >/dev/null $i; then
     emacs=$i
     break
diff --git a/xinitrc b/xinitrc
index 06adb02bd1c35d3276937b17996d46226bffdcc2..4ef815bf353af39103951f1e93b0706857356b94 100755 (executable)
--- a/xinitrc
+++ b/xinitrc
@@ -25,9 +25,20 @@ if ! $xx [ -r /tmp/.esd/socket ]; then
   cleanup="$cleanup; kill $!"
 fi
 
+# --- Picking appropriate programs ---
+
+pick_program () {
+  for i in "$@"; do
+    if type -t >/dev/null "$i"; then echo "$i"; return; fi
+  done
+  echo false
+}
+
 # --- Start a nice window manager ---
 
-$xx enlightenment $EOPTS&
+: ${wm=$(pick_program enlightenment e16)}
+$tt Window manager is $wm.
+$xx $wm $EOPTS&
 
 # --- Crank up a screenlock program ---
 
@@ -43,13 +54,6 @@ $xx gnome-panel&
 # Column character width = 82; Emacs magic overhead = -2
 # Vertical line pixel height = 13; misc overhead = 52
 
-pick_program () {
-  for i in "$@"; do
-    if type -t >/dev/null "$i"; then echo "$i"; return; fi
-  done
-  echo false
-}
-
 : ${emacs=$(pick_program emacs22 emacs21)}
 $tt Using editor $emacs.
 case "$emacs" in