По некоторым причинам очень захотелось мне перейти на Google Chrome с моего любимого Firefox, невыносимо захотелось, но не получалось. Чуть ниже — почему не мог и как всё-таки смог.
Так уж случилось, что моим первым настоящим браузером был Maxton. Я очень любил макстон, макстон, тот самый, старый, на движке ie6 до сих пор вызывает во мне положительные эмоции. Именно по вине макстона я пристрастился к возможности прятать и показывать бразуер по хоткию, это иногда называют boss-key, но мне не нужно было ни от кого прятаться, просто браузер всегда был самым используемым приложением для меня, и это невероятно удобно, когда можно быстро переключиться с активного приложения на браузер и обратно.
В момент, когда жизнь заставила-таки уйти с макстона, именно это послужило изначально толчком к выбору Firefox вместо Chrome. У огнелиса для этого замечательный плагин, а у хрома, к сожалению, нет. Ни поиск, ни рытьё в мануалах не помогло мне найти способа сделать это.
Привык я к огнелису, полюбился он мне, долго мы были близкими друзьями, да и теперь некоторые вещи делать в нём мне удобнее. И именно он подсадил меня на запиненные табики и то, как они классно подсвечиваются, когда что-то в них произошло.
Причин, почему я не смог перейти на 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 () { });
});
}
});
}
});
Добавляем иконки-локали, и в продакшн.
Ура, одной проблемой меньше, теперь я могу переходить на хром. И ведь перешёл, но вот вторая проблема с тем, что я не видел когда мне пришло сообщение в беседке с фривольными женщинами, или письмо или может быть появились новые статьи на хабре, о чём в фф сообщала рсс-читалка красивой подсветочкой.
Снова интернеты в зубы, как же подсветить табик с обновлениями. Поиск быстро привёл меня в отчаяние и тупик. Всё пропало, табик покрасить нельзя, нотификашку изменить нельзя, сколачиваем гроб идее и привыкаем не отвлекаться на работе на рсс. И в момент отчаяния пришло в голову, что можно же заменять фавиконку. Выход плохой, но всё же выход.
Код(ссыль на гитхаб) получился адовый, но он работал, несколько подвесок на апдейты, и (о боже мой что я наделал) по таймауту прохождение по всем табам раз в секунду для того, чтобы проверить обновился заголовок таба или нет.
Если есть обновления — дело техники, берём текущую фавиконку, накладываем любезно предоставленную коллегой точечку, подменяем, игнорируем это обновление, чтобы не уйти в бездну бесконечных циклов, вуаля.
Ну и куча другого всякого для обновлений. Не так классно, как в фф, но лучше, чем ничего.
Ещё разок ссылочки на хромостор, ну, ежеликомунадо:
Togglemeister: https://chrome.google.com/webstore/detail/togglemeister-chrome-hotk/bodbpghclmdhnfijfjbgodgibdooljnl
Twinkledot: https://chrome.google.com/webstore/detail/twinkledot-tab-notifier/oabcnplfjbnkdpaihdoaapmficokiphh
Автор: iliasm