URLを渡すブラウザの変更 (xyttr Advent Calendar 5日目)

この記事はxyttr Advent Calendar 2011の記事です。

xyttrのタイムラインバッファ上のURLにカーソルを合わせてReturnキーを押すと、システム標準のWEBブラウザにURLを渡して起動しますが、xyttr:*open-url-by* に関数を設定しておくとその関数にURLを渡すようになります。

(in-package :xyttr)

;;; google chromeでプロファイルを指定して起動するようにしてみる
(defun chrome (url &optional prf)
  (let* ((dir (merge-pathnames "AppData/Local/Google/Chrome" (si:getenv "USERPROFILE")))
                    ; XPの場合 "Local Settings/Application Data/Google/Chrome"
         (bin (concat dir "/Application/chrome.exe"))
         (udd (if prf (concat dir "/User Data/" prf)))
         (args (format nil "~@[--user-data-dir=\"~A\"~] \"~A\"" udd url)))
    (shell-execute bin nil args)))

;; "noext"というプロファイルで起動
(setq *open-url-by* #'(lambda (url) (chrome url "noext")))

www-modeを使ってxyzzy内で表示する場合、xyttrフレーム内で画面分割して表示すると便利です。

(defun open-url-other-window (url)
  (let ((www::*www-pframe-name* "xyttr"))
    (when (= (window-count) 1)
      (split-window-verticaly))
    (other-window)
    (www::www-open-remote url)))

(setq *open-url-by* #'open-url-other-window)

こんな感じに。
http://gyazo.com/0b59510fe4548cb2b847aa567129a7d3.png



以上、ブラウザの変更例でした。