Skip to content
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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from 3 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
131 changes: 130 additions & 1 deletion README.md
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.
Copy link
Member

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 🫣

Copy link
Author

@joeynguyen joeynguyen Dec 23, 2024

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!).

Copy link
Author

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


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/)
Copy link
Member

Choose a reason for hiding this comment

The 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
- [Tauri CLI](https://tauri.app/v1/guides/getting-started/prerequisites/)
- [Tauri CLI](https://v2.tauri.app/start/prerequisites/)

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.

Copy link
Author

Choose a reason for hiding this comment

The 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!