Pierre Boutquin's Dotfiles Repo is a cross-platform dotfiles repository for macOS, Linux, and Windows. It is designed to provide a consistent development environment across platforms by using robust configuration management, automated setup scripts, and streamlined tools for productivity.
- Cross-Platform Support:
- Configures Zsh with
oh-my-poshfor macOS, Linux, and Windows. - Platform-specific
.zshrcand.zprofilefiles.
- Configures Zsh with
- Environment Customization:
- Secure handling of private environment variables via
private_env.sh. - Customizable prompt themes using
oh-my-poshorstarship.
- Secure handling of private environment variables via
- Development Tools:
- Git configurations for global
configandignorefiles. - Dotfiles tailored for Ruby on Rails, .NET, Python, and more.
- Git configurations for global
- XDG Base Directory Compliance:
- Stores configuration files in
~/.configfor compatibility with modern conventions.
- Stores configuration files in
- Idempotent Setup Scripts:
- Automated installation script (
install.zsh) ensures safe and repeatable setup. - Backups existing configurations to
.bakfiles before overwriting.
- Automated installation script (
- Aliases and Enhancements:
- Useful shell aliases for navigation, file management, and system commands.
- Safety enhancements like interactive
rm,cp, andmv.
-
Clone this repository to your local machine:
mkdir -p ~/.dotfiles git clone https://github.com/boutquin/dotfiles.git ~/.dotfiles cd ~/.dotfiles
-
Make the
install.zshscript executable:chmod +x install.zsh
-
Run the installation script:
./install.zsh
-
Reload your shell to apply the changes:
source ~/.zshrc
dotfiles/ ├── config/ │ ├── git/ │ │ ├── config │ │ └── ignore │ └── starship.toml ├── zsh/ │ ├── macos/ │ │ ├── .zshrc │ │ └── .zprofile │ ├── linux/ │ │ ├── .zshrc │ │ └── .zprofile │ ├── oh-my-posh.json │ └── aliases.zsh ├── private_env.zsh └── install.zsh
- Zsh Configuration:
.zshrctailored for interactive shells with aliases, plugins, and prompts..zprofilemanages environment variables and login shell configurations.
- Private Environment Variables:
- Store sensitive information in
private_env.zsh(e.g., API keys). - Securely linked to
~/.config/private_env.zshduring installation.
- Store sensitive information in
- Prompt Themes:
oh-my-posh.jsondefines a stylish and informative terminal prompt.- Optional Starship configuration for lightweight prompts.
We welcome contributions to improve and expand this repository! Please follow the steps below to contribute:
If you encounter a bug, open an issue on the Issues page with the following details:
- Clear and descriptive title.
- Steps to reproduce the issue.
- Expected vs. actual behavior.
- Screenshots or logs, if applicable.
- System information (OS, terminal emulator, etc.).
Have an idea for a new feature or improvement? Submit a feature request on the Issues page. Include:
- A descriptive title.
- Detailed explanation of the enhancement.
- Benefits and use cases.
- Potential challenges or trade-offs.
-
Fork the repository:
git clone https://github.com/boutquin/dotfiles.git cd dotfiles -
Create a feature branch:
git checkout -b feature-name
-
Make your changes:
- Ensure your changes align with the repository's structure and standards.
- Test your changes thoroughly.
-
Commit your changes:
git commit -m "Add feature-name" -
Push to your fork:
git push origin feature-name
-
Open a pull request:
- Go to the original repository and open a pull request.
- Provide a clear description of your changes.
-
Private Files:
-
private_env.zshis excluded from version control using.gitignore. -
Always secure this file with restrictive permissions:
chmod 600 ~/.config/private_env.zsh
-
-
Backups:
- The installation script automatically creates backups of existing configurations.
This repository is licensed under the Apache 2.0 License. See the LICENSE file for details.
For any questions or feedback, feel free to:
- Open an issue on GitHub.
- Start a discussion on GitHub Discussions.
- Inspired by the Oh My Zsh community.
- Prompt themes powered by Oh My Posh.
- Contributions and feedback from developers worldwide.