Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 0 additions & 62 deletions .github/CONTRIBUTING.md

This file was deleted.

31 changes: 0 additions & 31 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

37 changes: 0 additions & 37 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

11 changes: 10 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,17 @@
"files.insertFinalNewline": true,
"editor.insertSpaces": true,
"editor.tabSize": 4,
"powershell.codeFormatting.preset": "OTBS",

Check warning on line 6 in .vscode/settings.json

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (OTBS) Suggestions: (orbs, ORBS, otis, OTIS, Otis)
"cSpell.words": [
"AWTRIX"

Check warning on line 8 in .vscode/settings.json

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (AWTRIX) Suggestions: (altri, atria, atrip, altria, antrim)
]
],
"files.exclude": {
"**/bin": true,
"**/obj": true,
"**/.vscode": true,
"output/**": true
},
"files.readonlyInclude": {
"output/**": true
}
}
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,51 @@
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [0.4.0] 2026-03-14

### Added

- **First-Class App Objects** — Apps and notifications are now full-fledged
stateful PowerShell objects with methods, properties, and lifecycle
management, enabling sophisticated scenarios:
- `AwtrixApp` class — Represents a persistent custom app with state

Check warning on line 15 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Awtrix) Suggestions: (altri, Altri, atria, Atria, atrip)
management, dirty tracking, and serialization
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [alex] reported by reviewdog 🐶
Be careful with dirty, it’s profane in some cases dirty retext-profanities

- `AwtrixNotification` class — Represents a one-time notification with

Check warning on line 17 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Awtrix) Suggestions: (altri, Altri, atria, Atria, atrip)
hold, sound, wakeup, and stacking support

Check warning on line 18 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (wakeup) Suggestions: (makeup, wake, waked, waken, waker)
- `AwtrixAppBase` base class — Shared infrastructure for 24 display

Check warning on line 19 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Awtrix) Suggestions: (altri, Altri, atria, Atria, atrip)
properties (text, colors, effects, charts, drawing, overlays, etc.)
- `AwtrixAppCollection` class — Multi-page app batching via single API

Check warning on line 21 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Awtrix) Suggestions: (altri, Altri, atria, Atria, atrip)
call (device-assigned suffixes: BaseName0, BaseName1, etc.)
- `New-AwtrixApp` cmdlet — Create and optionally push `[AwtrixApp]`

Check warning on line 23 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Awtrix) Suggestions: (altri, Altri, atria, Atria, atrip)
objects. Returns object for property mutation, template cloning, and
serialization workflows
- `New-AwtrixNotification` cmdlet — Create `[AwtrixNotification]` objects
for deferred or immediate dispatch
- `Update-AwtrixApp` cmdlet — Pipeline cmdlet to update app properties and
push. Supports `-DirtyOnly` for incremental updates (only changed
properties sent to device)
- `New-AwtrixAppCollection` cmdlet — Batch multi-page apps with unified
push/remove operations
- Object methods: `Push()`, `Push($dirtyOnly)`, `Remove()`, `SwitchTo()`,
`Send()` for imperative app lifecycle
- Object methods: `ToJson()`, `FromJson()` for config serialization and
restoration
- Object method: `Clone($newName)` for template/variant patterns
- Object method: `GetDirtyPayload()` for incremental updates
- Type accelerators for new classes: `[AwtrixApp]`, `[AwtrixNotification]`,
`[AwtrixAppBase]`, `[AwtrixAppCollection]`

### Changed

- `Set-AwtrixApp` now internally uses `[AwtrixApp]` class and supports
`-PassThru` to return the object. Fully backward-compatible — omit
`-PassThru` for fire-and-forget behavior (default)
- `Send-AwtrixNotification` now internally uses `[AwtrixNotification]`
class and supports `-PassThru`. Fully backward-compatible
- Module loading now establishes static delegate
`[AwtrixAppBase]::InvokeApi` during initialization to enable class
methods to call module-scoped `InvokeAwtrixApi` function

## [0.3.0] 2026-03-13

### Added
Expand All @@ -16,7 +61,7 @@

### Added

- `Show-AwtrixScreen` — Render the current AWTRIX screen as colored pixels in the terminal using PwshSpectreConsole Canvas

Check warning on line 64 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (Pwsh) Suggestions: (pash, pish, posh, push, pase)

Check warning on line 64 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / Continuous Integration / Run Linters

Unknown word (AWTRIX) Suggestions: (altri, atria, atrip, altria, antrim)
- `AwtrixColor` enum — Named colors (Red, Green, Blue, Yellow, Cyan, Magenta, White, Black, Orange, Purple, Pink) for intuitive color selection
- `AwtrixIndicatorPosition` enum — Descriptive indicator positions (Top, Middle, Bottom) instead of numeric IDs
- `AwtrixColorTransformAttribute` — Custom transform attribute for automatic color conversion across all color parameters
Expand Down
Loading
Loading