Thank you for your interest in contributing! This document outlines how to get started, what we need, and how to submit your work.
- Rainmeter 4.x or higher installed
- Windows 10 / 11
- A GitHub account and Personal Access Token (
read:userscope) - Basic familiarity with PowerShell or Rainmeter INI syntax
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/grassmeter.git - Copy the skin folder into Rainmeter:
Documents\Rainmeter\Skins\grassmeter\ - Edit
Settings.incwith your credentials - Run
run.batto verify everything works
rainmeter_plugin\
├── Settings.inc ← All user configuration
├── FetchAndBuild.ps1 ← GrassView data fetcher + INI generator
├── FetchCommits.ps1 ← CommitView data fetcher + INI generator
├── GrassView.ini ← Auto-generated (do not edit directly)
└── CommitView\
└── CommitView.ini ← Auto-generated (do not edit directly)
The core workflow is:
- PowerShell script reads
Settings.inc - Calls GitHub REST/GraphQL API
- Generates a Rainmeter
.inifile with hardcoded meter values - Triggers
Rainmeter.exe !Refreshto reload the skin
Browse open issues — look for ones labeled good first issue if you're new.
Leave a comment on the issue to let others know you're working on it.
- Keep changes focused — one issue per PR
- Test with Rainmeter by running the relevant
.batfile - Check the generated
.inifile visually on the desktop
- Write a clear PR title (e.g.,
feat: add Light color theme) - Describe what changed and why
- Reference the issue number (e.g.,
Closes #3)
- Use
[System.IO.File]::WriteAllText(...)for file writes (notOut-File) - Log every meaningful step with the
L()function - Keep INI generation in the
W()builder pattern - No external dependencies — pure PowerShell + Windows APIs only
- All generated files begin with a
; DO NOT EDITcomment - Use
AccurateText=1for consistent font rendering AntiAlias=1on all String meters- Background via
Meter=Shaperectangle, notMeter=Image
| # | Title | Difficulty |
|---|---|---|
| #1 | Add opacity slider UI on widget | Beginner |
| #2 | Add light background preset | Beginner |
| #3 | Improve error message display on widget | Beginner/Intermediate |
| #4 | Add system startup auto-refresh | Intermediate |
| #5 | Create .rmskin package | Beginner |
| #6 | Add private repo contribution toggle | Intermediate |
Open a GitHub Discussion or leave a comment on the relevant issue.