display
System Settings > Accessibility > Display > Turn On Reduce Motion
modifier key
⌘
change to^
caps lock
change to⌘
finder
# show hidden files
defaults write com.apple.finder AppleShowAllFiles YES
# show path bar
defaults write com.apple.finder ShowPathbar -bool true
killall Finder;
brew
Quick Look plugins
brew install --cask \
qlcolorcode \
qlstephen \
qlmarkdown \
quicklook-json \
qlprettypatch \
quicklook-csv \
betterzip \
webpquicklook \
suspicious-package
applications
brew install --cask \
appcleaner \
google-chrome \
iterm2 \
raycast \
visual-studio-code
command line tools
# [Nerd Font](https://www.nerdfonts.com/)
brew install --cask font-fira-code-nerd-font
brew install \
bat \
fish \
git \
git-delta \
go \
hugo \
jq \
neofetch \
orbstack \
ripgrep \
starship \
tree \
wget
git
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.ss status
git-delta
~/.gitconfig
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true # use n and N to move between diff sections
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
fish shell
starship preset nerd-font-symbols -o ~/.config/starship.toml
add to ~/.config/fish/config.fish
# Add HomeBrew's bin directory to path so you can use HomeBrew's binaries like `starship`
# Fish uses `fish_add_path` instead of `export PATH` modify $PATH.
fish_add_path "/opt/homebrew/bin/"
# Enable Starship prompt
starship init fish | source
Package manager
plugin:
abbreviation
add to ~/.config/fish/config.fish
source ~/.config/fish/abbreviation.fish
create abbreviation.fish
abbr proxyall "set --export http_proxy http://127.0.0.1:7890; set --export https_proxy http://127.0.0.1:7890"
custom function
it’s very easy to add a custom function in fish shell, an example
Visual Studio Code
Settings
Side Bar:Location change to right
extensions
- Auto Hide
- AutoTrim
- Emacs Friendly Keymap
- Indenticator
- Sort lines
- vscode-icons
Python
use
pyenv
to manage Python environments, don’t reply on the python installed by brew
, because it might update Python version upexpecetdly when performs brew update
.
brew install readline xz pyenv
# otpinal: setup pyenv with fish shell
alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew"
exec "$SHELL"
pyenv install 3.11.6
pyenv global 3.11.6
Reference
Terminal emulator
iTerm2
Keyboard setting
Use fn
to Change Input Source
Keyboard Shortcuts -> Uncheck all Input Sources
Spotlight
Apple Internal Keyboard
Keyboard Shortcuts -> Modifier Keys
Caps Lock Key
->Command
Command
->Control
External Keyboard
Keyboard Shortcuts -> keep Modifier Keys unchanged
Karabiner-Elements
- left_command -> left_control
- left_control -> left_command
- right_command -> right_control
- right_option ->
fn
Make Caps Lock → Hyper Key (⌃⌥⇧⌘) (Caps Lock if alone) import
Tiling Windows Manager
- yabai (no need to disable
System Integrity Protection
) - skhd
yabai installation and configuration reference:
skhd config
cmd + ctrl + shift + alt
is the Hyper
Key configurated using Karabiner-Elements
# change focus between external displays (left and right)
cmd + ctrl + shift + alt - p : yabai -m display --focus west
cmd + ctrl + shift + alt - n : yabai -m display --focus east
# fullscreen window
cmd + ctrl + shift + alt - m : yabai -m window --toggle zoom-fullscreen
# cycle focus between windows
cmd + ctrl + shift + alt - o : yabai -m window --focus prev || yabai -m window --focus last
# cycle swap window to the main window
cmd + ctrl + shift + alt - j : /bin/bash ~/bin/cycle_clockwise.sh; yabai -m window --focus prev || yabai -m window --focus last
# rotate layout clockwise
cmd + ctrl + shift + alt - r : yabai -m space --rotate 270
# flip along y-axis
cmd + ctrl + shift + alt - y : yabai -m space --mirror y-axis
# flip along x-axis cmd + ctrl + shift + alt - x : yabai -m space --mirror x-axis
# toggle window float
cmd + ctrl + shift + alt - f : yabai -m window --toggle float --grid 4:4:1:1:2:2
cycle_clockwise.sh
:
#!/bin/bash
win=$(yabai -m query --windows --window last | jq '.id')
while : ; do
yabai -m window $win --swap prev &> /dev/null
if [[ $? -eq 1 ]]; then
break
fi
done