Почему я не мог перейти с Firefox на Chrome и как мне всё-таки удалось это сделать

в 10:27, , рубрики: chrome extensions, Google Chrome

По некоторым причинам очень захотелось мне перейти на Google Chrome с моего любимого Firefox, невыносимо захотелось, но не получалось. Чуть ниже — почему не мог и как всё-таки смог.

tl;dr: не хватало мне всего двух плагинов

вот ссылки раз, два

Почему я не мог перейти с Firefox на Chrome и как мне всё-таки удалось это сделать - 1

Так уж случилось, что моим первым настоящим браузером был Maxton. Я очень любил макстон, макстон, тот самый, старый, на движке ie6 до сих пор вызывает во мне положительные эмоции. Именно по вине макстона я пристрастился к возможности прятать и показывать бразуер по хоткию, это иногда называют boss-key, но мне не нужно было ни от кого прятаться, просто браузер всегда был самым используемым приложением для меня, и это невероятно удобно, когда можно быстро переключиться с активного приложения на браузер и обратно.

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

Привык я к огнелису, полюбился он мне, долго мы были близкими друзьями, да и теперь некоторые вещи делать в нём мне удобнее. И именно он подсадил меня на запиненные табики и то, как они классно подсвечиваются, когда что-то в них произошло.

Почему я не мог перейти с Firefox на Chrome и как мне всё-таки удалось это сделать - 2

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

Однако коллеги всё время хвастались как классно в хроме это, как замечательно то, как он тайпскрипт умеет и как различные IDE его любят, я тоже так хотел, завистливый я, но две мои дурные привычки не позволяли мне это сделать, потому я делал вид, что не нужен мне этот ваш хром. В один прекрасный момент, я понял, что это не я, я не могу так больше жить, собрал волю в кулак, и начал читать мануалы, примеры кода и прочие прелести современных интернетов. Начал я с более важного для меня — тоггла по хоткию (спик инглиш, ес?).

Должен признаться, я эту проблему уже гуглил раньше, и раньше я не мог найти как это сделать, но в этот раз мне повезло. Каким-то образом я наткнулся на плагин, который добавил мне на страницу расширений хрома ссылку «Keyboard Shortcuts», который, о чудо чудесное, имел опцию быть глобальным. И даже почти всегда работал. Не все клавиши можно подвязать (например, мою любимую alt+` нельзя было, но alt+q терпимо), но это было возможно! Гитхаб в зубы — нашёл как, оказывается для этого надо прописать в манифесте примерно следующее:

"commands": {
  "togglemeister-toggle": {
    "suggested_key": {
      "default": "Alt+Q",
      "mac": "Command+Shift+Q",
      "linux": "Alt+Q"
    },
    "description": "Toggle Chrome Visibility",
    "global": true
  }
}

Это чудо, мало того что добавляет возможность назначить какую-либо команду на горячую клавишу, так ещё и даёт возможность сделать её глобальной.

Далее нам всего лишь остаётся отловить этот код в background.js, если окошко в фокусе, то спрятать хром, а если нет — поставить в фокус.

chrome.commands.onCommand.addListener(function (command)
{
    if (command === 'togglemeister-toggle')
    {
        chrome.windows.getCurrent({}, function (win)
        {
            if (!win.focused)
            {
                chrome.windows.getCurrent({}, function (win)
                {
                    chrome.windows.update(win.id, {focused: true}, function () { });
                });
            }
            else
            {
                chrome.windows.getCurrent({}, function (win)
                {
                    chrome.windows.update(win.id, {state: 'minimized'}, function () { });
                });
            }
        });
    }
});

Добавляем иконки-локали, и в продакшн.

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

Снова интернеты в зубы, как же подсветить табик с обновлениями. Поиск быстро привёл меня в отчаяние и тупик. Всё пропало, табик покрасить нельзя, нотификашку изменить нельзя, сколачиваем гроб идее и привыкаем не отвлекаться на работе на рсс. И в момент отчаяния пришло в голову, что можно же заменять фавиконку. Выход плохой, но всё же выход.
Код(ссыль на гитхаб) получился адовый, но он работал, несколько подвесок на апдейты, и (о боже мой что я наделал) по таймауту прохождение по всем табам раз в секунду для того, чтобы проверить обновился заголовок таба или нет.
Если есть обновления — дело техники, берём текущую фавиконку, накладываем любезно предоставленную коллегой точечку, подменяем, игнорируем это обновление, чтобы не уйти в бездну бесконечных циклов, вуаля.

Почему я не мог перейти с Firefox на Chrome и как мне всё-таки удалось это сделать - 3

Ну и куча другого всякого для обновлений. Не так классно, как в фф, но лучше, чем ничего.

Ещё разок ссылочки на хромостор, ну, ежеликомунадо:
Togglemeister: https://chrome.google.com/webstore/detail/togglemeister-chrome-hotk/bodbpghclmdhnfijfjbgodgibdooljnl
Twinkledot: https://chrome.google.com/webstore/detail/twinkledot-tab-notifier/oabcnplfjbnkdpaihdoaapmficokiphh

Автор: iliasm

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js