-
-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: update README with overview and instructions #114
base: main
Are you sure you want to change the base?
Changes from 3 commits
f10bdfa
caed589
1ff1c51
32c8fa4
9f00958
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -1,3 +1,132 @@ | ||||||
# ZMK Studio | ||||||
|
||||||
Initial work on the ZMK Studio UI. | ||||||
ZMK Studio is a powerful and user-friendly graphical interface for configuring and managing ZMK firmware for custom keyboards. It provides a seamless experience for users to customize their keyboard layouts, manage key bindings, and interact with their devices. | ||||||
|
||||||
## Overview | ||||||
|
||||||
ZMK Studio offers a range of capabilities to enhance the user experience: | ||||||
|
||||||
- **Graphical Keymap Editor**: Easily create and modify keymaps with a visual editor. | ||||||
- **Device Management**: Connect to your keyboard via USB or Bluetooth and manage its settings. | ||||||
- **Firmware Updates**: Flash new firmware to your device directly from the application. | ||||||
- **Real-time Feedback**: Receive real-time notifications and feedback from your device. | ||||||
|
||||||
For more detailed information on the features and capabilities of ZMK Studio, please visit the [ZMK Studio Documentation](https://zmk.dev/docs/features/studio#capabilities). | ||||||
|
||||||
## Getting Started | ||||||
|
||||||
To contribute to ZMK Studio, follow these steps: | ||||||
|
||||||
### Prerequisites | ||||||
|
||||||
Ensure you have the following installed on your system: | ||||||
|
||||||
- [Node.js](https://nodejs.org/) (version 22 or later) | ||||||
- [npm](https://www.npmjs.com/) (version 10 or later) | ||||||
- [Rust](https://www.rust-lang.org/tools/install) (for building Tauri applications) | ||||||
- [Tauri CLI](https://tauri.app/v1/guides/getting-started/prerequisites/) | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's link to v2 since that's what we use
Suggested change
Also debatably don't need to list Rust then since Tauri's install pre-reqs have it listed... And then also maybe don't need to mention npm since Node.js installs it by default. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done in 32c8fa4 |
||||||
|
||||||
### Setup | ||||||
|
||||||
1. **Clone the repository**: | ||||||
|
||||||
```sh | ||||||
git clone https://github.com/zmkfirmware/zmk-studio.git | ||||||
cd zmk-studio | ||||||
``` | ||||||
|
||||||
2. **Install dependencies**: | ||||||
|
||||||
```sh | ||||||
npm install | ||||||
``` | ||||||
|
||||||
3. **Run the development server**: | ||||||
|
||||||
```sh | ||||||
npm run dev | ||||||
``` | ||||||
|
||||||
This will start the Vite development server and open the application in your default web browser. | ||||||
|
||||||
### Building the Project | ||||||
|
||||||
To build the project for production, run: | ||||||
|
||||||
```sh | ||||||
npm run build | ||||||
``` | ||||||
|
||||||
This will compile the TypeScript code and bundle the application using Vite. | ||||||
|
||||||
### Running Storybook | ||||||
|
||||||
To develop and test UI components in isolation, you can use Storybook: | ||||||
|
||||||
1. **Start Storybook**: | ||||||
|
||||||
```sh | ||||||
npm run storybook | ||||||
``` | ||||||
|
||||||
This will start the Storybook server and open it in your default web browser. | ||||||
|
||||||
2. **Build Storybook**: | ||||||
|
||||||
```sh | ||||||
npm run build-storybook | ||||||
``` | ||||||
|
||||||
This will build the Storybook static site for deployment. | ||||||
|
||||||
### Linting | ||||||
|
||||||
To ensure code quality and consistency, you can run the linter: | ||||||
|
||||||
```sh | ||||||
npm run lint | ||||||
``` | ||||||
|
||||||
This will run ESLint on the codebase and report any issues. | ||||||
|
||||||
### Tauri Commands | ||||||
|
||||||
For Tauri-specific commands, you can use: | ||||||
|
||||||
1. **Run Tauri development server**: | ||||||
|
||||||
```sh | ||||||
npm run tauri -- dev | ||||||
``` | ||||||
|
||||||
This will start the Tauri development server for building and testing the desktop application. | ||||||
|
||||||
2. **Build Tauri application**: | ||||||
|
||||||
```sh | ||||||
npm run tauri -- build | ||||||
``` | ||||||
|
||||||
This will build the Tauri desktop application for production. | ||||||
|
||||||
## Contributing | ||||||
|
||||||
We welcome contributions from the community! To contribute, please follow these steps: | ||||||
|
||||||
1. Fork the repository. | ||||||
2. Create a new branch for your feature or bugfix. | ||||||
3. Make your changes and commit them with a descriptive message. | ||||||
4. Push your changes to your fork. | ||||||
5. Open a pull request to the main repository. | ||||||
|
||||||
Please ensure your code adheres to the project's coding standards and passes all tests before submitting a pull request. | ||||||
|
||||||
## License | ||||||
|
||||||
This project is licensed under the Apache-2.0 License. See the `LICENSE` file for more details. | ||||||
|
||||||
## Contact | ||||||
|
||||||
For any questions or support, please open an issue on the [GitHub repository](https://github.com/zmkfirmware/zmk-studio/issues). | ||||||
|
||||||
Happy coding! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section is kinda confusing to me. Currently it only really supports real-time keymap updating. There is no device management at the moment. These updates are done via RPC + settings system, there's no flashing being done. And I don't know what real-time notifications there are. Was this ChatGPT'd by chance 🫣
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @Nicell, yes thanks for catching that and yes you're totally right that it was done by an LLM. I was trying to be transparent about that in the PR description using the word "generating" instead of "writing" and also mentioning that, "Copilot did most of the work". I'm not a subject matter expert on ZMK Studio so was relying on the LLM to do a better job than I could with fleshing out the README and was hoping for experts like yourself and @pongstr to catch mistakes as part of the PR. I apologize for any misunderstandings or if you're against the use of LLMs.
So your suggestion, is to keep just the first bullet (Graphical Keymap Editor) and delete the other 3 (Device Management, Firmware Updates, Real-time Feedback)? I can go ahead and remove those and add any additional bullets you think would be useful.
Btw, unrelated but I'm a big fan of the Nice!Nano and Typeractive website. I'm using the Nano and View on my Kyria, and I especially like the 3D Corne builder preview on Typeractive. Have bought a few things on there in the past (the lithium batteries are great!).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove hallucinated features in 9f00958