Чи є життя після macOS, або Як я переїхав на Linux десктоп і не шкодую
Вісь вже третій місяць поспіль для щоденної роботи я використовую Linux. Як людина, що до останнього їла кактус Тіма Кука, але змогла зіскочити, я ділюсь з вами досвідом переїзду з macOS на Linux та заохочую робити ті саме.
Початок
З 2007 по 2015 я працював на Windows. На роботі в мене спершу був десктоп з Windows NT 2003, здається. Потім я переїхав на ноутбук ThinkPad. NT 2003 оновили до Windows 7. На тій годину я 100% працював з Java, тому проблем у мене не виникало.
У 2015 я змінив роботу, і там отримав MacBook Pro 13" 2015 у мінімальній комплектації, з 128 GB SSD та 8 GiB RAM. Я досить швидко освоївся та нарешті збагнув, чому всі розробникі на конференціях використовували макбука та писали про них в статтях, туторіалах тощо. Це ж юнікс для людей! Жодних проблем зі встановленням усіляких SDK, бібліотек, інструментів. Жодних проблем з компіляцією того, що Windows вимагало б якого-небудь Cygwin або MinGW. Чудовий UI, наявність усіх необхідних програм. Усе круто, я був задоволений, мені подобалось користуватися моїм ноутбуком. Особливо тачпадом — він не люфтив, точно передавав усі рухи та жерсті. Спочатку я продовжував за старою звичкою користуватися мишею, та потім відмовився від неї взагалі.
Минали роки. Пам'ять SSD засмічувалася XCode, образами емуляторів, кешами Gradle та npm. Швидкодія знижувалась, оперативної пам'яті для IntelliJ майже завжди не вистачало, система йшла у своп, але я це все терпів. Тому що зручно, тому що звик і тому що тачпад.
Раз на декілька місяців я запускав ncdu та розчищав авгієві стайні на диску. З часом я навіть придбав SD-карту зменшеного розміру , спеціально для макбуків, яка вставляється в слот та не випирає з корпусу. На неї переніс старі проекти та медіафайли.
У 2017 я почав замислюватися про апгрейд, адже вже тоді стало очевидно, що 8 гігабайт пам'яті абсолютно недостатньо для комфортної розробки та існування. Проте Apple почала подавати тривожні знаки: макбук 2016 року випустив без портів, без MagSafe та, як виявилося за певний годину, ще й з поганою клавіатурою. Функціональні клавіші замінили на беззмістовний тачбар.
Незважаючи на ті що я був готовий витратити 2k+ баксів за оверпрайснутий шматок алюмінію з нульовою ремонтопридатністю та апгрейдабельністю, зламані клавіатури мене зупинили, тож я вирішив чекати. Спочатку покладав надії на 2017 рік, потім на 2018, потім на 2019.
Сумніви
У роки очікування я щомісяця читав на HN пости про те, як все погано у нових моделях, клавіатури не покращуються , процесори перегріваються та тротлять , псуй вбивають пристрої , шлейф переламуються, тачбар не потрібен — і взагалі, схоже, що Apple більше не цікаво виробляти якісну техніку . Люди скиглили, проте продовжували їсти кактуси. Хтось писав про свій досвід переїзду на Linux або Windows, хтось наважувався купити новий ноутбук та страждав. Я ж продовжував абияк існувати зі своїм улюбленим, але таким повільним макбуком та мріяти про той день, коли за три шматки я зможу придбати якісну техніку.
У цею годину я створив декілька тем на форумах DOU — «лінукс на ноутбуці» та «хакінтош» , намагаючись скласти уявлення про актуальний стан альтернативних рішень. Відгуки були дуже різними: хтось вже сто років як сидить на лінуксах і йому ок, хтось стверджував, що я маю залишитися з макбуком, інші казали, що вінда та WSL готові для роботи.
Увесь цей час у мене під столом стояв десктоп із Windows. Нічого особливого — core i7 4770, 16 GiB RAM, AMD RX 570. Там я грав у Counter Strike, пишучи гітару та голос (адже macOS не підтримує мою досить стару звукову картку, а Windows 7 підтримує). Година від годині мене накривало, і я думав про ті, щоб оновити цей десктоп новим залізом і поставити туди хакінтош, альо всі ці рухи якось не надихали. Замолоду я полюбляв порпатися з кряками та іншим варєзом, але зараз хотілося просто натиснути одну кнопку та отримати робочу систему.
Я навіть розглядав придбання старого відра (Mac Pro), але абсолютно неадекватна вартість ($3k) купи застарілого брухту мене зупинила. Моноблоки теж не радували вартістю, mac mini — швидкодією. До macOS я вже звик, та змінювати щось не хотілось абсолютно. Проте регулярне користування вінодвсодекстопом, де все працювало дуже швидко, мене почало підточувати, і зерна сумнівів дали серйозний урожай.
Я замислився про те, щоб поставити на десктоп лінукс і працювати за ним. Люди ж якось живуть? Та й 2019 рік надворі, прогрес не стоїть на місці. Коли моя шхуна ще ходила океанами аутсорсу, всі наші розробникі працювали за лінукс десктопами — у когось Mint, у когось Ubuntu — і почували себе чудово. Урешті-решт я вирішив спробувати. Вирішальним фактором виявилось те, що для хакінтоша потрібна була флешка на 16 гігабайт, а в мене була тільки на 4. Шукати чи купувати нову флешку я не хотів, тож пішов на DistroWatch і почав роздивлятися, що там зараз у тренді.
Муки вибору
Я звузив коло дистрибутивів до deb-based, адже, на мій суб'єкта єктивний погляд, вони значно популярніші за RPM та інші арчлінукси і генту. З CentOS я працював багато, та, як правило, імовірність знайті вирішення своєї проблеми на Stack Overflow для CentOS нижча. Тож я навіть не дивився в бік не Debian-based дистрибутивів (окрім Manjaro). Отож, наслухавшись мудрих порад з DOU та ще раз переглянувши рейтинги DistroWatch, я вирішив почати з MX .
Завантажив дистрибутив з офіційного сайту, завантажився з флешки, за 5 хвилин встановив. Я вже не пам пам'ятаю точно, що не запрацювало, можливо, застарілі версії деяких потрібних мені пакетів (MX базується на Debian), але з якоїсь причини MX мене не влаштував. Далі я перейшов до активно рекомендованого на DOU Manjaro . Завантажив варіант з Xfce, встановив. Після старту виявилося, що не працює Wi-Fi — ніяк не хотів підключатися до моєї домашньої мережі. Порпатися з пошуком необхідних драйверів не було жодного бажання, тож я перезавантажився у Windows та пішов шукати інший дистрибутив.
Я дещо засмутився, адже мені здавалось, що периферія 10-річної давності мала б 100% працювати. На секунду я подумавши, що насправді лінукс на десктопі такий самий, яким був раніше — без колупання в конфігах нічого не працюватиме, і нічого не змінилося. Тож я вирішив взяти найпопулярніший дистрибутив, тобто Ubuntu.
Ubuntu було завантажено та встановлено, здається, все запрацювало, і я навіть почав налаштовувати SDK, оточення і таке інше, але потім зненацька зрозумів, що GNOME або ж Unity, чи як у них називається графічна оболонка, мені зовсім не до вподоби. Тобто взагалі не подобається. Вони там ще напихали якихось зондів, рекламу і місцевий апстор, коротше кажучи, якось воно взагалі не зайшло, і хоча я вже встановив IntelliJ, налаштував RVM та викачав проекти, все одно вирішив відмовитися.
Я знову засмутився. Невже доведеться купувати флешку на 16 гігабайт та ставити хакінтош? Чи апгрейдити макбук? Але щойно я його відкрив та запустивши IntelliJ, то знову сповнився рішучості спробувати лінукс ще раз. Загадавши, що у трьох розробників з моєї шхуни було встановлено Mint , я вирішив дати йому шанс. Як завжди, інсталяція закінчилася за 5 хвилин, і тут — о диво! — під час старту системи я почув звуки привітання!
Невеличке пояснення — чому це мене так здивувало? Річ у тому, що колонки та навушники в мене під'з'єднано до звукової картки M-Audio Fast Track Ultra . Виробника вже давно купивши AVID, картку не підтримують з 2012 року, драйверів на новий Windows та macOS вище Snow Leopard нема і не буде. А тут Mint підхопив її, більш-менш коректно сконфігурував входи-виходи і встановив як аудіопристрій за замовчуванням. Моє серце розтануло. Автоконфігурація звукової картки означала, що я тепер можу жити в одному оточенні — працювати, грати на гітарі та в CS:GO, без перезавантажень, реєстрації та СМС.
Зовнішній вигляд оболонки Cinnamon мене теж дуже потішив — із всіх протестованих (GNOME, KDE, i3) ця виявилась найгарнішою.
Робоче оточення
Коли я ще ходів під вітрилами на своїй шлюпці, то бачив, що один з кофаундерів, який працював якраз на Mint, мав проблеми зі Skype — MS чі то не підтримував десктопну версію, чи підтримував її погано, одним словом, йому доводилося працювати у Web-клієнті.
Виявилося, що зараз завдяки тому що весь софт Electron-ізовано та запаковано, проблем з програмами для лінуксу немає жодних. Майже в усіх виробників, програмами яких я користуюсь, є версія для Linux, яка функціонально нічим не відрізняється від інших платформ. Тож з точки зору програм переїзд був пробачимо та безболісним. Зупинюся на завданнях, аби було приблизне розуміння, що мені потрібно: щодня я займаюся розробкою на Java, Ruby on Rails, Python, Node.js та трішки фронтендом. Отож, що я використовував на macOS та що так само використовую Linux:
- IntelliJ IDEA — основний інструмент, який годує мене вже десяток років. Працює, звісно, без проблем, тому що JVM.
- Telegram, Skype, Slack, Viber, Zoom — месенджери та відеоконференції теж всі працюють без проблем, що нативні, що з-під електрону.
- Браузери — Firefox, Firefox Developer Edition, Firefox Beta, Firefox Nightly, Iridium. Я навіжений і для кожного замовника чи проекту тримаю окремий браузер, щоб не перетиналась пошта, акаунти для браузерів тощо. Тут теж все зрозуміло — працює як треба. На macOS я теж користувався Firefox. Так, я знаю про профілі, альо смороду мені не подобаються.
- Steam — пограти в Counter Strike: Global Offensive (який працює під лінуксом нативно).
- Discord — працює ок, але крашиться раз на годину. Проблему маю не лише я. Жити можна.
- Postman, VS Code (майже не використовую) — абсолютно аналогічні того, що є під Windows або macOS. Слава електрону.
Ось і весь десктопний софт, який я використовую щоденно. Міграція минула без проблем, буквально за один вечір. MS Office у мене не встановлено, вистачало Numbers. Натомість у Linux є LibreOffice, ніби норм, але я ним не користуюсь дуже — немає потреби. Фотошоп мені не потрібен та не був встановлений на macOS. iTerm успішно був замінений місцевім терміналом. Я не користувався особливостями iTerm, тому мені норм. Зверху поставивши Oh My Zsh з такими самими плагінами та темами, як і на macOS. Крім того, звісно, було встановлено купу софту для розробки: перш за усе RVM, потім Node, Pyenv, Docker, нативні бібліотеки для PG/MySQL/Redis і т. д., ті, що під macOS не завжди встановлюється без нюансів (хоча команда brew працює круто, тут жодних заперечень).
До речі, Docker я практично не використовую саме як робочий інструмент (знаю, що дехто піднімає собі базу даних або інші сервіси) — так, інколи перевірити, що контейнери коректно збираються. На macOS докер я не встановлював (тому що немає місця та тому що раніше він потребував додаткових програм для віртуалізації — не впевнений, як зараз з цим справи), але під лінуксом все працює дуже швидко. І білд, і запуск.
Минуло декілька днів, і я відчував себе майже як риба у води. З робочими питаннями я розібрався, залишилося лише дещо підлаштувати: хоткеї та інші системні речі.
Система
Найболючішим питанням при зміні оточення для мене не зміна хоткеїв, до яких я звик. На лінуксах вони, звісно, досить сильно відрізняються від macOS. Я вирішив спробувати переналаштувати клавіші під ті, які мав на macOS. Для цього я замінив місцями клавіші Ctrl та Alt (клавіатура у мене з Windows-розкладкою, Hyper Alloy FPS на MX Red), перебивши Alt+Tab на Win+Tab, вихід з програм на Win+W, одним словом — влаштував собі macOS для бідних :) Все це можна було зробити через UI, без редагування конфігурації.
Також вирішив питання з розкладкою. На macOS я користувався модифікованою розкладкою Іллі Бірмана , яка містила третій шар для російських букв и е ъ е, таким чином для набору текстів кирилицею мені не доводилося переключатися між українським та російським варіантами клавіатури. Приблизно тиждень я не поспішаючи шукав таке ж рішення, врешті-решт знайшов та підправив від себе (тут довелося трішки попоратися з конфігами). Переключення локалі по Caps Lock налаштовується через UI.
Аналог f.lux називається : Redshift , хоча виглядає він не так гарно (а радше — взагалі не виглядає, для GUI треба встановлювати окрему програму). Для музики є досить адекватний Rhytmbox. Система оновлює собі нашим улюбленим apt-get update && apt-get upgrade — взагалі без проблем. Ті, хто малі справу з побудовою докер-образів, не пропадуть. Томі з NTFS автоматично підхоплюються на запис без додаткових налаштувань. Wi-Fi працює як треба, хоча деколі (раз на тиждень, або ще рідше) відвалюється та потребує перезапуску. Профілі для VPN можна встановлювати відразу у .ovpn форматі і відкривати через мережеві налаштування — не потрібно ставити ніяких TunnelBlick!
На жаль, не всі програми можуть підхопити мою круту звукову картку з не менш крутимо конденсаторним мікрофоном як пристрій введення. Виведення — так, тут без проблем. А вісь введення — ні. Я гадаю, що це якось вирішується, але поки що не хотів витрачати на це час. У мене є веб-камера з хорошим мікрофоном (яка, до речі, теж запрацювала з коробки). Альо на macOS звукова картка взагалі не працювала, тому до лінуксу тут у мене жодних претензій. Хоча може якось знайду годину, зберу докупи всі ці Jack, ALSA, PulseAudio та інші штуки — і радуватиму співбесідників оксамитовим голосом.
Зі шрифтами та згладжуванням у мене проблем немає. Працюю я за тім самим екраном, який підключав до макбук як зовнішній (Dell U2415, 16:10, 1920?1200), тож різниці не помічаю. Додаткових налаштувань я не робив. Suspend/resume працює без проблем. Кажуть, що на ноутах з цим негаразди, підтвердити чи спростувати не можу. На десктопі аптайм кілька тижнів стабільно. Перезавантажуюсь у Windows лише для звукозапису.
Вісь як виглядає мій десктоп. Основні інструменти — IntelliJ IDEA та купка браузерів. CS:GO у віконному режимі, щоб розбавити воллпапер, граю я у фулскріні, звісно.
Проблеми
Декілька проблем з софтом та системою, які я так і не зміг вирішити або вирішив не інвестувати в них годину:
- Відсутність ?+c/?+v. За роки роботи я вже настільки до цього звик, що змінити м'яка язову пам'ять було складно. У терміналі можна налаштувати цю комбінацію, але для всієї системи — зась. Доводитися пам " ятати, де ти зараз знаходишся, та натискати відповідні клавіші.
- Cinnamon чомусь вважає ок вішати на F10 системний хоткей (виклик меню). Довго не міг зрозуміти, чому в мене не закривається mc. Як відключити цю поведінку для всієї системи, не лише для терміналу, не знайшов.
- Ті саме, тільки для Alt+клац мишкою. На macOS в IntellIJ таким чином працювало блочне виділення, а тут викликається якийсь системний менеджер вікон — абищо, коротше кажучи.
- Неможливо нормально відрегулювати швидкість миші. У мене миша Razer Deathadder, там досить висока роздільна здатність та, відповідно, висока швидкість курсору. Мінімальна швидкість для мене все одно занадто висока. Спробував щось там конфіжити через XInput, проте не допомогло. Урешті-решт просто змирився і забивши, проблем руками буде менше. CS:GO вміє читати сирий потік з миші, тож там можна відрегулювати все як треба.
- В IntelliJ не працює мапінг клавіші win для хоткеїв, тобто не можна собі зробити ?+n для пошуку класу, потрібно CTRL+N натискати. Вже звик.
- Середня кнопка миші працює як CTRL+V, ще не знаю, як це відключити, але й не надто шукав.
- Спелчекер в FF якось дивно перемикає мови. Іноді не перемикає взагалі та детектить англійську як кирилицю і навпаки.
- За відчуттями, FPS в CS:GO дещо нижче, ніж під Windows, 100 проти 150-200, десь так. Хоча я все одно не перезавантажуюся та катаю з хлопцями під лінуксом. Драйвери на відекарту AMDшні.
І ще декілька дрібних проблем. Найсерйозніша з цього переліку — то перша, з копіюванням та вставкою, а інше — те дрібниці, я вже до всього звик та не помічаю різниці.
Ітогі падведьом ©
Вже три місяці Linux Mint є моїм основним середовищем. Макбук я відкриваю надзвичайно рідко, щоб скопіювати якусь конфігурацію або секрет, які не переніс раніше, щоб подивитися відосик у ліжку та деколі — щоб попрацювати на кухні. Також, поки я не купивши новий ноутбук, макбук залишається тревел-девайсом. Зараз я нікуди особливо не їжджу, сиджу вдома, але розмірковую потроху про купівлю ноута, щоб поставити туди лінукс. Кажуть, що Thinkpad'і для цієї справи гарні, і я б залюбки придбав щось на кшталт такого .
Доки писалася та версталася ця стаття, Apple випустила 16" макбук з фізичною кнопкою Esc та виправленою клавіатурою, що не ламається від крихт та пилу. Носити такого велетня у рюкзаку я не хочу, та й за macOS я, чесно кажучи, не надто сумую. Тачбар не потрібен, USB-C не потрібні — ну ви зрозуміли.
Також запропонували новий Mac Pro за космічним прайсом (), але віддавати $6k за залізо, яке, за відчуттями, навряд буде швидшим за мій десктоп, щось не хочеться. Та й, загалом, $6k для мене — це надто багато за залізо (навіть якщо це не включало оверпрайс за яблуко, а було лише ціною власне комплектних деталей). Я, на жаль, ще не маю такого рівня статків.
Зараз ще й AMD випустила Threadripper'ів докупи, тож можна недорого докупити 24 ядра і непогано себе почувати. Утім, мені цілком вистачає чотирьох інтелівських, навіть з патчами на Meltdown та інші дірки камінців Intel.
...
Лише півроку тому я гадав, що нікуди не дінусь з macOS. Хоткеї, софт, звички здавалися мені непохитними. Утім, людина швидко адаптується. Буквально за два тижню після переїзду я вже почував себе комфортно та збирався писати цей матеріал, але вирішив почекати ще трошки, аби відловити усі проблеми та переконатися, що я дійсно можу працювати під лінуксом на довгій дистанції.
Тепер я можу зробити однозначний висновок — лінукс на десктопі живе. Можливо, ви маєте свої вимоги до софту, який є винятково під Windows або macOS, але я особисто вважаю, що для бекендера/дата-саєнтіста/фронтендера/андроїд-розробника Linux є відмінним вибором та повноцінною заміною macOS.
Тепер що стосується саме макбук. Уважний читач помітить, що весь матеріал присвячений саме десктопа і софту, а не тачпаду та блискучому алюмінієвому корпусу. Я не писав про вибір ноутбука, тому що ще цим не займався. Але найімовірніше дивитимуся у бік ремонтопридатних ноутів. Якщо все працює на десктопі — значити, можна завести на ноуті.
Швидкість та апгрейдабельність
А вісь що мене тішить у новій робочій станції понад усе — то це швидкість її роботи. Я неодноразово писав про важливість хорошого робочого заліза, швидкості збірок та компіляцій для щоденної роботи. У мене старий процесор — core i7 4770, лише 16 гігабайт пам'яті, дешевий SSD Crucial (адже матплата в мене теж стара та не вміє завантажувати систему NVMe, до того ж немає m.2 слоту), і все це працює суб'єкта єктивно просто в рази швидше за макбук (на якому, між іншим, процесор на кілька поколінь старший та й SSD, напевно, не гірший). Настільки швидше, що я не чекаю, доки відкриється проект в IntelliJ, браузери відкриваються моментально, збірка Webpack навіть не встигає підняти оберти штатного вентилятора, і взагалі все гаразд.
Я майже не дивлюся у htop і не цікавлюсь, що ж з'єднання їло всю оперативну пам'ять. Я припинив користуватися ncdu та індиферентний до оновлень системи, кешів, логів та іншого мотлоху, який залишають за собою програми у процесі життєдіяльності.
У перші тижню у мене було відчуття, наче до цього п'ять років бігав з вантажем на ногах — настільки швидше все почало працювати. Я навіть відчував легкий од ейфорію та бажання попрацювати (чого зазвичай зі мною не трапляється). Тепер організм вже звик до високої швидкості та сприймає це як належно. Кілька днів тому відкрив макбук подивитися кіно і був вражений, наскільки тієї повільний.
Тепер я знаю, що якщо завтра мені потрібно буде додати потужності, то я зможу просто купити новий процесор або матплату + процесор. Поставити одне замість іншого, і життя знову заграє швидкістю. Не потрібно думати про мотлох на диску — якщо треба буде збирати товсті образи або перемелювати бігдату, я просто прикуплю SSD за $50 і буду щасливий.
Я ніби повернувся назад у дитинство, коли за браком коштів доводилося лише дивитися на прайс-листи, огляди та рекламні проспекти у журналах «Компьютерное обозрение» та CHIP, тільки тепер можна купити все, що там продають, і зовсім не потрібно чекати, доки Apple поверне модель 2015 року, з нормальними портами, магсейфом та можливістю проапгрейдити або відремонтувати пристрій.
Якщо ти, читачу, все ще сидиш за старим макбуком, я гадаю, що ти тепер знаєш: за межами macOS життя є.
Fin.
Якщо вам сподобалося, як я пишу, то долучайтеся до мого телеграм-каналу .
Опубліковано: 08/01/20 @ 11:00
Розділ Різне
Рекомендуємо:
Коли в добі досить годин, або Чому варто навчитися грамотному плануванню
DOU Hobby: авіамоделювання - від розробки моделі літака до запуску в небо
iOS дайджест #35: курс Combine, Redux + SwiftUI, Vapor 4
CI/CD для фронтенда: огляд інструментів і практик для автоматизації розробки
Як ЛУН удосконалює карту новобудов: технічний шлях до 3D-моделей і AR