-
-
Notifications
You must be signed in to change notification settings - Fork 107
Contributing
github-actions edited this page Jun 16, 2025
·
2 revisions
Thank you for your interest in contributing to YASB! This guide will help you get started with the development workflow and coding standards.
- Python 3.12
- Git
- A Windows development environment (YASB is Windows-only)
-
Fork and Clone the Repository
git clone https://github.com/amnweb/yasb.git cd yasb
-
Install Development Dependencies
pip install -e .[dev]
-
Install Pre-commit Hooks
pre-commit install
-
VS Code Setup (Recommended) The project includes VS Code workspace configuration in .vscode/:
-
Recommended Extensions (.vscode/extensions.json):
-
charliermarsh.ruff
- Ruff linter and formatter -
ms-python.python
- Python language support -
ms-python.vscode-pylance
- Advanced Python IntelliSense -
ms-python.debugpy
- Python debugging
-
-
Workspace Settings (.vscode/settings.json):
- Excludes
__pycache__
directories from file explorer and search - Configures Ruff as the default Python formatter
- Enables auto-fix and import organization on save
- Excludes
VS Code will automatically suggest installing the recommended extensions when you open the project.
-
YASB uses several tools to maintain code quality:
- Ruff: Fast Python linter and formatter
- Pre-commit: Git hooks for automated code quality checks
- GitHub Actions: Automated CI/CD workflows
The .pre-commit-config.yaml includes:
- Ruff linting and formatting with auto-fix enabled
Before committing your changes:
# Format code with Ruff
ruff format .
# Check linting
ruff check .
# Fix auto-fixable issues
ruff check --fix .
yasb/
├── src/
│ ├── core/
│ │ ├── widgets/ # Widget implementations
│ │ └── validation/ # Widget validation schemas
│ ├── config.yaml # Default configuration
│ ├── styles.css # Default styles
│ └── main.py # Application entry point
├── docs/ # Documentation
├── demo/ # Demo images
├── .github/ # GitHub workflows and templates
├── pyproject.toml # Project configuration
└── README.md
- Bug Fixes: Fix existing issues
- New Widgets: Add new widget functionality
- Documentation: Improve or add documentation
- Performance: Optimize existing code
- Features: Add new application features
Follow the Writing Widget guide for detailed instructions.
- Home
- Installation
- Configuration
- Styling
- YASB CLI
- FAQ
- Contributing
- Writing Widget
- Widgets:
- Active Windows Title
- Ai Chat
- Applications
- Battery
- Bluetooth
- Brightness
- Cava
- CPU
- Clock
- Custom
- Github
- GlazeWM Binding Mode
- GlazeWM Tiling Direction
- GlazeWM Workspaces
- Grouper
- GPU
- Home
- Disk
- Language
- Launchpad
- Libre Hardware Monitor
- Media
- Memory
- Microphone
- Notifications
- Notes
- OBS
- Server Monitor
- Systray
- Todo
- Traffic
- Taskbar
- Pomodoro
- Power Menu
- Power Plan
- Recycle Bin
- Update Check
- Visual Studio Code
- Volume
- Wallpapers
- Weather
- WiFi
- WHKD
- Windows-Desktops
- Komorebi Control
- Komorebi Layout
- Komorebi Stack
- Komorebi Workspaces