Я обычно люблю настраивать каждый раз телефон, ОС или другой продукт с нуля каждый раз. Никогда не делал бекап или перенос со старого устройства автоматически. По этому, хочет задокументировать текущее состояние macOS, чтобы при миграции было можно использовать как источник правды.
Вводные
Общее использование macOS у меня идет с разделением по пользователям. Я работаю удаленно с ноутбука, который так же используется для всего остального. И чтобы не мешать глобальные настройки и не переключать git
с одних настроек на другие было решено просто сделать отдельного пользователя.
Сейчас у меня всего один рабочий компьютер MacBook Pro 2019 года. Купил я его перед самым новым годом в Финляндии.
P.S. Когда-то я точно закончу монтировать видео с поездки, а то занимает 200 Гб.
У меня долгое время был внешний монитор, но сейчас я использую только MacBook Pro. По этому некоторые настройки остались еще с того времени.
Фото с внешним монитором - Friday, April 8, 2022
Настройки macOS
Все настройки в macOS я думаю у меня близкие к стандартным. В macOS есть удобная функция вывода кнопки переключения сразу в Menu Bar и выходу из текущего пользователя по Shift+Cmd+Q
.
Баузер: Firefox & Chrome
Основные браузеры на данный момент. Я пользуюсь сразу двумя для разных задач.
- Chrome: Разработка под web и использование в роли основного.
- Firefox: Для чтения статей, я настраиваю Simple Translate на мгновенный перевод в этом браузере. Для постоянного использования это не удобно, так что решил сделать в другом браузере данные настройки и просто менять браузер.
Расширения в браузере:
- Bitwarden: В качестве хранения паролей, но хочется поменять на self-hosted;
- OneTab: Позволяет закидывать открытые вкладки в хранилище. Использую как Reading list, потому что можно удобно экспортировать весь список;
- uBlock Origin: Все таки с ним жить приятнее;
- Google Translate или Simple Translate;
Brew
Это пакетный менеджер как в Linux. Очень удобно пользоваться им для установки всего разного. Обычно, если ты хочешь поставить Open-Source программу, то для macOS будет вариант с brew
. Так же вариант занять время, когда нечего делать, то пишешь brew update
и потом изучаешь обновления.
Для вывода списка пакетов можно использовать brew list
или brew leaves
для вывода только top-level пакетов. Всего я у себя вижу 106 основных пакетов. Думаю, я использую только около 30%. Можно разделить вывод на 2 категории.
- Formulae - CLI приложения;
- Casks - GUI приложения;
Далее я буду показывать только то, что установил на новой системе.
Casks (41 шт. установлено)
cyberduck - cask
Удобное приложение, если хочет редактировать файлы на удаленном сервере. Но есть одна раздражающая, но понятная функция. Если она открыта, а ты решил выключить MacBook, то каждый раз при выходе cyberduck
просит приобрести себя. Причем это прерывает процесс выключения. Так что ты нажал выключить, ушел, вернулся и видишь окошко одно от cyberduck
...
monitorcontrol - cask
Приложения для управления внешним монитором. У меня подключен монитор был по Thunderbolt 4
и данное приложение позволяло менять яркость и громкость динамиков с macOS, не трогая монитор. Позволяет менять громкость с помощью hot-keys
podman-desktop - cask
Альтернатива Docker Desctop. Пока на момент очень сырая, поставил больше периодически проверять состояние. Но выглядит как отличное решение для запуска контейнеров.
rectangle - cask
Когда у тебя широкоформатный экран, то данное решение помогает хоть немного упорядочить окна на экране.
vagrant - cask
Очень удобное решение для описания конфигурации виртуальных машин. Можно использовать с различным провайдерами VM.
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/bionic64"
config.vm.box_version = "1.0.282"
end
alacritty - cask
Интересный эмулятор терминала, правда которым я особо не пользуюсь 😅. Так как в нем удобных функций от iTerm2.
secure-pipes - cask
Приложения для прокидывания портов с удаленного сервера на локальный или наоборот. В общем SSH туннель в оболочке. Иногда удобно, если порт закрыт снаружи, например firewall.
drawio - cask
Одно из самых удобных приложений для рисования диаграмм.
postman - cask
Приложения для отправки запросов и дебаггирования REST API. Довольно удобное.
sloth - cask
Приложение показывает все используемы процессом ресурсы: открытые файлы, сокеты и прочее.
virtualbox - cask
Приложения для виртуализации x86. Я использую его, если нужно поднимать машины Vagrant.
element - cask
Приложения для общения в сети Matrix.
obsidian - cask
Система знаний, которая позволяет записывать заметки об всем. Я записываю туда разные факты о финансах или программирования. Есть например заметка по языку Go или Python.
qbittorrent - cask
Торрент клиент, работает почему-то лучше, чем другие у меня 🤔.
wireshark - cask
Очень полезная программа по анализу трафика. Часто помогает разобраться и посмотреть, доходит ли пакет или нет до сервера. Кстати, можно записывать и на стороне tcpdump
и потом открывать в wireshark
.
thunderbird - cask
Мой основной на данный момент почтовый клиент 😭. Перешел на него, так как не нашел ничего лучше пока для агрегации большого кол-во email ящиков.
Formulae (106 шт. установлено)
А теперь пойдут CLI приложения.
- btop - огромный dashboard со статистикой по машине, можно ставить иногда на машину;
- coreutils - основной набор GNU утилит на macOS. В macOS оно тоже все есть, но иногда другой список параметров или еще что;
- dive - позволяет изучать Docker Image под микроскопом;
- figlet - делает красивые ASCII art для комментариев в коде;
- hashcat - позволяет восстанавливать пароль по hash;
- terraform - использую для конфигурировать AWS в декларативном стиле;
- helm - пакетный менеджер для Kubernetes;
- htop - ставлю на все сервера, более красивый top, но не такой, как btop;
- jq - очень крутая штука для запросов к JSON на ходу;
- k6 - система для load testing на Go и JavaScript. Использовал для тестирования Kubernetes кластера;
- kind - запуск Kubernetes в контейнере, бывает удобно что-то проверить;
- lima - крутая идея, по запуску команд в VM Linux с пробросом всего из host машины;
- lnav - комбайн для анализа различных логов;
- duf - удобный вывод информации о дисках;
- neofetch - информация о системе, чтобы покрасоваться в чате;
- netcat -
nc
, который встречается в половине статей про сети; - nmap - скан порто и просто сети;
- node - Node.js
- parallel - команда из Linux для запуска процессов параллельно;
- podman - аналог Docker;
- poetry - пакетный менеджер для Python;
- radare2 - если хочешь почувствовать себя хакером и заняться реверс-инжинирингом;
- powerlevel10k - Zsh тема, которая была на фото;
- teleport - программа для подключения к серверам через Teleport. Довольно удобно, если только одна точка входа в сеть;
- telnet -
telnet
команда - tree - вывод дерева файлов;
- vale - линтер для обычного текста, говорит где ты кого-то задел в душевных чувствах;
- neovim - просто vim редактор;
- watch -
watch
из Linux; - wget -
wget
из Linux; - zsh - последняя версия
zsh
; - zsh-autosuggestions - очень удобное автодополнение в
zsh
;
Программы
Но не все можно поставить с помощью brew
или не все я поставил с его помощью. Хотя лучше пользоваться им.
Adobe пакет
Да, все очень удобно им редактировать.
- Adobe Photoshop - фото;
- Adobe Premiere - видео, но перешел на DaVinci Resolve;
- Adobe Audition - обработка звука;
- Adobe After Effects - превью для видео делал в нем;
Microsoft пакет
Ну куда же без него. Хотя радует, что в последнее время у меня все больше и больше работы с Google Docs или чем-то не так сильно закрытым.
- Microsoft Excel
- Microsoft PowerPoint
- Microsoft Teams
- Microsoft Word
AnyDesk
Отличная замена для TeamViewer
.
DaVinci Resolve
Оказалось, что для монтирования видео и синхронизации звука в подкасте - это отличное решение. При этом работает шустрее Adobe Premiere по ощущениям.
Docker
Отличное решение по запуску контейнеров, но кажется у меня будет постепенный переход на podman
. На серверах уже podman, но локально как то не так удобно пока.
iTerm
Мой основной терминал для всего. Может он и не супер новый, на Rust и с GPU рендерингом, но стабильный и много встроенных функций. Например, переход по клику в терминале с зажатым Option
или разделение экрана на несколько с помощью Ctrl
+Shift
+D
.
JetBrains Toolbox
Набор редакторов от JetBrains. Часто пользуюсь им, но конечно не всем редакторами 😄
- GoLand
- PyCharm
- DataGrid - удобно для поиска по DB.
- IntelliJ IDEA
- WebStorm - удобно делать рефактор JavaScript и прочему web.
- CLion - C++ код, приходилось и такое...
Lens
Очень удобный интерфейс для Kubernetes, часто пользуюсь им.
OBS
Один из самых лучших инструментов для записи экрана. В последней версии macOS даже научился записывать звук системы, а не только микрофон. Да-да, тут это проблема.
OpenVPN Connect
Используется, чтобы подключаться к различным своим VPN.
Parallels Desktop
Одна из лучших виртуализаций, которые я встречал. Работал долгое время сразу в ней. Приходилось разрабатывать на C++ низкоуровневое приложение одно, которое требовало так же камеру и микрофон. Радует, что Parallels автоматически все прокидывает. Я был один в команде, кто работал на Linux, но у него все работало. Даже не у всех на Linux автоматически заводится.
Raycast
Замена Spotlight в macOS. Родной я отключил, потому что он бесконечно сканировал систему, из-за чего MacBook грелся. А Raycast я пользую очень не часто на самом деле.
Shottr
Лучшая вещь для скриншотов в macOS, если нужно потом что-то показать на нем или обрезать.
Skype
Вынуждено еще стоит. Была бы моя воля, не пользовался бы 😅
Slack
Вынуждено еще стоит. Была бы моя воля, не пользовался бы 😅 x2
Sublime Merge
Удобный инструмент для работы с Git репозиторием от создателя Sublime Text! Я думаю он один из самых быстрых и надежных, что я видел. Но пользуюсь не очень часто, хватает терминала обычно и встроенного в VS Code.
Sublime Text
До VS Code был основным моим редактором кода. Но до сих пор открываю его, когда файл больше пары мегабайт. Единственный, кто легко открывает огромные journalctl логи, когда тебе присылают их со сломанной машины 😄
Telegram
Считаю его одним из лучших способов связи 1 на 1. Для работы в группе не так сильно зашло.
Tailscale
Грубо говоря, позволяет объединять девайсы в локальную сеть, идея крутая! Я пробовал его даже использовать как VPN, но скорость не очень высокая, если сравнивать с полноценным VPN.
The Unarchiver
Использую как основной разархиватор. Я уже и забыл, что это за программа. Просто кликаю на архив и через пару секунд в вижу распакованную папку. Кажется, что это лучший отзыв для программы, которая решает проблему.
Turbo Boost Switcher
Очень полезное приложение, как мне кажется. Оно отключает Turbo Boost на MacBook Pro. Потому что он любит резко задрать частоты на CPU и быстро перегреться. Это сдерживает его. Правда раздражает, что каждый раз оно требует пароля. Это решается, но пока руки не дошли сделать 🙂
UTM
Это интерфейс для QEMU. Очень мощной системы эмуляции, в которой нужна PhD, что бы разобраться. UTM спасает в простых случаях и так же работает на M1, а Virtual Box нет 😉
VLC
Проигрыватель любого видео, так же умеет перекодировать его! Отличное решение, когда вдруг решил посмотреть фильм.
WireGuard
Мой основной VPN сейчас, который я постоянно держу включенным на телефоне и часто на компьютере. Работает очень быстро, что меня радует.
Отношение как к Skype, но нужно, чтобы не ходить за телефоном и скачать файл сразу на MacBook
zoom.us
Ну а куда сегодня без Zoom и звонков 😅
Фуух, кажется это все из того, что я бы хотел записать.
Удобный hotckeys
Скриншоты
Основное, что полезно - это если во время создания скриншота нажать пробел, что можно делать скриншоты окна. Я сделал так все фотографии для данной статьи.
Shift
+Cmd
+4
- выделить область, сохранить в буфер. Самое полезное;Shift
+Cmd
+5
- скриншот области, сохранить куда-то (папка).
Система
Shift
+Cmd
+Q
- Выйти из текущего пользователя;
Заключение
Надеюсь данная заметка поможет мне в будущем в настройке следующего окружения. На память фото в момент написания этого поста. Осталась огромная область с настройкой все программ, но я думаю это лучше сделать в виде Ansible-like скриптов, чтобы потом установить все это одной командой. Идея очень здравая, как мне кажется.
А пока спасибо 👋
Фото из Белград, Сербия - Friday, December 2, 2022
Preview photo by Iewek Gnos on Unsplash