Commit Graph
441 Commits
Author SHA1 Message Date
github-actions[bot] d3185605b6 chore: update plugin catalog [skip ci] 2026-08-03 03:12:57 +00:00
b5098f8eed Fix/gamelauncher nixos build (#225)
* game-launcher: bundle self-contained SQLite reader, drop libsqlite3 dependency

Fixes building gamelauncher.c on NixOS where the runtime env lacks
sqlite3.h/libsqlite3. scan_lutris now reads Lutris' pga.db through a
bundled read-only SQLite file parser instead of linking sqlite3.

* game-launcher: rework /g provider to reuse panel scan results

The launcher provider now reads the games the panel already scanned via
state/cache, trims the query, and surfaces status/error rows instead of
duplicating the scan.

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
2026-08-02 23:12:29 -04:00
github-actions[bot] cf1bda889a chore: update issue templates [skip ci] 2026-08-03 03:09:21 +00:00
5dc0808725 Add niri-animations plugin (#223)
Animation preset picker for niri: choose a .kdl preset, set the global
slowdown factor, or turn animations off. Ships a floating and a
bar-attached panel plus a control-center tile.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 23:09:10 -04:00
github-actions[bot] 9d40f236bf chore: update issue templates [skip ci] 2026-08-03 02:25:44 +00:00
3ri4nG0ldandGitHub fb5dd0506e feat: add ip-monitor plugin (#207)
* Add ip-monitor plugin

* fix: removed typo

* feat: increase default refresh interval to 60 seconds

* fix: prevent shell injection in IP monitor gateway lookup.

* docs: fix author casing in README

* feat: add configurable click actions

* feat: add desktop widget support and refactor core logic

- Extracted IP fetching and data parsing into a shared `utils.luau` module to prevent code duplication.
- Created `desktop.luau` to display network details explicitly in a tabulated UI.
- Added specific configuration options for font sizes and colors for the new desktop widget

* feat: add hidden_fields configuration to allow filtering tooltip and desktop widget details

* fix: remove raw HTML from README

* refactor(utils): use bit32 and fix glob pattern escaping & gateway parsing

* refactor(utils): centralize shared UI builder and display name resolution

* refactor(widget): use shared utils helpers and clean up duplicate logic

* refactor(desktop): use shared utils helpers and add IPC click action parity

* docs: update README with desktop widget settings

* feat: remove unused IPC copy actions from widget logic
2026-08-02 22:25:35 -04:00
github-actions[bot] 2e02bbb132 chore: update issue templates [skip ci] 2026-08-02 18:05:43 +00:00
Spyridon Siarapis 4376d18624 ci: Added types to the update issue templates 2026-08-02 19:52:48 +02:00
github-actions[bot] 30169d3373 chore: update plugin catalog [skip ci] 2026-08-02 15:34:59 +00:00
7a9c1c017a Update nightwatch75/topgrade-wrapper to 0.0.6 (#215)
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
2026-08-02 11:34:47 -04:00
github-actions[bot] 676b9f9528 chore: update plugin catalog [skip ci] 2026-08-02 15:34:21 +00:00
Yocraft-2000andGitHub ef4c3996fd Update Battery widget plugin (#201)
* fix: setUpdateInterval in update function

* fix: add shellEscape on cat command

* dump version

* fix: migrate settings to desktop_widget.settings

* feat: auto gap based on the layout

* feat: retrieve warning threshold from noctalia's settings
2026-08-02 11:34:10 -04:00
Lemmy a7a114b945 i18n: mimir 2026-08-01 21:37:37 -04:00
Lemmy 3b9c03b2d5 gitignore 2026-08-01 21:37:30 -04:00
github-actions[bot] b61f5c5c24 chore: update plugin catalog [skip ci] 2026-08-02 01:36:24 +00:00
dbec4a7190 Mimir: Web Search feature & impoving the CPU budget usage (#202)
* game-launcher: add launcher toggles, keyboard nav, auto-refresh

* game-launcher: update README with runner toggle settings

* fix: remove duplicate translation keys after upstream merge

* fix(game-launcher): add ~/.local/share/Steam to steam roots for NixOS support

* chore(game-launcher): bump version to 1.1.1

* feat(mimir): AI companion plugin with LLM chat panel

Mimir is an AI companion for Noctalia — an LLM-powered chat interface
with model selection, conversation history, and a bar widget.

- Service-based architecture: service (brain) handles HTTP API calls,
  panel (chat) renders the UI, widget (status) shows bar indicator
- OpenAI-compatible chat completions with dynamic model discovery
- Floating side panel (center_right) with message history and
  simple markdown rendering (code blocks)
- Model selection dropdown populated from API /models endpoint
- Bar widget with brain icon to toggle chat panel
- i18n via translations/en.json
- Auto-detection of OpenCode Go API key from auth.json
- Full-height floating panel layout matching oficial notes plugin

.gitignore: add editor files, OS junk, auth secrets, compiled binary

* mimir: rename author leo->Alexander, strip scrollBottom, update README with plans

- plugin.toml: author leo -> Alexander, widget panel-toggle id -> alexander/mimir
- widget.luau: togglePanel id -> alexander/mimir:chat
- panel.luau: remove scrollBottom/dynamic key (unstable), remove setUpdateInterval
- README.md: add future plans (commands, file search, etc.)
- thumbnail.webp: removed (replaced by mimir-thumbnail.webp)

* added thumbnail

* added thumbnail.webp

* mimir: bump 0.1.0 → 0.3.0, update README with tools + copy + editable approval

* mimir: copy-to-clipboard toggle, editable command approval, unicode bold rendering

* mimir: fix review findings — conditional auth, dedupe user msg, apply max_history

* mimir: fix manifest validation — use select setting type, add README Plugin section

* mimir: multi-tool queue support, plain approve/deny, better tool-use prompt

* mimir: add full markdown rendering — headings, lists, quotes, hr, bold/italic

* mimir: bump 0.3.2 — fix Lua pattern quantifiers, multi-tool queue, markdown rendering

* mimir: fix security review findings

* mimir: clarify selectable message text

* mimir: add command history display

* mimir: add web search

* mimir: align README with template

* mimir: fix CPU budget error with many messages

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
2026-08-01 21:36:12 -04:00
CyrusandGitHub a25493bcb1 fix(topgrade-wrapper): force LC_ALL=C for background queries (#204) 2026-08-01 21:33:31 -04:00
github-actions[bot] 03885646d4 chore: update plugin catalog [skip ci] 2026-08-02 01:31:47 +00:00
ArturandGitHub 7440208c19 fix(hassio): recover from CPU budget kills that froze the panel on (#205)
"Connecting"
2026-08-01 21:31:36 -04:00
Lemmy f8767575e4 ci: improve template comments so contributors don't delete the marker. 2026-08-01 09:10:36 -04:00
github-actions[bot] f302b4d432 chore: update plugin catalog [skip ci] 2026-08-01 13:04:03 +00:00
Lemmy d181b08d8c chore(i18n): push/pull 2026-08-01 09:03:44 -04:00
Lemmy 770a0350ee chore: gitignore 2026-08-01 09:03:28 -04:00
github-actions[bot] 79db89bce6 chore: update issue templates [skip ci] 2026-08-01 12:59:57 +00:00
92f8a33a3f Mimir: introduce AI companion plugin (#164)
* game-launcher: add launcher toggles, keyboard nav, auto-refresh

* game-launcher: update README with runner toggle settings

* fix: remove duplicate translation keys after upstream merge

* fix(game-launcher): add ~/.local/share/Steam to steam roots for NixOS support

* chore(game-launcher): bump version to 1.1.1

* feat(mimir): AI companion plugin with LLM chat panel

Mimir is an AI companion for Noctalia — an LLM-powered chat interface
with model selection, conversation history, and a bar widget.

- Service-based architecture: service (brain) handles HTTP API calls,
  panel (chat) renders the UI, widget (status) shows bar indicator
- OpenAI-compatible chat completions with dynamic model discovery
- Floating side panel (center_right) with message history and
  simple markdown rendering (code blocks)
- Model selection dropdown populated from API /models endpoint
- Bar widget with brain icon to toggle chat panel
- i18n via translations/en.json
- Auto-detection of OpenCode Go API key from auth.json
- Full-height floating panel layout matching oficial notes plugin

.gitignore: add editor files, OS junk, auth secrets, compiled binary

* mimir: rename author leo->Alexander, strip scrollBottom, update README with plans

- plugin.toml: author leo -> Alexander, widget panel-toggle id -> alexander/mimir
- widget.luau: togglePanel id -> alexander/mimir:chat
- panel.luau: remove scrollBottom/dynamic key (unstable), remove setUpdateInterval
- README.md: add future plans (commands, file search, etc.)
- thumbnail.webp: removed (replaced by mimir-thumbnail.webp)

* added thumbnail

* added thumbnail.webp

* mimir: bump 0.1.0 → 0.3.0, update README with tools + copy + editable approval

* mimir: copy-to-clipboard toggle, editable command approval, unicode bold rendering

* mimir: fix review findings — conditional auth, dedupe user msg, apply max_history

* mimir: fix manifest validation — use select setting type, add README Plugin section

* mimir: multi-tool queue support, plain approve/deny, better tool-use prompt

* mimir: add full markdown rendering — headings, lists, quotes, hr, bold/italic

* mimir: bump 0.3.2 — fix Lua pattern quantifiers, multi-tool queue, markdown rendering

* mimir: fix security review findings

* mimir: clarify selectable message text

* mimir: add command history display

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
2026-08-01 08:59:48 -04:00
github-actions[bot] c977481b59 chore: update issue templates [skip ci] 2026-08-01 12:59:04 +00:00
Marc Tristan VictoriaandGitHub f228731141 Add llamanager plugin (#171)
* feat: add Llamanager plugin

* fix image paths in README

* docs: fix validation issues

* fix: handle missing trailing separator in modelfile directory

* fix: escape user input in shell commands

* fix: disable modelfile editor when path is unset or misconfigured

* fix: handle invalid Modelfile directory

* docs: update README

* fix: reload launcher model from config

* docs: update demo assets
2026-08-01 08:58:54 -04:00
github-actions[bot] f369cfc972 chore: update plugin catalog [skip ci] 2026-08-01 12:57:03 +00:00
CSY2569andGitHub 16d66a5b18 fix(phone-connect): zh-Hans locale, aliasMap, box padding, volume, config data loss, interval, dead settings, slider, UI issues (#199)
* fix(phone-connect): zh-Hans locale, switcher aliasMap, box padding

- Rename zh_hans -> zh-Hans (plugin.toml value, en.json key) and add
  the missing translations/zh-Hans.json. The zh_hans tag does not match
  BCP 47, so the framework's materialize step dropped the Chinese
  translation file and t() returned raw dot keys in the UI.
- Add missing aliasMap definition in switcher() so the multi-device
  panel no longer errors on aliasMap[id]. Fixes #176.
- Replace ui.box({padding=...}) with ui.row({padding=...}); box does
  not support the padding prop, causing ui-tree warnings on open.

Supersedes #190 (which covers only the aliasMap fix).

* fix(phone-connect): volume quoting, config data loss, interval, dead settings, slider, UI issues

1. media_set_volume: shellQuote the <int32> variant arg (was unquoted,
   shell treated < as redirect; same fix as media_seek).
2. onConfigChanged: track last-applied custom_image/device_alias values
   so unrelated config edits (e.g. language switch) no longer wipe a
   device's image/alias. Seed trackers at init so reload is safe too.
3. state_update_interval=0: return 3600000ms + guard in update() to
   skip auto-refresh, matching the '0 disables' description.
4. Remove 4 dead settings (show_ongoing_media, show_device_placeholder,
   scan_subdirectories, max_recent_images) declared but never read,
   plus orphan recent_images translation keys.
5. Media slider: freeze value during drag via per-device dragState so
   the 1s service refresh doesn't yank the slider back. Also fixes
   onDragEnd seeking to a stale seekPos.
6. Minor: runCli reports cli_failed not no_backend; browse uses runAsync
   not runInTerminal; charging color priority over low-battery; device
   name falls back to d.name; fix comment mismatches.

* chore: bump version to 0.1.1

* fix: use lowercase zh-hans translation key to pass CI validation

CI rejects uppercase in translation keys (zh-Hans). The translation key
and label_key are now lowercase zh-hans, while the file name stays
zh-Hans.json (required by the framework's materialize step) and the
select value stays zh-Hans (used to build the file path).
2026-08-01 08:56:54 -04:00
github-actions[bot] efa9d61f4c chore: update plugin catalog [skip ci] 2026-08-01 03:15:14 +00:00
Yocraft-2000andGitHub 6db8390fd5 Add Battery widget plugin (#178)
* Init

* fix: remove placeholder (weird bugs)

* fix: README

* fix: return if battery not found

* fix: add "Not Charging" status

* fix: insert in content table

* feat: add error color when under 20% and discharging

* feat: add warning color setting

* fix(README): longer plugin description and settings descriptions

* feat: add color and charging color

* fix: default charging color
2026-07-31 23:15:04 -04:00
github-actions[bot] 7480982d83 chore: update plugin catalog [skip ci] 2026-08-01 03:05:41 +00:00
6c2b371643 fix(game-launcher): use cc from PATH instead of /usr/bin/cc for NixOS support (#186)
Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
2026-07-31 23:05:26 -04:00
github-actions[bot] b2a1c7b066 chore: update plugin catalog [skip ci] 2026-08-01 02:37:06 +00:00
Lemmy 3eacddabd9 chore(i18n): update 2026-07-31 22:36:53 -04:00
github-actions[bot] 73d6de1c9f chore: update issue templates [skip ci] 2026-08-01 02:34:26 +00:00
CleboostandGitHub 86b5ce601a feat(jetbrains-provider): add JetBrains Provider launcher plugin (#148)
* feat(jetbrains-provider): add JetBrains Provider launcher plugin

Expose recent JetBrains IDE projects in the Noctalia launcher via /jb.

* fix(jetbrains-provider): address PR review feedback

Support IdeaIC and Android Studio, decode XML entities in project paths,
align launcher caching with zed, and update the catalog thumbnail.
2026-07-31 22:34:16 -04:00
3c551c7832 feat(workflow): Added the workflow for notifying plugin authors in PR's (#180)
* fix(workflow): Fixed a small bug with the issues-check-for-correct-plugin workflow

* feat(workflow): Added a workflow to notify plugin authors for PR's

* add pull-request: write perm

---------

Co-authored-by: Lemmy <studio@quadbyte.net>
2026-07-31 21:35:41 -04:00
github-actions[bot] 43b8003a71 chore: update plugin catalog [skip ci] 2026-07-31 21:18:50 +00:00
Josh SlateandGitHub 083230d7f9 [shelly](fix): support shelly v3 (#182)
* updates for shelly v3

* new major for shelly v3

* fix: default option value
2026-07-31 17:18:32 -04:00
github-actions[bot] 125086f8f5 chore: update plugin catalog [skip ci] 2026-07-31 21:12:34 +00:00
CleboostandGitHub be208b42c5 fix(anilist): paginate large libraries to avoid CPU budget kills (#184)
* fix(anilist): paginate large libraries to avoid CPU budget kills

Chunk GraphQL fetches and defer merge, sort, and cover work to update()
ticks so 1000+ anime and manga entries load without blocking callbacks.

* fix(anilist): handle OAuth callback immediately and simplify service helpers

Process browser login tokens synchronously from runStream and file poll, keep a 500ms update interval during OAuth, and avoid duplicate OAuth result emissions from Python.
2026-07-31 17:12:24 -04:00
Lemmy dffd46ab4d ci(workflow): enforce-pr-template 2026-07-31 08:51:02 -04:00
github-actions[bot] 767fb29af0 chore: update plugin catalog [skip ci] 2026-07-31 12:18:12 +00:00
f9dc0d4a03 lrc: add settings panel for separator (#172)
* added a basic settings panel

* fix lrc settings: nest translation keys and document settings in README

---------

Co-authored-by: shin01221 <mohamed@madin372.com>
2026-07-31 08:17:56 -04:00
github-actions[bot] c861c17e02 chore: update issue templates [skip ci] 2026-07-31 12:17:22 +00:00
CSY2569andGitHub c3f96b59e7 add icefish/phone-connect v0.1.0 (#155)
* add icefish/phone-connect v0.1.0

* update phone-connect README with screenshot

* fix phone-connect: add thumbnail.webp and missing en.json keys

* fix phone-connect: remove unused assets and screenshot.png

* fix phone-connect: CI compliance fixes

* fix phone-connect: command seq and MPRIS performance

* fix phone-connect: MPRIS sequential + media action delay

* fix phone-connect: seek format + live position polling

* fix phone-connect: use Set position for media seek

* fix phone-connect: shell-quote seek variant

* fix phone-connect: seek position tracking

* fix phone-connect: final compliance — remove LICENSE, update thumbnail, fix tags
2026-07-31 08:17:12 -04:00
github-actions[bot] ee84a9b11e chore: update issue templates [skip ci] 2026-07-31 02:32:30 +00:00
RAMAandGitHub 0f64148bea Add gamer-mode plugin (#168)
* feat: add gamer-mode plugin

Live CPU, RAM, swap, GPU, VRAM, load and network readings in the bar and a
panel, plus a one-click mode that suspends background resource hogs and
restores exactly what it suspended.

* chore: rebuild the thumbnail with the upstream generator

Produced by assets.noctalia.dev/plugins/thumbnail-generator.html with the
title, the Gaming tag, the panel screenshot and the Red accent, rather than
composed by hand at the same dimensions.

* fix(gamer-mode): write the session before suspending anything

Enable suspended targets first and dropped the writeSnapshot return, so
a failed write left processes frozen and units stopped with no record to
restore them from, while the service published gamer mode as off and
switched the power profile.

The snapshot now lands on disk first, and a failed write aborts the
enable with the machine untouched and an error notification.

Writing first can record a target whose suspend command then failed.
That direction is safe: thawing is unconditional and SIGCONT to a
running process is a no-op, and a stop target restarts only after a live
probe says it is still down.
2026-07-30 22:32:21 -04:00
github-actions[bot] d1a7e72632 chore: update issue templates [skip ci] 2026-07-31 01:43:15 +00:00