Ways to Contribute
There are many ways to contribute to Gentleman.Dots:Report Bugs
Found an issue? Let us know by creating a bug report
Suggest Features
Have an idea for improvement? Share it with the community
Submit Code
Fix bugs, add features, or improve existing functionality
Improve Documentation
Help make the docs clearer and more comprehensive
Getting Started
Fork and Clone the Repository
Fork the repository
Visit the Gentleman.Dots repository and click the “Fork” button in the top right.
Development Workflow
Testing Your Changes
Before submitting changes:Test configuration changes
If you modified configs (Neovim, shell, terminal):
-
Back up your existing config:
-
Test the new config:
-
Verify there are no errors:
Code Style and Standards
Shell Scripts (Bash)
- Use
#!/bin/bashshebang - Always use
set -efor error handling - Use meaningful function and variable names
- Add comments explaining complex logic
- Use the color variables defined in the script (
$GREEN,$RED, etc.) - Follow the existing code structure and indentation
Lua Configuration (Neovim)
- Use 2-space indentation
- Add clear comments for non-obvious configurations
- Include
descfield for all keymaps - Group related options together
- Follow LazyVim’s plugin structure
- Use lazy-loading when appropriate
TOML/Config Files
starship.toml
- Use comments to explain non-obvious settings
- Group related configurations
- Keep formatting consistent with existing files
- Use meaningful variable/key names
Commit Message Guidelines
Use clear, descriptive commit messages following this format:feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, no logic change)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Submitting Your Contribution
Creating a Pull Request
Create Pull Request
- Go to the original Gentleman.Dots repository
- Click “New Pull Request”
- Click “compare across forks”
- Select your fork and branch
- Fill out the PR template
Pull Request Template
When creating a PR, include:Areas for Contribution
Here are some areas where contributions are especially welcome:High Priority
Platform Support
Platform Support
- Test and improve WSL compatibility
- Add support for NixOS
- Improve Arch Linux installation
- Add FreeBSD support
Terminal Emulators
Terminal Emulators
- Add configurations for new terminals
- Improve existing terminal themes
- Add theme variants (light mode, other color schemes)
Shell Configurations
Shell Configurations
- Add support for other shells (bash, xonsh)
- Improve Nushell completions
- Add more Fish shell functions
- Optimize shell startup time
Neovim Plugins
Neovim Plugins
- Add support for new AI assistants
- Improve LSP configurations
- Add language-specific configurations
- Create custom Neovim plugins
Installation Script
Installation Script
- Add error recovery mechanisms
- Improve progress indicators
- Add rollback functionality
- Better platform detection
Documentation
- Add more troubleshooting guides
- Create video tutorials
- Translate documentation to other languages
- Add more code examples
- Improve README with better screenshots
Community
- Answer questions in GitHub issues
- Help review pull requests
- Share your custom configurations
- Create blog posts or tutorials
Testing Checklist
Before submitting, ensure:Functionality
- New features work as expected
- Existing features are not broken
- Edge cases are handled
Code Quality
- Code follows style guidelines
- Comments explain complex logic
- No unnecessary code or debug statements
- Error handling is appropriate
Platform Testing
Test on all relevant platforms:
- macOS (Intel and Apple Silicon if possible)
- Ubuntu/Debian Linux
- Arch Linux
- WSL2 (if applicable)
Code Review Process
What to Expect
- Initial Review (1-3 days)
- Maintainers will review your PR
- May request changes or ask questions
- Revision Phase
- Address feedback
- Push updates to your branch
- PR will be re-reviewed
- Approval and Merge
- Once approved, PR will be merged
- Your contribution will be in the next release!
Responding to Feedback
When responding to review comments:Project Structure
Understanding the project structure helps with contributions:Experimental Features
Want to work on bleeding-edge features? Check out the
nix-migration branch for experimental Nix-based configurations (macOS only).- Nix package manager integration
- Declarative system configuration
- Experimental features before they hit
main
License
By contributing to Gentleman.Dots, you agree that your contributions will be licensed under the same license as the project.Getting Help
If you need help with your contribution:GitHub Discussions
Ask questions and discuss ideas
GitHub Issues
Report bugs or check existing issues
Recognition
Contributors are recognized in:- GitHub Contributors page
- Project README
- Release notes for significant contributions