\[._.]/ - 你好,我是 MacOS 机器人
我将用更好的系统默认设置、偏好、软件配置来更新你的 MacOS 机器,甚至自动安装一些我的开发者朋友认为有用的开发工具和应用程序。
你不需要预先安装或配置任何东西!这适用于全新出厂的机器,也适用于你已经使用多年的现有机器。
忘记手动配置!
你是否讨厌获得一台新笔记本电脑或加入一个新团队,然后花一整天时间设置你的系统偏好和工具?我也是。这就是为什么我们要自动化;我们做过一次,不想再做第二次。
\[^_^]/ - 这最初是 Adam Eivy 的 MacOS shell 配置点文件,但已发展成为多开发者的机器配置平台。
当我完成对你机器的配置后,你将能够以全屏模式查看你的命令行,如下所示(运行 iTerm):
看看你的 shell 提示符如何包含完整路径、node.js 版本和当前 git 分支,以及许多其他信息!
我们使用 powerlevel9k 作为命令提示符,因此你想要的自定义很容易在 ./.zshrc
中更改
顶部终端使用 vim 作为完整的 IDE 替代品。
左下方两个是 git 终端。
右下方运行的是 vtop
要启动全屏,在 iTerm 中按 Command + Enter
,然后使用 Command + d
和 Command + D
创建分割窗格。
\[._.]/ - 我太兴奋了,我刚刚在裤子里二进制了!
观看我运行!
安装
注意:我建议 fork 这个仓库,以防你不喜欢我做的任何事情,想要设置自己的偏好(并提交 pull request!)
☢️ 在运行之前,请先查看此脚本的作用 在使用 sudo 权限在你的机器上运行之前,最好先查看来自互联网的任意代码! 你要对这个脚本对你的机器所做的一切负责(参见 LICENSE) 这个仓库的创建者对破坏他的机器并重新开始有很高的容忍度。如果你对此容忍度较低,请谨慎进行。
git clone --recurse-submodules https://github.com/atomantic/dotfiles ~/.dotfiles
cd ~/.dotfiles;
# 使用终端运行此命令(不要使用 iTerm,否则 iTerm 设置可能会在退出时被丢弃)
./install.sh
- 当它完成后,打开 iTerm 并按
Command + ,
打开偏好设置。在 Profiles > Colors 下,选择 "Load Presets" 并选择Solarized Dark Patch
方案。如果由于某种原因它不在那里,从~/.dotfiles/configs
导入它 -- 你可能还需要选择Hack
字体并勾选非 ascii 字体的复选框,并设置为Roboto Mono For Powerline
(我在自动化这些设置时遇到了不同的结果 -- 欢迎改进这一点的 pull request) - 我还发现你需要重新启动才能启用快速按键重复
注意:如果你在代理后面克隆子模块时遇到问题,你可以使用这个命令将
git://
转换为https://
:git config --global url.https://github.com/.insteadOf git://github.com/
注意:运行 install.sh 是幂等的。你可以一次又一次地运行它,因为你向脚本添加了新功能或软件!我会定期添加新配置,所以请关注这个仓库,因为它会不断增长和优化。
恢复点文件
如果你有用于配置 git、zsh、vim 等的现有点文件,这些文件将备份到 ~/.dotfiles_backup/$(date +"%Y.%m.%d.%H.%M.%S")
并替换为此项目中的文件。你可以通过使用 ./restore.sh $RESTOREDATE
来恢复原始点文件,其中 $RESTOREDATE
是你想要恢复的日期文件夹名称。
恢复脚本目前不会恢复系统设置 -- 只会恢复你原来的点文件。要恢复系统设置,你需要手动撤销你不喜欢的内容(所以不要忘记 fork、review、tweak)
3.x.x+ 升级说明!
3.0.0
带来了巨大的变化。如果你做了任何修改(并且没有创建自己的 fork),你会想在运行 git-up
或 git pull
到 ~/.dotfiles
之前备份你的点文件。
按照以下步骤安全地升级你的 ~/.dotfiles:
- 备份你的点文件:
cp -R ~/.dotfiles ~/.dotfiles_old
cd ~/.dotfiles
- 更新点文件:
git up
或git pull
- 删除旧的子模块位置:
rm -rf .vim
(现在位于homedir/.vim
) - 检查
install.sh
和config.js
以确保所有你想要的软件都已安装 - 检查
homedir/*
中是否有任何你想从./dotfiles_old
移植的更改 - 再次运行
install.sh
附加内容
将 VIM 作为 IDE
我正在从使用 Atom
转向使用 vim
作为我的 IDE。我使用 Vundle 来管理 vim 插件(而不是 pathogen)。Vundle 在很多方面都更好,并且与 pathogen 插件兼容。此外,vundle 会管理和安装自己的插件,所以我们不必为所有插件使用 git 子模块。
Crontab
如果你想添加我的夜间 cron 软件更新,可以执行 cron ~/.crontab
。
\[0_0]/ - 请注意,这可能会在早上唤醒你,面对兼容性问题,所以只有当你喜欢处于前沿时才使用
重新映射 Caps-Lock
- 我强烈建议按照 Dr. Bunsen 的方法将 Caps Lock 键重新映射为 Control 键:
设置
这个项目会更改一些设置并配置 MacOS 上的软件。 以下是当前的列表:
提示驱动配置
只有在你同意提示时,才会执行以下操作
- 安装一个 gitshots 脚本,在每次 git 提交时使用你的相机拍照(这些会作为后提交钩子添加到你的 .git_template 中)
- 用 someonewhocares.org 的副本覆盖你的 /etc/hosts 文件(请参阅 ./configs/hosts 中将要使用的文件)
- 用
img/wallpaper.jpg
替换系统壁纸
安全性
- 启用防火墙
- 启用防火墙隐身模式(不响应 ICMP / ping 请求)
- 禁用远程 Apple 事件
- 禁用调制解调器唤醒
- 禁用局域网唤醒
- 禁用访客账户登录
一般系统更改
- 始终以详细模式启动(非 MacOS GUI 模式)
- 禁用启动时的声音效果
- 菜单栏:禁用透明度
- 菜单栏:隐藏 Time Machine、音量、用户和蓝牙图标
- 将高亮颜色设置为绿色
- 将侧边栏图标大小设置为中等
- 始终显示滚动条
- 增加 Cocoa 应用程序的窗口调整速度
- 默认展开保存面板
- 默认展开打印面板
- 允许使用 'locate' 命令
- 将待机延迟设置为 24 小时(默认为 1 小时)
- 默认保存到磁盘(而不是 iCloud)
- 打印作业完成后自动退出打印机应用程序
- 禁用"您确定要打开此应用程序吗?"对话框
- 删除"打开方式"菜单中的重复项(另请参阅 'lscleanup' 别名)
- 在标准文本视图中使用插入符号表示法显示 ASCII 控制字符
- 禁用崩溃报告器
- 将帮助查看器窗口设置为非浮动模式
- 在登录窗口中点击时钟时显示 IP、主机名、操作系统等信息
- 每天检查软件更新,而不仅仅是每周一次
- 禁用智能引号,因为在输入代码时会很烦人
- 禁用智能破折号,因为在输入代码时会很烦人
触控板、鼠标、键盘、蓝牙配件和输入
- 触控板:为此用户和登录屏幕启用点击以单击
- 触控板:将右下角映射为右键单击
- 禁用"自然"(Lion 风格)滚动
- 提高蓝牙耳机/耳麦的声音质量
- 为所有控件启用完全键盘访问(例如,在模态对话框中启用 Tab 键)
- 使用带有 Ctrl (^) 修饰键的滚动手势进行缩放
- 在放大时跟随键盘焦点
- 禁用按住键以支持键重复
- 设置极快的键盘重复速率:
- 设置语言和文本格式(英语/美国)
配置屏幕
- 在睡眠或屏幕保护程序开始后立即要求输入密码
- 将屏幕截图保存到桌面
- 以 PNG 格式保存屏幕截图(其他选项:BMP、GIF、JPG、PDF、TIFF)
- 禁用屏幕截图中的阴影
- 在非 Apple LCD 上启用亚像素字体渲染
- 启用 HiDPI 显示模式(需要重新启动)
Finder 配置
- 按名称排序时,将文件夹保持在顶部(仅限 Sierra)
- 允许通过 ⌘ + Q 退出;这样做还会隐藏桌面图标
- 禁用窗口动画和获取信息动画
- 将桌面设置为新 Finder 窗口的默认位置
- 默认显示隐藏文件
- 显示所有文件名扩展名
- 显示状态栏
- 显示路径栏
- 允许在快速查看中选择文本
- 将完整 POSIX 路径显示为 Finder 窗口标题
- 执行搜索时,默认搜索当前文件夹
- 更改文件扩展名时禁用警告
- 为目录启用弹簧加载
- 移除目录的弹簧加载延迟
- 避免在网络卷上创建 .DS_Store 文件
- 禁用磁盘映像验证
- 挂载卷时自动打开新的 Finder 窗口
- 默认在所有 Finder 窗口中使用列表视图
- 清空垃圾桶前禁用警告
- 默认安全清空垃圾桶
- 在以太网和不支持的运行 Lion 的 Mac 上启用 AirDrop
- 显示 ~/Library 文件夹
- 展开以下文件信息面板:"常规"、"打开方式"和"共享和权限"
Dock 和 Dashboard
- 为堆栈的网格视图启用悬停高亮效果(Dock)
- 将 Dock 项目的图标大小设置为 36 像素
- 将最小化/最大化窗口效果更改为缩放
- 将窗口最小化到其应用程序的图标中
- 为所有 Dock 项目启用弹簧加载
- 在 Dock 中显示打开的应用程序的指示灯
- 不要为从 Dock 打开的应用程序设置动画
- 加快 Mission Control 动画速度
- 在 Mission Control 中不按应用程序分组窗口
- 禁用 Dashboard
- 不要将 Dashboard 显示为一个空间
- 不要根据最近使用情况自动重新排列空间
- 移除自动隐藏 Dock 的延迟
- 移除隐藏/显示 Dock 时的动画
- 自动隐藏和显示 Dock
- 使隐藏应用程序的 Dock 图标半透明
- 使 Dock 更加透明
- 重置 Launchpad,但保持桌面壁纸完整
配置热角
- 左上屏幕角 → Mission Control
- 右上屏幕角 → 桌面
- 右下屏幕角 → 启动屏幕保护程序
配置 Safari 和 WebKit
- 将 Safari 的主页设置为 'about:blank' 以加快加载速度
- 防止 Safari 在下载后自动打开"安全"文件
- 允许按退格键返回历史记录中的上一页
- 默认隐藏 Safari 的书签栏
- 在热门站点中隐藏 Safari 的侧边栏
- 禁用 Safari 的历史记录和热门站点的缩略图缓存
- 启用 Safari 的调试菜单
- 使 Safari 的搜索横幅默认为"包含"而不是"开头为"
- 从 Safari 的书签栏中删除无用的图标
- 在 Safari 中启用开发菜单和 Web 检查器
- 为网页视图中的 Web 检查器添加上下文菜单项
配置邮件
- 在 Mail.app 中禁用发送和回复动画
- 在 Mail.app 中将电子邮件地址复制为 'foo@example.com' 而不是 'Foo Bar foo@example.com'
- 在 Mail.app 中添加键盘快捷键 ⌘ + Enter 以发送电子邮件
- 以线程模式显示电子邮件,按日期排序(最旧的在顶部)
- 禁用内联附件(只显示图标)
- 禁用自动拼写检查
Spotlight
- 禁用Spotlight对任何新挂载且尚未索引的卷进行索引
- 更改索引顺序并禁止对某些文件类型进行索引
- 在重建索引前加载新设置
- 确保为主卷启用索引
iTerm2
- 为iTerm安装Solarized Dark主题
- 退出iTerm时不显示烦人的提示
- 隐藏标签标题栏
- 设置系统全局热键以显示/隐藏iTerm,使用ctrl+反引号(
^
+ `) - 将普通字体设置为Hack 12pt
- 将非ASCII字体设置为Roboto Mono for Powerline 12pt
Time Machine
- 防止Time Machine提示将新硬盘用作备份卷
- 禁用本地Time Machine备份
活动监视器
- 启动活动监视器时显示主窗口
- 在活动监视器Dock图标中可视化CPU使用情况
- 在活动监视器中显示所有进程
- 按CPU使用情况对活动监视器结果进行排序
通讯录、Dashboard、日历、文本编辑和磁盘工具
- 在通讯录中启用调试菜单
- 启用Dashboard开发模式(允许将小部件保留在桌面上)
- 对新的文本编辑文档使用纯文本模式
- 在文本编辑中以UTF-8格式打开和保存文件
- 在磁盘工具中启用调试菜单
Mac应用商店
- 在Mac应用商店中启用WebKit开发者工具
- 在Mac应用商店中启用调试菜单
信息
- 禁用自动表情符号替换(即使用纯文本表情)
- 禁用智能引号,因为对包含代码的消息来说很烦人
SizeUp.app
- 登录时启动SizeUp
- 下次启动时不显示偏好设置窗口
软件安装
homebrew、fontconfig、git、nvm(node + npm)和zsh(最新版)都在install.sh
中作为运行此项目的基础软件安装。
其他软件在config.js
中配置,可以在您自己的分支中自定义(您可以在自己的分支中更改所有内容)。
以下是我设置为默认的软件:
实用工具
- ack
- ag
- coreutils
- dos2unix
- findutils
- fortune
- gawk
- gifsicle
- gnupg
- gnu-sed
- homebrew/dupes/grep
- httpie
- imagemagick(仅在启用gitshots时)
- imagesnap(仅在启用gitshots时)
- jq
- mas
- moreutils
- nmap
- openconnect
- reattach-to-user-namespace
- homebrew/dupes/screen
- tmux
- tree
- ttyrec
- vim --override-system-vi
- watch
- wget --enable-iri
应用程序
- box-sync
- gpgtools
- iterm2
- sizeup
- slack
- the-unarchiver
- xquartz
NPM全局模块
- antic
- buzzphrase
- eslint
- gulp
- instant-markdown-d
- npm-check
- prettyjson
- trash
- vtop
许可证
本项目采用ISC许可。请自由分叉、贡献和分享。
贡献
欢迎以带有解释性评论的拉取请求形式提供贡献。
请参阅贡献者公约
厌恶、无感和赞美
作者
更多信息:https://adameivy.com
¯\(ツ)/¯ 警告 / 免责声明
警告: 如果您的机器最终处于您不满意的状态,本仓库的创建者不承担任何责任。如果您有顾虑,请查看代码以了解这将对您的机器做什么 :)