Pull to refresh

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

Opera
Sandbox

Предисловие


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

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

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

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

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

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


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

Заглянув в каталог Opera, я увидел следующее:

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

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

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


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


Что у 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.
(в Python я новичок, за быдлокод прошу не пинать).

Спасибо за внимание!
Tags:
Hubs:
Total votes 79: ↑66 and ↓13 +53
Views 22K
Comments Comments 95