This repository contains configuration files for setting up a development environment across macOS, Linux, and WSL.
For the matching Neovim configuration, see nvim-config.
.zshrc— Main Zsh configuration with Oh My Zsh, Powerlevel10k, plugins, and environment settingsaliases.zsh— Custom aliases, functions, and thethemecommandzsh/secrets.zsh.example— Example file for private API keys and secrets; copy to~/.config/zsh/secrets.zshalacritty.toml— Alacritty terminal emulator configurationalacritty/themes/tokyonight-*.toml— Alacritty dark/light theme fileswezterm.lua— WezTerm terminal emulator configurationghostty/config— Ghostty terminal emulator configurationghostty/theme-*.conf— Ghostty dark/light theme files
tmux.conf— Tmux configuration with custom keybindings, powerline-style status bar, popups, scratchpad, and pluginstmux/tokyonight-*.conf— Tmux dark/light theme files using tmux user options (@bg,@fg, ...)
p10k/p10k-dark.zsh— Powerlevel10k configuration for TokyoNight Moonp10k/p10k-light.zsh— Powerlevel10k configuration for TokyoNight Day
shell/theme-switch.sh— Unified theme switcher for tmux, Ghostty, Alacritty, WezTerm, Neovim, and Powerlevel10kshell/keyboard.sh— macOS input source indicator used by the Tmux status bar (showsRU/EN/etc.)
- nvim-config — Matching Neovim configuration with native LSP, fzf-lua, and TokyoNight theme switching
The theme command switches the active theme for tmux, Ghostty, Alacritty, WezTerm, Neovim,
and the current pane's Powerlevel10k prompt:
theme dark # TokyoNight Moon
theme light # TokyoNight Day
theme toggle # switch between dark and light
theme status # show current modetheme is a shell function defined in configs/aliases.zsh.
Zsh completions for it are provided in shell/completions/ and added to fpath in .zshrc.
- The source of truth is
~/.config/theme/mode(darkorlight; dark is the default). ~/.config/theme/ghostty-theme.confis a symlink to the active Ghostty theme file.~/.config/theme/alacritty-theme.tomlis a symlink to the active Alacritty theme file.~/.config/theme/tmux-theme.confis a regular file overwritten by the selected Tmux theme. Tmux uses user options (@bg,@fg, ...) and format references (#{@bg}), so color changes apply instantly with a singlesource-file.- WezTerm reads
~/.config/theme/modeand applies the matching built-in color scheme (tokyonight_moonortokyonight_day).~/.wezterm.luais touched after a theme change to trigger WezTerm's auto-reload. ~/.p10k.zshis a symlink to eitherconfigs/p10k/p10k-dark.zshorconfigs/p10k/p10k-light.zsh.- Neovim watches
~/.config/theme/modeand switches betweentokyonight-moonandtokyonight-day. Lualine is rebuilt on everyColorSchemeevent using dynamic colors fromutils/colors.lua.
- The active pane updates immediately when you run
theme(the prompt is redrawn afterp10k reload). - Other tmux panes pick up the new p10k theme the next time they run a command.
- TokyoNight Moon — primary dark color scheme for tmux, Ghostty, Alacritty, WezTerm, Neovim, and p10k
- TokyoNight Day — primary light color scheme for tmux, Ghostty, Alacritty, WezTerm, Neovim, and p10k
Files should be placed/symlinked in the following locations:
~/.zshrc
~/.p10k.zsh
~/.config/alacritty/alacritty.toml
~/.config/ghostty/config
~/.config/theme/
~/.config/zsh/secrets.zsh
~/.wezterm.lua
~/.tmux.conf
~/.tmux/keyboard.sh
-
Clone the repository:
git clone https://github.com/Pepetka/dotfiles.git ~/workspace/dotfiles -
Create necessary directories:
mkdir -p ~/.config/alacritty mkdir -p ~/.config/ghostty mkdir -p ~/.config/theme mkdir -p ~/.config/zsh mkdir -p ~/.tmux
-
Create symbolic links:
# Zsh configuration ln -sf ~/workspace/dotfiles/configs/.zshrc ~/.zshrc # Terminal emulators ln -sf ~/workspace/dotfiles/configs/alacritty.toml ~/.config/alacritty/alacritty.toml ln -sf ~/workspace/dotfiles/configs/ghostty/config ~/.config/ghostty/config ln -sf ~/workspace/dotfiles/configs/wezterm.lua ~/.wezterm.lua # Tmux ln -sf ~/workspace/dotfiles/configs/tmux.conf ~/.tmux.conf ln -sf ~/workspace/dotfiles/shell/keyboard.sh ~/.tmux/keyboard.sh
Aliases are sourced directly from
$DOTFILES/configs/aliases.zshin.zshrc, so no separate symlink is needed. -
The
themecommand will create~/.config/theme/contents and manage the~/.p10k.zshsymlink on first run. -
Install Tmux plugins:
- Install Tmux Plugin Manager (TPM)
- Open Tmux and press
prefix + Ito install plugins
- Oh My Zsh — Framework for Zsh configuration
- Powerlevel10k — Zsh theme
~/.p10k.zshis a symlink managed by thethemecommand; do not runp10k configureunless you want to overwrite it
- Alacritty — Fast, cross-platform terminal emulator
- WezTerm — GPU-accelerated terminal emulator
- Ghostty — Fast, native, feature-rich terminal emulator
- Tmux — Terminal multiplexer
- Tmux Plugin Manager — Plugin manager for Tmux
The .zshrc includes several plugins that enhance the shell experience:
zsh-autosuggestions— Command suggestionszsh-syntax-highlighting— Syntax highlightingfzf— Fuzzy finder integrationgit— Git aliases and functionsnvm— Node Version Manager integrationnpm,bun,docker,direnv,extract,sudo, and more (see.zshrcfor full list)
- Prefix changed to
Ctrl + a - Vi-style copy mode with system clipboard integration
- Mouse support for selection, resizing, and scrolling
- Popups:
prefix + f— floating scratchpad sessionprefix + Ctrl + f— fzf session switcherprefix + ?— keybindings cheatsheet
- Synchronize panes toggle with
prefix + eand visualSYNCindicator - Window management:
prefix + Shift + h/l— swap window left/rightprefix + x/X/Q— kill pane/window/session
- Powerline-style status bar with session, layout, CPU/RAM, battery, and time widgets
- TokyoNight Moon color scheme
The configuration includes numerous aliases for:
- Git operations (
gs,ga,gc,gcom, etc.) - Navigation (
lswitheza, directory shortcuts) - Development tools (npm, docker, etc.)
- AI coding agent providers (
deepseek,zai,minimax,kimic)
theme— Switch the active terminal/editor themeyy()— Yazi file manager integrationgcom()— Smart git checkoutmaster/mainhurl_pretty()— Pretty-printed HTTP responsests3()— Tmux three-pane development layout
This repository is distributed under the MIT License. See the LICENSE file for details.

