My personal collection of dotfiles for macOS with automatic dark mode update across terminal applications.
Warning
These dotfiles are tailored to my specific workflow and setup. Before using these files, review each script carefully and proceed at your own risk. Some configurations may not be compatible with other systems or setups, and unintended side effects are possible.
- OS: macOS (developed on macOS Sequoia 15.1)
- Shells Supported: Zsh
- Dependencies: Some features rely on third-party tools (e.g., bouk/dark-mode-notify for automatic dark mode switching)
- Neovim >= 0.9.0
- Git >= 2.19.0
Warning
Before installing, user should review the code and use at their own risk.
git clone https://github.com/jackplus-xyz/dotfiles.git ~/.config
cd ~/.config/dotfiles
chmod +x install.sh
./install.sh
The install.sh
will create symbolic links of all the applications in ~/.config/dotfiles/.config
.
If a symbolic link already exists, it will create a backup in ~/.config/dotfiles_backup
.
To install selectively:
Clone the repo and copy only the configurations you need into the corresponding system directories.
Inspired and adapted the fish
script to zsh
from Automatic dark mode for terminal applications
Requirements:
-
Compile the program: Follow the instructions on the bouk/dark-mode-notify or
cd ~/.config/dotfiles/scripts/dark-mode-notify && make install
-
Setup background agent:
-
Create the following file at
~/Library/LaunchAgents/ke.bou.dark-mode-notify.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>ke.bou.dark-mode-notify</string> <key>KeepAlive</key> <true/> <key>StandardErrorPath</key> <string>----Path to a location----/dark-mode-notify-stderr.log</string> <key>StandardOutPath</key> <string>----Path to a location----/dark-mode-notify-stdout.log</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/dark-mode-notify</string> <string>--- Path to your script ---</string> </array> </dict> </plist>
[!Note] Make sure to change the path accordingly The script path will be:
$HOME/.config/dotfiles/scripts/theme_sync.sh
-
Run
launchctl load -w ~/Library/LaunchAgents/ke.bou.dark-mode-notify.plist
to keep it running on boot.
This script adjusts theme settings for various applications based on macOS dark mode status. If necessary, it restarts or reloads applications for the changes to take effect.
Issues:
-
Control + /
triggers the system alert sound on macOSSolutions:
-
Change the
DefaultKeyBind.dict
-
Create a file
~/Library/KeyBindings/DefaultKeyBinding.dict
if it doesn't exist yet -
Add the snippet below into
DefaultKeyBinding.dict
{ "^/" = "noop:"; }
-
-
Remap the key(Didn't work for me.)
bindings = [ { key = "Slash", mods = "Control", chars = "\u001f" }, ]
-
Awesome dotfiles that inspire my current config.
- FelixKratz/dotfiles: My personal macOS configuration
- craftzdog/dotfiles-public: My personal dotfiles
The tools used in my config.
-
bouk/dark-mode-notify: Run a script whenever dark mode changes in macOS
-
nikitabobko/AeroSpace: AeroSpace is an i3-like tiling window manager for macOS
-
alacritty/alacritty: A cross-platform, OpenGL terminal emulator.
-
FelixKratz/JankyBorders: A lightweight window border system for macOS
-
FelixKratz/SketchyBar: A highly customizable macOS status bar replacement
-
kovidgoyal/kitty: Cross-platform, fast, feature-rich, GPU based terminal
-
sxyazi/yazi: 💥 Blazing fast terminal file manager written in Rust, based on async I/O.
-
ajeetdsouza/zoxide: A smarter cd command. Supports all major shells.
-
Zsh:
-
NeoVim:
This repository is licensed under the MIT License. You are free to use, modify, and distribute these dotfiles, provided the original attribution is retained.