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)
以上、ブラウザの変更例でした。