luakit — awesome для веба

пример окна luakit и дополнения коммандСтранно, почему-то никогда не слышал от авесомщиков (а их не так уж и мало, судя по всему) или заядлых вимеров упоминания о luakit. О vimperator слышно на каждом углу, некоторые поминают uzbl и реже что-нибуть вроде jumanji. Не так давно с помощью планеты Arch Linux узнал о браузере luakit который пишется на C и lua. Хотя сами разработчики не называют его браузером, а годро именуют «browser framework», и это наименование явно оправдывается.
luakit так же как и uzbl использует GTK+ и WebKit для рендеринга себя и страниц, но awesome я помянул не зря — дело в том что, как видно из названия, для скриптогого языка у luakit выбран lua и только он. Не знаю из-за этого ли или ещё из-за чего но luakit c конфигом по-умолчанию в разы шустрее uzbl-tabbed (а про подсветку ссылок в jimanji я пожалуй промолчу, слишком уж она «не быстра»)...

Я не знаком с lua, но моих весьма скудных знаний хватило для минимальной правки дефолтных конфигов под себя (хотя кроме расцветки я ничего и не менял), а любители lua или пользователи awesome со стажем явно сделают себе много плюшек к браузеру.
В конфигурации по умолчанию работают табы (в отличии от многих подобных их можно выбирать даже мышкой), подсветка ссылок ну и естественно другое vi-style управление, хотелось бы привести основные моменты по первому запуску luakit и управлению им...

Ставим: yaourt -S luakit (так же существуют пакеты для Gentoo/Debian/Ubuntu/Fedora/ArchLinux (ознакомится с ними можно на главной странице проекта)
Копуруем настройки: mkdir ~/.config/luakit && cp /etc/xdg/luakit/*.lua ~/.config/luakit/
Почему-то без конфигов в домашней директории он у меня отказался запускаться очень матерясь на общесистемные.
Запускаем: тупо пишем luakit в консоле или выбираем его в меню
Радуемся =)

Хотя радоваться рано, надо познакомится с основными клавиатурными сочетаниями и коммандами.
o или :open и последующий ввод url открывает его в текущей вкладке
t или :tabopen и последующий ввод url открывает его в новой вкладке
r или :reload обновить страницу
Клавишей f можно войти в режим подсветки ссылок и вывода номера с помощью которого можно перейти по ссылке. Так же можно фильтровать ссылки вводя их текст или номер после нажатия f. Подсвечиваются не только ссылки но и элементы формы в которые так же можно перейти (или использовать их) с помощью клавиатуры.
Переход между табами как уже я сказал выше осуществляется с помощью мыши, но можно использовать Alt+номер вкладки
Команд на самом деле в разы больше, начиная от навигации back/forward, просмотра исходника страницы, увеличения/уменьшения размера страницы и заканчивая встроенным менеджером загрузок в девелоперской ветки. Ну а возможность расширения браузера с помощью lua просто поражает воображения.

Судя по активности в git сей браузерный фреймворк разрабатывается достаточно активно и не одним человеком, что лично меня радует и намекает что проект не зачахнет так не превратившись в дивный цветок как это сделал lumanji и многие другие почившие... В общем буду наблюдать за проектом.

Страница проекта, Wiki проекта

PS. Пост сей писал скорее для того что бы сообщество (особенно приверженцы awesome) узнало о сем чудном браузере и занялось уже прилеплением всяческих приятностей к нему, а то в русскоязычном сегменте сети упоминаний о нем крайне мало (грубо говоря их нет) что меня немного огорчает, ведь luakit уже сейчас вполне годный для использования в большинстве случаев...
analizer 10-12-2010
Ух ты какая прелесть. f - это просто киллер фича, почему я в фф соответствующего плагина не видел?
Расстраивает пока тот факт что в luakit не работает Compose (например в этом поле ввода вообще не работает), сейчас попробую с USE=helpers собрать

З.Ы. фокус на "подписаться на комментарии тоже не виден"
muhas 10-12-2010
перешел на низ страницы нажал f и 20 - чекбокс убрался =)
archlinux, установлен релиз luakit

а f у вимператора в ff есть, и у midori теперь тоже что-то схожее имеется
analizer 10-12-2010
про чекбокс другое я имел в виду, вот если из этого окна комментария нажать таб, то не будет видно где находится фокус.
спасибо за наводку про vimperator, юзал его когда-то давно, а про фишку такую не знал
muhas 10-12-2010
а походу фокуса и не будет без нового нажатия f, а по инпутам/текстареам бегает :(
ixti 10-12-2010
Вообще, конечно, jumanji весьма приятный браузер (если отбросить все претензии по багам), н лично я использую vimprobable2 (http://www.vimprobable.org/), пропагандирующего также минимализм. Конфгурация через пересборку. Почти все вкусняшки уже реализованы. В нём правда нет табов (как в джуманджи) и их не будет - автор не считает их функциями браузера. Но всё решается просто - vimprobable использует XEmbed протокол и его можно запускать в связке с tabbed (http://tools.suckless.org/tabbed), который был создан как демонстрация XEmbed на примере браузера surf (http://surf.suckless.org/).
muhas 10-12-2010
странно, я думал что vimprobable почил с миром... а tabbed когда игрался с surf не осилил :(
в итоге самыми перспективными на мой взляд были jumanji и uzbl(а этот даже под fb заводился, правда уже давно не удавалось мне это сделать), но тут весь в белом вышел luakit в разработчиках которого числятся и люди из uzbl(который видимо скоро помрет)


а вообще за ссылку на vimprobable спасибо, по ссылкам с него нашел пару приятных вещей... Не в курсе adsuck под linux собирается и работает?
fenriz 10-12-2010
В дебиан тестинг пока его нет( После двух минут попытки скомпилировать плюнул, попробовал vimprobable - вещь! Думаю это глючить не будет, как мидори, пожалуй глючить нечему, зато удобно)
anonim 10-12-2010
Табы не сохраняются, flash не играется, в общем на мусорку, для таких целей есть elinks. lynx и т.д.
analizer 10-12-2010
>Табы не сохраняются
lua в зубы и впердё

>flash не играется
УМВР, ЧЯДНТ?

>в общем на мусорку, для таких целей есть elinks. lynx и т.д.
Ты просто ниасилил
wilful 10-12-2010
Муха, спасяп те. Как всегда то шо нада или как минимум шоб поковырять =)
paulus 10-12-2010
anonim@
Я вот наоборот хочу узнать насчет реализации flashblock и adblock под luakit.

muhas@
Спасибо за пост, очень познавательно. Первый запуск luakit прошел без копирования настроек.
Тормоз 10-12-2010
А в этом браузере случайно подсветку ссылок не сделали по уму? :)
http://brokenbrake.biz/2010/10/15/Vimperator
paulus 10-12-2010
пробовал flash заблокировать с помощью BlockFlash2.js от Мидори - не вышло. Пожалуйста, подскажите...
paulus 10-12-2010
идея хорошая, но что-то он страницы загружает медленнее чем Хромиум, Мидори и ФФ. :-( IMHO
sash-kan 10-12-2010
для midori есть midorator: http://unixforum.org/index.php?showtopic=116333
сборки для squeeze и maverick: http://unixforum.org/up/sash-kan/
muhas 10-12-2010
@Тормоз нет. хотя работу follow можно поправить как понимаю, lua же во всех полях..


@paulus, userjs надо поддержку прикручивать http://luakit.org/projects/luakit/wiki/Custom_JavaScripts_howto но как что будет работать я хз... надо готовые js изучать походу... а вот по скорости хз - у меня он летает посравнению с хромиумом

@sash-kan, за наводку на midorator спасибо
paulus 10-12-2010
muhas@ js по wiki и пробовал прикрутить. Может действительна проблема в js. Тестировал luakit на сайте сильно нагруженном js и прочим мусором, так там он очень плохо себя ведет, а в общем очень мне понравился, только не хватает реализации adblock, flashblock, imglikeopera, noscript на lua - вот тогда бы он просто летал бы и цены ему бы не было! ;-) За проектом буду наблюдать, однозначно.

luakit уже лучше midori: стабильнее и на translate.google.ru нормально работает (без крякозяблов), на ЛОР пускает (в мидори что-то вечно ломается и не пускает пока все настройки не удалишь)...
abi 10-12-2010
Жаль что нет синхронизации закладок с xmarks :(
paulus 10-12-2010
так xmarks же вроде бы обещали закрыть? в luakit синхронизация или импорт какой-нибудь есть?
muhas 10-12-2010
не, нашли спонсора - не закрываются уже...
нету в luakit ничего :( да и работа с закладками достаточно неудобна(непривычна)
alparo 10-12-2010
luakit как минимум в develop версии умеет сохранять табы. надо просто жмякать ZZ вместо D.
чтобы блокировать флэши и прочую рекламу юзайте privoxy или аналогичные приблуды. фильтрация контента - не задача браузера, и надеюсь ее в luakit никогда не впилят.

думаю что к luakit можно приклеить js из uzbl который позволял работать с delicious - это к вопросу о синхронизации закладок.
paulus 10-12-2010
ну adblock у них в todo есть... не всем нужен прокси.

P.S. как в закладки страницы добавлять разобрался, а как посмотреть и выбрать в luakit эти закладки?
muhas 10-12-2010
так в дефолтном же конфиге вроде команда bookmark есть. её параметр как я понял и есть поиск в закладках
paulus 10-12-2010
:bookmark трям
добавляет адрес "трям" в ~/.local/share/luakit/bookmarks, а вот как просмотреть и перейти на выбранную закладку не пойму :-( "Огласите весь списочек" закладок...
alparo 10-12-2010
жмите gb или gB ('go bookmark') откроет вкладку с букмарками отсортированными по тэгам и кликайте по ним.
вроде как-то еще можно было манаджить их. но что-то не нахожу пока.
paulus 10-12-2010
alparo@ спасибо! gb, а потом f чтобы мышку не дергать :-)
alparo 10-12-2010
кстати. в этой вкладке с букмарками(и скорее всего на любом сайте вообще) можно юзать не только f.
можно жмякнуть / написать часть нужного урла, нажать энтер, перемещаться по найденным урлам кнопками n и N и когда подсветится нужный урл нажать еще раз энтер и ты перейдешь по нему. тоже имхо очень удобно и умно сделано!
Тормоз 10-12-2010
Только поиск через слэш - это стандартный функционал браузера (вроде - вообще любого). По крайней мере в "Опере" и FF так.
Канбут 10-12-2010
Тормоз, поиск поиском, а переход по ссылкам это другое.

У автора поста написано что при нажатие f можно фильтровать текстом ссылки так же как alparo предложил поиском по /
Тормоз 10-12-2010
Да почему другое? Если у тебя курсор (благодаря поиску) стоит на ссылке, нажатие Enter вызовет переход по этой ссылке.
Канбут 10-12-2010
точно! просто получается наоборот, сначала ищем потом переходим, а не как при f сначала входим в режим и если нашли то сразу переходим без нажатия enter. ступил что-то.

ps. luakit хорош, жаль lua плохо знаю, но вики, комментарии к этому посту и комментарии на форуме archlinux помогают
paulus 10-12-2010
Канбут@ хоть бы сслыку дал на комментарии арчеводов

alparo@ privoxy рубит слишком много нужного, например captha и ставит вместо них огромный квадрат и т.д. Больше проблем чем пользы, хотя вещь очень функциональная.
ixti 10-12-2010
@muhas
> странно, я думал что vimprobable почил с миром...
не... :)) активно пилится :))

> а tabbed когда игрался с surf не осилил :(
там не очевидно, и на самом деле чтоб адекватно работало tabbed надо пересобирать, чтобы по Ctrl+Enter нормально новое окно спавнилось :)) а в целом, что для vimprobable, что для xterm вызов tabbed одинаково выглядит. Сначала стартуем tabbed в detattched режиме: tabbed -d - и записываем последнюю строчку, например:

ixti@s300:~$ tabbed -d
37748739

Ну а остальное дело техники ;)) Чтобы стартануть новую табу с surf'ом, vimprobable'ом или xterm'ом: (surf|vimprobable) -e 37748739 или xterm -into 37748739

Т.е. в один tabbed можно пихать что угодно. Другое дело что надо tabbed пересобрать чтоб можно было тупо запускать tabbed и жмякать Ctrl+Enter чтобы запускать любимое приложение :)) Я делаю примерно так: компиляю vimprobable, и tabbed натравленный на запуск vimprobable-bin по нажатию Ctrl+Enter. Сохраняю их как vimprobable-bin и vimprobable-tabbed ну и к ним запускной скрипт vimprobable (как тот что выложен на офф. сайте вимпробабля) :))

> Не в курсе adsuck под linux собирается и работает?
и собирается и работает :)) токма тот же автор вимпробабля советует всё же парйвокси :))

PS чего-то подписаться на коментарии не работает :)) так бы раньше ответил ;))
muhas 10-12-2010
надо разобраться с tabbed, а то сходу не осилил. да и ща немного недопонимаю, но уже ближе к осознанию

подписка вроде работает, может в спам письмо ушло или подписаться забыл ^_^
hatred 10-12-2010
Мухас, дядько, ну нафига ты мне про этот наркоманский браузер рассказал, тем более, что к LUA я не ровно дышу :))))))

малость подправил тему и отрисовку вкладок, что бы номера оных выделялись: http://pastebin.com/G2HVmUAj

номера неактивных вкладок: синие
номера активной вкладки: зелёная
номер загружаемой вкладки: оранжевый

цвета поменять можно
muhas 10-12-2010
@hatred я надеялся что кто-нить как ты заинтересуется =)
надежды оправдались.

а поменял в отрисовке только добавив загруженные и нет или ещё чего?
hatred 10-12-2010
не понял вопроса малость.... в общем смотри снимок экрана:
http://img824.imageshack.us/img824/6320/screenshoot201012152313.png

3 вкладка активная
5 - загружается
остальные - неактивные.

Вызвано было тем, что читал статью. в названии было "#." (число точка), несколько смущало и убавляло наглядности, сейчас кажется лучше.
muhas 10-12-2010
вопроса не понял, а ответил именно на него. спасибо, заберу себе в theme.lua
hatred 10-12-2010
одним theme не отделаешься: я там всего лишь добавил два параметра которые юзаю в модифицированном коде в window.lua (там две строчки: одна полностью новая, другая малость подправленная)

Кстати в Develop версии сделали внутренний менеджер закачек, при сохранении файла можно выбрать куда сохранять. Пока не сообразил - можно ли вернуть старый вариант с вызовом wget (которому рекомендую ещё передавать файл куков luakit). Ещё из вкусного: по хоткею "u" открываются ошибочно закрытые вкладки.
muhas 10-12-2010
разрабам для дефолтного конфига патч зашлешь или как?

надо переходить на девелоперскую ветку. открытие закрытых вкладок нехватало, на опере в далекие годы подсел на это)

блин, адблок обещали ещё... здается что это будет самый Ъ браузер)
hatred 10-12-2010
Засылать, врядли, сейчас времени почти нету, по мелочи только успеваю. Можешь сам заслать, не обижусь :)

Адблок не юзал, так что не особо холодно-жарко, канал жЫрный (на работе, сейчас у провайдера работаю), минотор большой (даже два), реклама уютненько украшает статьи. А порнобанеры радуют глаз всем, в т.ч. от прямого начальника до генерального :-D

А вот проверки орфографии в окнах ввода не хватает, особенно по двум (или больше) словарям.

И не понял правда, как нормально копировать ссылку текущую (активного окна), по идее "yy", но не всегда потом вставляется по Shift-Ins/Ctrl-v
alparo 10-12-2010
УМВР
копировать линк можно только по yy. И вроде всегда потом Shift-Ins срабатывает.
hatred 10-12-2010
убивал бы за ответы вроде ЧЯДНТ, УМВР. Причин у "УМВР" и "ЧЯДНТ" столько же и такие же, как и причин по которым в линуксах критически мало вирусов. Если время будет, определю тест-кейсы, проверишь у себя, хотя причина тут не в luakit, скорее всего, а в многогранности бытия буффера обмена в иксах :)
hatred 10-12-2010
В общем, вот Use-cases, я думаю, они не все, от такой неконсистентности иногда можно войти в ступор :) не смертельно

Общие условия:
- Окружение IceWM
- luakit-develop-git (AUR)

I. Use case, окружение IceWM
1. В опере (10.50) на ссылке сделано "Скопировать адрес ссылки"
2. Переходим в luakit, открываем страницу, делаем yy
3. По хоткею запускаю gmrun (в нем есть активное выделение, которое перебивает "мышиный" буффер обмена, это который по средней кнопке мыши)
4. Вбиваю там leafpad (простой, Gtk текстовый редактор)

5. Делаю Shift-Ins: вставляется ссылка, что была скопирована в опере (или любое прошлое копирование в Qt/Gtk)
6. Делаем Ctrl-v: вставляется ссылка, что была скопирована в опере (или любое прошлое копирование в Qt/Gtk)
7. Нажимаю среднюю кнопку мыши: ничего не вставляется (причина выше)

II. Use case, окружение IceWM, после выполнения Use Case I
1. Перехожу в luakit
2. Нажимаю t (открыть в новом табе)

3. Нажимаю Shift-Ins: ничего не вставляется
4. Нажимаю Ctrl-v: вставляется ссылка скопированная в опере (или любое прошлое копирование в Qt/Gtk)
5. Нажимаю middle-button: ничего не вставляется

III. Use case
1. Переходим в luakit
2. Делаем yy
3. Нажимаем t или o (без разницы)

4. Нажимаю Shift-Ins: вставляется адрес страницы -- ПРАВИЛЬНО
5. Нажимаю Ctrl-v: вставляется ссылка скопированная в опере (или любое прошлое копирование в Qt/Gtk)
6. Нажимаю middle-click: вставляется адрес страницы -- ПРАВИЛЬНО

Отсюда делаю вывод, что используется "мышиный" буффер обмена, который одним неловким движением можно перетереть.

IV. Use case, закрепляем результаты
1. Переходим в luakit
2. Делаем yy
3. Переходим в УЖЕ ЗАПУЩЕННЫЙ lieafpad

4. Нажимаю Shift-Ins: вставляется ссылка скопированная в опере (или любое прошлое копирование в Qt/Gtk)
5. Нажимаю Ctrl-v: вставляется ссылка скопированная в опере (или любое прошлое копирование в Qt/Gtk)
6. Нажимаю middle-click: вставляется адрес страницы -- ПРАВИЛЬНО
alparo 10-12-2010
да. вся проблема в иксовых буферах. я не силен в описании Use-cases, попробую как смогу

1. оперы нет, посему запускаю vimperator. На ссылке делаю "Скопировать адрес ссылки".
2. запускаю luakit, жму t.
3. делаю Shift-Ins: вставляется ссылка, что была скопирована в vimperator.
4. нажимаю среднюю кнопку мыши: вставляется ссылка, что была скопирована в vimperator.
5. делаю Ctrl-v: вставляется ссылка, что была скопирована в vimperator.
6. в luakit жмякаю ESC(чтобы выйти из командного режима), и потом yy.
7. теперь снова t
8. делаю Shift-Ins: вставляется ссылка, что была скопирована в luakit.
9. нажимаю среднюю кнопку мыши: вставляется ссылка, что была скопирована в luakit.
10. делаю Ctrl-v: вставляется ссылка, что была скопирована в vimperator.

в urxvt вставляются те же значения, за исключением того, что в нем не срабатывает комбинация ctrl+v.
hatred 10-12-2010
Ну собственно, вся проблема в этом буффере. А бяка в том, что если мышью выделить текст в окне и из контекстного меню скопировать, оно поместится не в мышиный буффер. Ладно, не суть, если что напишу или патчик или баг-репорт.
hatred 10-12-2010
Кстати, дико тормозить на скроле глагне psto.net в luakit
fenriz 10-12-2010
И не только в нем. в vimprobable и midori у меня тоже тормозит. в другом не пробовал
hatred 10-12-2010
опять таки, Opera - страницы скролится медленней, чем остальные и график CPU на ней подскакивает от нуля, но крайне комфортно. Видать из-за JS и различных движков. На работе в Chromium нормально тоже.
Lupo Alberto 11-01-2011
Не могу пока понять, как переназначить клавишу Mod1 :(
P.S. За статью и комментарии к ней огромное спасибо.
muhas 11-01-2011
как я понял только с помощью xmodmap. ибо Mod* определены уже до luakit - иначе просто переделывать все хоткеи использующие Mod1 для использования Mod4, например.
Lupo Alberto 11-01-2011
Что-то тормознул, в самом деле, перепишу конфиг. Спасибо.
xcfw 12-05-2012
Прошу помощи.

Хочу чтобы биндились клавиши и во время русской раскладки. Для вимператора использую следующий конфиг

http://pastebin.com/VHJ9BnGB

Можно ли его в luakit интегрировать?

И еще один вопрос, как поменять стиль подсветки по нажатию на f, дело в том, что желтый пямоугольник под кнопкой перекрывает текст ссылки, так что ее совсем не видно, не нашел где менять стиль.

Ну и внесу свою лепту, дело в том, что мне было неудобно пользоваться цифрами при переходе по ссылкам, оказывается автору луакита тоже, поэтому в /home/%user%/.config/luakit/rc.lua правите строчку, до нижеописанной кондиции

-- To use a custom character set for the follow hint labels un-comment and
-- modify the following:
local s = follow.styles
follow.style = s.sort(s.reverse(s.charset("jkhiofd"))) -- I'm a lefty

jkhiofd - это клавиши которые Вам удобно щелкать. Всем добра!
Plaque 12-06-2012
Привет. Удалось заставить работать штатный adblock.lua; правда, при этом он претерпел кучу изменений, но могу выдать хинт на тему того, как исправить «оригинальный», чтоб работал. Или, как вариант, можно юзать более функциональный.
Репо тут: https://github.com/Plaque-fcc/luakit-adblock/