qutebrowser
qutebrowser は軽量で vim ライクなキーボード操作ができる PyQt5 と QtWebEngine ベースのブラウザです。
目次
インストール
qutebrowser または qutebrowser-gitAUR パッケージをインストールしてください。
基本的な使い方
コマンドプロンプトを出すには :
を使います。Tab
で自動補完が効きます。
qutebrowser を初めて起動した場合、クイックスタートページが表示されます。クイックスタートは :help
でいつでも開けます。キーボードショートカットは チートシート を見てください。
ユーザー設定
UIから、コマンドラインから、もしくはPythonスクリプトからの三種類の方法で設定することができます。
qutebrowser に付属しているヘルプでは、それぞれの使い方について詳細に書かれています。ヘルプを参照するには、 :help
を入力し、そのページで Configuring qutebrowser
を選択してください。
設定ファイルがおかれるパスを知るには、 qute://version
を開いてください。Archlinux では $XDG_CONFIG_HOME/qutebrowser/
になるはずです。
qutebrowserによって設定される値は autoconfig.yml
(手動では変更しないべきです)に、ユーザーの書いた Python スクリプトは config.py
に保存されます。
UIから設定する
:set
で設定画面を開くことができます。設定が終わったら、もう一度 :set
することで保存できます。
例えば、 url.searchengines
の下では検索エンジンの設定ができます。これは、key-value のペアのリストとして保存されています。何も設定していない場合、以下のような値になっているはずです。
{"DEFAULT": "https://duckduckgo.com/?q={}"}
これは、DuckDuckGo をデフォルトの検索エンジンとして設定しています。ここで、{}
は検索する文字列に置き換えられます。
ArchWiki を検索するショートカットを追加したいときは、以下のようにします:
{"DEFAULT": "https://duckduckgo.com/?q={}", "aw": "https://wiki.archlinux.jp/?search={}"}
これで、 :open aw qutebrowser
と入力すればこのページが開かれるはずです。標準設定では o
で :open
を置き換えるようにキーマップが設定されているので、o aw your_search_term
と入力することで ArchWiki を素早く検索できます。
検索するための引数の渡し方は検索エンジンによって異なることに注意してください。例えば Google を設定するには https://www.google.com/search?hl=en&q={}
とします
コマンドラインから設定する
:set
の後に、設定したい項目と設定したい値を打ちます。例えば、 qutebrowser を再起動したときに前回開いていたページを復元したい場合、以下のようにすることができます。
:set auto_save.session true
Python スクリプトで設定する
:config-write-py --defaults
でテンプレートファイルが生成されます。
詳しくは qute://help/configuring.html#configpy
を参照してください。
qutebrowser.conf
と keys.config
からのミグレーション
qutebrowser.conf
と keys.config
は、v1.0.0 以前までに使われていた方法です。
キーバインド
キーバインドを編集するには、ブラウザから :bind key command
というコマンドで直接編集するか、ファイルから直接編集することができます。すでに多くのキーバインドがあることに注意してください。もし、あるキーバインドでラグに気づいたら、それは他のキーバインドも同じキーで始まっているためです。
例については、ドキュメント を参照してください。
動画の再生
ブラウザプラグイン#マルチメディアの再生を見てください。
ヒントとテクニック
quickmarks/ブックマークのインポート
Qutebrowser は、python スクリプト /usr/share/qutebrowser/scripts/importer.py
により、複数のフォーマットからブックマークをインポートすることができます。デフォルトの出力形式は、qutebrowser の quickmarks 形式です。ブックマークとクイックマークの違いについての簡単な説明は、qutebrowser FAQを参照してください。
Chromium/Chrome から
第一引数に chromium
を、第二引数にブックマークファイルのあるディレクトリを指定して、上記のスクリプトを実行してください。Chromium の場合は ~/.config/chromium/Default
、Chrome の場合は ~/.config/google-chrome/Default
となります。スクリプトの出力は、~/.config/qutebrowser/quickmarks
に追記することができます。入力フォーマットの一部を以下に説明します。追加情報は、importer.py
に-h
フラグを与えることで確認できます。
Firefox から
Firefox のブックマークを HTML ファイルに書き出す([1] を参照)そして、インポートスクリプトを使用します。
$ python /usr/share/qutebrowser/scripts/importer.py bookmarks.html >> ~/.config/qutebrowser/quickmarks
bookmarks.html ファイルから
bookmarks.html
ファイルからのインポートは python-beautifulsoup4 パッケージが必要です。インポートするには、 bookmarks.html
ファイルを importer.py
に渡し、出力を ~/.config/qutebrowser/quickmarks
に追加します。
$ python /usr/share/qutebrowser/scripts/importer.py ~/.config/chromium/Default >> ~/.config/qutebrowser/quickmarks
quickmarks ではなく、ブックマークとしてインポートする
上記の方法のいずれかを使用し、さらに -b
フラグを指定することで、スクリプトの出力形式をブックマークに変更することが可能です。出力は、~/.config/qutebrowser/bookmarks/urls
に追加します。
$ python /usr/share/qutebrowser/scripts/importer.py -b chromium ~/.config/chromium/Default >> ~/.config/qutebrowser/bookmarks/urls
なお、このフラグはブラウザ指定の前に追加する必要があります。
ログイン情報を自動的に入力する
qute-pass ユーザースクリプトを使用すると、Pass パスワードストアに保存されているログイン情報を 自動的に入力 することが可能です。dmenu や互換性の有る アプリケーションランチャー と python-tldextract が必要です。:spawn --userscript qute-pass
を実行するキーバインドを設定します。
スクリプトの説明から引用します:
サイトのドメインは、パスパスのセグメントとして表示される必要があります。例えば、"github.com/cryzed" や "websites/github.com" のように。ユーザー名とパスワードの決定方法は、CLI の引数で自由に設定することができます。ログイン情報は、qutebrowser の fake-key コマンドを使ってキーイベントをエミュレートすることで、以下のように挿入されます。[USERNAME]<Tab>[PASSWORD] のように、qutebrowser の fake-key コマンドでキーイベントをエミュレートしてログイン情報を挿入します。これは、ほぼすべてのログインフォームと互換性があります。
さらに明確にするために、デフォルトで使用されるパス構造は次のようになります。
user@computer$ pass
Password Store ├── example.site1.com │ └── username ├── example.site2.com │ └── username1 │ └── username2
これは、各ウェブサイトが ~/.password-store フォルダの中のディレクトリであることを意味します。各ウェブサイトの名前の付いたディレクトリの中には、username.gpg、username2.pgp などのタイトルのファイルがあり、各ファイルにはウェブサイトの各ユーザー名に関連するパスワードが含まれています。 Firefox から移行する場合、firefox_decrypt の修正版は、このフォーマットで移行する必要があります。
ユーザースクリプトは、ほとんどのワークフローや特殊な状況(パスワードだけを挿入したい、ユーザー名とパスワードを挿入する通常の方法がうまくいかないなど)に対応できるように、多くのオプションを提供しています。
スペルチェックをオンにする
まず、qutebrowser に同梱されている dictcli.py
スクリプトで、適切な辞書をダウンロードします。
例えば、英語 (US) の場合。
$ /usr/share/qutebrowser/scripts/dictcli.py install en-US
このスクリプトには他の機能もあり、--help
で表示することができます。
次に、qutebrowser で以下を設定します。
:set spellcheck.languages ["en-US"]
フィンガープリンティングを避ける
ウェブサイトは、画面サイズ、ユーザーエージェント、HTTP_ACCEPT ヘッダーなどの情報を組み合わせることで、ユーザーを特定できる場合があります。詳しくは[2] をご覧ください。また、ブラウザの独自性をテストすることもできます。以下は、あなたの qutebrowser のインストールをより「一般的」にするためにできるいくつかのステップです。
さらに、より多くのアイデアについては、Firefox プライバシー#Stop Fingerprinting を参照してください。
共通のユーザーエージェントを設定する
set content.headers.user_agent
を使用すると、いくつかのユーザーエージェントをオプションとして使用できます。もうひとつ、おそらくより一般的なユーザーエージェントがあります。
Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0
HTTP_ACCEPT ヘッダーの設定
以下は、一般的な HTTP_ACCEPT ヘッダー(Firefox のデフォルト)です、プロンプトで次のコマンドを入力するだけです。
set content.headers.accept_language en-US,en;q=0.5 set content.headers.custom '{"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}'
canvas からの読み込みを無効にする
content.canvas_reading を false に設定します。
WebGL を無効にする
WebGL を無効にするには content.webgl
を false
に設定します。
dwb ライクなセッション処理
qutebrowserに、dwb の --restore
オプションに近いセッション処理(複数同時アクティブセッション)をさせるには、このラッパースクリプト を使用します。これは、--basedir
を使って、各セッションのデータ、キャッシュ、ランタイムを分離し、設定は共有されたままです。
Web サイトを無効にする
~/.config/qutebrowser/blocked-hosts
を作成し、各行にブロックしたいウェブサイトを入力します。例えば www.youtube.com
のように。これで、内蔵のアドブロックリストを維持したまま、ウェブサイトを追加していくことができます。qutebrowser を再起動し、:adblock-update
を実行します。
Brave ブラウザの adblocker を使用する
python-adblock パッケージをインストールし、qutebrowser 内で adblocker を有効にしてください。
:set content.blocking.method both
トラブルシューティング
ツールチップが読めない
Qt のテーマによっては、ツールチップが読みにくい場合があります。これを解決するために、Qt スタイルシートファイルを作成してください。例えば
~/.local/share/qutebrowser/fix-tooltips.qss
QToolTip { background-color: palette(highlight); border: 2px solid palette(highlight); color: palette(text); }
そして、qutebrowser の起動時にスタイルシートを読み込ませます。
qutebrowser --qt-arg stylesheet ~/.local/share/qutebrowser/fix-tooltips.qss
詳しくは、バグレポート をご覧ください。
バグレポートでは、起動時に引数を必要としない qt5ctl
を使った 別の方法 が提案されています。
- qutebrowser では
:set qt.force_platformtheme qt5ctl
です。 qt5ct
で、style:gtk2, standard dialogs: gtk2, palette: default を設定する。- スタイルシートタブに変更し、新しいファイルを作成する、例えば (
tooltip-gtk2.qss
) - 中に以下の内容を入れてください。
QToolTip{ background: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 0, stop: 0 palette(window), stop: 1 palette(alternate-window)); border-radius: 3px; border: 1px solid #000000; padding: 1px; color: palette(text); }
- 保存して OK をクリック
- この新しいファイルの隣にあるボックスにチェックを入れて、テーマに適用されるようにします。
- 適用をクリック