Uzbl




Uzbl — web-браузер следующий unix-философии — «Пишите программы, делающие одну вещь, но делающие её хорошо». Официальный сайт: uzbl.org

Как устанавливать Uzbl в вашем дистрибутиве, вам уже должно быть известно лучше. Я ставил его в Ubuntu 9.10 из соответствующего PPA-репозитория. Запускается он с помощью команд uzbl-core или uzbl-browser.

После запуска uzbl вы не увидите всякие привычные виджеты типа кнопок «Вперёд» и «Назад». Доступна только строка статуса, да и то не факт что она не будет отключена в вашей конфигурации. Управление осуществляется с помощью множества горячих клавиш.

uzbl-core/uzbl-browser показывает только одну страницу и это лучшее решение. Оно даёт простоту реализации и делает браузер более безопасным.

Просмотр нескольких страниц можно разрешить разными способами:

  • на уровне оконного менеджера:

    • разбросать окна по рабочим столам: почти любая графическая среда и оконный менеджер
    • сгруппировать окна с помощью какой-нибудь фичи оконного менеджера (табы, мозайка, группировка в панели задач): fluxbox, kwin, pekwm и всякие tiled-wm
  • на уровне приложения:

    • с помощью сторонних приложений запускать uzbl в «контейнерах»: uzbl-tabbed, uzbltreetab, uzbltab, suckless tabbed

Далее, чтобы узнать какие комбинации клавиш существуют, читайте README, смотрите примеры конфигурационных файлов (у меня они нашлись в /usr/share/uzbl/examples/config/uzbl/).

Управление браузером можно осуществлять с помощью механизмов FIFO и SOCKET. Далее я покажу на примере применение FIFO.

Uzbl зависит от GTK, так как это требуется webkit’ом. Хотя используется и в некоторых других местах, но они не настолько значимы. Webkit даёт поддержку различных плагинов, javascript, стандартов html/css и многого другого.

Настройка uzbl

Уже давно считается нормой графический интерфейс с вкладками. По умолчанию с uzbl шёл uzbl-tabbed. Мне не понравились его стандартные настройки и настроить по своему не получалось. Недавно удалось чуть-чуть поработать с оконным менеджером pekwm, одной из интереснейших фич которого является группировка окон с переключением через вкладки в заголовке. В ~/.pekwm/autoproperties добавляем новую секцию:

Property = "^[uU]zbl.*,.*" {
Group = "uzblgrp" {
Size = "0"
}
ApplyOn = "New Start Reload Transient"
}

Для дальнейшей настройки самого uzbl в ~/.config/uzbl/ были скопированы примеры конфигов из /usr/share/uzbl/examples/config/uzbl/.

Мне с самого начала не нравились стандартные комбинации клавиш такие как переход вперёд/назад, остановка загрузки страницы и обновление. Чтобы исправить такое положение в конфиг записал свои привязки:

@cbind  <Alt><Left>   = back
@cbind  <Alt><Right>  = forward
@cbind  <Escape>      = stop
@cbind  <F5>          = reload
@cbind  <Up>          = scroll vertical -20
@cbind  <Down>        = scroll vertical 20

Для быстрого доступа к любимым поисковикам и википедии сделал похожие на приведённые выше привязки горячих клавиш:

# --- Web searching binds ---
@cbind  gg<Google:>_         = uri http://www.google.com/search?q=%s
@cbind  wr<Wikipedia(ru):>_  = uri http://ru.wikipedia.org/w/index.php?title=Служебная:Search&search=%s
@cbind  we<Wikipedia(en):>_  = uri http://en.wikipedia.org/w/index.php?title=Special:Search&search=%s&go=Go
@cbind  nn<Nigma:>_          = uri http://nigma.ru/index.php?s=%s

Теперь как только два раза нажму клавишу «G» в строке состояния вместо адреса появится «Google:» и uzbl будет ождать ввода строки для поискового запроса. Аналогично работает переход к любой другой странице по нажатию на клавишу «O»

# --- Uri opening prompts ---
@cbind  o<uri:>_       = uri %s

Так как uzbl придерживается философии UNIX-way, то загружать файлы из инета он не умеет. С этим же могут гораздо лучше справиться специальные программы, как например, wget. В ~/.config/uzbl/scripts/download.sh уже лежит скрипт загрузки, но он не даёт возможности сохранить в любой каталог на выбор. Я его заменил на свой:

#!/bin/sh
GET="wget"
URL="$8"
FILENAME=$(echo $URL | awk -F'/' '{print $NF}')
DEST=$(zenity --file-selection --save --filename="$FILENAME" --title=Сохранение\ файла)
if [ -n "$DEST" ]
then
wget -O "$DEST" "$URL"
fi

С помощью zenity сначала покажем диалог сохранения файлов, а потом wget’ом загрузим туда файл по ссылке из браузера. За получение скриптов из домашнего каталога отвечает:

set scripts_dir       = ~/.config/uzbl/scripts

Ещё была замечена проблема с ручным выбором кодировки. В uzbl есть переменная дефолтной кодировки и есть возможность управления через FIFO. В конфиг попала такая строчка:

@cbind  !code _         = sh "echo 'set default_encoding = %s' > $4; echo 'reload' > $4"

Например, по вводу команды «!code UTF-8» будет установлено значение «UTF-8» в переменную «default_encoding» и командой «reload» обновлена страница. Обратите внимание на %s — строку идущую за командой, из которой ожидаем получить название кодировки и $4 — указатель на FIFO-файл.

В FAQ на сайте uzbl мне очень понравился последний вопрос и ответ:
Q: Вы действительно считаете всё это дружелюбным к пользователю?
A: Да. Если вы не согласны, не пользуйтесь этим 🙂

Uzbl: 1 комментарий

Добавить комментарий