Dotfiles of David Chen.
Find a file
2025-11-29 11:12:53 -08:00
agent-tracker refactor: update scope navigation keys to n (narrow) and i (broad) 2025-11-29 11:12:53 -08:00
alacritty remove extrakto 2020-08-05 15:14:50 +08:00
bin ensure opencode 2025-11-28 08:56:25 -08:00
ccstatusline update cc statusline 2025-09-09 17:48:36 -07:00
claude update claude config 2025-10-13 14:14:05 -07:00
codex remove duplicated mcp config in codex 2025-11-28 16:26:01 -08:00
fish new stuff 2019-10-07 17:49:54 -07:00
i3 improved i3bar 2019-10-11 10:42:07 -07:00
i3status i3status 2019-10-21 15:54:19 -07:00
jesseduffield lazygit config update 2025-11-05 15:29:49 -08:00
joshuto set tf as joshuto text format 2024-06-13 08:54:46 -07:00
kitty added kitty codicon 2023-12-05 22:54:54 -08:00
lmk added lmk config 2020-09-01 21:49:42 +08:00
mutt mutt fix 2019-12-06 07:49:22 -08:00
neofetch minor updates to neofetch config 2021-06-06 21:37:56 +08:00
omf fzf, onedrive 2019-09-14 16:02:04 -07:00
opencode opencode config 2025-11-28 16:27:10 -08:00
polybar a bunch of new rice~ 2019-08-22 19:30:32 +08:00
pudb pudb 2020-01-29 22:44:06 -08:00
ranger ranger config updates 2022-10-20 21:23:08 -07:00
raycast-scripts cc ring mode 2025-09-09 17:49:01 -07:00
tmux tmux: prefix+number to move window to session# 2025-11-29 09:51:41 -08:00
yazi zsh config dir yazi keybinds 2025-08-07 16:58:09 -07:00
zsh codex config update 2025-11-23 17:02:39 -08:00
.gitignore opencode config 2025-11-28 16:27:10 -08:00
.tmux.conf tmux: prefix+number to move window to session# 2025-11-29 09:51:41 -08:00
.Xmodmap fix for vim crash 2019-11-01 07:56:11 -07:00
.Xmodmap-cn a bunch of new rice~ 2019-08-22 19:30:32 +08:00
.yabairc yabai config updates 2025-08-11 16:02:28 -07:00
BTT.bttpreset updates 2023-05-31 20:30:35 -07:00
Default.bttpreset added bettertouchtool config 2022-02-02 10:33:30 -08:00
llpp.conf llpp & vimium options 2019-11-08 09:40:24 -08:00
my-packages.txt my packages 2019-11-08 09:44:26 -08:00
README.md unify upgrade script 2025-11-25 23:11:28 -08:00
README_cn.md unify upgrade script 2025-11-25 23:11:28 -08:00
starship-tmux.toml tmux starship command (pane label) 2025-10-05 10:11:01 -07:00
taplo.toml include taplo.toml 2024-08-27 20:16:42 -05:00
vimium-options.json llpp & vimium options 2019-11-08 09:40:24 -08:00

My Config

中文版

This config folder includes configurations for various development tools and applications.

Deploy

Quick Setup

Run the deployment script to install all tools and configure symlinks:

bin/upgrade-all

The script is idempotent - you can run it multiple times safely. It will:

  • Install/update Homebrew packages
  • Set up zsh configuration sourcing
  • Create configuration symlinks (tmux, claude)
  • Skip already installed packages

Manual Homebrew Installation

If you need to install Homebrew manually:

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

Iterm2 config

Title should be set to session name only. Do not allow other applications to change the title.

Apps

Claude Code Voice Configuration

This config includes a global voice system for Claude Code that uses macOS text-to-speech.

Voice Commands

  • /voice-on - Enable text-to-speech globally
  • /voice-off - Disable text-to-speech globally

Raycast Integration

For quick voice control, use the included Raycast scripts:

  • "Toggle Claude Voice" - Toggle voice on/off from anywhere
  • "Stop Voice (TTS)" - Immediately stop any playing speech

To add to Raycast: Add the raycast-scripts/ directory to your Raycast script directories.

Selecting and Downloading High Quality System Voices

For the best text-to-speech experience, download high-quality system voices:

  1. Open System PreferencesAccessibilitySpoken Content
  2. Click the info icon (ⓘ) next to the "System Voice" dropdown
  3. Search for "Siri" to find the highest quality voices
  4. Download Siri voices - these are the premium, neural-powered voices
  5. Select your preferred Siri voice in the System Voice dropdown

Recommended: Siri voices provide the most natural speech quality but require downloading additional voice data.

Voice Settings

Voice is controlled by a global flag file at ~/.claude/voice-enabled. When this file exists, Claude Code will speak all responses.

Other Applications

  • tmux: Terminal multiplexer with custom configuration (set TMUX_RAINBARF=0 before launching tmux to hide the rainbarf status segment)
  • neovim: Modern text editor
  • yazi: Terminal file manager
  • lazygit: TUI for git operations
Legacy Configuration (Click to expand)

My scripts are in this repo.

This folder includes i3 and alacritty config, however, I'm using dwm and st now.

Ranger

Use pip install ueberzug and ranger-git

Mutt Email Setup

In ~/.gnupg/gpg-agent.conf:

default-cache-ttl 34560000
max-cache-ttl 34560000

If this doesn't work, try pam-gnupg:

yay -S pam-gnupg-git

And in /etc/pam.d/system-local-login add:

auth     optional  pam_gnupg.so
session  optional  pam_gnupg.so

Input Methods

Install: fcitx fcitx-im fcitx-googlepinyin fcitx-configtool

And in /etc/X11/xinit/xinitrc:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

Note: Fcitx users need to set the first input method to be Keyboard - layout

Fonts

Locale Configuration

In locale.conf:

LANG=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_TIME=en_US.UTF-8

Font Recommendations

  • Main Font: Source Code Pro and nerd-fonts-source-code-pro
  • Noto Fonts: Install noto-fonts (not -all - it's bloated). Check /usr/share/fonts/noto

Emoji Fonts

yay -S ttf-linux-libertine ttf-inconsolata ttf-joypixels ttf-twemoji-color noto-fonts-emoji ttf-liberation ttf-droid

Chinese Fonts

yay -S wqy-bitmapfont wqy-microhei wqy-microhei-lite wqy-zenhei adobe-source-han-mono-cn-fonts adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts

GTK Theme

Using adapta-gtk-theme and arc-icon-theme.

Arch Packages

See my-packages.txt for complete package list.