気合いの入る xyzzy lisp を暗い背景色でも

気合いの入る xyzzy lisp popup-dododo のご紹介。kill-line が気持ちいい。

popup-dododo はジョジョ風の効果音(?) を xyzzy 上にポップアップ表示するアプリケーションです。

http://miyamuko.s56.xrea.com/xyzzy/popup-dododo/intro.htm

インストール

NetInstaller を使うのが簡単でよい。NetInstaller に次の package.l を追加し、api, cairo, layered-window, popup-dododo をインストールする。

別途デスクトップ ドドドに付属する DesktopDoDoDo フォントが必要になるのでこれもインストールする。

設定

.xyzzy に次の設定を追加した。キー入力やコマンドの実行に対して設定できる。

;; ドドドドド
(require "popup-dododo")
(in-package :popup-dododo.editor)
(add-popup-dododo-on-command-char #\C-k :ズキュウウウン :color '(255 0 0) :size 200)
(add-popup-dododo-on-command-char #\RET :メメタァ :color '(255 0 0))
(add-popup-dododo-on-command-char #\C-j :メメタァ :color '(255 0 0))
(add-popup-dododo-on-command 'other-window :フワリ… :color '(255 0 0))
(add-popup-dododo-on-command 'split-window :スォォォ :color '(255 0 0))
(add-popup-dododo-on-command 'split-window-vertically :スォォォ :color '(255 0 0))
(add-popup-dododo-on-command 'delete-window :ガッシン :color '(255 0 0))
(add-popup-dododo-on-command 'delete-other-windows :ガッシン :color '(255 0 0))
(in-package "user")

暗めの背景できれいに表示する

もとのプログラムでは白い背景の場合にきれいに表示されるようになっており、黒い背景では文字の輪郭がギラギラしてしまう。そこで xyzzy をインストールしたフォルダの site-lisp/popup-dododo/api/dododo.l の 44 行目あたりを次のように修正する。

(defun draw-font (winctx hwnd hdc)
  (set-layered-window-attributes/color hwnd '(0 0 0)) ; マスク色
  (with-cairo-surface (surface (cairo-win32-surface-create (GetDC hwnd)))
    (with-cairo (cr (cairo-create surface))
      (cairo-scale cr (window-context-font-size winctx) (window-context-font-size winctx))
      ;; draw background
      (cairo-set-source-rgb cr 0 0 0) ; 背景色
      (cairo-paint cr)

保存したら dododo.l をバイコンパイルする。ファイラで dododo.l を選択し Shift + B を押すことで可能。そのあと xyzzy を再起動する。