出于一些可有可无的原因,把原本的mbp m1换成了mba m3,由于工作之后自己捣鼓技术的时间确实不如在大学的时候多,以后应该很长时间不会再更换这台机器了。
换新的时候拒绝了数据迁移,自己只单独备份了常用的密钥——主要是旧电脑里装的软件不少已经不再使用,干脆快刀斩乱麻全部抛弃掉,重新配一次环境也不算太麻烦。并且配置上一台MacBook的时候受到了朋友gg不少的帮助,这次也算真正意义上第一次自己配置自己的「工作本」。
顺便一提,这次重新配环境的时候部分参考了csdiy推荐的macOS Setup Guide。这篇文章还包含了其他环境的配置推荐,以后有需要也可以按需使用。
包管理器
Homebrew , the missing package manager for macOS.
这没什么好说的,后续不少软件都会从homebrew里下载,可以选择直接从官网下载。不过一般来说不建议使用这种方法,因为GitHub在大部分时候都存在DNS污染,就算修改hosts文件,直连下载也非常困难。好在国内镜像直接提供包管理器本身的备用下载途径,后续我们都以清华大学的镜像为例进行操作。文档中直接给出了首次安装HomeBrew时需要进行的操作,一步步执行即可,这里只记录大致的过程,具体流程应以文档为准。
- 需要确保系统中安装了 bash、git 和 curl, 并安装 Command Line Tools (CLT) for Xcode;
- 设置环境变量,将brew的远程仓库地址更换为清华源;
- 执行安装命令,从镜像中获取Homebrew;
- 将 brew 程序的相关路径加入到环境变量
这样,我们完成了brew的下载,同时brew的源更换为了国内镜像。
常用软件
v2rayA
一个跨平台客户端,提供了一个web面板,因此部署在没有GUI的nas上也能比较方便地配置。老实说这款客户端的毛刺依然比较多,尽管日常使用完全没有问题,但在配置或者更新的时候,总是会在不经意的地方让人难受一下。不过Qv2ray已经停更3年了,对于mac用户来说,似乎也没有更好的客户端可以使用。
mac上可以直接通过homebrew安装软件,需要添加v2rayA的Tap后再下载:
bash复制代码
1# 添加 v2rayA 的 Tap 2brew tap v2raya/v2raya; 3# 安装 v2rayA 4brew install v2raya/v2raya/v2raya;
这里安装的时候会直接从GitHub上拉取数据,如果没有修改hosts文件直连下载可能会非常痛苦,建议参照GitHub520部分中的步骤,手动修改一下hosts。或者配置代理通过局域网连接上一台已经有梯子的电脑临时转发一下,解决鸡生蛋蛋生鸡问题😓。
Proxychains-ng
在任意命令前添加proxychains4
,让后续命令走对应的代理服务器,在需要从GitHub上curl文件的时候很有帮助,前提是你的电脑已经有透明代理。
安装方面,直接从homebrew下载的版本在apple silicon上有些问题,参见GitHub issue。简而言之,首先需要执行下面步骤:
bash复制代码
1# shutdown & long press Power button to recovery mode -> Terminal 2csrutil disable 3# enable arm64e support 4sudo nvram boot-args=-arm64e_preview_abi 5# reboot
接着自己从GitHub上下载源代码然后自行编译,参考编译配置如下:
bash复制代码
1git clone https://github.com/rofl0r/proxychains-ng 2cd proxychains-ng 3CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m1 4make
接着在自己的用户文件夹下创建配置文件,例如/Users/user/.proxychains/proxychains.conf
,这里我分别设置了sock5协议和http协议的服务器地址:
text复制代码
1[ProxyList] 2# add proxy here ... 3# meanwile 4# defaults set to "tor" 5socks5 127.0.0.1 20173 6http 127.0.0.1 20172
另外,每次使用都要键入全称proxychains4
的话实在太过麻烦,因此我在.zshrc
中给它添加了一个别称pc
:
bash复制代码
1# proxychains-ng 2alias pc="proxychains4"
终端
iTerm2
好用的终端软件,不过我的iTerm2基本上处于原始状态,除了修改了一个option + b/f的快捷键之外没有做任何别的设置,对我来说已经够用了。
安装方面还是通过homebrew下载:
bash复制代码
1brew install iterm2 --cask
上面提到的option + b/f被我设置为了以单词为单位移动光标,设置方式为SettingsProfilesKeysKey Mappings里新增快捷键,以option + b为例,将Action设置为Send Escape Sequence,输入框中输入b即可。
设置示例zsh-syntax-highlighting
在zsh中提供了一个语法高亮,在运行前确认是否有语法错误这一点上很有帮助。
直接从homebrew上下载即可:
bash复制代码
1brew install zsh-syntax-highlighting
接着配置一下环境变量:
bash复制代码
1echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
zsh-autosuggestions
顾名思义,它会根据运行命令历史提示用户可能想要输入的命令,此时按右键即可一键补全。
从homebrew上下载:
bash复制代码
1brew install zsh-autosuggestions
配置环境变量:
bash复制代码
1# .zshrc 2source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
oh-my-zsh
官方网址,下载之后只是改了一个主题,让自己看上去、闻上去都像一个CS人。
bash复制代码
1# .zshrc 2ZSH_THEME="gnzh"
color theme
偶然在互联网的洪流中发现的一名有趣程序员开源出来的颜色主题new moon。很喜欢这个配色,于是把iTerm2和VS Code的颜色主题都修改成了这个主题。
VS Code
我自己最常用的代码编辑器,在添加一堆插件之后,成了什么都能开发的万能IDE(捂脸)。
直接从微软官网下载,具体的设置比较繁杂,就不一一列举了。
Latex
上次安装latex的时候是从官网下载了整个TexLive,整整3GB。但实际上我并没有使用它自带的编辑器,而是继续在vscode上编辑tex文件并预览。所以这次下载的是BasicTeX,其它需要的包按需用tlmgr
下载就行。
bash复制代码
1brew install basictex --cask
编辑器使用的是vscode,需要单独安装插件Latex Workshop。
插件其它的设置都可以开箱即用,如果要指定tex编译器以及输出文件夹则需要单独设置:
json复制代码1{
2 "latex-workshop.latex.tools": [
3 {
4 "name": "latexmk",
5 "command": "latexmk",
6 "args": ["-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "-outdir=%OUTDIR%", "%DOC%"],
7 "env": {}
8 }
9 ],
10 "latex-workshop.latex.outDir": "out"
11}
这里指定使用latexmk进行编译,并把编译过程中生成的文件都放进out
文件夹中。
小工具
下面列出的是一些我日常使用mac的过程中装的一些妙妙工具,虽然不是必需品,但安装之后确实会让mac的使用体验更好一些。这里只是介绍一下大概的功能并贴出官方网址,读者按需取用就行。
Karabiner
一个改键位的小工具,在GitHub上开源,可以直接在homebrew上下载。
个人只添加了一个预设规则,把右command + hjkl修改成对应的上下左右键。
添加一个预设规则Mos
翻转鼠标滚轮的小工具,由于工作和生活中同时在使用windows和macOS,滚轮逻辑不一致实在是难受,安装之后的滚动效果和修改前基本一致,使用体验不错。
项目在GitHub上开源,直接在homebrew上下载就行。
bash复制代码
1brew install mos --cask
Loop
一个方便好用的窗口管理器,使用快捷键+鼠标移动即可快速放置窗口,而不用傻乎乎地把鼠标放到小绿点处再等上一秒钟。
示例项目在GitHub上开源,直接在homebrew上下载。
bash复制代码
1brew install loop --cask
The Unarchiver
主要用于下载其他人发送过来的rar文件,下载后解压rar压缩包也能做到无感了。
Snipaste
一个好用的截图软件,尽管目前官方推出了收费版,但对我来说免费版里有的截图+图钉功能就已经够用。
LocalSend
一个解决苹果生态与windows系统之间传输文件问题的软件,只要两个设备处在同一局域网下,就能够进行文件/文本传输。
GitHub520
严格来说不算工具,只是能帮你将修改hosts文件的这一过程自动化,在GitHub上开源(开源地址)。安装这一脚本的初衷是为了解决v2rayA下载规则文件时存在的问题(即v2rayA在更新规则文件时不走代理而偏要直连)。不过使用之后效果其实也不太好,毕竟文件说小也不算小,就算避免了dns污染直连下载也是非常困难的。
不过也许以后还会有其他用处呢?因此在这里记一笔,或许对其他人来说算是有用吧。
macOS
需要以root用户执行命令,sudo -i
以root用户登录后在crontab中添加以下命令,使系统每天早上10点左右更新hosts文件内容:
bash复制代码
10 10 * * * sed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /etc/hosts && curl https://raw.hellogithub.com/hosts | tee -a /etc/hosts
Linux
同样需要root身份。我使用的arch linux没有自带crontab,因此先安装了一个fcrontab,然后执行fcrontab -e
添加计划:
bash复制代码
10 10 * * * sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'