How to setup ics.el for use. ++++++++++++++++++++++++++++ Remember ics.el requires GNU Emacs 19.28 or later (current development platform is 20.3 so I can't guarantee it'll work with earlier versions but I'll try not to break anything ;), running under X-windows. It works best in conjunction with xboard. Remember also that ics.el is currently still alpha software. It may crash. It may mangle your other Emacs buffers. It may just plain not work. New versions may be COMPLETELY INCOMPATIBLE with old versions. Keybindings and variable names may change etc. etc. etc. i.e. use it at your own risk. more information, and the current version, is available at http://www.oakden.org/mark/icsel/ If you don't know what the emacs key sequences below are, you probably don't want to be using ics.el. It requires at least a minimal knowledge of Emacs. To get it up and running, follow the numbered steps below. 0) Read this whole file. 1) Read the comments at the top of the ics.el source file. 2) In your .emacs file, add the following line to tell emacs where to find the ics.el code. (setq load-path (cons (expand-file-name "~/lisp") load-path)) Where ~/lisp should be replaced by the name of whatever directory you want to keep ics.el in. 3) Add the following line to your .emacs file to tell emacs to autoload ics.el whenever needed. (autoload 'ics "ics-0.3.5alpha" "ics package" t) Change ics-0.3.5alpha to be whatever the filename you have for the ics.el package (minus the .el) 4) Add an ics-startup-hook to your .emacs file. This is where you can add customisation stuff etc. Use this to tell Emacs what your ics handle is etc. e.g. (;; lines are comments) (add-hook 'ics-startup-hook (function (lambda () ;; my handle is Sheridan (setq ics-default-handle "Sheridan") ;; I can get away with Sheridan as my ;; handle regexp too, since it wont match ;; spurious stuff (setq ics-handle-regexp '("Sheridan" 0)) ;; I'd like ics.el to send my handle at login ;; time. (setq ics-send-handle t) ;; I like the buttons even if they sometimes ;; screw up the highlighting. (setq ics-add-buttons t) ;; Change the 'light to 'dark if you use a dark ;; background in your emacs window (setq ics-background-mode 'light)))) A more complicated example.... (my current ics-startup-hook, in fact) (add-hook 'ics-startup-hook (function (lambda () (setq ics-do-auto-commands t) (setq ics-auto-command-alist '(("^\\([a-zA-Z0-9-]+\\)\\(([^)]*)\\)* tells you: " 1 ics-idle-p ics-wakeup) ("^Notification: \\([^ ]+\\) has arrived" 1 t "i > (ics-auto-greet '%s)") ("^--> \\(MAd\\).* (ics-auto-.* 'Sheridan)" 1 t "i > (ics-auto-respond-to '%s)"))) (setq ics-idle-time 300) (define-key ics-mode-map "\C-c\C-z" 'ics-insert-zippyism) ;; handle and a funky regexp for highlighting (setq ics-default-handle "Sheridan") (setq ics-handle-regexp '("\\<[Ss]herr?[iy]?[\\- _]*\\([Dd]an\\)?\\>" 0)) ;; I want it to send my handle (setq ics-send-handle t) ;; I like the buttons even if they are buggy (setq ics-add-buttons t) ;; I like abbrevs (setq ics-use-abbrev-mode t) ;; my emacs windows are dark coloured backgrounds (setq ics-background-mode 'dark) ;; personal regexp and facelist for chan0 stuff (setq ics-chan0-regexp '("^[^ ]+(0):.*$\\|^Note to channel 0:.*$" 0)) (setq ics-chan0-face '(("red" nil nil t t nil) ("red" nil nil t t nil) bold)) ;; other specials (ch 80 and 95 and move ;; timestamping activation message (setq ics-othspec-regexp '("^[^ ]+(\\(80\\|95\\)):.*$\\|^--->.*$" 0)) (setq ics-othspec-face '(("forest green" nil nil t t nil) ("magenta" nil nil t t nil) bold)) ;; (setq ics-highlight-items (append '("othspec" "chan0") ics-highlight-items)) (setq ics-interface "xboard") (setq ics-interface-with-helper-args '(list "-ics" "-icshost" ics-address "-icsport" ics-port "-size" "small" "-telnet" "-autosave" "-telnetProgram" ics-connect-method)) (setq ics-interface-args '(list "-ics" "-icshost" ics-address "-icsport" ics-port "-size" "small" "-autosave")) ;; reset the aliases list to use timestamp/timeseal ;; where possible (setq ics-servers-alist '(("i" "ICC" "204.178.125.65" "5000" "timestamp") ; ICC ("f" "A-FICS" "64.71.131.140" "5000" "timeseal") ; main fics ("c" "BCF" "216.151.111.76" "6000" "timeseal") ; BCF online ("e" "E-FICS" "130.225.18.157" "5000" nil) ; krypton.daimi.aau.dk ("d" "D-FICS" "193.78.33.69" "5000" nil) ; dds.hacktic.nl ("b" "B-FICS" "137.205.192.12" "5000" nil) ; holly.csv.warwick.ac.uk ("g" "G-FICS" "131.246.89.3" "5000" nil) ; chess.unix-ag.uni-kl.de ("m" "M-FICS" "132.76.80.77" "5000" nil) ; wisdom.weizmann.ac.il ("h" "qqqq" "qqqq" "5000" nil) ))))) 5) (not absolutely necessary but desirable) Enter Emacs and byte compile the ics.el file. (by typing M-x byte-compile-file RET ics-0.3.4alpha.el RET Where ics-0.3.4alpha.el is the filename you saved ics.el under). You should now have a file with the same name except that it has a .elc extension instead of .el That's it. To fire it up, type "M-x ics RET" (you may have to start a fresh emacs up, so that your changes in your .emacs file are picked up.) If you have any problems, try reading the source first. There are documentation strings for most variables and functions which may clear up your problem. If not, and you think you have a genuine bug, which is not listed in the KNOWN BUGS section of the above web page, let me know and I'll see what I can do. If you find a bug that makes emacs go beep, set debug-on-error to t and send me the Backtrace. Mark Oakden, 31.10.95, updated 22.09.01 Good luck.