Skip to content

OOTB macOS dotfiles with curated tools for instant productivity

License

Notifications You must be signed in to change notification settings

ZhenShuo2021/dotfiles-macos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

MacOS dotfiles inspired by holman/dotfiles and DanielThomas/oh-your-dotfiles.

omz 分支使用 oh-my-zsh 管理套件,該分支已不再維護

這份 dotfiles 包含自動安裝和 symlink 檔案,從 gitconfig、zinit、macos 以及 .config 資料夾全部都設定好了,基本上是一個開箱即用的狀態。所有設定都基於 keep it simple 觀念完成,外觀盡量遵照 vscode 預設主題,一律使用 MesloLGS NF 字體。

Feature

  • 📂 集中管理:不再需要將系統安裝腳本和 dotfiles 分開管理,一次完成兩種需求
  • ⚡ 快速啟動:使用 zsh-defer 和 zinit 延遲載入
  • 🎨 已配置完成的 Powerlevel10k 主題
  • 🔍 多個預先配置的插件
    • fast-syntax-highlighting 語法上色
    • zsh-autosuggestions 指令歷史建議
    • zsh-completions 指令補全
    • colored-man-pages 上色的 man pages
    • extract 自動解壓縮
    • z 快速導航
  • 🌏 LANG、LC_ALL 和 Git 都已經設定好繁體中文
  • 🍺 GPG、homebrew 等等常見煩人問題都已經解決
  • 🖥️ 終端機
  • ✏️ 文字編輯
    • neovim: 使用 Lazyvim 設定檔,關閉所有 lsp,鍵盤映射 Ctrl+d 為黑洞刪除
    • helix: onedarker 主題,並且整合 ruff lsp
  • 🔧 工具
    • gallery-dl: 精心設計的 config.json,只需修改路徑即可使用
    • yt-dlp: 設定檔為最高畫質和音質,開箱即用

哪裡不一樣?

和 holman 的相比:

  1. 更為現代,使用套件管理系統,不再需要自己維護功能
  2. 集中管理 symlink/installer 更為方便直觀易於維護
  3. $ZSH 關鍵字被改為 $ZDOTFILES 避免衝突

和 DanielThomas 的相比:

  1. 執行檔和設定檔不區分為兩個 repo(但是要用 git submodule)
  2. 簡化設定,不區分任何作業系統

資料夾架構

實際使用過後感覺繁雜的設定只是徒增困擾,於是簡化為只有 symlink 和 installer 兩種資料夾,並且保留其餘的資料夾設定:

  • bin/: 所有在 bin 資料夾的指令都會被載入並隨處可用
  • fpath: 此資料夾會加入 fpath,這個路徑多用於指令補齊
  • installer: 只有 macos 才會執行 installer 資料夾的所有 *.sh 檔案
  • symlink/: 這裡的所有檔案都會被 symlinked 到 $HOME 以便集中管理設定檔
  • zsh/*.zsh: 所有 .zsh 都會被 .zshrc 載入到環境中

由於 .config 裡面可能會有隱私設定所以 .gitignore 設定 config.symlink 一律略過除非手動新增。

安裝

git clone --depth=1 --recursive --shallow-submodules https://github.com/ZhenShuo2021/dotfiles-macos.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap

你應該首先修改 zsh/zshrc.symlink 以調整路徑和個人偏好設定。成功安裝後系統會增加 dot 指令可以更新所有

程式說明

第一次看 shell 發現他的上下文比一般語言難追多了,所以在這裡額外解釋方便像我這樣的小白理解。

  1. 入口 ./bootstrap
  2. 如果是 MacOS 會執行 bin/dot 進行安裝
    1. bin/dot 會進行各項安裝和更新,使用 bootstrap 安裝完成後也可以直接使用 dot 執行
    2. bin/dot 會回頭呼叫 ./install
    3. ./install 會進行 brew bundle 安裝所有套件,並且執行所有 installer 資料夾中的 .sh 檔
  3. 接著回到 bootstrap 繼續執行 setup_gitconfig/link_files

每次開啟終端機時 .zshrc 會載入 zsh 資料夾裡面的所有 .zsh 檔以及 functions bin

所有 submodule 都在 custom 分支進行修改。

奈米提醒

  • wezterm 主題預設的圖片沒有刪掉只是放到子資料夾,移出來就可以有隨機背景圖片。

縮寫列表

Neovim

這其實是一個速查表,我基本上沒改什麼東西大部分都是預設

按鍵 說明
a/s 在光標前/後插入
Ctrl+d 黑洞刪除
Ctrl+o 回到上一個位置 (等同 vscode Ctrl+-)
Home 仿照 vscode 的智慧 Home 鍵
* 下一個文字出現位置
g-d 跳到變數定義位置
Ctrl-o 回到前一個位置
Space-e 開啟檔案瀏覽器
Ctrl+H/L 切換檔案瀏覽器聚焦位置
Shift+H/L 切換檔案瀏覽器中開啟的檔案
Space-b-d 光標切換檔案/檔案瀏覽器
h 在檔案瀏覽器中回到上一層

Git

指令 全名 用途簡介
gc git commit 提交變更
gc! git commit --amend --no-verify 合併上一提交
gca git commit -a 提交追蹤檔案
gco git checkout 切換分支
gcb git copy-branch-name 複製分支名稱
gb git branch 顯示分支
gs git status -sb 簡要狀態
ge git-edit-new 編輯新檔
gl git pull --prune 拉取更新
glog git log --graph ... 顯示提交圖
gp git push origin HEAD 推送分支
gp! git push origin HEAD --force-with-lease 強制推送
gd git diff --color | sed ... 顯示差異

系統

指令 全名 用途簡介
vv nvim 啟動 Neovim Editor
hnc hugo new content 新增 Hugo 內容文章
ls ls -F 列出檔案
l ls -lAh 詳細檢視檔案
ll ls -l 列出詳細資訊
la ls -A 顯示隱藏檔
reload! . ~/.zshrc 重新載入 Zsh
cls clear 清理終端
.. cd.. cd .. 回上一層
... cd... cd ../.. 回兩層
.... cd.... cd ../../.. 回三層
pubkey more ~/.ssh/id_rsa.pub | pbcopy 複製公鑰
d docker $* 執行 Docker
d-c docker-compose $* 執行 Docker Compose

函式

太多了自己看(其實是跨檔案懶得慢慢貼給 GPT 生成),在 bin 還有 functions 都有很多 holman 設定的函式,例如 extract 根本神器,自動分辨副檔名解壓縮。

Brewfile

簡單介紹都裝了哪些東西,只講大件的,基本上都是開源工具

開發者

  1. docker/docker-compose: 容器
  2. iterm2/wezterm/warp/tmux: 終端機工具
  3. helix/neovim/Lazyvim: 文字編輯器和擴展
  4. fd/fzf/ripgrep: Lazyvim 推薦的搜尋工具
  5. git/gh/act: git/本地 github cli/actions平台

終端工具

  1. exiftool: 相片元資料編輯器
  2. imagemagick: 相片編輯工具
  3. gallery-dl/yt-dlp/motrix: 圖片/影片/萬用下載工具
  4. yazi: 檔案檢視器
  5. hiddenbar: 狀態欄隱藏工具
  6. ffmpeg: 影片轉檔

其他工具

  1. Localsend: 跨裝置類 airdrop
  2. upscayl: AI 超解析度工具
  3. Spotify
  4. chrome
  5. joplin
  6. google-drive
  7. teamviewer
  8. raycast
  9. stats

Acknowledgments

This software is forked from Holman (MIT License, https://github.com/holman) and includes code from Oh My Zsh (MIT License, © 2009-2017 Robby Russell and contributors) and Warp themes (Apache License 2.0, https://github.com/warpdotdev/themes).

About

OOTB macOS dotfiles with curated tools for instant productivity

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published