linux時代から使っていた設定関連のメモ。最近あまり使わなくて忘れつつあるので発掘的な感じで。
前提: Homebrew等で w3mをインストールしていること
w3mで自分的に使いづらいなーと思った点を補完する手段です。
- 起動方法は大きく 2種類あって URLをパラメータにして起動するか、-B でブックマークを表示するか。自分としては URL指定が無い場合はブックマーク表示としたかった。
- デフォルトがカラーモードだが、モノクロで起動したかった。
- Safariとのブックマーク共有
対応方法
- 1. 2. を改善するシェルスクリプト(w3m.sh)*を作成し、~/binに格納して、.profile等(bash)・.zshrc(zsh)に以下を記載します。
alias w3m="~/bin/w3m.sh"
それまでに w3m使った事がなければ、mkdir ~/.w3m
を実施しておきます。
それまでにブックマークを作っていなければ、touch ~/.w3m/bookmark.html
を実施して空ファイルを作っておきます。
※ w3mでブックマークを追加する場合は、追加したいサイトで [ESC] ‘a’ (小文字エー) を実施することで可能です。
*: (2022/12/25変更) 旧版では Homebrewの w3m コマンドの場所を /usr/local/bin/w3m に想定していましたが、現在?は /opt/homebrew/bin/w3m のようです。そのため `which w3m`で検索して起動するように修正しました。パスを張っていないとか、whichコマンドを起動するコストを減らしたいとかの場合はスクリプト内の定義を変更してご利用ください。
- 3. をするために、以下を実施します。
mkdir ~/.w3m/cgi-bin
いーかげんな Perlスクリプト(ファイル名: safaribm.pl)を上記ディレクトリに格納し、実行権をつけます。
chmod +x ~/.w3m/cgi-bin/safaribm.pl
ここで動作確認をしておきます。以下のように直接 safaribm.plを起動してみます。
~/.w3m/cgi-bin/safaribm.pl
この時点で Safariのブックマークっぽい HTMLが表示されていない場合、端末アプリが Safariのブックマークにアクセスできない可能性があります。
確認方法は、端末アプリから wc ~/Library/Safari/Bookmarks.plist などして readアクセスが可能か確認します。アクセスエラー(open: Operation not permitted)が出る場合、システム設定のセキュリティとプライバシー → プライバシー → フルディスクアクセス で端末アプリに許可を与えます。(意味がよくわからない & 危険だと思ったらあきらめること)
スクリプトの単体動作が確認できたら、w3mを起動して ‘o’ (小文字オー) を押してオプション設定画面に入り、Directory Settings の Directory corresponding to /cgi-bin に移動して、”~/.w3m/cgi-bin” を設定します。
※ 設定画面で “/cgi-bin”[Enter] → [Tab] → [Enter] → “~/.w3m/cgi-bin” [Enter] → ‘j’ → ‘j’ → [Enter]
・w3mは viライクなカーソル移動が可能です
・”(ダブルクォーテーション)は入力しない
・’j’ → ‘j’ → [Enter] は、カーソルを [OK] に移動して [Enter]で確定の意味
ここで cgiを起動してみます。’U’ (大文字ユー)で URLを指定します。
^U (コントロール+ユー)で行頭まで削除して、”file:///cgi-bin/safaribm.pl” を指定して[Enter]で実行となります。
cgiは「正しく解析するのがめんどーだからてきとーに作った Perlスクリプト」なので、私の想定通りに動かない可能性も高いです(自分でしか確かめて無いので…)。その時はあきらめていただくか、自分でバンバン(死語)していただくのがよろしいかと。
無事 Safariのブックマークが表示されたら、この URL(file:///cgi-bin/safaribm.pl)を [ESC] ‘a’ で w3mのブックマークに登録します。
Sectionでは既存の区分が選択できます。New Section では新たに区分を追加可能です。空でもいいし misc とか入れておけばいいと思います。(指定しない場合は「Miscellaneous」に分類される)
URLは変更しないこと。
Titleはわかるように変更しておくとよいでしょう。自分は「Safariのブックマーク」としています。
問題なければ [ADD]にカーソルを合わせて [Enter]で確定します。キャンセルしたい時は ‘B’ (大文字ビー)で前の画面に戻ります。
これで次回から w3m起動時に 上記が登録されたブックマークが表示されます。ちなみにブックマーク表示の状態で ‘E’ (大文字イー)を押すと、ブックマークを編集できます。( “~/.w3m/bookmark.html” を直接編集してもいいけど)
w3mからの cgi起動は、スクリプト内にも記載しているけど「w3m local CGI 設定手順」を参考にさせていただきました。大感謝。
なお alias w3s=”/usr/local/bin/w3m -M file:/cgi-bin/safaribm.pl’ としておけば、いきなり Safariのブックマークを表示することも可能です。自分は w3mで良く使うブックマークがあるので、その他必要に応じて Safariブックマークを使うようなスタイルなので、やってませんが。
※ -M はモノクロモードなので無くてもいいけど、自分はカラーが必要だと思った事が無いので入れてません。必要な時は “\w3m” で aliasを無効にして起動してます。
補足ですが w3m.shで myOpt=”-F -cookie” としていますが、現在はオプション設定パネル(Option Setting Panel)で設定可能です。(-Mも)
当初はコマンドオプションからの指定しか無かったんじゃないかなぁ。