読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

Linux Mint 17 Cinnamonでemacs24.4でのorg-modeにChromeとFirefoxからブックマークする

基本はEmacs org-modeを使ってみる: (45) Firefoxからブックマーク - 屯遁のパズルとプログラミングの日記に書かれてるorg-protocolを使うやり方なんだけど、(やり方がまずかったのかもしれないけど)追加して作業をする必要があったのでまとめておく

1.gconftools-2での設定

ターミナルで次を実行。

gconftool-2 -s /desktop/gnome/url-handlers/org-protocol/command '/usr/bin/emacsclient %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/org-protocol/enabled --type Boolean true

2.applicationsを書く

上だけだと動かなかった。次の手順だけでいいのかはわからない。

~/.local/share/applications/emacsclient.desktop を作成して次の内容を書き込む

[Desktop Entry]
Name=Emacs Client
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol;

~/.local/share/applications/mimeapps.listの[Default Applications]下に次の内容を追加する

x-scheme-handler/org-protocol=emacsclient.desktop

追加したら反映させるために一度再ログインする必要があるかもしれない。

3.init.elの設定

init.elのどこかのタイミングで次の式を評価する。emacs24.4だとemacsclientが何もしなくても使える、みたいな話を見たからserver-startはいらないのかもしれない。

(server-start)
(require 'org-protocol)

org-captureを利用してブックマークを追加するので、そのための設定をorg-capture-templatesに追加しておく。自分は次のようなテンプレートを追加した。

%iで選択している文字列を挿入できるので、簡単なWebクリップとしても使えるかも。

(setq org-capture-template
      `(
        ;; 他のテンプレート...

        ;; (setq org-directory "~/org-files") で指定しておいたディレクトリにあるファイルは
        ;; ファイル名だけで参照できる。
        ;; "b"はもう使ってしまっているし、linkの"l"にした
        ("l" "Bookmarks" entry
         (file+headline "bm.org" "未整理")
         "* %c \n  - %:link\n  - %U" :immediate-finish t)

      ))

4.ブックマークレットの追加

FirefoxChrome共に、同じブックマークレットツールバーに追加する。

次のコードの先頭にjavascript:をつけて、ブックマークのURL欄に書く。(Chromeだとコピペするとjavascript:が取れる)

location.href='org-protocol://capture://l/' +
  encodeURIComponent(location.href) + '/' +
  encodeURIComponent(document.title) + '/' + 
  encodeURIComponent(window.getSelection());

capture://l/lがorg-captureのキー指定。

感想

以上でツールバーからのクリックだけで自動的にChromeFirefoxからorgファイルにブックマークできるようになった。

orgファイルからはタイトル/URLにカーソルを合わせてC-c C-oで開ける。

普段は決まったサイトにURL補完からアクセスして、ブックマークはたまに眺めるぐらいだから、org-modeの強力な整理・置換を使えるだけで相当に便利だ。

ブックマークファイルを更新すると自動でhtmlに書きだすようにして、それをそれぞれのブラウザのホーム画面にすれば、更に便利かも。やってみよっかな。

広告を非表示にする