qutebrowser

提供: ArchWiki
2022年2月19日 (土) 06:30時点におけるKgx (トーク | 投稿記録)による版 (→‎ヒントとテクニック: dwb ライクなセッション処理を翻訳して追加)
ナビゲーションに移動 検索に移動

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.confkeys.config からのミグレーション

qutebrowser.confkeys.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 を実行するキーバインドを設定します。

この記事あるいはセクションで使われている用語や表現には問題が存在します。
議論: The quote should be part of the userscript's --help page if it is so prominent. (議論: トーク:Qutebrowser#)

スクリプトの説明から引用します:

サイトのドメインは、パスパスのセグメントとして表示される必要があります。例えば、"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
ノート:
  • ウェブサイトは Javascript でプラットフォームの種類を収集することもでき、この設定は qutebrowser では変更できないため、Windows NT 10.0X11; Linux x86_64 に変更するとよいかもしれません。
  • ユーザーエージェントをデフォルトから変更すると、一部の Web サイトが正常に動作しなくなります。例えば、ユーザーエージェントが古いブラウザとしてリストされている場合、CAPTCHA はあなたのブラウザがサポートされていないことを言及します。

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 に設定します。
ノート: 一部のウェブサイトは、コンテンツのレンダリングやその他の機能において、canvas の読み込みに依存しています。このオプションを追加すると、それらが正しく動作しなくなる可能性があります[3]

WebGLを無効にする

WebGL を無効にするには content.webglfalse に設定します。

dwb ライクなセッション処理

qutebrowserに、dwb--restore オプションに近いセッション処理(複数同時アクティブセッション)をさせるには、このラッパースクリプト を使用します。これは、--basedir を使って、各セッションのデータ、キャッシュ、ランタイムを分離し、設定は共有されたままです。

WM_CLASS を設定する

--qt-arg NAME VALUE でQtに値を渡すことができます。NAMEname を指定すると、 WM_CLASS に任意の文字列を設定することができます。

qutebrowser --qt-arg name <設定したい文字列>

これは、タイル型ウィンドウマネージャーでウィンドウの管理をする場合等に有用です。

ヒント: --temp-basedir--basedir を使わない場合、全てのウィンドウは同じqutebrowserインスタンスに属するため同じ WM_CLASS を共有します。

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
ノート: すでに qutebrowser のインスタンスが起動している場合は、スタイルシートは適用されません。
ヒント: この例のように、余分な引数を指定する場合、デスクトップエントリ を使って、便利なランチャーを作成する方法もあります。

詳しくは、バグレポート をご覧ください。

バグレポートでは、起動時に引数を必要としない qt5ctl を使った 別の方法 が提案されています。

  1. qutebrowser では :set qt.force_platformtheme qt5ctl です。
  2. qt5ct で、style:gtk2, standard dialogs: gtk2, palette: default を設定する。
  3. スタイルシートタブに変更し、新しいファイルを作成する、例えば (tooltip-gtk2.qss)
  4. 中に以下の内容を入れてください。
    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);
    }
  5. 保存して OK をクリック
  6. この新しいファイルの隣にあるボックスにチェックを入れて、テーマに適用されるようにします。
  7. 適用をクリック