Линукс на десктопе. Как я съезжал с macOS после 5 лет работы за макбуком

Начало

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

С 2007 по 2015 я работал на винде. На работе у меня вначале был десктоп с Windows NT 2003(?) Кажется, точно не помню, потом переехал на ноутбук Thinkpad. NT 2003 обновили до Win 7. Работал я в то время с Java поэтому особых проблем не испытывал.

В 2015 я сменил работу и там мне выдали MacBook Pro 13" 2015 в минимальной комплектации, с 128 GB SSD и 8 GiB RAM. Я довольно быстро освоился, и понял, почему все девелоперы на конфах или в других местах использовали макбуки. Ведь это же юникс для людей! Никаких проблем с установками всяких sdk, платформ, языков. Никакого гемора со сборкой или компиляцией того, что по винду потребовало бы cygwin или какого-нибудь mingw. Отличный UI, наличие всех необходимых программ. Все круто, я был доволен, мне нравилось пользоваться моим ноутом. Особенно радовал тачпад — он не люфтил, очень точно передавал движения пальцев, прекрасно ловил жесты. Вначале я по старой привычке пользовался мышью, но потом отказался от неё совершенно.

Шли года. Память SSD засорялась версиями XCode и образами эмулируемых устройств, кешами градла и npm. Производительность снижалась, оперативной памяти практически всегда не хватало для IntelliJ с кучей проектов, система уходила в своп, но я всё это терпел. Потому что удобно, потому что привык и потому что тачпад.

Раз в пару месяцев я запускал ncdu и принимался расчищать авгиевы конюшни на диске. Со временем я даже купил специальную SD карту, уменьшенную по размеру, которая вставляется заподлицо с корпусом и дает еще +120 Gb, чтобы вынести туда старые проекты и медиафайлы.

В 2017 я начал задумываться об апгрейде, потому что уже тогда стало очевидно что 8 гигабайт памяти совершенно недостаточно для комфортной разработки и существования. Однако Apple начал подавать тревожные знаки — макбук 2016 года выпустили без портов, без магсейфа, и, как оказалось через некоторое время, еще и с плохой клавиатурой. Функциональные клавиши заменили на бесполезный тачбар.

Несмотря на то, что я был готов потратить 2k+ зелени за оверпрайснутый кусок алюминия с нулевой ремонтопригодностью и апгрейдабельностью, поломанные клавиатуры меня остановили и я решил ждать. Вначале у меня была надежда на 2017 год, потом на 2018, потом на 2019.

Сомнения

В годы ожидания я каждый месяц читал на HN посты о том, как все плохо в новых моделях, клавиатуры не улучшаются, процы троттлят, порты греются и убивают устройства, шлейфы переламываются, тачбар бесполезен и вообще похоже что Apple больше неинтересно производить качественную технику. Люди ныли, но продолжали жрать кактусы, кто-то писал о своём опыте слезания на линуксы или шиндовсы, кто-то решался покупать новый ноут и стрраадаал, я же продолжал кое-как существовать на своем любимом, хоть и ужасно медленном макбуке, и мечтать о том дне, когда я за 3 куска смогу купить качественную железку.

В это время я создал несколько тредов на ДОУ — "о линуксе на ноуте" и "о хакинтоше", в попытках понять современное состояние альтернатив. Отзывы я получал разные, кто-то уже сто лет в обед сидит на линуксах и ему норм, кто-то вангует что я останусь на макбуке, другие говорили что винда и WSL щас решают.

Все это время у меня под столом стоял десктоп с виндой. Ничего особенного — core i7 4770, 16 GiB RAM, AMD RX 570. Там я играл в контрструк и писал гитару и голос (потому что макось не поддерживает мою довольно старую звуковую карту, а шиндовс 7 — поддерживает).

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

Я даже рассматривал покупку старого ведра (mac pro), но совершенно неадекватная стоимость ($3k) за груду устаревшего железа меня останавливала.

Моноблоки тоже не радовали стоимостью, mac mini — производительностью.

К макоси я привык и слазить не хотелось вообще.

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

Я задумался о том, чтобы поставить на десктоп линукс и работать за ним. Люди же как-то живут? Да и 2019 год на дворе, прогресс не стоит на месте.

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

В итоге я решил попробовать. Решающим фактором оказалось то, что для хакинтоша нужна была флешка на 16 гигабайт, а у меня была только на 4. Искать или покупать флешку я не хотел, поэтому пошел на distrowatch и начал читать что там щас в тренде.

Муки выбора

Я сузил круг дистрибутивов до deb-based, потому что по моему субъективному мнению, они значительно более популярны, нежели rpm, и всякие другие арчлинуксы и генту. С CentOS я много работал через Amazon Linux и, как правило решений проблем на Stackoverflow для CentOS меньше. Поэтому я даже не смотрел в сторону не Debian-based дистров (кроме Manjaro).

Итак, наслушавшись мудрых советов с ДОУ и еще раз посмотрев на рейтинги distrowatch я решил начать с MX.

Скачал дистрибутив с оффсайта, загрузился с флешки, за 5 минут установил. Я уже не помню точно, что не заработало, или может быть меня утомило прописывание PPA репозиториев для всего софта, потому что MX основан на Debian, но по какой-то причине MX мне не подошёл :)

Далее выбор пал на активно рекомендуемый на ДОУ Manjaro. Скачал сборку с xfce, поставил, загрузился. После загрузки оказалось, что не работает wi-fi (не захотел подключаться ни в какую), хотя на лайв-флешке все работало четко. Возиться с поиском нужных драйверов желания не было никакого, поэтому я ребутнулся в шиндовс и пошел качать другой дистрибутив.

В этом месте я немного приуныл потому что мне казалось что периферия 10-и летней давности должна 100% поддерживаться и работать. И на секунду я подумал что вот он какой линукс на десктопе на самом деле — без пердолинга и ковыряния в конфигах никуда. Поэтому я решил взять самый популярный дистрибутив, то есть Ubuntu.

Убунта была быстро скачана и установлена, вроде всё завелось и я даже начал настраивать SDK, окружение и всё такое, но потом внезапно понял что Gnome или Unity или как называется у них оболочка мне совершенно противна. То есть не нравится никак. И еще они там напихали всяких зондов, реклама в местном аппсторе, короче как-то не зашло оно вообще, и хотя я уже поставил IntelliJ, настроил rvm и выкачал проект, всё равно решил отказать.

Тут я опять приуныл. Неужели придется покупать флешку на 16 гигабайт и ставить хак? Или апгрейдтить макбук? Но только я открыл макбук и запустил Intellij, тут я резко опять преисполнился решимости попробовать еще раз. Вспомнив о том, что у трёх девелоперов на шлюпке был установлен Mint, я решил дать ему шанс.

Как обычно, установка прошла за 5 минут и тут — о чудо! — во время старта системы я услышал звук приветствия!

Здесь надо сделать небольшое отступление — почему меня это так удивило? Дело в том, что колонки и наушники у меня подключены к звуковой карте M-Audio Fast Track Ultra. Самого производителя давно купил AVID (у которого между прочим RnD отдел в киевском глобалёжике), карту не поддерживают с 2012 что ли года, драйверов на новый виндовс и на макось выше snow leopard нет и не будет, и тут Mint из коробки ее подхватил, более-менее корректно сконфигурировал входы-выходы и поставил как устройство по умолчанию. Сердце моё было покорено. Автоподхват звуковухи означал что я могу теперь жить в одном окружении — работать, играть на гитаре и играть в контрструк, без перезагрузок, регистрации и СМС.

Внешний вид оболочки Cinnamon меня тоже сильно порадовал — из всех опробованных (Gnome, KDE, i3) этот оказался самым красивым.

Рабочее окружение

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

Внезапно оказалось что сейчас, благодаря тому, что весь софт Electron-изирован и запакован в виде сайтиков, то с софтом для линукса вообще нет никаких проблем. Почти у всех производителей есть версия для Linux которая функционально ничем не отличается от всего остального. Поэтому переезд с точки зрения софта вообще был очень простым и безболезненным.

По задачам, чтобы было примерное понимание, что мне нужно: ежедневно я занимаюсь разработкой на Java, Ruby on Rails, Python, node.js и немного фронтендом.

Итак, что я использовал на макоси и что точно так же использую на linux:

  • IntelliJ IDEA — самый главный инструмент который кормит меня уже не первый год. Работает, понятное дело, без проблем, потому что JVM.
  • Telegram, Skype, Slack, Viber, Zoom — мессенеджеры, тоже все работают без проблем. Телеграм под маком мне нравится больше, нежели под линуксом или виндой, но это вкусовщина, привыкаешь быстро.
  • Браузеры — Firefox, Firefox Developer Edition, Firefox Beta, Firefox Nightly, Iridium. Я поехавший, который для каждого заказчика или проекта держит свой инстанс браузера, чтобы не пересекалась почта, аккаунты для облаков и тд. Тут тоже всё понятно — работает как надо. На макоси я тоже пользовался фаерфоксами. Да, я знаю про профили фаерфокса, но отдельные браузеры мне нравятся больше.
  • Steam — поиграть в контрстрайк (который тоже как это ни странно нативно работает под линуксом).
  • Discord — работает ок, но крашится раз в полчаса. Проблема есть не только у меня. Жить можно, хотя и несколько напрягает.
  • Postman, VS Code (почти не использую) — абсолютно аналогичны тому что есть под виндой или макосью. Слава электрону.
  • Simplenote под макосью лучше (потому что нативный), чем под электроном, но это ок.

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

MS Office у меня не стоял, хватало Numbers, тут вместо них Libre Office, вроде ок, но я ним особо не пользуюсь. Фотошоп мне не нужен и на макоси у меня тоже не был установлен.
iTerm мне успешно заменил местный терминал (не знаю как он называется), я не пользовался какими-то плюшками именно iTerm, поэтому мне норм. Сверху поставлен ohmyzsh с точно такими же плагинами как и на макоси.

Кроме того, понятное дело, была установлена куча софта для разработки — в первую очередь rvm, потом node, pyenv, docker, нативные библиотеки для pg/mysql/redis и тд и тд, то, что под макосью не всегда ставится хорошо и гладко (хотя ребята из brew работают чётко, тут спору нет).

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

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

Система

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

Я решил попробовать подтюнить клавиши под те, что были у меня под маком. Для этого я поменял местами клавиши win и alt (клавиатура у меня виндовая, Hyperx alloy fps на mx red), перебил alt-tab на win-tab, выход из программ на win+q, короче устроил себе макось для бедных :) Все это можно сделать из UI, без правки конфигов.

Так же напрягал вопрос с раскладкой. На макоси я пользовался модифицированной раскладкой Ильи Бирмана, которая содержит третий слой для русских букв ы э ъ ё, так что для набора текстов на кириллице мне не приходилось бы переключаться между украинской и русской раскладками. Примерно неделю я вяло искал такое же решение, в итоге нашел и подправил под себя (тут пришлось немного попердолиться с конфигами). Переключение локали по капс локу настраивается прямо из системных настроек (на макоси для этого надо ставить карабинер и там ремапить капс лок на виртуальную клавишу, короче не в один клик[1]). В принципе мне больше ничего и не надо :)

Аналог f.lux называется redshift и выглядит он не так красиво (а точнее никак не выглядит вообще, для конфигурации надо или править конфиги или ставить дополнительный софт). Для музона есть Rhytmbox который вполне адекватен.

Система обновляет сама себя нашим любимым apt-get update && apt-get upgrade -y вообще без проблем :) Те кто имел дело с построением докер образов не пропадут.

Виндовые диски автоматически подхватываются и вроде бы даже доступны на запись (NTFS) без доп. пердолинга.

WiFi работает как надо, хотя иногда, раз в неделю может, отваливается и надо переподключать. Профили для vpn качаю из ProtonVPN прямо в .ovpn формате и открываю сетевым настройщиком — не надо ставить всякие TunnelBlick, красота!

К сожалению не все программы (а точнее вообще никакие) могут подхватить мою крутую звуковую карту с не менее крутым конденсаторным микрофоном как устройство ввода. Вывода — да, тут без проблем. А вот ввода — увы. Я думаю что это как-то решается, но пока не хотел тратить на это время. Благо у меня есть вебкамера с хорошим микрофоном (которая кстати тоже завелась из коробки). Но это и на макоси не работало (напомню, там звуковая вообще не поддерживалась), так что претензий никаких. Хотя может я как-то найду время и соберу в кучу все эти jack, alsa, pulseaudio и прочую дичь которую наворотили линуксоразрабы и порадую собеседников бархатным голосом.

Со шрифтами и сглаживанием у меня проблем нет. Работаю я за тем же экраном, который я подключал к макбуку (внешний монитор Dell U2415, 16:10, 1920х1200), поэтому разницы особой не замечаю. Дополнительных настроек не делал.

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

Проблемы

Несколько проблем с софтом и системой, которые я так и не смог решить, или решил не инвестировать в них время:

  1. Отсутствие ⌘+c/⌘+v. За годы работы я уже настолько к этому привык, что переучить мышечную память очень трудно. Особенно это напрягает в терминале. Там чтобы скопировать-вставить нужно нажимать ctrl+shift+c/v и необходимость помнить о том, что в терминале и во всём остальном у тебя разные комбинации для работы с буфером обмена это полный крах. Для меня сейчас это самый основной недостаток оболочки. Upd: читатели подсказали, что в терминале можно переназначать комбинации для копирования-вставки, что я успешно сделал. Так же сообщают что можно переназначить для всей системы.

  2. Cinnamon почему-то считает что это ок маппить на F10 системный хоткей (вызов меню). Я долго не мог понять, почему у меня не закрывается mc, пока не разобрался. Как отключить этот хоткей вообще везде я так и не нашёл, только в терминале. Хотя вроде и не напрягает особо.

  3. То же самое, только для Alt+щелчок мышью. На macos в intellij таким образом работало блочное выделение, а тут вызывается какой-то layout manager системный черти что короче.

  4. Невозможно нормально отрегулировать скорость мыши. У меня мышь Razer Deathadder, там довольно высокое разрешение и как следствие очень высокая скорость курсора. Минимальная скорость для меня все равно слишком высокая. Пердолинг с конфигами и xinput не помог, дробные множители не помогают, ничё ваще не помогает. Смирился и привык, будет меньше проблем с руками. Благо контрстрайк умеет читать сырой ввод и регулирует всё как надо.

  5. В intellij не работает маппинг клавиши win для хоткеев, то есть нельзя себе сделать ⌘+n для поиска класса, например, надо ctrl+n нажимать. Немного расстраивает, но я уже привык. На винде как-то жил 8 лет с ctrl, норм.

  6. Средняя кнопка мыши работает как ctrl+v. Не знаю как это отключить везде (в браузерах каким-то образом оно отключено), но и не искал особо.

  7. Спеллчекер в FF как-то странно переключает языки. Иногда не переключает вообще и весь текст подсвечивается красненьким.

  8. По ощущениям FPS в контрстайке ниже чем на винде, 100 против 150-200, где-то так. Хотя я все равно забил ребутаться и катаю с пацанами под линуксом. Драйвера ставил AMD-шные.

Ну и еще несколько мелких проблем. Самая серьезная — первая, с копированием и вставкой. Судя по тредам на stackoverflow/superuser переназначить клавиши для копирования/вставки невозможно (именно что невозможно), и это меня печалит (Upd: пишут что это можно изменить, попробую поковырять еще). Ну а остальное это так, ерунда, ко всему я уже давно привык и не замечаю разницы.

Ітогі падведьом

Уже два месяца Linux Mint является моей основной рабочей средой. Макбук я открываю очень редко, чтобы скопировать какие-то секреты или конфигурации подключений, которые не перенес ранее, чтобы посмотреть видосик в кровати, и иногда чтобы поработать на кухне.

Так же, пока я не купил новый ноутбук, макбук всё еще остаётся тревел-девайсом. Сейчас я особо не разъезжаю (точнее вообще не разъезжаю, сижу дома), но уже думаю о покупке ноута чтобы поставить туда линукс. Говорят Thinkpadы для этого дела хороши и я бы с удовольствием приобрел вариант типа такого но похоже что производитель больше их не делает :(

Пока версталась и выходила эта статья, Apple выпустили 16" макбук с физической кнопкой Esc и похоже что исправленной клавиатурой, которая не ломается от крошек и пылинок. Носить такую дуру в рюкзаке я не хочу, мне не нравится всё что больше 13" (и поэтому я в своё время отказался от 15" прошки которую предлагали на работе), да и по макоси я уже честно говоря не особо скучаю. Тачбар не нужен, USB-C не нужны, ну вы понели.

Так же представили новый мак про за космический прайс (хотя говорят что если сравнивать напрямую по комплектухе то не такой уж и космический, но вот уже подъехала инфа о люто оверпрайснутой памяти[2]), но отдавать 6к зелени за железяку, которая по ощущениям вряд ли будет намного лучше моего старичка, чот уже тоже неохота. Я на эти 6к лучше куплю себе орехового паркета в квартиру. Орех выглядит очень круто, ребята, но и стоит 130$ за квадратный метр. Что выбрать: дешманский линолеум и кусок алюминия в виде концептуальной тёрки или доложить денег и взять 60 квадратов отборного американского дерева и оставить нищенскую пекарню в корявом корпусе Zalman? Выбирать тебе, дорогой читатель, а я, кажется, для себя уже всё решил :D

Да и в принципе 6к для меня это слишком много за железку (даже если это не оверпрайс за яблоко а цена голой комплектухи), а я, к сожалению, еще не дошел до такого уровня благосостояния. К слову, пекарню, на которой я пишу этот текст, я купил в б.у. виде у какого-то геймера за то ли 400 то ли 500 долларов + видеокарту за 100 и монитор за 150 или около того. Если добавить еще мышь клавиатуру и SSD то будет максимум 200$. И того за 1000$ у меня агрегат который прослужил уже 3 года и прослужит еще.

Сейчас еще AMD выпустила Threadripperов пачку так что можно за мелкий прайс прикупить себе 24 ядра и неплохо так себя чувствовать. Хотя мне вполне хватает и моих четырех (и соответственно восьми потоков) даже с патчами закрывающими дыры в интеловских процах.

...

Еще пол-года назад я думал что уже никуда не слезу с macOS. Хоткеи, софт, привычки казались мне незыблемыми. Однако человек — существо быстро адаптирующееся. Буквально через 2 недели после преезда я уже чувствовал себя вполне комфортно и уже собрался писать материал, но решил подождать еще немного, чтобы отловить все косяки и убедиться, что я действительно могу работать под линуксом на длинной дистанции.

Теперь я могу сделать однозначный вывод — линукс на десктопе очень даже жив и бодр. Возможно, у вас есть какие-то свои требования (фотошоп или другой софт, который есть только под маками или виндой), но я лично считаю для для бекендера/датаслесаря/фронтендера (если ваш дизайнер нормальный человек и скидывает макеты в Zeplin или аналогичный софт а не в фотошопе)/андроидодева Linux является отличным выбором и полноценной альтернативной макоси.

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

Скорость и апгрейдабельность

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

У меня старый процессор — core i7 4770, всего 16 гигабайт памяти, дешманский SSD Crucial (потому что моя материнская плата тоже старая и не умеет грузить с NVMe, да и нет у меня m.2 слота, подключаюсь через переходник), и всё это работает субъективно просто в разы быстрее нежели старый макбук (на котором между прочим процессор на пару поколений лучше и SSD наверное не хуже).

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

Я почти не смотрю в htop и не интересуюсь, что же сожрало всю оперативу, потому что я не запускаю ничего такого что сожрало бы 16 гигабайт. Я перестал пользоваться ncdu и мне плевать на обновления, кеши, логи и прочий хлам, который оставляет за собой софт.

Первые недели у меня было ощущение, что до этого я 5 лет бегал с грузом, привязанным к ногам — настолько всё стало работать быстрее, и я даже ощущал легкую эйфорию и желание побатрачить, чего в обычные дни со мной не случается. Теперь организм привык к высокой скорости и воспринимает это как должное. Пару дней назад я открыл макбук посмотреть кинцо и поразился насколько же он медленный (и это даже при закрытой intellij).

Теперь я знаю, что если завтра мне надо будет добавить мощностей то я смогу просто купить новый процессор. Или материнку + процессор. Поставить одно вместо другого, и жизнь снова заиграет быстрыми красками. Не нужно думать про хлам на диске — если вдруг надо будет собирать толстые образы или кранчить бигдату, я просто прикуплю SSD за 50 баксов и буду таков.

Как будто вернулся немного назад в детство, когда за неименем больших денег пришлось смотреть на прайслисты, обзоры и рекламные проспекты в журналах "Компьютерное Обозрение" да "CHIP", только теперь можно купить всё, и совсем не нужно ждать пока Apple образумится и вернет модель 2015 года, на более мощном железе, с нормальными портами, магсейфом, разборным корпусом и возможностью заменить диск, память и процессор.

1000 из 1000 просто.

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

Fin.

That's all folks!

p.s.: меня всё ещё ждёт выбор ноутбука, но я уже оптимистично смотрю в будущее.


  1. У меня установлена Sierra, читатели подсказывают, что в Mojave уже есть настройка для переключения раскладки по Caps Lock в UI. ↩︎

  2. https://twitter.com/SnazzyQ/status/1204902786015494144 ↩︎


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred