dwb

提供: ArchWiki
移動先: 案内検索
警告: dwb はセキュリティに問題がある古い WebKit ポートを使っています。他のブラウザを使うことを推奨します。詳しくは こちら を参照。

dwb は webkit エンジンを使用する、軽量かつ柔軟性のあるウェブブラウザです。独自のウェブインターフェイスでカスタマイズすることができ、キーボードショートカットで完全に操作することができます。

インストール

dwbAUR パッケージをインストールしてください。また、開発版は dwb-gitAUR パッケージでインストールできます。

基本的な使い方

新しく設定を始めるときは、SkKeys ページを開いて下さい。ページを見ればわかるように、ほとんどのバインディングは VimEmacs から借用しています。

コマンドプロンプトにアクセスするには : を使います。Tab で自動補完が可能です。

詳しくは man ページを読んで下さい。設定で auto-completion オプションを有効にすることでバインディングを学ぶのが楽になります。

$ man dwb

dwb 固有の操作

o        = url を入力
O        = 新しいタブに url を入力
f        = ヒントを生成。方向キーでヒントをブラウズして、URI を表示したり、ヒント文字を使用します
F        = 新しいタブにヒントを生成
;b       = 新しいバックグラウンドタブにヒントを生成
;r       = 複数のバックグラウンドリンクを素早く開く
H        = 戻る
L        = 進む
J        = 次のタブに移動
K        = 前のタブに移動
'n'+T    = 'n' タブに移動
d        = タブを閉じる
u        = 閉じたタブを戻す
ctrl+s   = 停止
r        = 再読み込み
R        = キャッシュを無視して再読み込み
gi       = 最初の入力フィールドに移動、入力モードには入りません。入力モードにするには 'i' を使います ('gi'+'i')
ctrl+e   = 編集フィールドを外部のエディタで開く。フォーラムや wiki で有用
;d       = ヒントでダウンロード
M        = ブックマークを保存 (ブックマークは ~/.config/dwb/default/bookmarks に保存されます)
xb       = ステータスバーを表示/非表示
gf       = ソース表示の切り替え
+        = ズームイン
-        = ズームアウト
=        = ズームを 100% にリセット

vim ライクな操作

i        = toggle_insert_mode (Vim と同じように Esc で通常モードに戻ります)
Esc      = 通常モードに戻る (ctrl+n でも戻ります)
j        = 下にスクロール
k        = 上にスクロール
h        = 左にスクロール
l        = 右にスクロール
gg       = 一番上に移動
G        = 一番下に移動
/        = ページ検索
n        = 後方に再度検索
ZZ       = セッションを保存して終了

ノート

キャレットブラウズに切り替えるには v を押して、space を押すことでキャレットとビジュアルモードを切り替えることができます。Esc を一二度押すと通常モードに戻ります。キャレットブラウズでは、方向キーを使ってページの様々な部分をブラウズできます。Shift を押せばテキストが選択されます。リンクを飛ぶには Enter を押して下さい。

設定

設定ファイルは $XDG_CONFIG_HOME/dwb/ (通常は ~/.config/dwb/) に保存され、ウェブインターフェイスで簡単に変更できます。Settings ページを開くには Ss を押して下さい。

検索エンジン

お好きな検索エンジンを開いて、gs を押してウェブページの最初の入力フィールドを選択し、検索エンジンのキーワードを入力してください。

URI プロンプトでキーワードを使って直接、該当するウェブサイトで検索することができるようになります。アドレスバーに直接クエリを入力すると、デフォルトの検索エンジンで検索されます。デフォルトの検索エンジンは $XDG_CONFIG_HOME/dwb/searchengines の1番目のエントリです。

設定ファイルを編集することで検索エンジンを追加することも可能です。rfc-editor.org などのややこしいサイトで役に立ちます。

.config/dwb/settings
searchengine-submit-pattern=XXX
.config/dwb/searchengines
sp https://startpage.com/do/search?q=XXX
wp https://en.wikipedia.org/w/index.php?search=XXX&title=Special:Search
aw https://wiki.archlinux.org/index.php?title=Special:Search&search=XXX
rfc http://www.rfc-editor.org/search/rfc_search_detail.php?rfc=&title=XXX

キー

標準のキーバインドは :open dwb:keys を実行することで編集できます (dwb:keys がウェブページで開きます)。値を変更してフォーカスを外すかリターンキーを押すと即座に設定が保存されます。ステータスバーに変更されたことが表示されます。キーの組み合わせは空白で区切って下さい。vim ライクではないキーの定義例:

dwb:keys
history_back	 Go back	Mod1 @Left@
history_forward	 Go forward	Mod1 @Right@

同一のフォーマットが下のカスタムキーバインドでも使えます。

カスタムキーバインド

プロファイルディレクトリの custom_keys ファイルを編集することでカスタムキーバインドを作成できます。デフォルトは ~/.config/dwb/default です。全てのキーシムは (マルチ) バイト文字を排除して、@ で囲う必要があります。一つのキーバインドで複数の dwb コマンドを実行することもできます。複数のコマンドを指定した場合、定義された順番で実行されます。;; でコマンドを区切ってください。キーバインドのコードが既に dwb によってバインドされている場合、その設定は無視されます (矛盾する挙動はしません)。そのような場合、衝突するバインドが存在しないか ~/.config/dwb/keys に定義されているバインドを確認して、バインドを解除してください。実行中の dwb インスタンスが存在する場合、終了時に keys ファイルが上書きされるため、設定に修正を加えるときは dwb が実行していないときか、あるいはデフォルトの dwb インターフェイスを使って下さい (Sk)。

~/.config/dwb/default/custom_keys
Control w           :close_tab
Control @Page_Up@   :focus_prev
Control @Page_Down@ :focus_next

拡張

dwb には別の実行ファイル dwbem による拡張マネージャが付属しています。公式で利用可能な拡張を確認するには、次を使用:

dwbem -a
   Available extensions:      Mainstream equivalent:
   - adblock_subscriptions    Adblock
   - autoquvi                 Video DownloadHelper
   - contenthandler           (Handle requests based on MIME type, filename extension or URI scheme)
   - downloadhandler          (Handle downloads based on mimetype or filename extension, useful if 'download-no-confirm' is set)
   - formfiller               LastPass, Lazarus (Save form data and fill forms with previously saved data, also with gpg-support)
   - googlebookmarks          GBookmarks, GMarks (Add bookmarks to google bookmarks with a shortcut)
   - googledocs               Open with Google Docs, Google Docs Viewer
   - grabscrolling            (Adobe Acrobat style grab and drag mouse scrolling)
   - multimarks               (Bookmark multiple urls to a single quickmark)
   - navtools                 Opera Fast Forward, IE 10 Flip Ahead
   - perdomainsettings        (Change webkit-settings automatically on domain or url basis)
   - pwdhash                  PwdHash
   - requestpolicy            RequestPolicy, Disconnect, Ghostery
   - simplyread               Readability, Clearly
   - speeddial                Speed Dial
   - supergenpass             (Generate domain-based passwords; compatible with the bookmarklet supergenpass but with additional options)
   - unique_tabs              (Remove duplicate tabs or avoid duplicate tabs by autoswitching to tabs with same url)
   - userscripts              GreaseMonkey/Stylish
   - whitelistshortcuts       (Whitelist webkit settings for certain domains with a shortcut)

詳しくは dwbem -I <extension> を使うか、dwbdwbem の man ページを読んで下さい。使用可能な拡張の詳細を全て知りたいときは for i in $(dwbem -a | awk '/-/ {print $NF}'); do dwbem -I $i; done を使って下さい。

以下は dwb に初めから組み込まれている人気の拡張 (アドオン) のリストです:

  • NoScript/Flashblock: dwb はデフォルトで flash をブロックして、javascript もブロックできます。
  • Omnibar: Chrome と同じように、dwb のアドレスから検索・履歴・ブックマークに素早くアクセスできます。
  • Download Statusbar: dwb はステータスバーにデフォルトでダウンロードを表示します。
  • IE Tab: dwb はシンプルなユーザースクリプトで外部ブラウザでページを開くことが可能です。
  • Session Manager: dwb にはデフォルトでセッションマネージャが組み込まれています。
  • Private browsing: xpp:toggle enable-private-browsingcustom_keys に追加することで xpp でプライバシーモードを切り替えることができます。

Adblock

dwb には Adblock 拡張が存在します。次のコマンドでインストールしてください:

$ dwbem -i adblock_subscriptions

dwb を再起動して、:set adblocker true で adblocker を有効にして、adblock_subscribe コマンドを使ってお好きなフィルタを選択してください (複数のフィルタを使用するとエントリが重複して adblocker がかなり遅くなります)。その後、adblock_update コマンドで変更を適用してください。

ユーザースクリプト

dwb~/.config/dwb/userscripts/ に保存された .js や .sh スクリプトを実行することができます。スクリプトには実行可能権限を付与してください:

chmod +x ~/.config/dwb/userscripts/myscript.js

以下はサンプルスクリプトです。dwbuserscripts snippets には他にもスクリプトが載っています:

defer-loading

起動時に最後のセッションのタブを全て一度にロードしないようにします。

~/.config/dwb/userscripts/defer-loading.js
//!javascript
if (settings.loadOnFocus === false) {
    execute('local_set load-on-focus true');
}
Signal.connect('navigation', function(webview) {
    if (webview == tabs.current) {
        execute('local_set load-on-focus false');
        this.disconnect();
    }
});

fast-forward

Opera には次/前のページをロードできる便利なキーバインドがあります。フォーラムスレッドやドキュメントなどの複数のページにまたがるような記事で大変有用です。

この機能はシンプルな javascript 関数で実装でき、カスタムキー }{ にバインドします:

~/.config/dwb/default/custom_keys
}:exja (function(){var e=document.querySelector("[rel='next']");if(e){location=e.href;}else{var f=document.getElementsByTagName("a");var i=f.length;while((e=f[--i])){if(e.text.search(/(\bnext\b|^>$|^(>>|»)$|^(>|»)|(>|»)$|\bmore\b)/i)>-1){location=e.href; break;}} location.href=location.href.replace(/(\d+)([^\/\d]*)$/, function(a,b,c){return ++b+c})}})();
{:exja (function(){var e=document.querySelector("[rel='prev']");if(e){location=e.href;}else{var f=document.getElementsByTagName("a");var i=f.length;while((e=f[--i])){if(e.text.search(/(\b(prev|previous)\b|^<$|^(<<|«)$|^(<|«)|(<|«)$)/i)>-1){location=e.href;break;}} location.href=location.href.replace(/(\d+)([^\/\d]*)$/, function(a,b,c){return --b+c})}})();

また、navtools 拡張も同じような機能を提供し、上部ディレクトリに移動したり、ルート URI をロードしたりできます。

open-firefox

xf で 現在のページを Firefox で開きます (firefoxlibnotify を使用)。

~/.config/dwb/userscripts/open-firefox.sh
#!/bin/bash
# dwb: xf
firefox $DWB_URI &
notify-send -u low "Firefox opening $DWB_URI" #optional notification

startup-noautoreload

再起動後に前に開いたタブが一度に全て再読み込みされないようにします。

~/.config/dwb/userscripts/startup-noautoreload.js
//!javascript
// prevents previously-opened tabs from reloading all at once after a restart.
execute("set load-on-focus true");

var sigId = Signal.connect("navigation", function(wv) {
        if (wv == tabs.current)
        {
                    execute("set load-on-focus false");
                            Signal.disconnect(sigId);
                                }
});

toggle-stylesheet

xg で2つのグローバルスタイルシートを切り替えます。

~/.config/dwb/userscripts/toggle-stylesheet.sh
#!/bin/bash
# dwb:xg

CURRENT_STYLESHEET="$(dwbremote get setting user-stylesheet-uri)"

STYLESHEET_1="file://$HOME/.config/dwb/stylesheets/foo.css"
STYLESHEET_2="file://$HOME/.config/dwb/stylesheets/bar.css"

if [[ "${CURRENT_STYLESHEET}" = ${STYLESHEET_1} ]]; then
    dwbremote :local_set user-stylesheet-uri "$STYLESHEET_2"
else 
    dwbremote :local_set user-stylesheet-uri "$STYLESHEET_1"
fi

youtube-player

MPlayer で YouTube 動画を開きます (mplayeryoutube-dl を使用)。

~/.config/dwb/userscripts/youtube-mplayer.js
//!javascript 
// opens YouTube videos with mplayer.
var regex = new RegExp("http(.*)://www.youtube.com/watch\\?(.*&)*v=.*");

Signal.connect("navigation", function (wv, frame, request) {
  if (wv.mainFrame == frame && regex.test(request.uri)) 
    system.spawn("sh -c 'mplayer \"$(youtube-dl -g " + request.uri + ")\"'");
  return false;
});

mpv.sh

現在のページの URL を mpv で開く vv キーバインド (YouTube, Dailymotion, Vodlocker などのビデオストリーミングサービスに対応):

~/.config/dwb/userscripts/mpv.sh
#!/bin/bash
# dwb: vv
mpv $DWB_URI &
notify-send  -h string:bgcolor:#000000 -h string:fgcolor:#ff4444 "MPV is opening" "$DWB_URI" 

fi

mpv, libnotify, youtube-dl パッケージが必要です。

ロッカージェスチャ

Opera のようなロッカージェスチャを有効にして履歴を閲覧できるようにします。先に設定でコンテキストメニューを無効化してください。

~/.config/dwb/userscripts/rocker.js
//!javascript
var LMB = 1, MMB=2, RMB = 3, UNKNOWN = 10, DOWN = 11, UP = 12;

var buttonStates = [UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN];
var bp = new Signal("onButtonPress", function(wv, result, ev) {
        var mouseButton = ev.button;

        buttonStates[mouseButton] = DOWN;

        if (mouseButton == LMB && buttonStates[RMB] == DOWN) {
                execute("history_back");
        } else if (mouseButton == RMB && buttonStates[LMB] == DOWN) {
                execute("history_forward");
        }
});
var br = new Signal("onButtonRelease", function(wv, result, ev) {
        buttonStates[ev.button] = UP;
});

bp.connect();
br.connect();

スタイルシート

Settings の user-stylesheet-uri (file:///home/tux/.config/dwb/stylesheet.css) でグローバルスタイルシートを定義できます。

ステータスバーをいつも非表示にしていて、リンクにマウスを乗せるとリンクのプレビューが表示されるのが鬱陶しい場合、スタイルシートに次を追加してください: #dwb_hover_element { display:none!important; }。

トラブルシューティング

検索エンジンで undefined が検索される

searchengine-submit-pattern オプションを設定しても undefined が検索されてしまう場合、$XDG_CONFIG_HOME/dwb/searchengines を編集して URI を searchengine-submit-pattern に適合してください。

Github のフォントが汚い

ttf-freefont をインストールするか以下を ~/.config/fontconfig/fonts.conf の fontconfig タグの中に追加してください:

 <selectfont>
   <rejectfont>
     <pattern>
       <patelt name="family">
         <string>Clean</string>
       </patelt>
     </pattern>
   </rejectfont>
 </selectfont>

上記の方法で解決できないときは xorg-fonts-75dpixorg-fonts-100dpi パッケージを削除してみてください。

HTML5 メディア

ブラウザプラグイン#マルチメディアの再生を参照してください。

dwb-git

dwb-gitAUR は安定版と比べて多数の改善が施されています。主要な変更点だけ以下に記載しています。

ノート: 2015年5月4日現在、公式の dwbAUR パッケージには以下の機能が全て含まれています。

プラグインのサポート

[dwb:plugins dwb:plugins] 設定ページからブラウザプラグインを有効・無効にできます。他のブラウザプラグインもサポートできますが、以下の2つで dwb がより使いやすくなるはずです。

Flash のサポート

dwb-gitAUR には flashplugin のサポートが組み込まれています。Dwb はプラグインを自動的に検出して有効化します。また、gnash-gtkAUR[リンク切れ: パッケージが存在しません] をインストールしても同じように検出されます。

Java のサポート

dwb-gitAUR には icedtea-web のサポートが組み込まれています。Dwb はプラグインを自動的に検出して有効化します。

ウェブサイトの表示の改善

ウェブサイトのレイアウトが正しく表示されない場合、dwb-gitAUR で問題が解決するかもしれません。