Броузер Qutebrowser

2024-12-01 · 9 мин. для прочтения

Броузер Qutebrowser.

Содержание

1 Общая информация

  • Броузер, ориентированный на клавиатуру, с минимальным графическим интерфейсом.
  • Система навигации в стиле текстового редактора Vim
  • Реализован на Python и Qt.
  • Сайт: https://www.qutebrowser.org/
  • Репозиторий: https://github.com/qutebrowser/qutebrowser

1.1 Функционал

  • поддержка системы вкладок;

  • менеджер загрузок;

  • режим приватного просмотра;

  • встроенный просмотрщик PDF-файлов (pdf.js);

  • система блокировки рекламы (на уровне блокировки хостов);

  • интерфейс для просмотра истории посещений;

  • возможность настройки вызова внешнего видеопроигрывателя для просмотра видео на YouTube;

  • система «хинтов» для быстрого перехода к элементам страницы (ссылкам и изображениям).

1.2 Навигация и управление

  • перемещение по странице с помощью клавиш «hjkl»;

  • открытие новой страницы клавишей «o»;

  • переключение между вкладками с помощью клавиш «J» и «K» или «Alt» + номер вкладки;

  • вызов командной строки при нажатии «:», где можно выполнять различные команды (например, «:q» для выхода или «:w» для записи страницы).

2 Ресурсы

3 Клавиатурные сочетания

3.1 Перемещение по странице

  • j — прокрутка текущей страницы на одну строку вниз;
  • k — прокрутка текущей страницы на одну строку вверх;
  • h — прокрутка текущей страницы на одну строку влево;
  • l — прокрутка текущей страницы на одну строку вправо;
  • G — прокрутка к нижней части текущей страницы;
  • gg — прокрутка к верхней части текущей страницы;
  • ` — установка метки на текущей позиции экрана;
  • ' — переход к ранее отмеченной позиции;
  • Ctrl + F — прокрутка текущей страницы на один экран вниз;
  • Ctrl + B — прокрутка текущей страницы на один экран вверх;
  • Ctrl + D — прокрутка текущей страницы наполовину экрана вниз;
  • Ctrl + U — прокрутка текущей страницы наполовину экрана вверх;
  • / — открытие поиска вперёд;
  • Shift + / — открытие поиска назад.

3.2 Масштабирование страницы

  • Shift + = — увеличение масштаба текущей страницы;
  • - — уменьшение масштаба текущей страницы;
  • = — возврат к масштабу по умолчанию.

3.3 Режимы броузера

  • i — переход в режим вставки (Insert Mode), чтобы вводить текст напрямую;
  • v — переход в режим выделения текста (Visual Select Mode);
  • Esc — возврат в обычный режим (Normal Mode).

3.4 Копирование и загрузка

  • YY — копирование URL текущей веб-страницы в буфер обмена;
  • YT — копирование заголовка текущей веб-страницы в буфер обмена;
  • Y, затем Shift + Y — копирование URL текущей веб-страницы в буфер выделения;
  • Y, затем Shift + T — копирование заголовка текущей веб-страницы в буфер выделения;
  • PP — загрузка URL из буфера обмена;
  • P, затем Shift + P — загрузка URL из буфера выделения;
  • Shift + P, затем P — загрузка URL из буфера обмена в новой вкладке;
  • Shift + P, затем Shift + P — загрузка URL из буфера выделения в новой вкладке;
  • WP — загрузка URL из буфера обмена в новом окне.

3.5 Навигация по истории

  • Shift + H — возврат к предыдущей веб-странице в истории;
  • Shift + L — переход к следующей веб-странице в истории;
  • TH — возврат к предыдущей веб-странице и открытие её в новой вкладке;
  • TL — переход к следующей веб-странице и открытие её в новой вкладке;
  • WH — возврат к предыдущей веб-странице и открытие её в новом окне;
  • WL — переход к следующей веб-странице и открытие её в новом окне.

3.6 Работа с вкладками

  • go — открытие строки URL Qutebrowser и редактирование текущей ссылки;
  • gO — открытие строки URL и загрузка текущей ссылки в новой вкладке;
  • xO — открытие строки URL и загрузка текущей ссылки в фоновой вкладке;
  • xo — открытие пустой строки URL и загрузка страницы в фоновой вкладке;
  • wo — открытие пустой строки URL и загрузка страницы в новом окне;
  • gu — загрузка логического родительского каталога текущего URL;
  • gU — загрузка логического родительского каталога в новой вкладке;
  • gt — установка фокуса на другую вкладку;
  • gJ — перемещение текущей вкладки влево;
  • gK — перемещение текущей вкладки вправо;
  • gC — дублирование текущей вкладки;
  • gD — перемещение текущей вкладки в новое окно;
  • Alt+1 — переключение на первую вкладку в Qutebrowser;
  • Ctrl+Tab — выбор предыдущей вкладки;
  • co — закрытие всех фоновых вкладок;
  • J, Ctrl + PgDn — следующая вкладка;
  • K, Ctrl + PgUp — предыдущая вкладка.

3.7 Полезные сочетания

  • Ctrl + H — загрузка домашней страницы;
  • Ctrl + S — остановка загрузки веб-страницы;
  • Ctrl + Alt + P — открытие меню печати;
  • GD — сохранение всей веб-страницы в файл;
  • AD — отмена текущей загрузки;
  • CD — очистка списка загрузок;
  • GF — загрузка HTML-источника веб-страницы;
  • WI — открытие инструмента проверки (Inspect tool);
  • Shift + S, затем S — открытие страницы настроек Qutebrowser;
  • SF — сохранение текущей конфигурации в файл;
  • SK — создание нового сочетания клавиш;
  • Ctrl + V — включение режима пропуска (Passthrough Mode);
  • Ctrl + Q — выход из Qutebrowser.

4 Командный режим

4.1 Работа с историей и навигацией

  • :history — отображение текущей истории просмотров;
  • :history-clear — очистка истории просмотров;
  • Shift + H — возврат к предыдущей веб-странице в истории;
  • Shift + L — переход к следующей веб-странице в истории.

4.2 Управление вкладками

  • GT — установка фокуса на другую вкладку;
  • G, затем Shift + J — перемещение текущей вкладки влево;
  • G, затем Shift + K — перемещение текущей вкладки вправо;
  • G, затем Shift + C — дублирование текущей вкладки;
  • G, затем Shift + D — перемещение текущей вкладки в новое окно;
  • Ctrl + Tab — выбор предыдущей вкладки;
  • CO — закрытие всех фоновых вкладок.

4.3 Работа с сессиями

  • :save-session — сохранение текущей сессии в файл;
  • :load-session — загрузка сессии броузера из файла.

4.4 Действия с страницами и загрузкой

  • Ctrl + S — остановка загрузки веб-страницы;
  • :reload — перезагрузка текущей вкладки (или указанной по счёту);
  • :download-retry — повтор неудачной загрузки;
  • Ctrl + H — загрузка домашней страницы.

4.5 Другие полезные команды

  • :screenshot — создание скриншота текущей веб-страницы;
  • :report — сообщение об ошибке в Qutebrowser;
  • :restart — перезагрузка Qutebrowser с сохранением текущих вкладок;
  • :messages — вывод всех сообщений состояния Qutebrowser;
  • :process — отображение всех текущих процессов Qutebrowser;
  • :version — отображение текущей версии Qutebrowser.

4.6 Управление настройками и конфигурацией

  • :config-clear — сброс настроек Qutebrowser до значений по умолчанию;
  • :config-diff — вывод всех изменённых пользователем настроек;
  • :config-edit — открытие файла config.py в редакторе.

4.7 Работа с закладками и быстрыми метками

  • M — работа с закладками;
  • Shift + M — работа с быстрыми метками;
  • B — загрузка ссылки быстрой метки;
  • Shift + B — загрузка закладки.

4.8 Подсказки и выделение

  • F — отображение подсказки на каждой ссылке на веб-странице и её открытие;
  • Shift + F — отображение подсказки на каждой ссылке и открытие в новой вкладке.

4.9 Дополнительные возможности

  • :adblock-update — обновление списка хостов для скрипта блокировки рекламы;
  • :clear-keychain — отмена текущей активной привязки клавиш;
  • :window-only — закрытие всех окон, кроме текущего.

5 Файлы конфигурации

  • В qutebrowser используются два основных типа конфигурационных файлов.
  • Их назначение и способ редактирования различаются.

5.1 autoconfig.yml

  • Автоматически генерируемый файл, куда сохраняются все изменения, сделанные через командную строку броузера (команды :set, :bind и т.п.).
  • При каждом изменении через UI/командную строку qutebrowser автоматически записывает настройки в этот файл.
  • Если существует config.py, autoconfig.yml не читается по умолчанию (нужно явно загрузить его в config.py).
  • Не рекомендуется редактировать вручную — лучше использовать команды :set, :bind или править config.py.
  • Чтобы открыть страницу настроек, введите :set без дополнительных аргументов — вы попадёте на страницу qute://settings , где можно редактировать различные параметры.
  • Для изменения отдельного параметра введите :set, затем имя параметра и новое значение.
    • Например, :set auto_save.session true — при следующем открытии Qutebrowser будут открыты предыдущие вкладки.
  • Чтобы получить справку о конкретном параметре, используйте :help и укажите имя параметра, например, :help tabs.position.
  • Для привязки и отмены привязки клавиш используйте команды :bind и :unbind.
    • Например, чтобы привязать цепочку клавиш ,v к команде :spawn mpv {url}, введите :bind ,v spawn mpv {url} ;
  • Другие полезные команды для работы с конфигурацией:
    • :config-unset — сбросить значение параметра к значению по умолчанию;
    • :config-clear — сбросить всю конфигурацию;
    • :config-cycle — переключить параметр между различными значениями.

5.1.1 Расположение

  • Linux: ~/.config/qutebrowser/autoconfig.yml;
  • macOS: ~/Library/Application Support/qutebrowser/autoconfig.yml (или в папке auto config — зависит от версии);
  • Windows: %APPDATA%\qutebrowser\autoconfig.yml.

5.2 config.py

  • Основной файл конфигурации на Python, позволяющий гибко настраивать qutebrowser с помощью кода.
  • Если config.py существует, qutebrowser игнорирует autoconfig.yml (если не загружен явно).
  • Для временных изменений используйте командную строку (:set), для постоянных — config.py .

5.2.1 Расположение

  • Linux: ~/.config/qutebrowser/config.py;
  • macOS: ~/.qutebrowser/config.py;
  • Windows: %APPDATA%\qutebrowser\config\config.py.

5.2.2 Как работать

  • Создать шаблон: :config-write-py --defaults (в броузере).
  • Открыть для редактирования: :config-edit (открывает файл в вашем редакторе).
  • Перезагрузить после изменений: :config-source.

5.2.3 Особенности

  • Это python‑скрипт.
  • Qutebrowser не изменяет этот файл автоматически.

5.3 Дополнительные файлы (опционально)

5.3.1 aliases

  • Хранит пользовательские алиасы команд (например, map <key> <command> ).
  • Обычно находится в той же директории, что и config.py.

5.3.2 quickmarks

  • Файл для быстрых меток (закладок по коротким именам).
  • Формат: имя URL (например, google https://www.google.com).

5.3.3 secrets

  • Для хранения чувствительных данных (пароли, API‑ключи).
  • Рекомендуется защищать правами доступа (chmod 600 secrets).

5.4 Как узнать путь к конфигурации

  • Откройте qutebrowser.
  • Введите команду :version — в выводе будет указан путь к директории конфигурации (config).

6 Настройка

7 Интеграция

7.1 pass

7.1.1 qute-pass

  • Скрипт qute-pass идёт в поставке qutebrowser.

  • Необходим модуль python tldextract.

  • Gentoo:

    emerge dev-python/tldextract
    
  • Переключатель --mode gopass использует gopass (Менеджер паролей gopass).

  • Для работы используется dmenu (пщ умолчанию rofi -dmenu). Задаётся переключателем --dmenu-invocation.

  • Рекомендуемая конфигурация (сочетания клавиш из Uzbl (https://www.uzbl.org/)):

config.bind('<z><l>', 'spawn --userscript qute-pass')  # Запуск qute-pass
config.bind('<z><u><l>', 'spawn --userscript qute-pass --username-only')  # Получение только имени пользователя
config.bind('<z><p><l>', 'spawn --userscript qute-pass --password-only')  # Получение только пароля
config.bind('<z><o><l>', 'spawn --userscript qute-pass --otp-only')  # Получение одноразового пароля (OTP)
config.bind('<z><l>', 'spawn --userscript qute-pass --mode gopass --dmenu-invocation "fuzzel --dmenu"')  # Запуск qute-pass
config.bind('<z><u><l>', 'spawn --userscript qute-pass --mode gopass --dmenu-invocation "fuzzel --dmenu" --username-only')  # Получение только имени пользователя
config.bind('<z><p><l>', 'spawn --userscript qute-pass --mode gopass --dmenu-invocation "fuzzel --dmenu" --password-only')  # Получение только пароля
config.bind('<z><o><l>', 'spawn --userscript qute-pass --mode gopass --dmenu-invocation "fuzzel --dmenu" --otp-only')  # Получение одноразового пароля (OTP)

7.2 qutebrowser-buku

7.3 wallabag

7.3.1 Алиас

  • Можно сделать через алиас :wallabag в config.py:
c.aliases = {
    'w': 'session-save',
    'q': 'close',
    'qa': 'quit',
    'wq': 'quit --save',
    'wqa': 'quit --save',
    'wallabag': 'spawn -v -m wallabag add {url}'
}
  • Запустите :wallabag из Qutebrowser.
  • Текущий url будет добавлен в список.

7.3.2 Сочетание клавиш

  • Я предпочитаю через сочетание клавиш:
    config.bind(',w', 'spawn -v -m wallabag --no-spinner add {url}')
    

8 Оформление и темы

8.1 Solarized for qutebrowser

Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.