This repository includes configuration files for various programs, as well as setup scripts for Mac and Debian that download all the dependencies and any desired applications, set settings, and copy this dotfiles repository.
Important
If using a different terminal emulator, its font should be changed to the Nerd font.
This script will install packages, set up dotfiles, install the Hack Nerd Font, set zsh as default, set the locale, and try to set the MOTD. The script ends with switching to zsh.
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/sarpuser/dotfiles/refs/heads/main/scripts/debian-setup.sh)"Installed packages
- curl
- eza
- fontconfig
- fzf
- git
- gpg
- [Optional] speedtest
- stow
- unzip
- [Optional] uv (installed in /opt/cargo and symlinked to /usr/local/bin)
- zsh
This script will install Homebrew (if not already installed), install brew & App Store apps, set up terminal environment by cloning this repository, and change settings. The Homebrew apps include desktop apps and if these are found on the Applications directory (installed from a website perhaps), the script will replace the executables with the Homebrew version without app data loss. Each of the script components (Homebrew & apps, terminal, and settings) are opt-in and safe to run multiple times.
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/sarpuser/dotfiles/refs/heads/main/scripts/mac-setup.sh)"Installed Apps
- 1Password
- 1Password CLI # needed for Alfred
- Alacritty
- Alfred
- Arc Browser
- App Cleaner
- Balena Etcher
- Bartender
- Better Display
- Better Mouse
- [Optional] Copilot
- [Optional] Discord
- defaultbrowser
- Dropzone 4
- eza
- Hack Nerd Font
- Hand Mirror
- fping
- fzf
- gh
- git
- git-delta
- [Optional] KeepingYouAwake
- Keyboard Clean Tool
- Logi Options+
- mas
- Mission Control Plus
- neofetch
- Oh My Posh
- picocom
- [Optional] Private Internet Access
- pyenv
- Raspberry Pi Imager
- Rust & Rustup
- shellcheck
- Spark Mail
- Speedtest CLI
- Spotify
- [Optional] Steam
- Things
- GNU Stow
- Visual Studio Code
- UTM
- Wireguard Go
- Zoom
- xz
- zoxide
- Log into apps
- Create WireGuard conf
- Place
<confName>.confin/etc/wireguard - Alias
vpn-ontowg-quick up <confName> - Alias
vpn-offtowg-quick down <confName>
- Place
- Bartender configuration
- Add accounts
Refer to the git config README
Stow manages symlinks for all the files in the dotfiles repository. By default it creates symlinks for the selected "packages" (the dotfiles in this case) in the parent directory. For ~/dotfiles/.zshrc, stow would create the symlink ~/.zshrc. Likewise, for ~/dotfiles/.config/alacritty it would create ~/.config/alacritty.
Any files/folders that stow should not create symlinks for can be placed in .stow-local-ignore
Note
Unless --no-folding is used, .stow-local-ignore file can only ignore paths in the root of the package.
stow [options] packageNote
The package in the stow syntax is in relation to the stow directory (see below). Using . would mean all the packages in the stow directory, NOT the current directory.
-d: Stow directory (directory where all the "packages" are stored)- Default: Current directory
-t: Target directory (where all the symlinks will be created)- Default: Parent of stow directory
-R: Restow (delete all symlinks and recreate them)-D: Delete all symlinks--no-folding: Only create symlinks for files, not directories