Compare commits

...

3 commits

Author SHA1 Message Date
Benjamin Nussbaum
809965e81c
Revise statistics in README.md
Some checks are pending
tests / ci (push) Waiting to run
Updated download and star counts for TRMNL BYOS Laravel.
2026-01-05 19:12:41 +01:00
Benjamin Nussbaum
b855ccffcb chore: update dependencies 2026-01-05 14:44:51 +01:00
Benjamin Nussbaum
32dd4c3d08 fix: codemirror enable searchKeymap, selectAll 2026-01-05 14:43:30 +01:00
3 changed files with 20 additions and 10 deletions

View file

@ -3,7 +3,7 @@
[![tests](https://github.com/usetrmnl/byos_laravel/actions/workflows/test.yml/badge.svg)](https://github.com/usetrmnl/byos_laravel/actions/workflows/test.yml) [![tests](https://github.com/usetrmnl/byos_laravel/actions/workflows/test.yml/badge.svg)](https://github.com/usetrmnl/byos_laravel/actions/workflows/test.yml)
TRMNL BYOS Laravel is a self-hostable implementation of a TRMNL server, built with Laravel. TRMNL BYOS Laravel is a self-hostable implementation of a TRMNL server, built with Laravel.
It allows you to manage TRMNL devices, generate screens using **native plugins** (Screens API, Markup), **recipes** (100+ from the [OSS community catalog](https://bnussbau.github.io/trmnl-recipe-catalog/), ~500 from the [TRMNL catalog](https://usetrmnl.com/recipes), or your own), or the **API**, and can also act as a **proxy** for the native cloud service (Core). With over 35k downloads and 150+ stars, its the most popular community-driven BYOS. It allows you to manage TRMNL devices, generate screens using **native plugins** (Screens API, Markup), **recipes** (120+ from the [OSS community catalog](https://bnussbau.github.io/trmnl-recipe-catalog/), 600+ from the [TRMNL catalog](https://usetrmnl.com/recipes), or your own), or the **API**, and can also act as a **proxy** for the native cloud service (Core). With over 40k downloads and 160+ stars, its the most popular community-driven BYOS.
![Screenshot](README_byos-screenshot.png) ![Screenshot](README_byos-screenshot.png)
![Screenshot](README_byos-screenshot-dark.png) ![Screenshot](README_byos-screenshot-dark.png)

14
composer.lock generated
View file

@ -9325,16 +9325,16 @@
}, },
{ {
"name": "pestphp/pest", "name": "pestphp/pest",
"version": "v4.3.0", "version": "v4.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/pestphp/pest.git", "url": "https://github.com/pestphp/pest.git",
"reference": "e86bec3e68f1874c112ca782fb9db1333f3fe7ab" "reference": "bc57a84e77afd4544ff9643a6858f68d05aeab96"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/pestphp/pest/zipball/e86bec3e68f1874c112ca782fb9db1333f3fe7ab", "url": "https://api.github.com/repos/pestphp/pest/zipball/bc57a84e77afd4544ff9643a6858f68d05aeab96",
"reference": "e86bec3e68f1874c112ca782fb9db1333f3fe7ab", "reference": "bc57a84e77afd4544ff9643a6858f68d05aeab96",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9347,7 +9347,7 @@
"pestphp/pest-plugin-profanity": "^4.2.1", "pestphp/pest-plugin-profanity": "^4.2.1",
"php": "^8.3.0", "php": "^8.3.0",
"phpunit/phpunit": "^12.5.4", "phpunit/phpunit": "^12.5.4",
"symfony/process": "^7.4.0|^8.0.0" "symfony/process": "^7.4.3|^8.0.0"
}, },
"conflict": { "conflict": {
"filp/whoops": "<2.18.3", "filp/whoops": "<2.18.3",
@ -9425,7 +9425,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/pestphp/pest/issues", "issues": "https://github.com/pestphp/pest/issues",
"source": "https://github.com/pestphp/pest/tree/v4.3.0" "source": "https://github.com/pestphp/pest/tree/v4.3.1"
}, },
"funding": [ "funding": [
{ {
@ -9437,7 +9437,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-12-30T19:48:33+00:00" "time": "2026-01-04T16:29:59+00:00"
}, },
{ {
"name": "pestphp/pest-plugin", "name": "pestphp/pest-plugin",

View file

@ -1,8 +1,9 @@
import { EditorView, lineNumbers, keymap } from '@codemirror/view'; import { EditorView, lineNumbers, keymap } from '@codemirror/view';
import { ViewPlugin } from '@codemirror/view'; import { ViewPlugin } from '@codemirror/view';
import { indentWithTab } from '@codemirror/commands'; import { indentWithTab, selectAll } from '@codemirror/commands';
import { foldGutter, foldKeymap } from '@codemirror/language'; import { foldGutter, foldKeymap } from '@codemirror/language';
import { history, historyKeymap } from '@codemirror/commands'; import { history, historyKeymap } from '@codemirror/commands';
import { searchKeymap } from '@codemirror/search';
import { html } from '@codemirror/lang-html'; import { html } from '@codemirror/lang-html';
import { javascript } from '@codemirror/lang-javascript'; import { javascript } from '@codemirror/lang-javascript';
import { json } from '@codemirror/lang-json'; import { json } from '@codemirror/lang-json';
@ -154,7 +155,16 @@ export function createCodeMirror(element, options = {}) {
createResizePlugin(), createResizePlugin(),
...(Array.isArray(languageSupport) ? languageSupport : [languageSupport]), ...(Array.isArray(languageSupport) ? languageSupport : [languageSupport]),
...themeSupport, ...themeSupport,
keymap.of([indentWithTab, ...foldKeymap, ...historyKeymap]), keymap.of([
indentWithTab,
...foldKeymap,
...historyKeymap,
...searchKeymap,
{
key: 'Mod-a',
run: selectAll,
},
]),
EditorView.theme({ EditorView.theme({
'&': { '&': {
fontSize: '14px', fontSize: '14px',