banner
Hyacine🦄

Hyacine🦄

I have special macOS new machine environment configuration tips

The author generally does not recommend migrating data directly from old devices. The migration process may not only introduce some unexpected bugs but also copy over a lot of junk and temporary files. A large amount of 4K random read/write is also very unfriendly to Wi-Fi connection speeds, especially since Apple devices have never been known for their wireless performance. This principle actually applies not only to Macs but also to Windows / Android / iOS devices. However, if the new Mac is large enough and the old one is also a Mac, you can try a direct Thunderbolt connection; this article is concluded. (Escape)

Cold Start#

First, essential software is required; otherwise, there's nothing to discuss:

https://ghfast.top/https://github.com/xishang0128/sparkle/releases/download/1.6.4/sparkle-macos-1.6.4-arm64.pkg

System Settings#

Next, to ensure a good experience later, we need to change some system settings. The command line should be able to change everything, but I can't find some newer settings, so let's do it manually.

  • Battery

    • Since the Mac has such good battery life, it should be taken out, so you can enable automatic power-saving when unplugged and automatic high performance when plugged in. (Higher energy consumption seems to be exclusive to the Max series.)
    • If you do not plan to use a third-party app to limit the charging limit, it's best to enable the system's built-in optimized battery charging by clicking the icon next to battery health and turning it on in the pop-up. Some third-party charging limit tools explicitly require turning off optimized battery charging; however, I haven't noticed any impact by not turning it off.
    • If you want your Mac to act as a server when plugged in, you can turn everything on except for HDR power saving; otherwise, the screen is wasted.
  • General

    A large amount of stuff is crammed in here.

    • About This Mac: Let's change the name first. It's best to make the device recognizable; the name here affects the hostname, device discovery, and Apple ID device management. I change it every time. If the serial number is from a second-hand device, you can spend 3 yuan on some WeChat public accounts to get a detailed report and see if there are any issues.
    • Storage: iCloud sync is a big pit. It defaults to syncing Desktop and Documents, but free users only get 5GB, so it's recommended to turn it off. For programmers, especially front-end projects, if placed on the Desktop, the 4K performance of node modules will definitely teach the sync drive a lesson... Check how much space macOS + system data + developer occupies, and you'll know that Windows has already done a good job controlling system size.
    • AirDrop / Handoff: Generally, it should be enabled. Enable everyone as appropriate; currently, iOS limits everyone to automatically turn off after 10 minutes, but Mac hasn't followed suit. AirPlay allows you to project your iPhone / iPad onto your Mac.
    • Login Items and Extensions: A new machine shouldn't have much, so you can check after installation.
    • Sharing: If you want this computer to be a full-time/part-time server, most of these need to be enabled. I won't elaborate on the specific usage; we can discuss it in detail later if there's a chance.
    • Startup Disk: Actually, you can install the system on an external hard drive...
    • Time Machine: Loved by those who like it.
    • AutoFill and Passwords: Amazing. But not as good as iOS. Browser plugins on the desktop are more important, and third-party apps can also take over directly; currently, it seems no third-party password manager uses this API.
  • Accessibility

    Many people say that Apple often hides some very useful features in here. Indeed, there are a few basic settings related to the mouse pointer that are almost always enabled.

    • Pointer Control: Mouse and Trackpad - Trackpad Options, use trackpad drag + three-finger drag, which is basically essential. Otherwise, you have to press down hard on the trackpad to drag. There's even a project on GitHub that ports this gesture to Win/Linux.
    • Display: You can change the pointer size here; for example, on my 4K screen, sometimes the pointer feels too small, so I can enlarge it a bit. There's also a gesture where you can quickly shake it to find the mouse, and macOS will help enlarge the pointer.
    • Audio: Some accessibility features related to AirPods are placed here. But my headphones are broken, so I can't see it now , sad.
  • Spotlight

    It doesn't feel as good to use now; after all, it hasn't added many new features over the years. I wonder if WWDC will integrate AI. It seems that more users are currently using RayCast, but I don't use it much ( )

  • Control Center

    The naming is poor; it should be called Control Center and Menu Bar. Some people probably can't find the menu bar settings because of this name. Here you can set whether icons are displayed in the menu bar or control center and fine-tune the display style of some buttons.

    I've always wanted a feature that keeps the menu bar displayed on the built-in screen at all times (because full screen has a notch, whether to show it doesn't affect vertical height, and if it's unrealistic, it just goes black), and then automatically hides it when detecting an external display in full screen. But when I left a message to a developer before, the customer service didn't understand, and the reply sounded like a personal machine. I wanted to open a pit and write it myself, but it seems a bit difficult.

  • Screen Saver

    Ugh. I don't think anyone uses it anymore.

  • Wallpaper

    macOS changes a batch of new wallpapers with each major version. The current version is taken by Apple's own team, renting helicopters to shoot around the world; it's essentially a public-funded tour.

  • Appearance

    This was changed during initialization for the theme color. Only the behavior of clicking the scroll bar is a bit different from intuition, so it can be changed.

  • Displays

    Sidecar and Universal Control are enabled here. If the default scaling isn't fine enough, you can click Advanced and open the list display resolution. If conditions allow, I recommend using Better Display; the effect is excellent.

  • Desktop and Dock

    • Dock icon size: Generally, just pull it all the way up. By default, it won't animate if it doesn't enlarge.
    • Use magical effects when minimizing windows: This is also not enabled by default. It's a signature animation that's been around for many years. But macOS's window management is too poor, so I rarely use minimize (
    • Minimize to application icon: Not enabled by default; I personally prefer to enable it.
    • Automatically hide the Dock: Not enabled by default; I personally prefer to enable it.
    • Stage Manager: Not recommended. The iPad can only use this; it's unnecessary for Mac. It can be placed in the control center, and if really needed, just switch it.
    • Widgets: A good thing. But to unlock the full version, you need an iPhone.
    • Window Tiling: 15 years behind Windows. Remember to turn off the blank edges when tiling windows.
    • Hot Corners: A good feature. It somewhat solves the problem of the mouse not having trackpad gestures and difficult-to-remember shortcuts. To migrate my Windows habits, I generally set the bottom left for Launchpad, bottom right for Show Desktop, top left for Mission Control, and top right for the current app. In short, set it according to personal habits.
  • Siri / AI

    Not very useful on Mac. It seems other devices aren't very useful either.

  • Sound

    If you don't want to be startled by a sound when starting up, you can turn off the startup sound.

  • Lock Screen

    The screen saver is turned off by default. You can also change the display off time for the monitor.

  • Privacy and Security

    Trust me, this is definitely the place you'll visit the most. All app permissions are managed here, and all unsigned apps also need to be opened here. There is a way to restore the "Any Source" option in the app sources; I won't elaborate on it here. For accessories, if the computer is not taken out, you can set it to default allow.

  • Keyboard, Mouse, and Trackpad

    There's not much to say, so I'll combine it. Keyboard settings can change the keyboard light, shortcuts, and Fn single-click functions. If the external keyboard has Fn key definitions, it is the same as the built-in Fn. Input method settings can also be changed here.
    In mouse settings, the scroll direction is generally not changed; if changed, the trackpad will reverse, so I usually use third-party software. For gaming, you can turn off mouse acceleration in advanced options.
    The trackpad is the most important. macOS actually doesn't discriminate against trackpads; it's just that no one wants to use external ones on Windows, so fewer people make them. Modern precise trackpads can be used, and multi-touch and gestures work perfectly; a replacement from Huaqiangbei is about 200 yuan. It just lacks the useless 3D Touch.
    In settings, you generally need to enable tap to click; otherwise, you have to press down until you're exhausted. Then in more gestures, if three-finger drag is enabled, the gestures for the control center will change to four-finger.

Finished! Finally configured everything.

Package Manager#

Why Install a Package Manager?#

Rather, using a package manager for installation aligns better with *nix and developer usage habits. Achieving the same operations, CLI is inherently much more efficient and easier to automate than GUI. On macOS, the brew package manager is the default standard; most repos prefer to provide software packages through brew, far surpassing MacPorts and others.

A considerable number of people find brew so useful that they have ported it to some Linux systems; I won't elaborate on that here.

Common Apps#

Alright, quickly after we finish setting up, let's brew a bunch:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Next, I will try to comment on the packages that are not immediately obvious. If you don't need them, you can directly copy them into a line editing software to delete the corresponding lines.

Cask:

  • 1password: The most expensive (good?) password manager. Actually, open-source software maintainers can apply for a free version...
  • alt-tab: Similar to the Win Alt Tab page. The default macOS cmd+tab logic can only switch between different apps; to switch between different windows of the same app, you need to press cmd + `.
  • android-platform-tools: adb/fastboot. Essential for Android development/hacking.
  • apifox: Some people like to call it the domestic alternative to Postman, but I don't think it's entirely the same field. Of course, it can also be used as Postman (.
  • applite: The GUI for brew, just found out recently. If you don't like typing commands, you can browse around.
  • battery: Minimalist 80% charging limit.
  • betterdisplay: The best display management software for macOS. There isn't even a replacement on Windows. The licensing model is extremely friendly, with no activation limits.
  • cherry-studio: Famous LLM frontend.
  • cursor: This should go without saying. I use VSCode sync for free; the new machine syncs code first before importing.
  • discord: Used less, but many developer communities love it; I check it occasionally.
  • docker: No need to say more.
  • feishu: Same as above.
  • firefox: Same as above.
  • font-cascadia-code: Microsoft’s great work.
  • google-chrome: Who dares not install it for web development?
  • iina: A player, decent enough. I now use ffprobe for metadata, sigh.
  • input-source-pro: Amazing! Automatically switches input methods. Switching input methods on macOS can be a bit painful.
  • jetbrains-toolbox: I’m used to installing it; it can also all go through brew, but brew is too slow without multi-threading.
  • jordanbaird-ice: Not for Mac without a notch; used to help macOS menu bar icons overflow behind the notch.
  • keycastr: Displays the keys you press on the screen. Useful for screen recording.
  • lark: The overseas version of Feishu, data does not sync.
  • linear-linear: The name was taken, hilarious. Project progress management software; the free version is completely sufficient for personal use. GitHub integration is also good. Simply put, it's an advanced to-do list.
  • lm-studio: Famous LLM GUI backend.
  • moonlight: I want to game on Mac.
  • obs: I’m used to using it for recording; I haven't tried live streaming on Mac yet.
  • obsidian: No need to say more.
  • ollama: Famous LLM CLI backend.
  • parsec: Not only can you game, but it can also boost productivity. Moonlight can't share the clipboard, but parsec can.
  • playcover-community: Star Rail launch!
  • rustdesk: Now you know how afraid I am of disconnections (actually, there are two or three more).
  • scroll-reverser: Reverses the mouse scroll direction separately on macOS.
  • signal: End-to-end encrypted IM.
  • snipaste: Actually, you can use pixpin.
  • tailscale: Came from zerotier; might switch to wireguard later.
  • tencent-lemon: Very conscientious.
  • tencent-meeting: Everyone is using it.
  • typora: Bought the genuine version to support it.
  • visual-studio-code: No need to say more.
  • vlc: A conscientious player.
  • warp: AI-powered terminal.
  • windterm: SSH client, now supports using sync drives.
  • zed: Rust editor, suitable for situations that pursue extreme performance.

CLI Tools#

  • uv: Amazing! Never installed Python directly again.
  • git: Who dares not install it? The system's built-in version is too old; I generally install another one.
  • nvm, rbenv: Much worse than uv; previously used pyenv, used to solve language version issues.
  • pnpm: Used to replace npm. Yarn seems to be used less now.
  • ffmpeg: Even if you don't install it, there's a high probability you'll encounter dependencies during compilation, not to mention some applications come with ffmpeg dynamic libraries. I've gotten used to typing commands for simple conversions (.
  • doggo: My favorite DNS CLI client, very useful for network debugging. Other similar tools include the classic dig and the modern q/dog (written in Rust; doggo is its community Go rewrite).
  • wget: Downloading files via command line is more straightforward than curl. I still use curl more for web debugging.
brew install --cask \
    1password \
    alt-tab \
    android-platform-tools \
    apifox \
    applite \
    battery \
    betterdisplay \
    cherry-studio \
    cursor \
    discord \
    docker \
    feishu \
    firefox \
    font-cascadia-code \
    google-chrome \
    iina \
    input-source-pro \
    jetbrains-toolbox \
    jordanbaird-ice \
    keycastr \
    lark \
    linear-linear \
    lm-studio \
    moonlight \
    obs \
    obsidian \
    ollama \
    parsec \
    playcover-community \
    rustdesk \
    scroll-reverser \
    signal \
    snipaste \
    tailscale \
    tencent-lemon \
    tencent-meeting \
    typora \
    visual-studio-code \
    vlc \
    warp \
    windterm \
    zed

# CLI tools
brew install uv git nvm wget pnpm rbenv
brew install doggo ffmpeg

# Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# The Three Giants of Scripting Languages (¿
uv python install
nvm install --lts
rbenv install -l
rbenv install 3.4.3 # Generally install the latest stable version.

# Remember to change! Don't use mine!
git config --global user.name Nahida
git config --global user.email [email protected]
# For more security, you can use one key per machine; if you're too lazy to set it up, you can use the old one. But using a new one is more convenient?
ssh-keygen -t ed25519 -C "[email protected]"

Git Configuration#

Some proxy environments may ban access to port 22 for security reasons. To make it easier, GitHub officially created a forwarding from ssh.github.com:443 to github.com:22.

See https://docs.github.com/zh/authentication/troubleshooting-ssh/using-ssh-over-the-https-port for details.

There are also some advanced techniques; without considering multi-user operating systems, a single user can set multiple SSH aliases to flexibly switch between different identities for different repos.

Host github.com
    HostName ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_ed25519 # Change to your location; this is the default location generated.

Host nahida
    HostName ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_ed25519_nahida # Change to the corresponding user's private key; cannot be duplicated.

Host hyacine
    HostName ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_ed25519_hyacine # Change to the corresponding user's private key; cannot be duplicated.

In this way:

  • Using git clone [email protected]:Homebrew/homebrew-cask.git will use the default user (since the alias is configured, the git@ part can also be omitted. You can configure a shorter alias, like gh);
  • Using git clone nahida:Homebrew/homebrew-cask.git will use the private key corresponding to the nahida configuration;
  • Using git clone hyacine:Homebrew/homebrew-cask.git will use the private key corresponding to the hyacine configuration.

These configurations can also be used for command line SSH commands (obviously, otherwise why is it called ssh_config) and can seamlessly integrate with VSCode's SSH. I won't elaborate on overly detailed content.

Apps Downloaded from the Mac App Store#

  • Office 365
  • WeChat
  • QQ
  • FastZip
  • PasteNow
  • NetEase Cloud Music
  • Mijia
  • OneDrive
  • iStatistica Pro (don't buy it; just buy iStat Menus)
  • Xiaomi Interconnect Service
  • O+ Interconnect
  • Pushdeer
  • Speedtest
  • Blackmagic Disk Speed Test
  • LocalSend
  • Speedy
  • Shadowrocket (?)

Apps downloaded from the App Store generally use fewer permissions compared to those installed via dmg/pkg, undergo stricter reviews, and the sandbox ensures data isolation and security.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.