Делаем тачбар наконец-то полезным
Полностью отказавшись от идей Apple
21 февраля 2018 :: 166 комментариев :: 56563 просмотра :: 2706 слов

У поста вышла английская версия с исправлениями и улучшениями

Макбук Про 15" с тачбаром — моя основная машинка уже больше года. На нём я работаю, пишу эти посты и вообще провожу всё время, которое не сплю. Яжпрограммист.

Когда я только его купил, я говорил, мол, тачбар — топ пушка. Приложения допилят и будет булочка, хоть облизывай. Прошел год, приложения допилили, но особо полезным тачбар не стал. Тогда я бомбанул обраточку и написал пост ненависти, где эмоционально навалил о его нелепости. Психанул.

Время поговорить начистоту. Как ПРО-юзер топового пятнадцатидюймового макбука ПРО за три тысячи евро, использующий его ежедневно для обработки фоточек, видео, текстов, кодинга и других ПРО-задач, заявляю: тачбар как был бесполезным днищем, так и остался.

Всё даже стало хуже, когда в лаборатории беспощадных инноваций Apple «переизобрели» кнопку Play/Pause в MacOS High Sierra. Теперь она управляет чем угодно — рекламными банерами, звуком уведомлений, только не плеером.

Тачбар беспомощен. Если у вас нет макбука с тачбаром и вы облизываетесь рекламные ролики про счастливых людей — одумайтесь. В реальной жизни он полезен не больше Siri (но этот пост может вам помочь).

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

Причина банальна: если вы не девочка-инстаграмер, 99% рабочего времени вы видите свой ноутбук так:

Счастливый обладатель роскоши под названием «руки», видит тачбар не чаще, чем раз в два часа. Первый раз — когда уходит налить себе кофе, второй — когда возвращается с чашечкой горячей капучинки из кофемашины.

Ни одному про-юзеру, под которых и создавался макбук «как бы» про, не придёт в голову хоть на секунду задуматься «дай ка скопирую этот текст с помощью тачбара». Каждый на автомате нажмёт Cmd+C.

Гайдлайны Apple, однако, гласят — нельзя выносить на тачбар уникальные фичи, которых нет на экране. Вы обделяете пользователей без тачбара и расстраиваете Тима Кука.

Тогда нахуя он мне вообще нужен?

Мы в западне, ведь макбуки приучили нас к хорошему. Остальные ноутбуки после них кажутся китайскими пластиковыми игрушками, прибитыми к полу. Макось, при всех своих косяках, лучше всех совмещает гибкость Unix-систем и юзабилити человеческих ОС.

Куда валить — на Убунту? Фотошоп под вайном гонять? Смотреть как падает плазма? Спасибо, наигрался.

Купить мощный макбук без тачбара тоже невозможно. Если взять про-13 без него и собрать в конфигураторе что-то вменяемое, получается 2600 евро за двухъядерный Core i5 на нищенских 2.5GHz. За эти деньги в про-13 с тачбаром можно засунуть проц на 3.3GHz. Накинув соточку, можно брать уже про-15 с четырехъядерным Core i7 и полноценной видеокартой.

А еще лучше сразу взять Ладу Приору в пацанском обвесе!

Кому интересен мой совет: берите про-13 с тачбаром и кастомом на 3+GHz, 16 RAM и 512 SSD. Даже если вы хотели 15" — нет, берите 13". Не пожалеете.

Но я программист, меня необманеш

Целый год я заставлял себя использовать тачбар. Уплóчено же. Страдания закаляют дух и делают тебя сильней.

Итоги года: да срал я на гайдлайны Apple. Тачбар должен быть одинаков и предсказуем. Не хочу запоминать кнопки в каждом приложении, хочу максимум пользы и информации всегда. Дайте мне просто дополнительный экран, как все представляли его до выхода.

Это ранние рендеры от Martin Hajek. Тогда никто еще и понятия не имел каким будет тачбар, но уже были утечки

Перед глазами, как вьетнамские флешбеки, замелькали скриншоты Conky и мой ArchLinux образца 2010-го. Погода на весь экран, температура и IP-адрес на пол рабочего стола, график загруженности процессора, повсюду часы и сегодняшняя дата — АААААААААААААА!!!

Для тех, у кого была нормальная юность, покажу как это было у нас:

Если вас немедленно стошнило — поздравляю, вы нормальный здоровый человек.

Для тех, кто ничего не понял, объясняю. В старших классах школы вы наверняка задавались вопросом — чем увлекается тот задрот-линуксоид с задней парты, вместо того, чтобы щупать упругих одноклассниц на вписках, как остальные подростки? Строит ракету? Планы по захвату мира? Проще. Он установил линукс и ХЕРАЧИТ ВЕЗДЕ ЧАСЫ НА ПОЛ ЭКРАНА, чтоб потом на ЛОР выложить.

Дикая дичь, я тоже через это прошел. Выглядит круто и «киберпанково» максимум на вечер. Со стороны смотрится, как будто надел на голову дуршлаг и уверяешь всех, что тевтонец. Красиво, но смысла никакого.

Вещи должны приносить пользу, а не делаться для красоты

Я стал наблюдать за своими ежедневными привычками и попутно шерстить треды на реддите.

Для нормальной кастомизации тачбара есть только одно приложение — BetterTouchTool. Оно глючное, интерфейс явно писали Чужие для Хищников, зато всего 5 долларов и первые 45 дней бесплатно. Умеет добавлять кнопочки или полностью заменять тачбар. Второе интереснее.

О настройке BetterTouchTool написана куча статей. Стас Кулеш вот недавно хорошо по шагам рассказал как с его помощью добавить на тачбар курсы криптовалют. Мастрид для новичков.

Я прочитал, наверное, все гайды в интернете и разделил их на два лагеря по полезности лично для меня.

Круто Херня
Название текущего трека
Важнейшая фича. Всегда интересно что за трек принесла мне алгоритмическая подборка Spotify.
Курс биткоина
Не знаю почему этот виджет так популярен. Только от работы отвлекает.
Кнопки громкости
Кнопки рулят. Нажимать их быстрее, удобнее и можно вслепую.
Слайдер яркости
Занимает кучу кучу места, а нужен раз в неделю, когда смотришь сериал в постели.
Finder одним кликом
Очень хочется иметь доступ к Finder отовсюду. Стандартный тачбар так не умеет, это странно.
Используемая память
Абсолютно бесполезная цифра. В современных ОС она всегда под 100% и это нормально.

Из этих выводов может казаться, что я весь день только слушаю музыку и открываю Finder. Отнюдь. Я пишу код, деплою докеры и все мои рабочие инструменты давно заточены максимально удобно. Тачбар не улучшит их ни на йоту.

Однако, во время работы всегда происходят важные фоновые процессы. Музыка, например. Идеи, которые надо куда-то записать. Тачбар — идеальное место для таких штук. Которые не нужны постоянно, но когда нужны — каждый раз бесит их искать.

Пипетку, чтобы взять hex-код цвета с экрана, например.

С такими штуками я экспериментировал недели две. Писал виджеты, жил с ними, менял, опять наблюдал. Наконец мне есть что показать и похвастаться:

Наверняка что-то еще поменяется, но за это время уже заметил, что стал реально чаще пользоваться тачбаром. Теперь я всегда помню где какая кнопка. Выкуси, Джони Айв.

С любовью расскажу про каждую иконочку, там в каждой куча хитростей и смекалочки.

ESC навсегда!

Несколько раз мой тачбар попросту «зависал» в режиме, когда кнопка Esc скрыта. Зачем вообще сделали такие режимы — ума не приложу, но первым делом надо намертво прибить Esc к своему углу. Это делается полной заменой тачбара на BetterTouchTool.

Клик по иконке правее возвращает тачбар в обычный режим. Мало ли что. Пока не пригождалось, но убрать её нельзя.

Первый в мире предсказуемый Finder

Вот хочешь загрузить картинку, перетащив её в браузер, кликаешь по файндеру, а он уносит тебя куда-то на 6-й экран рабочего стола. Там ведь уже открыт! Спасибо, блять, очень полезно. Добиться от Finder открывать новое окошко всегда прямо здесь и сейчас оказалось невозможно стандартными средствами MacOS.

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

От программирования на AppleScript постоянно ощущение, как будто в текстовую RPG играешь. Весело:

tell application "Finder" make new Finder window set target of front window to path to home folder as string activate end tell

Sublime Text и Notes

Опытным путём выяснилось, что именно в эти приложения мне нужен доступ всегда и отовсюду. Остальные я расставляю по рабочим столам или переключаю с клавиатуры, а вот эти два отщепенца постоянно где-то теряются.

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

По сути это обычные кнопки приложений. Как в доке. Вы можете добавить туда любые. Сначала и у меня там тоже был целый зоопарк, в итоге остались только эти два. Я же не заменить Dock собираюсь, а юзабилити улучшить.

Текущий трек из Spotify, iTunes

Отображать название трека — самая нужная фича, которую стандартный тачбар никогда не умел и, по-видимому, не будет. Вместо этого Apple рисует мне огромный слайдер временной шкалы. То есть я понятия не имею какой трек сейчас играет, но точно знаю, что осталась половина. Удобно прям офигеть =/

Нафиг слайдеры и кнопки, нужно название трека и иконка для красоты. AppleScript для этого легко гуглится, тут не буду его приводить, ниже я выложу полную версию своего конфига и любой сможет поковыряться.

Клик по названию трека работает как команда «next». Сильно экономит нервы, когда в твою музыкальную подборку внезапно врывается какой-нибудь «Антоха МС».

Фишка моего скрипта еще и в том, что он универсально работает как со Spotify, так и с iTunes, в зависимости от того, кто сейчас играет музыку. Даже если оба одновременно — тоже работает.

Но как включить предыдущий трек? А никак. Кнопка «prev» нужна так редко, что ей не место на тачбаре. Только вперед! Когда реально нужна — можно и ручками в плеер сходить.

Музыка из VK или YouTube

Изредка я слушаю музыку прям в браузере. Кидают мне иногда ссылки на YouTube или VK, ну я и слушаю. Мне показалось это будет киллер-фичей, если мой тачбар научится отображать название трека и из них.

Для этого был написан хитрый AppleScript, который бегает по открытым вкладкам Safari и ищет страницы, которые начинаются на youtube.com/watch или vk.com/music. А потом просто отображает заголовок вкладки. Красиво, удобно, ни у кого такого нет.

По клику уносит сразу на нужную вкладку с музыкой. Можно было бы применить немного магии джаваскрипта и заставить его переключать треки, дергая страничные JS-вызовы, но решил так не заморачиваться.

BetterTouchTool тут вставляет палку в колёса, так как умеет только запускать скрипт по таймеру. Нельзя, например, написать плагин для браузера, который бы сам сообщал ему «отобрази вот этот текст». Приходится дергать скрипт раз в 20 секунд и надеяться, что это не нагрузит проц или батарейку.

Надо писать свой BetterTouchTool с блекджеком.

Напоминания

Тайм-менеджмент не практикую и дела в календаре не веду. Хватает простого списочка дел в Reminders.app на iOS/MacOS. На тачбаре хотелось видеть самое верхнее приоритетное напоминание, которое еще не закрыто.

Вот я неделю не мог перевести деньги за страховку. А тут два дня повисело, понадоедало, пошел перевёл. Можно даже прокричать тупой Siri «эй, напомни мне купить молока» и напоминание появится на тачбаре. Из двух бесполезных штук собрать одну полезную — кайф.

По клику открывается полный список в приложении Reminders. Там можно отметить как завершенное или добавить еще.

Если напоминание длинное или трек в Spotify занял всё место — середина тачбара умеет скроллиться. Никаких проблем.

Погода

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

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

Решил заморочиться и рисовать такую же на тачбар. Главная проблема таких штук — они всегда требуют руками указать город, а я постоянно забываю его переключать в поездках. Надо вообще всё автоматизировать! Понравилось как это делается на wttr.in — по IP вычисляется город, по городу погода. На AppleSctipt'е написать такое не осилил, зато на питоне — пять строк через ip-api и OpenWeatherMap.

По клику открывается сайт гисметео, где можно посмотреть полноценный прогноз.

Хотите сделать хорошее дело и шарите в AppleScript? Попробуйте переписать мой Python-код на AppleScript, тогда всем станет в разы удобнее!
Благодарности летят юзеру adsky, который первым это сделал. Ура! Версию в конце поста обновил.

Кнопка «налить кофейку»

Жизненное правило любого офиса: уходя — всегда блокируйте экран. Даже объяснять не надо почему.

Раньше на маках для этого был удобный шоткат Ctrl + Shift + Power. В макбуках с тачбаром вместо кнопки Power сделали Touch ID и с шоткатами он не работает. Самое тупое, что в Apple до самой High Sierra не хотели делать ему замену, предлагая использовать «горячие углы» или самому настраивать себе шоткаты в настройках.

В High Sierra они сдались и сделали Ctrl + Cmd + Q, но даже он не работает как надо. Да, он лочит компьютер, но не выключает экран! Серьезно? Не говоря уже о том, что чтобы его нажать, нужно быть настоящим пианистом.

Решение было однозначным — нужна кнопочка «Перерыв на кофе» чтобы лочить компьютер и гасить экран. Сделал и теперь постоянно ей пользуюсь. Еще и иконка с чашечкой приятная — все сразу обращают внимание и спрашивают как сделать себе такую же.

Громкость без слайдеров

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

upd: Я знаю, что слайдеры на тачбаре можно крутить не отрывая пальца после нажатия, это они хорошо сделали. Я о том, что любая попытка на слайдере поднять громкость с 2% до 5% напоминает выставление температуры воды в душе — попасть сразу нереально. Кнопкой же это делается одним нажатием.

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

Умный «Play»

Начиная с MacOS Sierra кнопку Play/Pause переделали «чтоб как в айфоне». Теперь она управляет не музыкальным плеером, а вообще любым медиа. Типа универсально.

На айфоне с этим проблем нет, а вот в маке даже секундный звук нового сообщения на вкладке с VK или всплывающая видеореклама становится для неё главнее, чем музыка, три часа игравшая до этого в Spotify. Тычешь потом по Play/Pause и не понимаешь почему музыка не останавливается. А она теперь тем левым видеобанером на пятнадцатой вкладке Safari управляет!

В Apple похоже так гордятся своей гениальной инновационной идеей, что не собираются это исправлять. Решение-то я нашел, рандомный чувак из интернетов написал утилитку с креативным названием High Sierra Media Key Enabler. Работает норм, три месяца с ней живу.

Кто хочет еще больше контроля и управления веб-плеерами, посмотрите BeardedSpice.

В рамках полного тачбар-кастома надо делать всё по уму. Под моей кнопкой Play/Pause скрывается AppleScript, который выдаёт команды iTunes/Spotify, в зависимости от того, который сейчас играет музыку. Приятная мелочь — когда никто из них не не запущен, нажатие на Play автоматически запустит Spotify. Не надо больше тупить и думать запущен ли он. Вкалывают роботы — счастлив человек.

Косяк только один — BetterTouchTool не умеет менять иконку на кнопке по нажатию, потому приходится делать это по таймеру. Ну и хрен с ним, можно было вообще только треугольничек оставить.

Их величество ЧАСЫ

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

Первая: любая кнопка над клавишей Backspace/Delete будет постоянно случайно нажиматься. Это место — зона погибели и страданий. Там нельзя размещать никакие экшены, если не хочешь случайно их активировать каждые 5 минут. Наверное поэтому Apple разместила там кнопку Siri. Представляю как аналитики ликовали успеху. Мы же там разместим просто часы.

Вторая: полноэкранные приложения. В PyCharm я провожу большую часть дня. Он всегда развёрнут на весь экран, чтобы максимально использовать экран и я меньше отвлекался на сообщения о «важных багах, которые надо пофиксить ASAP» в Слаке. В полноэкранном режиме часы не видны и можно легко пропустить дневной митинг или другую важную штуку.

Короче, в этих часах есть смысл. Можно было бы отображать там погоду, но пришлось бы её делать некликабельной.

Весь мой конфиг выглядит так:

Не забудьте убрать вот эту галку в настройках BTT, чтобы он заменил весь тачбар:

Как и обещал, выкладываю пресет полностью: vas3k_v2.bttpreset. Чтобы импортировать его в свой BetterTouchTool, надо нажать Manage presets -> Import. Чтобы работала погода, надо еще скачать и установить JSON Helper и Location Helper.

Поковыряйтесь, там всё просто и понимается за вечер. Может соберете на его основе что-то полезное лично для вас. Если что-то получится, присылайте пулл-реквесты в наш специальный гитхаб: vas3k/btt-touchbar-presets.

Как обычно, собираю идеи какие еще виджеты могут быть полезны в комментариях. Если у меня тут есть скучающие макос-программисты, можем замутить коллаб и написать свою тулзу, я знаю как сделать круче и удобнее. Будем продавать по $9.99, озолотимся!

А потом нас всех возьмут в Apple, потому что мы офигенные.

Еще? Тогда вот