Перед тем как вы будете покупать новый макбук, сперва обратите внимание на разные раскладки клавиатур. Лично для себя всегда беру только раскладку ANSI, но в Европе продается в основном только ISO. Второй момент - это спецсимволы, нанесенные на русских клавиатурах на клавишах 1 - 8 . Дело в том, что русская раскладка мака отличается от русской раскладки PC. Это легко лечится в системе выбором раскладки "Русская - ПК" вместо "Русская", но физические надписи на клавиатуре заменить не так просто. Так что, советую приобретать макбук совсем без русских букв на клавиатуре, а нанести гравировку уже после приобретения, если вы будете в ней нуждаться (вряд ли). Итак, если вы купили свой первый мак, вы наверняка в этот же день полезете в AppStore в поисках чего-либо знакомого или просто интересного. На самом деле, для линуксоида это очень коварная ошибка. Покупая приложения в AppStore вы не можете от них отказаться, особенно от бесплатных приложений. Да-да, это не фигура речи, в том AppStore действительно продаются бесплатные приложения. Чтобы отказаться от купленного за бесплатно приложения вы должны написать письмо по адресу биллинга Apple, что разработчик приложения мошенник, либо нарушает правила размещения приложений в AppStore, либо нарушает законодательство в каком-нибудь регионе. И только в этом случае вам отменят покупку этого приложения. Для любого линуксоида хотелось бы все приложения устанавливать из пакетного менеджера. На маке их работает два. Homebrew содержит огромный список софта. К выбору софта из Homebrew надо подходить с осторожностью. Тут в списках опенсурсный софт вперемешку с проприетарным. Многие программы бесплатные, но попадаются и Trial-версии с бесплатным периодом от 7 до 14 дней. Так что, увидев красивое название пакета, торопиться его ставить не стоит. Сначала надо глянуть на сайт разработчика. Весь опенсурсный софт устанавливается уже собранным релизом от разработчика. Homebrew имеет возможность устанавливать что-то из исходников, но, как правило, этот процесс не завершается успехом и требует вмешательства красноглазого разума. Помимо того, что Homebrew занимается установкой приложений на компьютеры Mac, он так же выполняет контроль над запущенными установленными через него сервисы. Есть отдельная утилита BrewServiceMenubar, которая показывает какие сервисы в данный момент установлены, какие из них запущенны в данный момент, а какие остановлены и могут быть запущены в один клик выбранного пункта меню. Для любителей собирать софт из исходных кодов есть другой менеджер пакетов MacPorts. Тут уже пакеты исключительно с открытым исходным кодом. Все пакеты со всеми зависимостями собираются из исходного кода. Репозиторий представляет собой список папок, внутри которых лежат скрипты для загрузки исходников и автоматической сборки пакета. Если вы работали с системами *BSD, процесс работы с портами не принесет никаких трудностей. А вот начинающим красноглазикам сие может быть в новинку. По моему мнению, порты чуть-чуть посложнее какого-нибудь AUR. Возможно, так происходит по причине неравных размеров сообщества. Если в AUR есть четкое понимание, для каких архитектур сделан пакет, с какими уже установленными пакетами он конфликтует, и можно найти разные комментарии по свежим ошибкам сборки, то в портах гораздо дольше приходится разбираться с этими трудностями самому, без сообщества, иногда даже непосредственно исправляя исходные коды. Также стоит упомянуть мой любимый скрипт для поиска и установки обновлений topgrade. Сам topgrade работает одинаково хорошо как на линуксах, так и на маках. Один запуск команды без параметров и у вас обновлено, всё, что вообще может требовать обновлений: от разных xcode до cargo, npm, gems, pip. Работает со всеми менеджерами пакетов brew, macports, ports, portage, dnf, apt, nix, pacman, aur, zypper, flatpack, snap, проверит обновления баз manpages, tldr, metasploit, плагинов tmux, zsh, fish, vim, micro, обновит все шрифты, контейнеры, vagrant, docker, В общем, все, что вообще может обновляться, topgrade обновить не забудет. Если вы решили пользоваться маком, скорее всего вас не тяготит проприетарная основа системы MacOS. Потому предлагаю сразу дать системе отсканировать 2-3 пальца, и вспоминать о вводе пароля только после перезагрузки. Шифрование всего SSD - это конечно на любителя, а вот пользоваться пальчиками для разблокировки компьютера и менеджера паролей удобно. Так же как и в Linux, для MacOS есть своя версия KeePassXC с плагинами для Chrome и Firefox. KeePassXC также спрашивает пароль и ключи только для открытия базы с паролями, далее снимать блокировку с базы паролей можно пальчиком. Если вы по какой-то причине не пользовались KeePassXC ранее, то вам нужно попробовать прямо сейчас. Программа защищено хранит логины-пароли, и любую дополнительную информацию к аккаунту в произвольной форме. Сама генерирует пароль максимальной сложности, сама будет заполнять формы авторизаций на сайтах. Тут же есть генератор временных паролей для 2ФА. К каждому внесённому в базу аккаунту можно прикреплять любые файлы, ключи, seed-фразы. Физически база хранится в одном файле, который защищен многослойным шифрованием, так что резервные копии базы можно хранить без опаски за  уровень криптостойкости. Очень удобно когда вся самая конфиденциальная информация хранится в одном месте - если пролюбливать, то всё сразу! При использовании многих копий базы с паролями есть одна тонкость - всегда работайте только с последней версией базы данных. Если вы будете использовать разные версии базы или синхронизировать их вручную (то есть вручную копировать базу между носителями/компьютерами), велика вероятность, что в один прекрасный день вы чутка ошибётесь и затрёте старой версией базы новую. Тогда вы лишитесь добавленных аккаунтов позже старой версии, которой вы заменили актуальную версию. - Такой конфуз кажется невероятным, но я слышал уже как минимум о трех таких случаях. Если используете в качестве дополнительной защиты помимо парольной фразы файлы на компьютере, пусть это будут не те любимые альбомы в mp3. Если по ним пройдется какой-нибудь EasyRetagger, велика вероятность потерять доступ ко всей базе. Если локальная база паролей вас не устраивает, нужна всеобщая или корпоративная синхронизация аккаунтов, то вам больше подойдет Bitwarden. Можно даже поставить пальчики на авторизацию sudo и забыть про ввод паролей даже в терминале. Для этого вам надо добавить в файл /etc/pam.d/sudo строку прямо первой строчкой: Теперь два слова о линуксовых редакторах. Надеюсь, про vim уже слышали все читатели этого поста. Вы без труда найдете на Хабре как пользоваться этим vim и списком плагинов под него. Если вы новичок в vim, и делаете первые попытки его обуздать, я не советую увлекаться плагинами vim. Так как vim вполне достаточно сложный уже из коробки, и десятки плагинов сделают его еще сложнее, то есть выработать привычки работы с vim не помогут. Хочу отметить только один плагин к vim, который делает vim чуточку менее капризным, более управляемым как для новичков, так и для бывалых юзеров vim-sensible. В нем собраны все рецепты против которых не будет выступать никто. Бывает ситуация, когда через vim открыл конфиг от обычного пользователя (то есть без прав на запись), внес кучу изменений, а в конце выхватываешь проблему сохранения. Если добавить эту строчку в ~/.vimrc: то можно будет сохранить файл с запросом прав sudo не закрывая vim командой :w!! (источник). Если по какой-то религиозной причине vim категорически вас не устраивает, и вы до сих пор пользуетесь nano, забудьте про редактор nano и встречайте micro. Micro - это тот же nano, но с поддержкой выделения текста мышкой и человечными хоткеями. Если пытаться сказать про micro в двух словах, это бы звучало так:  они сделали notepad.exe, работающий в терминале. Работают хоткеи: Ctrl+Z отмена (undo), Ctrl+X вырезать (cut), Ctrl+C копировать (copy), Ctrl+V вставить (paste), Ctrl+F найти (find), Ctrl+S сохранить (save), Ctrl+Q выход (quit). И даже скромный набор тем и дополнений никак не усложнит работу привычными с детства жестами. Вопрос с повышением прав до sudo в редакторе уже решен из коробки без всяких плагинов и настроек.  Кстати, о хоткеях. Они в маках другие, и к ним придется привыкать. Пытаться менять их бесполезно. Чтобы не пугать читателей, попробую объяснить принцип мысли маковода на пальцах. В MacOS очень большая роль отдается главному меню приложения. Как правило, почти все операции, которые может выполнить то или иное приложение можно найти в меню. И наоборот, все операции, которые можно найти в меню, скорее всего доступны для активации из терминала и из Automator. Какая-то часть операций доступна для активации через хоткеи, которые легко заменить, добавить, отменить средствами системы.  Automator - это системный инструмент записи и воспроизведения макросов в системах MacOS. Automator поддерживает визуальный конструктор скриптов для непрограммистов (а-ля CodeBlocks), и свой язык автоматизации AppleScript, который не сложнее VisualBasic в Microsoft Office. Фактически экосистема позволяет использовать любые операции из установленных программ как отдельно от запуска программы, так и последовательности операций (например, запустить программу, открыть файл, что-то в нем изменить, сохранить файл, выйти). Если вы хотите перенастраивать, например, пункты контекстного меню элементов Finder, то, скорее всего, придется писать автоматизацию на AppleScript, а не на bash.   Возвращаясь к теме хоткеев. Я уже отметил, что хоткеи во всех приложениях задаются на уровне системы. Есть отличный инструмент для новичков, который отображает список всех доступных хоткеев для текущего приложения, Программа называется Cheatsheet. Активируется по длительному нажатию клавиши Command. Как бы затупил чутка, пока вспоминал хоткей, и тут бац! открылась подсказка. Есть возможность ее распечатать. Говоря о клавиатуре, нельзя не упомянуть отличную утилиту Fluor, которая выручает меня не первый год. По умолчанию MacOS включает верхний ряд клавиш в "media-режим". Это удобно, когда ты смотришь фильмец на zetflix, но дико выводит, когда, например, загрузил в терминале midnight commander и по клавише F6 вместо открытия диалога перемещения папки компьютер выключает дисплей, тем самым уходя в сон. Fluor автоматически переключает режим работы верхнего ряда клавиш в зависимости от открытого приложения. Кстати, о Finder. Finder - это менеджер файлов MacOS. То есть тоже самое, что Nautilus в GNOME, Thunar в XFCE, PCManFM в LXDE. В системе из коробки мне лично не хватало такого пункта контекстного меню Finder, который открывает Терминал в текущей открытой директории. К сожалению, однозначного железного решения я не нашел. Но есть две утилиты которые мне помогают справиться с этим.  Первая утилита называется cd to, которая при запуске из всех открытых окон Finder находит то, которое было активно в наиболее позднюю точку времени и открывает терминал в папке, которая была открыта в этом окне. Не то что бы это прям то, что нужно, но забиндив на её запуск хоткей, можно смириться. И так сойдет!  Вторая утилита поинтереснее. Называется Service Station. Интегрирует свои пункты в контекстное меню Finder в зависимости от типа выбранного файла или папки. Может запускать программы, скрипты AppleScript, скрипты bash(!), ну и соответственно, любую команду или скрипт, которую можно запустить через терминал. Жаль, что эта утилита проприетарная и неплохо урезана в бесплатном режиме. Одна из самых используемых программ на моих компьютерах - Google Chrome. Как и на других ОС, любимый многими браузер также хорошо работает на MacOS. Но мне был непривычен один тачпадный жест, который я не хотел выключать для всей системы. Свайп двумя пальцами влево-вправо переключал текущую на предыдущую-следующую страницу по истории браузера. Причем, это чисто маковский прикол (в других ОС такого я не наблюдал). И настройки, где можно было бы снять галочку, как вы понимаете, такой нету. Все пункты настроек Chrome досконально одинаковы во всех ОС. Возможно сейчас где-то и появилась эта настройка, но на тот момент гугл советовал лишь отключить свайп двумя пальцами в системных настройках. Нет свайпа - нет проблем! Конечно, свайп двумя пальцами отключать нельзя, ведь он отвечает за прокрутку каждого окна! Бывалые маководы давно привыкли не елозить тачпад влево-вправо без нужды. И я тоже пытался. Но чаша терпения треснула и я нашел рецепт лечения недуга. Надо-то всего лишь открыть терминал и выполнить команду (как же это было очевидно, Google): Маки с чипами M1-M2 могут запускать приложения, оптимизированные как для архитектуры ARM, так и для x86_64. Разница в работе между этими двумя архитектурами может быть несущественной, но все же, приложения под ARM кушают меньше ресурсов. Утилита Silicon Info отображает индикатор, который поможет отличить, оптимизировано ли текущее используемое приложение под ARM, или же приложение запущено через Rosetta Stone. Если вы, как и я любите тайловые менеджеры окон вроде i3, awesome или даже openbox, то вам понравится утилита  Rectangle. С помощью нее легко делить дисплей на 1-5 частей и при помощи хоткеев мгновенно переключаться между окнами и экранами, распределять и перетаскивать окна по разным частям экрана. В последних версиях Rectangle появился режим ToDo-mode, который вытаскивает отдельное окно так, чтобы окно отображалось в правой части и можно поднимать его поверх всех окон по хоткею. Единственный минус - она не запоминает расположение окон, и при перезагрузке компьютера приходится заново распределять окна по частям экрана. Но этот процесс легко автоматизировать с помощью упомянутого Automator. Пересев с линукса на макбук, первое время мне очень не хватало отсутствующей поддержки макбуками среднего клика мыши. Он же клик по колесику мыши. В конечном итоге я почти перестал использовать средний клик мыши, но первый год после плотного использования только линуксовых дистрибутивов на всех машинах, отсутствие среднего клика приносило дикий дискомфорт. Эту проблему частично (а для кого-то полностью) исправляет утилита MiddleClick. Она позволяет эмулировать клик средней кнопки мыши через нажатие на тачпад одновременно тремя пальцами. Возможно, вы захотите использовать физическую выделенную мышку вместе с ноутбуком. Разумеется, в каких-то ситуациях использование выделенной мышки проблематично или вовсе невозможно. В таких ситуациях все же иногда приходится использовать тачпад. И тут становится проблема привычной ориентации прокрутки. На тачпаде я привык работать с так называемым natural scroll. Но когда в руке мышка с обычным колесиком, я бы хотел прокручивать окна по привычной большинству классической ориентации прокрутки. К сожалению, для MacOS глубоко по барабану что именно вы используете в данный момент тачпад или мышку, в настройках есть только одна опция, отвечающая за ориентацию прокрутки, а не раздельные опции для тачпада и мыши, как в дистрибутивах Linux. Для решения этой проблемы сделано много разных утилит. И, безусловно, задача решается не дольше 5 минут гугления. Я перепробовал три или четыре разные утилиты, решающие эту проблему полностью. Наиболее функциональной мне показалась утилита LinearMouse. Во-первых, она полностью опенсурсная. Помимо ориентации прокрутки там есть разные настройки скоростей прокрутки в зависимости от зажатых клавиш-модификаторов. Сам я мышками не пользуюсь, и тачпад заменяет мышь на все 100%, но для любителей физической классической мыши утилита обязательна к использованию. Одна из самых эпичных проблем MacOS является проблема смены дефолтных приложений для открытия файлов того или иного формата. Тут присутствует и навязывание неудаляемого QuickTime вместо любимого видеоплеера VLC. Приложение для открытия файла приходится менять через задний проход окно свойств файла, и это надо повторять на каждом видео-файле. Ни галочка всегда открывать в приложении, ни кнопочка рядом с заменой приложения в свойствах файла не дает результата. Так происходит только на всех форматах видео-файлов. Мало того, что приходится выбирать VLC для каждого файла отдельно через свойства файла, так эта настройка даже не сохраняется после перезагрузки. И что самое эпичное - QuickTime может даже не поддерживать этот формат файлов (как минимум не поддерживает *.mkv), о чем он и сообщает, открывая любой файл вместо нормального видеоплеера. Рецепт я гуглил долго. Но кто ищет, тот всегда найдет. Спасибо неравнодушному разработчику утилиты duti. Для лечения нужно создать конфиг для duti в любом месте: и запустить с этим конфигом: Среди линуксоидов обязательно есть фанаты conky. Если хочется мониторить в реальном времени загрузку CPU/GPU/RAM/SSD, куда же без conky?! На MacOS эту задачу решает Stats. Конечно кастомизация отображения не на столько богатая, как у conky. Но работает красиво, показывает любые нужные индикаторы в цифрах и графиках и "моргалках" в углу верхней панели. При нажатии на любой модуль отображения открывается попап с более глубокой степенью информативности. Из попапов можно завершать ненужные процессы одним-двумя кликами. Для более глубокого мониторинга состояния системы есть системная консольная утилита powermetrics. Если запустить sudo powermetrics без параметров, утилита будет отображать в реальном времени все свои модули, и данных будет настолько много, что они могут уместиться наверное только на трех мониторах. Все данные разделены на 12 модулей: tasks, battery, network, disk, int_sources, interrupts, cpu_power thermal, sfi, gpu_power, bandwidth, ane_power. Кстати, отличительной особенностью MacOS является определение в цифрах параметра, сколько электроэнергии кушает тот или иной процесс. Такой точности определения ранее я нигде не встречал.  Фанатам двухпанельных менеджеров файлов могу предложить ForkLift. Программа имеет подобный TotalCommander-у функционал, завернутый в лаконичный дизайн нативных маковских приложений. Жаль, приложение проприетарное, но полностью бесплатное. В последнее время над Википедией сгущаются тучи. Хорошо, что есть возможность сохранить полную или частичную локальную копию к себе на компьютер или смартфон. Все это стало возможно с проектом Kiwix. Это не чисто маковский проект, сама программа Kiwix есть под все ОС, также присутствуют в F-droid. Архивы Википедии и некоторых других wiki-проектов можно скачать с сайта проекта. Данные предоставляются в формате Zim. Хочется рассказать про еще одну интересную красивую утилиту KeyCastr. Утилита отображает где-нибудь в углу все нажимаемые клавиши в реальном времени. Сделана специально для записи скринкастов и видео-мануалов, для демонстрации каких-либо фактов/багов. Софтинка специфичная. Лично я пользуюсь ей нечасто. Но когда она нужна,  она просто незаменима. Иногда по долгу службы приходится подключаться к рабочим столам Windows по RDP. Для этого многоуважаемая компания Microsoft разработала специальную утилиту для MacOS. Но спустя некоторое время в просторах сети интернета я обнаружил опенсурсное исполнение этого функционала. Программка называется CoRD. Имеет нативный маковский дизайн менеджера соединений. Может коннектиться сразу к нескольким рабочим столам. Поддерживает forwarding, файловый Drag'n'Drop и общий буфер обмена. В MacOS системой предусмотрено несколько видов скриншотов. Среди них есть скриншоты экрана, окна, выделенной области и т.д. Все это хозяйство особо даже не требует настроек. Я лишь настроил сохранение скриншотов в отдельную папку, ярлык которой установил в dock рядом с корзиной. И этого бы хватало, если бы не могло быть еще лучше. Утилита называется Shottr. Имеет множество настроек самого захвата скриншотов, а также удобный редактор для пост-обработки. Можно сразу запикселить или заблурить приватные области скриншота перед отправкой кому-либо или перед публикацией. Будьте внимательны, программа проприетарная(!). Для творческих личностей MacOS богат на выбор всевозможных платных и бесплатных, опенсурсных и проприетарных графических редакторов. Разумеется, все опенсурсные редакторы свою основу берут из Linux и вы обо всех этих редакторах слышали не раз: GIMP, Krita, Inkscape, FontForge. Среди проприетарных Figma, SketchBook, Canva, Lunacy, Vectomator. Насколько мне не изменяет память из перечисленных редакторов платная только Figma, остальные денег не требуют. Никаких рекламных баннеров за ними замечено не было. Хотя я не могу ручаться, что в будущем ситуация не изменится. Уже даже Телеграм стал платный. А вот хорошего color-picker под мак я пока не нашел, потому пользуюсь тем, что имеется. А именно Menubar Colors. Да, это конечно не gpick, но цвета с экрана забирать умеет. Программка не очень удобная, но пользоваться можно. Благодаря opensource-базе, может быть допилена сообществом в будущем.  В качестве синхронизатора файлов я повсеместно использую Syncthing. Утилита написана на Go, работает почти как Dropbox, но без сервера. Все данные хранятся только на собственных носителях. Глобальные серверы выполняют функцию обнаружения устройств друг-друга. Есть реализация под все десктопные ОС и под Android. Новые устройства в сеть добавляются через QR-коды. Поэтому с телефона добавить новое устройство проще чем с десктопа. Имеет гибкие настройки разграничений. Можно использовать, например, на одном устройстве одновременно и в личных и в корпоративных целях. То есть, отдельные папки синхронизируются среди сослуживцев, а отдельные папки синхронизируются между домашними родственниками, а некоторые папки синхронизируются только между собственным телефоном и компьютером. Может сохранять много версий одних и тех же файлов, если потребуется. В общем, штука очень удобная. Недавно среди комментариев Хабры был слух об ограничениях функциональности на территории РФ. Но среди официальных источников никаких заявлений не поступало, никаких новых issue в официальном репозитории замечено не было. Со средствами разработки на маке также все отлично. Работают инструменты от JetBrains, Lapce, VSCode/Codium, Android Studio, Eclipse, Netbeans. Также, даже если вы не программите под MacOS и iOS, у вас на компьютере все равно будет стоять почти бесполезный в остальных задачах XCode. Для разработок сложных БД можно использовать оперсурсный DBeaver. Из виртуальных машин работает Qemu, для дирижирования виртуалками можно использовать Vagrant. Работает Docker. На них останавливаться не будем. Хочется уделить больше внимания средствам, которые есть только под MacOS.  Среди огромных масс всевозможных программ под MacOS иногда попадаются жемчужины. Одна из таких жемчужин Sequel Ace. Это клиент для серверов баз данных MySQL. Жаль, что только MySQL. Прога имеет 20-летнюю историю и за это время обросла наиболее богатыми возможностями по сравнению с любыми аналогами. Вылизана каждая мелочь.Подключается через порт, сокет, SSH. Идеально подходит для разработки БД, для манипуляций с существующими БД. Программа имеет потрясающе-красивый интерфейс. В общем, работа в Sequel Ace приносит массу удовольствия. Еще одна утилита для ленивых разработчиков DevToys со всякими мелочами вроде конвертаций, или считалки хэш-сумм. В ней нет ничего особенного. Но она бесплатная и опенсурсная, кушать не просит, пойдет в копилочку. Авось, когда-нибудь кому-нибудь пригодится. Для ознакомления с полным списком функционала откройте спойлер.  По работе с GPG-ключами, его же шифрованием и подписями я долго искал приложение подобное Kleopatra или GPG-Crypter. Пока самое удобное из того что находил - это GPG Tools. Вполне годная опенсурсная версия. Удобный менеджер ключей. Шифрование/расшифрование/подпись/валидация осуществляется выделением нужного файла или текста и хоткеем, заданным через настройки системы (где, в принципе, настраиваются все хоткеи в MacOS). На этом, пожалуй, можно закончить первую часть статьи. Ссылка на вторую часть появится здесь после публикации. Сама вторая часть уже на 90% написана. В большей степени будет посвящена приложениям, запускаемыми в эмуляторе терминала. Не уверен, что кому-то понравится такая мешанина всего в кучу. Текста итак много получилось. Если будет что добавить, или увидели, что я откровенно наврал, напишите комментарий. Только ответить я могу вносив в статью изменения. Комментарии пока мне не доступны.