Personal dotfiles and workstation bootstrap scripts.
This repository contains my personal shell, editor and window manager configuration, helper scripts and an installer that can bootstrap a macOS, Ubuntu (Linux) or Android (Termux) environment.
If you're using this repository as a reference or to bootstrap a new machine, please read the Quick Start and the Safety & Customization sections before running any scripts.
This repo includes (but is not limited to):
- Bash and Zsh configuration (aliases, prompts, environment)
- Custom bash-git-prompt theme (includes kube-ps1 integration)
- tmux configuration (gpakosz/.tmux + custom theme)
- Vim / Neovim configuration and plugin install helpers
- Atom and VSCode configuration + package lists
- i3 and compton configuration and i3blocks scripts
- Hammerspoon configuration
- Useful scripts and kubectl plugins
- Installer script to install dotfiles, packages and fonts
- Backup script to export dotfiles, package lists and repos
- Clone the repo:
git clone https://github.com/luisdavim/dotfiles.git
cd dotfiles- Inspect configuration before installing:
less config.sh- Bootstrap a new workstation (interactive installer):
./install.sh allOr run a specific installer task:
./install.sh dotfiles # install dotfiles only (.vimrc, .bashrc, etc.)
./install.sh fonts # install powerline-patched fonts
./install.sh vimplugins # install vim/neovim plugins
./install.sh atompackages # install Atom packages and config
./install.sh packages # install packages from files/pkgs/apt.lst (or brew/cask on macOS)
./install.sh i3 # configure i3 (if applicable)On Termux (Android):
termux-fix-shebang install.sh
./install.sh- bash or zsh
- git
- For macOS: Homebrew (if using the brew/cask paths)
- For Ubuntu: apt
- For Termux: Termux environment
The install script may require sudo for some package operations.
Before running the installer you should review and (if needed) edit config.sh to reflect your preferences and environment. The installer will create symlinks and may install packages on your system.
- Open config.sh and change variables such as DOTFILES_DIR, INSTALL_PACKAGES and any username or platform-specific flags.
- Back up any existing configuration files you care about (e.g., ~/.bashrc, ~/.vimrc) before installing.
A backup script is included to export or restore:
- List of apt or brew repositories
- Installed packages
- Atom packages and configuration
- Dotfiles managed by the installer
Usage examples:
./backup.sh dotfiles # backup dotfiles managed by install.sh
./backup.sh atom # backup atom configuration and package list
./backup.sh repos # backup deb package reposRestore follows similar commands; read the backup.sh header for details.
Top-level files:
.
├── README.md
├── install.sh
├── backup.sh
├── config.sh
└── files
├── bash
│ └── README.md
├── hammerspoon
│ └── README.md
└── i3
└── README.md
See the sub-README files under files/ for component-specific documentation.
- If install.sh fails on package installation, re-run with logs enabled or run the failing command manually to inspect errors.
- On macOS, ensure Homebrew is installed and up to date.
- On Termux, use termux-fix-shebang before running the installer to correct script shebangs.
- If a prompt or plugin installation doesn't behave as expected, check the corresponding dotfile (e.g., .vimrc, .tmux.conf) and the component README.
This repository is my personal configuration. If you want to adapt parts for your use, feel free to open issues or PRs suggesting improvements. If you submit a PR:
- Keep changes focused and documented.
- Explain why the change is useful and platform considerations.
- Do not include credentials or machine-specific data.
- See LICENSE (if included) for license details.
- This setup installs and integrates several external projects:
- https://github.com/magicmonty/bash-git-prompt
- https://github.com/jonmosco/kube-ps1
- https://github.com/gpakosz/.tmux
- Other small scripts and plugins referenced in files/
If you have questions about these dotfiles, you can open an issue on the repository.
Enjoy — and remember to review config.sh before running any automated scripts.