Home
Old fashioned S010

http://www.s010.lv/  ]
userinfo  ]
calendar  ]
friends  ]

Firefox: remapping mouse buttons 18 Nov 2009|08:56pm

Recently I changed my Firefox usage pattern. Instead of opening FF fullscreen, I now tend to open FF alongside some other window/s, like xterm or gvim.

Naturally, some or even many websites don't quite fit into the little space that is given to them now and so the problem of scrolling the page sideways as well as vertically arises. I remembered a feature called 'Autoscroll' and enabled it. When 'Autosroll' is enabled you can press the middle mouse button (which nowadays is almost always a scrolling-wheel, not a button), drag the mouse and the page scrolls in the direction you drag the mouse.

But as I used autoscroll, little by little, I got frustrated with the 'middle-button'. Scrolling-wheel was not designed to be pressed too often, I would've preffered to use an ordinary button any day.

That's when I remembered that Firefox -- is an open-source browser. I decided to download it's sources and implement the ability to remap mouse buttons arbitrarily.

The first thing I did when I got FF's source was find . -iname '*mouse*'. I found a file with intriguing name, content/events/src/nsDOMMouseEvent.cpp, tried to modify it, but there was no effect.

Then I found widget/src/gtk2/nsWindow.cpp, which is one of the files that interfaces FF with GTK2 and which translates GTK2 events to FF's. At first I tried out to make a hardcoded remap, i.e. changed

... PRUint16 domButton; switch (aEvent->button) { case 1: domButton = nsMouseEvent::eLeftButton; break; case 2: domButton = nsMouseEvent::eMiddleButton; break; case 3: domButton = nsMouseEvent::eRightButton; break; ...

in the nsWindow::OnButtonPressEvent function to

... PRUint16 domButton; switch (aEvent->button) { case 1: domButton = nsMouseEvent::eLeftButton; break; case 2: domButton = nsMouseEvent::eRightButton; break; case 3: domButton = nsMouseEvent::eMiddleButton; break; ...

It worked, so next I added a new about:config variable, mozilla.widget.mouse-button-map:

Free Image Hosting at www.ImageShack.us

And wrote a function, which when the Firefox starts up, parses this variable, if it's present, and maps the buttons accordingly.

The format of the variable... Hm, that'll be a bit hard to explain...
The position in the string, is the GDK button number of the mouse button you want to remap. The number on this position in the string, is also a GDK mouse button number and denotes to which button you want to remap the button! If there is an 'm' on the given position, than it means the previous button will invoke the context menu (Look through the nsWindow::OnButtonPressEvent function, the context menu button is kind of mapped separately). If you don't want to remap the button on this position, put any char ther other than [0-9m].
For example, given a value "13m2", the button will be remapped the following way:

  1. left mouse button -- will be remapped to left mouse button =)
  2. middle mouse button -- will be remapped to right mouse button and it will also invoke context menu when pressed
  3. right mouse button -- will be remapped to left mouse button
The scrolling function of the mouse will stay as it was, because scrolling is processed as button clicks, with GDK button number 6 and 7, again, see the nsWindow::OnButtonPressEvent function.

And so, now I can autoscroll with the right mouse button =)

Here's the patch: ff_mouse_button_remap.patch.

Crossposted from http://s010.lv/.


Для кросспоста юзаю свой старый добрый Питон-говноскрипт, ljpost.py если что.

Поэтому топик неправильно запостился (я счас испрявлю), потому что запускался скрипт так: ljpost.py -s Firefox: remapping mouse buttons ..., кавычки надо =)

Еще я забыл написать, что эта фишка, обмен местами правой и средней кнопки будет на лаптопах полезна, где средней кнопки нет вообще, и надо две сразу зажимать.


Кстати не знаю заметил ли кто-нибудь, но на след. день после поста, я улучшил иконку эту свою =) Во-первых сделал rips на краях более четкими, во-вторых сделал пятно в левом нижнем углу, ну и по мелочам.

Image Hosted by ImageShack.us ->

Реалистичное (до какой-то степени) пятно было довольно сложно сделать. С прысками еще более менее понятно, а вот что в самой капле нужно по ободку Airbrush'ем пройтись чтобы сделать край по кругу темнее -- я случайно обнаружил. И слой с кляксой надо переводить в режим "Darken only".

post comment

18 Nov 2009|05:57pm
Бгыгы, ну вот, запустил компиляцию FF с патчем из пред. псто на лаптопе. Интересно сколько это займет времени и сможет ли он вообще скомпилится =)
Вы знаете что у компиляции Firefox'а есть минимальные системные требования? xD
* 512MB RAM with lots of available swap space. For static and XULRunner builds, 1GB RAM minimum. Additional RAM will significantly decrease build time.
* For debug builds: at least 2 GB free disk space (2.5 GB recommended)
* For optimized builds: at least 600 MB free disk space (1 GB recommended)

Учитывая что когда я одновременно включаю PC, который атлон, и laptop, который Pentium M 1400Mhz с 512 MB оперативки, то PC грузиться заметно быстрее, на секунд хмм, 6-8, что по меркам компьютера -- целая вечность, думаю компилить вполне возможно до утра and beyond будет. Тем более с 512 рамы.

Вот как на работе скомпилить не знаю. Там стоит просто очень старый centos, и по хорошему его уже давным давно снести пора.

А вообще, блин, вот бы и на работе заюзать старую добрую OpenBSD. Но так как юзаем коммерческий софт, разспространяемый в бинарном виде под линукс -- не тут то было. Даже не смотря на то что в OBSD есть binary compatibility с линуксом, FreeBSD, и еще каким-то ОС, не помню. Это надо еще чтобы все либы тоже были линуксовые. Получается у тебя такой небольшой линукс внутри OBSD (Вы давно проверялись у доктора на наличие у вас линукса?). И плюс этот функционал в текущий момент только на i386 есть. И плюс не всегда все гладко работает. Если линуксовый Acrobat Reader у меня на лаптопе работает просто наотлично, а Opera немного подглюкивает (ну в основном в связи с флешем), то Skype pretty much неюзабелен.

Что-то еще хотел сказать. Не помню.. Black hole memory! ><


А почему этот пост идет перед постом с патчем? Потому что мне уже две недели лень поставить правильное время на компе! ><

Update: скомпилился, start time 00:20, end time 01:26 o_o
2 comments|post comment

Перикл, Понюхал, Потопал, Похакал... 18 Nov 2009|12:45pm
Жесть, так быстро выходной день прошел D:
Сидел вот, ковырялся в Firefox'е... Бесит что так часто трудозатраты как-то не соответсвуют результату. Почти два дня там lurk'ал, а результат каких-то 20 строчек кода. Не знаю, может потому что первый раз, и еще до фига времени ушло на всякие проблемы типа cd /usr/ports/www/firefox35 && make build ничего не делает и на компиляцию, лол. Компиляция ФФ с нуля на моем нехуевом Athlon64 X2, с 4 гигабайтами памяти занимает что-то около 50 минут.
Но... Но блджад, это было интересно! Сча накатаю псто на хоумпагу, заодно и кросспостер проверим.
post comment

17 Nov 2009|12:19pm

Ahh! There's nothing quite as awful like a bottle of Carlsberg and a can of Hot & Spicy Pringles on a pre-holiday night!

Cheers!

Bloody hell! This is the second failed attempt to have a bottle of beer after work! A week or so ago, on a Friday nite I bought a bottle of Bauskas and twas fake, it was! Can you imagine? Tasted like some sort of a piss and the foam was absolutely fake! I could swear it!

7 comments|post comment

15 Nov 2009|03:22pm
I have one word for you people, ROFL!
По мотивам недавнего поста [info]moosatov. Блин, не могу пост найти, ну короче смысл в том что http://mustacheandmonocle.com/.

Скриншот с DVD "Amuro Namie first anniversary 1996 Live at Marine Stadium" -> искуственный моноколь -> ацкая автарка =)

Free Image Hosting at www.ImageShack.us -> Free Image Hosting at www.ImageShack.us ->
2 comments|post comment

14 Nov 2009|07:34pm
Чем я занимаюсь субботним вечером/ночью:

Free Image Hosting at www.ImageShack.us
1 comment|post comment

13 Nov 2009|06:00am
Once, adv.:
	Enough.
		-- Ambrose Bierce, "The Devil's Dictionary"

Fridaily fortune(6).

post comment

Testing 1 2 3 12 Nov 2009|10:17am
Кому не лень: можете ли вы восстановить события по

этой картинке? )

Ответ: я сделал опрос типа для фанов Намие, чтобы узнать есть ли между ними какие-то закономерности/похожести, и специально написал что это именно для фанов Намие, и нет! все равно нашлись люди которые не фаны, но анкету заполнили x)
post comment

LFN; хоумпага 11 Nov 2009|05:44pm

Ох, чего-то слушал саундтрек La Femme Nikita, про который я писал однажды... Зашел на YouTube, посмотрел видео, и у меня аж мурашки пошли.
Пересматривать буду сто-процентно. И саундтрек куплю, настолько он хорош.
Реально лучший сериал и вообще видео-продакшн что я когда-либо видел.

Кстати сейчас заметил что музыка конкретно здесь немного напоминает Фоллаутовскую о_о;; "Поющий металл"...

С википедии:
Since its inception, the series did not have a large enough budget to finance complex action sequences (as seen in later dramatic spy fiction or spy thriller TV series such as Alias or 24). Its creative team exhibited great ingenuity marshalling its modest resources, channeling their energies into the writing of episodes with more complex plot structures, fuller character development, and more substantial dialogue for the series' talented actors (all of which aspects are less costly than filming special effects in action sequences).


Перевел свою хоумпагу на новый самопальный "движок", о котором я писал несколько постов обратно. Еще много вещей которые можно было бы доделать, но так в принципе мне нравится -- очень удобно теперь. Самая хорошая фишка в моем "движке" я думаю это постраничные тэги -- типа человек заходит и сразу может увидеть примерное содержание, а также быстро найти интересующую его информацию. Ну и хорошо что теперь Анонимус может срать в каменты х)
10 comments|post comment

10 Nov 2009|03:44am
Десктоп тюнинг

Free Image Hosting at www.ImageShack.us

Предлагаю померятся письками! Выкладывайте свои :D
9 comments|post comment

09 Nov 2009|08:18pm

Гм, вчера чего-то ни с того ни с сего решил пересесть на calmwm(1) -- это можно сказать нативный менеджер окон OpenBSD. Он, на ряду с fvwm и инфузорей-twmфелькой, есть в base install'е. Насколько я понял, он весьма популярен среди девелоперов OBSD.

Ну и классный WM. Управление почти полностью с клавиатуры, декорации окон размером 2 пикселя, и вообще, довольно таки быстро "вливаешься" и чувствуешь себя уже как дома.

Скрин, хотя смотреть то не на что :D

Free Image Hosting at www.ImageShack.us

И мне сегодня приспичило и на работе, где у меня стоит древний CentOS-linux, поставить cwm, но он естественно сначала вежливо отказался компилироваться, но после нескольких часов, мне удалось его уговорить. http://s010.lv/files/cwm_linux_20091109.tar.gz tar zxf cwm_linux_20091109.tar.gz
cd cwm_linux_20091109
make
su
make install

Из README файла cwm: DESCRIPTION cwm is a window manager initially inspired by evilwm[1]. It developed out of modifications to evilwm, but eventually the code base of evilwm did not accomodate well for the new features added. So calmwm was written from scratch. Its main goal is to be as efficient as possible, while providing a very clean, simple & attractive aesthetic. cwm has several novel features, including the ability to search for windows. HIGHLIGHTS IN RELEASE TWO * Improved alt-tabbing, including the ability to reverse cycle. * Display of a context menu when alt-tabbing, showing the previous, current and next window in the cycle order. * Much improved ranking in search. * In search-menus, the ability to list every item. HIGHLIGHTS IN RELEASE THREE * More search ranking improvements * Many contributions by Antti Nykänen: keyboard binding "i18n", show window labels in minimized window menu, automatic window grouping, MWM hints support & some bug fixes. * Xft support & the addition of the -f flag (see manpage).


Есче забыл написать

До этого юзал XFCE4, а XFCE4 -- есть десктоп менеджер, то есть у него есть таскбар, панель управления, графический файловый менеджер и т.д. cwm -- оконный менеджер, да еще и аскетичный, соответственно у него ничего этого нет. Мне оно все ининадо, кроме файлового менеджера, а если быть точным концепта "дабл-клик".

Ну если кто помнит, в прошлом я писал утилитку "op" которая и была дабл-кликом для командной строки.
Вчера я ее естественно вспомнил эту утилитку, но она у меня еще тогда "сломалась" -- я столкнулся с проблемами, насколько я помню связанными с fork/одновременным_выполнением_нескольких_прог/перенаправлением_ввода_вывода и для того чтобы их преодолеть, мне пока не хватает знаний по системному программированию юниксов...

Так вот, к чему я все это веду: меня вчера осенило что тоже самое что я писал на Си, можно проще, быстрее, эффективнее и мощнее реализовать банальным шелл скриптом Т______Т

op.sh )

Юзается все это дело так, кладем скрипт допустим в ~/bin/op, делаем симлинки ln -s ~/bin/op ~/bin/vw; ln -s ~/bin/vw; и тогда в зависимости от того что там в скрипте, можно будет открывать файлы пися op <file>.

f -- это малюсенькая прога на Си, форкер. Она просто запускает форкает программу которую ей дают как параметр. Вот она: http://s010.lv/files/f.c. Конфигурирется она след. образом. ~/.f/redir_stdout -- список прог, которым перенаправлять стандартный вывод в /dev/null; ~/.f/redir_std{in,err} -- аналогично. Если существует файл ~/.f/invert -- то все инвертируется, то есть по умолчанию выводы/вводы перенаправляются, и НЕ перенаправляются только для прог упомянутых в тех трех файлах =)

Реализация op'а на шелле, также позволяет легко заюзать file(1) kekekeke :D

post comment

06 Nov 2009|06:00am
Fortune's Real-Life Courtroom Quote #25:

Q:  You say you had three men punching at you, kicking you, raping you,
    and you didn't scream?
A:  No ma'am.
Q:  Does that mean you consented?
A:  No, ma'am.  That means I was unconscious.

Fridaily fortune(6).

3 comments|post comment

i lol'd 02 Nov 2009|11:05pm
The type system was added primarily to help the compiler-writer distinguish floats, doubles, and characters from words on the new PDP-11 hardware. This contrasts with languages like Pascal, where the purpose of the type system is to protect the programmer by restricting the valid operations on a data item. With its different philosophy, C rejects strong typing and permits the programmer to make assignments between objects of different types if desired. The type system was almost an afterthought, never rigorously evaluated or extensively tested for usability. To this day, many C programmers believe that "strong typing" just means pounding extra hard on the keyboard.
* * *
Save a tree -- disband an ISO working group today.
-- Anonymous
* * *
I often tried to learn the great Emacs editor/IDE/operating system. The last time I tried it, I spent some time getting comfortable with it until I wanted to customize my .emacs file.

That was the point when I entered vi .emacs. As soon as I realized what I’ve done, I knew that Vim has won me over a long time ago.
http://blog.interlinked.org/tutorials/vim_tutorial.html
post comment

30 Oct 2009|06:00am
	THE LESSER-KNOWN PROGRAMMING LANGUAGES #8: LAIDBACK

This language was developed at the Marin County Center for T'ai Chi,
Mellowness and Computer Programming (now defunct), as an alternative to
the more intense atmosphere in nearby Silicon Valley.

The center was ideal for programmers who liked to soak in hot tubs
while they worked.  Unfortunately few programmers could survive there
because the center outlawed Pizza and Coca-Cola in favor of Tofu and
Perrier.

Many mourn the demise of LAIDBACK because of its reputation as a gentle
and non-threatening language since all error messages are in lower
case.  For example, LAIDBACK responded to syntax errors with the
message:
	"i hate to bother you, but i just can't relate to that.  can
	you find the time to try it again?"

Fridaily fortune(6).

2 comments|post comment

MY LOVE 27 Oct 2009|01:32pm
Несколько часов назад, на токкийской радиостанции J-WAVE прозвучала полная версия новой песни Намие Амуро, MY LOVE! 16 декабря выходит новый альбом, название еще не объявлено. И на данный момент, только две песни (не считая WILD и Dr.) из нового альбома были представлены общественности, MY LOVE и COPY THAT.

Трэк листинг:
 <品番>AVCD-38011
【CD収録内容】
・WILD
・Dr.
・MY LOVE
 ※FASHION×MUSIC×Vidal Sassoonキャンペーンソング
・COPY THAT!
 ※FASHION×MUSIC×Vidal Sassoonキャンペーンソング
・FAST CAR
・BAD HABIT
・LOVE GAME
・Steal my night
・Shut Up
・The Meaning Of Us
・Defend Love
全12曲収録予定
曲順未定

4 новых PV (aka promotional video, aka клип) будет.

Собсно MY LOVE, качество паршивое, с радио записано причем видимо каким-то кривым способо:
post comment

OH SHI- 26 Oct 2009|12:01pm
В воскресенье в Мазсалацком крае на землю упал метеорит, создав воронку диаметром около 20 метров и глубиной около 10 метров.

http://rus.delfi.lv/news/daily/latvia/v-mazsalace-upal-meteorit-sozdav-voronku.d?id=27611775
http://www.delfi.lv/news/national/politics/specialists-mazsalaca-nokritis-dures-lieluma.d?id=27616323



UPD: фейк это блин >=(
5 comments|post comment

23 Oct 2009|06:00am
Not Hercules could have knock'd out his brains, for he had none.
		-- Shakespeare

Fridaily fortune(6).

post comment

22 Oct 2009|12:32am
Добавил вот еще облако тэгов:
Free Image Hosting at www.ImageShack.us

Олсо приделал банхаммер для админа >=)
На этом пожалуй пока и остановлюсь. Теперь немного потестировать, и сделать какой-то нормальный внешний вид.
post comment

А чё, уже всё? 21 Oct 2009|01:22am
HINOI TEAM - Everybody Dance

В советских институтах заставили учить PHP, ну я подумал почему бы наконец не переписать свою хоумпагу на чем-то более подходящем чем Си и Си++ для данной задачи.

Ну че, поставил базу данных PostgreSQL

Браузил однажды ОпенБСД кстати 4.6 вышла на днях! журнал, http://undeadly.org/, и увидел в посте об обновлениях портов эту СУБД. Зашел на сайт.. и как-то мне понравилось, ч0ткая документация, поставилась без проблем и админовский GUI простой, понятный и я без какого-либо труда создал себе схему для хоумпаги.
pgAdmin III (на скрине не видно, но в нем также есть простенький SQL Query Window, где можно вручную какие-нибудь действия проводить, исследовать, девелопить SQL (анализатор запросов тоже есть)):
Free Image Hosting at www.ImageShack.us
Free Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.us

посидел покодил два вечера и MISSION ACCOMPLISHED. Ну то есть почти акомплишд, нужны просто косметические доводки, но так, все что я хотел сделать -- сделал, а именно
  • Блого-подобная хоумпага; абстракция: типа page'ы, и на каждом page'е 0..inf article'ов.
  • Добавление/редактирование/удаление пстов через web
  • tag'ы для постов, и возможность посмотреть все псто с given тэгом
  • возможность комментирования пстов Анонимусами! (captcha прилагается)
  • чтобы выводилась gan дата создания псто, gan дата последней модификации
А больше мне ничего и не нужно. По-крайней мере пока.

Пруф пики:
Free Image Hosting at www.ImageShack.us
Free Image Hosting at www.ImageShack.us

Капча -- текстовая. Даадад, ТЕКСТОВАЯ. Идея не моя, я на каком-то труъ сайте, может даже на том же undeadly.org видел такое. Нафига? Ну во-первых ТРУЪ, во-вторых мне было лень разбираться с libgd, в-третьих она работает в текстовом браузере:
Free Image Hosting at www.ImageShack.us

Генерируется с помощью banner(1).


Жесть! Давно не слушал HINOI TEAM, как же они рулят! ><
ULTRA_SUPER_MEGA_TURBO_EURObEAT_INFLUENCED_ПОПСА!!!! Just the way I like it.

А Аска кстати такая красивая.... Т______Т
Пощу это все сидя в OBSD, так что без понятия запостится ли видео из ее блога или даже если запостится, будет ли играцо
Free Image Hosting at www.ImageShack.us
>:3


http://hinoi.vision-blog.jp/

И вообще мне она нравится как-то, хоть я и ни слова не понимаю что она говорит (в своем блоге, на Kiss FM на ЮТУбе и на DVD special к альбому SUPER EURO PARTY ;) xDD Мож потому что она тоже козерог? Naaah, в моем гороскопе же написано что я не верю в гороскопы~

HINOI TEAM кстати распались D: Ну то есть это уже давно было ясно, но теперь это уже практически официально, Vision Factory, компания-менеджер, убрала ссылки на их страницы со своего сайта =( Жаль блин, реально я не слышал ни у кого подобной музыки/подобного духа.

4 comments|post comment

20 Oct 2009|07:13pm
Видел сегодня негритянку. Негров года 3-4 назад увидеть было невозможно, теперь как-то чаще, примерно 1-2 в месяц вижу. Но вот негритянок никогда не видел еще.
Сидел в поезде, тупил. Размышлял над тем как в русском языке слово негр не имеет негативного оттенка, а в Омереке негров нет, есть только афро-американцы, и стало интересно как же у них историю преподают? Ну я имею ввиду про то, откуда а Омереке столько негров.
Потому что как есть рассказывать по-моему не вариант -- ну представьте, сидят в классе бледнолицые и чернокожие, и им рассказывают как вот предки одних держали в рабстве предков других. Хз че после этого будет.


Думаю
L&T значит Litter and Trash!


Чуть более чем полностью пересел с NEdit на GVim (GTK+2). Как на работе, так и дома. Произошло это довольно лавино-образно. До этого я например через ssh всегда юзал BSD-шный vi, (написал в нем не одну прогу) плюс для редактирования конфигов и всякой системной дребедени тоже BSD vi. Потом я начал потихоньку, когда надо было один-два файла отредактировать быстро иногда использовать gvim. Но в нем многие вещи не устраивали (backspace, не самое удобное переключение буфферов, hard-табы, не знал как выделять куски текста, и тд и тд) ну и вот сидел я как-то чего-то редактировал и меня это все внезапно задолбало и я взял и нашел в Google за несколько минут cure'ы для всех этих и других вещей.
Например можно забиндить на клавишу чтобы по нажатии выводился список открытых файлов и можно стрелочками допустим выбрать нужный. Потом еще забиндил на Tab/Shift-Tab переход на следующий/предыдущий буффер ну и по мелочам. Вот мой конфиг:

На скрине можно видеть менюшку, которая появляется когда пишешь какую-то комнаду и жмешь Tab. Такая же появляется для открытых буфферов. Олсо, зилёёнинькие бууукафкиии Т_______Т
Free Image Hosting at www.ImageShack.us

Ну вот, первые два миллиметра верхушки айс*кхе*дживим*кхе*берга пройдены =)
Скрин с лаптопа если что.


Люто бешенно обожаю смайлик который в качестве current userpic'а x)) Хитрый план etcetc.


Не знаю что происходит, но в последнее время ВЕЗДЕ вижу число 42. Просто ВЕЗДЕ, каждый день О_О

Free Image Hosting at www.ImageShack.us

upd:
Free Image Hosting at www.ImageShack.us

=_="
post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]

Advertisement