- PVSM.RU - https://www.pvsm.ru -

Настраиваем Opera 15 методом «напильника»

Предисловие

Недавно вышла предварительная версия любимого бразузера Opera.
Много копий сломано в комментариях, много жалоб, много недовольствия — нет смысла повторять всё то, что уже написано.

Читая комментарии, в голове сформировалась мысль: всё, финал. Нет больше нормального браузера.
И только редкие ответы pepelsbey [1] вселяли слабый огонёк надежды… «а вдруг?». Затаив дыхание, решил таки скачать Opera Next, и, после установки, был награжден — не всё так плохо! С поправкой, конечно, на альфа-версию.

Одна только вещь печалила.
Используя Opera, я очень привык к одноклавишным сочетаниям «1» и «2» для переключения вкладок — настолько, что без них не представляю себе работу в браузере. А в Opera 15 они, как известно, не работают, и более того — сочетания клавиш не настраиваются.

На многое можно закрыть глаза, сказав себе что это альфа-версия, и нужно просто подождать, но когда при базовой операции — переключении вкладки — каждый раз ловишь себя на мысли, как же всё-таки неудобно — хочется только закрыть браузер и больше никогда не открывать.

Грусть-печаль...

Ориентировка на местности

Когда прошел первый шок, следующей мыслью было посмотреть — а может быть не так всё плохо, и клавиши таки можно настроить?

Заглянув в каталог Opera, я увидел следующее:
Настраиваем Opera 15 методом «напильника»
Не густо, по сравнению со старой Оперой, но есть кое-что интересное — файлы с расширением ".pak". Очевидно, именно сюда и нужно смотреть — не в исполняемый же файл зашивать горячие клавиши!

Первым делом скачал Chrome, и убедился, что там есть аналогичные файлы. Ну а раз есть, и есть исходники Chromium — значит вуаля, show must go on!

Show must go on! (или «Берем в руки напильник»)

Беглый поиск в Google привел в группу Chromium-dev [2], где вкратце описан формат файла, а также на Google code [3], где есть модули на Python для работы с данным форматом.
Чуть-чуть допилив модули с Google Code, получил возможность распаковать и заново упаковать архив:
Настраиваем Opera 15 методом «напильника»

Что у Opera «под капотом»?

Распаковав opera.pak среди разных файлов видим цель — файл с id 38273:

{
  "Keybindings": {
    "Settings": { "AdvancedEnabled": false },
    "Basic": {
      "AccessKeyToggle": ["Esc+Shift"],
      "AddBlankTab": ["Ctrl+T"],
      "AddToBookmarks": ["Ctrl+Shift+D", "Ctrl+D"],
      "Back": ["Alt+Left","Ctrl+Left"],
      "Bookmarks": ["Ctrl+Shift+B", "Ctrl+B", "Ctrl+Shift+2"],
      "CloseActiveTab": ["Ctrl+W","Ctrl+F4"],
      "ClosePrivateWindow": ["Ctrl+Shift+Q"],
.....
      "SelectPreviouslyActiveTab": ["Ctrl+Grave"],
      "SelectTabToTheRight": ["Ctrl+Tab"],
      "SelectTabToTheLeft": ["Ctrl+Shift+Tab"],
      "ShowContextMenu": ["Shift+F10"],
.....

Заменяем искомые строки на:

      "SelectTabToTheRight": ["Ctrl+Tab", "2"],
      "SelectTabToTheLeft": ["Ctrl+Shift+Tab", "1"],

Собираем файл, и подкладываем назад в каталог Оперы — вуаля, мои любимые одноклавишники работают!

Постскриптум

Таким образом можно настроить и другие любимые сочетания, правда не все описанные в файле действия на данный момент работают. И вообще — если покопаться — то думаю, браузер можно изменить достаточно сильно. Было бы время и желание.

И в конце хочу пожелать успехов команде Opera Software. Надеюсь, новый браузер получится достойным.
Утилиту для распаковки-упаковки, немного модифицироанную мной, можно найти на Github [4].
(в Python я новичёк, за быдлокод прошу не пинать).

Спасибо за внимание!

Автор: Magister7

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/brauzery/35709

Ссылки в тексте:

[1] pepelsbey: http://habrahabr.ru/users/pepelsbey/

[2] Chromium-dev: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/agGjTt4Dmcw

[3] Google code: http://code.google.com/p/chromium-source-browsing/source/browse/grit/format/data_pack.py?spec=svn.tools--grit.77cbaa8b1f1af05d8ba2c2a951c74e7909318830&repo=tools--grit&r=77cbaa8b1f1af05d8ba2c2a951c74e7909318830

[4] Github: https://github.com/Magister/pak-tools

[5] Источник: http://habrahabr.ru/post/181770/