Remove LED sync source and add keypress reporting
We return the modifiers as the valid bitmask so that the VirtualKeyboard can represent the correct keys as down. This is important when we have strokes like Left-Control + Right-Control + Keypad-1 (used in switching KVMs and such)
* docs: add comprehensive DEVELOPMENT.md for JetKVM
Add a detailed development guide covering setup, project structure,
and workflows for both full device and frontend-only development.
Include prerequisites, build commands, deployment scripts, environment
variables, and testing instructions to streamline onboarding and
contributions.
This improves developer experience and standardizes development
practices across the project.
* docs: clean up DEVELOPMENT.md by removing outdated sections
Remove the Custom Build Tags and Release Process sections to simplify
the documentation and avoid confusion with deprecated build and release
instructions. Focus the document on current performance profiling steps.
* docs: rewrite DEVELOPMENT.md for clearer setup and usage
Revise the JetKVM development guide to improve clarity and usability.
Simplify the introduction and reorganize prerequisites and setup steps
to help new developers get started quickly. Add explicit instructions for
cloning, tool verification, deployment, and testing. Streamline common
tasks sections with clear commands for UI and backend development,
testing, and log viewing. Update project layout overview for easier
navigation. These changes reduce onboarding friction and enhance the
developer experience.
* docs: remove duplicate "Get Started" header in DEVELOPMENT.md
Clean up the DEVELOPMENT.md file by deleting the repeated
"Get Started" header
* docs: add recommended development environment section
Add guidance recommending Linux or macOS for development and suggest
using WSL on Windows to ensure compatibility with shell scripts and
build tools. This improves the developer experience and reduces setup
issues across different operating systems.
* docs: add links to prerequisites in DEVELOPMENT.md
Update DEVELOPMENT.md to URLs for Go, Node.js, Git, and SSH
access prerequisites. This improves clarity and helps developers quickly
find installation resources.
Add missing keyboard mappings for most layouts
Change pasteModel.tsx to use the new structure and vastly clarified the way that keys are emitted.
Make each layout export just the KeyboardLayout object (which is a package of isoCode, name, and chars)
Made keyboardLayouts.ts export a function to select keyboard by `isoCode`, export the keyboards as label . value pairs (for a select list) and the list of keyboards.
Changed devices.$id.settings.keyboard.tsx use the exported keyboard option list.
* Update hid_mouse_absolute.go
Added attribute to remove unnecessary out endpoint.
* Update hid_mouse_relative.go
Added attribute to remove unnecessary out endpoint.
* Update hid_keyboard.go
Added attribute to explicitly keep currently needed out endpoint and to make listed attributes consistent across the keyboard and mouse devices.
---------
Co-authored-by: Aveline <352441+ym@users.noreply.github.com>
Running `dev_deploy.sh -i` will build the app in release mode and
install it to the device for longer term development/testing or just
running a custom variant of the app.
* Ensure the mDNS mode is set every time network state changes
Eliminates (mostly) duplicate code
* Add custom NTP and HTTP time sync servers
Since the ordering may have been previously defaulted and saved as "ntp,http", but that was being ignored and fallback-defaults were being used, in Ordering, `ntp` means use the fallback NTP servers, and `http` means use the fallback HTTP URLs. Thus `ntp_user_provided` and `http_user_provided` are the user specified static lists.
* Add support for using DHCP-provided NTP server
In reviewing the config.go settings for idProduct and bcdDevice are not formatted correctly. All examples on GitHub have 0x0104 and 0x0100 respectively. The idProduct value gets overwritten with valid values when you change the configuration (because they are correct in the options), but until you do the USB initialization will not be correct.