Skip to content

Zellia-Keyboards/Zellia

Repository files navigation

Zellia Control

Zellia Control is a powerful, cross-platform desktop application designed for configuring Zellia Hall Effect keyboards. Built with Tauri, SvelteKit, TypeScript, and Rust, it offers a seamless and intuitive user experience for customizing every aspect of your keyboard.

Tauri SvelteKit TypeScript Rust
License GitHub Stars GitHub Forks

Tip

Looking for commercial support or custom firmware/software solutions for your Zellia keyboard?
Contact our team at support@zellia.cn for enhanced capabilities, Long-Term Support (LTS), and more!

πŸ“‹ Table of Contents


✨ Key Features

Zellia Control offers a rich set of features to unlock the full potential of your Hall Effect keyboard:

  • ⚑ Performance Tuning:
    • Adjustable Actuation Points: Fine-tune key actuation from 0.1mm to 4.0mm.
    • Rapid Trigger: Dynamic actuation and deactuation for ultra-responsive gameplay.
    • Continuous Rapid Trigger: Enhanced rapid trigger mode for maximum speed.
    • Real-time Pressure Monitoring: Visualize key press depth and pressure.
  • ⌨️ Advanced Key Remapping:
    • Intuitive Interface: Easily remap any key on the visual keyboard.
    • Multiple Key Categories: Basic, Function, Media, Mouse, System, and Special HE keys.
    • 4 Configurable Layers: Create distinct profiles for different applications or games.
  • πŸ’‘ RGB Lighting Control:
    • Multiple Effects: Choose from a variety of dynamic lighting patterns.
    • Color Customization: Per-key or zone-based color settings.
    • Brightness & Speed Control: Adjust lighting intensity and effect speed.
  • πŸ”§ Hardware & System Tools:
    • Hardware Calibration: Calibrate switches for optimal performance.
    • Debug Mode: Access real-time key tracking and diagnostic tools.
    • Profile Management: Import and export keyboard configurations.
    • Settings Page: Configure application preferences and device settings.
  • 🌐 Cross-Platform:
    • Native support for Windows, macOS, and Linux.
  • 🎨 Modern UI/UX:
    • Dark/Light Mode: Automatic theme switching based on system preference.
    • Customizable Theme Colors: Personalize the app's appearance.
    • Responsive Design: Adapts to various screen sizes.

πŸ› οΈ Tech Stack

Zellia Control is built with a modern and robust technology stack:

  • Tauri: Backend framework for building lightweight, secure, and cross-platform desktop applications with Rust.
  • SvelteKit: Frontend framework for building fast and efficient web applications.
  • TypeScript: Superset of JavaScript adding static typing for improved code quality and maintainability.
  • Rust: High-performance systems programming language used for the Tauri backend.
  • Tailwind CSS: Utility-first CSS framework for rapid UI development.
  • Vite: Next-generation frontend tooling for fast development and optimized builds.

πŸš€ Getting Started

Follow these steps to get Zellia Control up and running on your local machine.

Prerequisites

Ensure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/Zellia-Keyboards/Zellia-Control.git
    cd Zellia-Control
  2. Install frontend dependencies:

    yarn install
    # or
    # npm install
  3. Run in development mode:

    This command will start the SvelteKit frontend and the Tauri backend with hot-reloading.

    yarn tauri dev
    # or
    # npm run tauri dev

    The application will typically open automatically. If not, look for the development server URL in your terminal.


πŸ’» Usage

Once the application is running:

  1. Connect your Zellia Hall Effect Keyboard. The application should automatically detect it.
  2. Navigate through the sections using the sidebar:
    • Performance: Adjust actuation points, rapid trigger settings.
    • Remap: Customize key assignments across different layers.
    • Lighting: Control RGB effects and colors.
    • Calibration: Perform hardware calibration for your switches.
    • Debug: View real-time key data and logs.
    • Settings: Manage application preferences and keyboard profiles.
    • About: View application information and acknowledgments.
  3. Changes are applied in real-time to your connected keyboard where applicable.
  4. Use the Profile Management features in Settings to save and load your configurations.

βš™οΈ Development

Available Scripts

In the package.json, you'll find several scripts for development:

  • yarn dev: Starts the SvelteKit development server (frontend only).
  • yarn build: Builds the SvelteKit frontend for production.
  • yarn preview: Previews the production SvelteKit build locally.
  • yarn check: Runs Svelte type checking.
  • yarn check:watch: Runs Svelte type checking in watch mode.
  • yarn tauri dev: Starts the full application (frontend + Tauri backend) in development mode.
  • yarn tauri build: Builds the full application for production (creates installers/binaries).

Project Structure

zellia-control/
β”œβ”€β”€ .github/                # GitHub Actions and issue templates
β”œβ”€β”€ build/                  # Output directory for SvelteKit static build
β”œβ”€β”€ public/                 # Renamed to static/ in your project
β”‚   └── static/             # Static assets (favicon, logos)
β”œβ”€β”€ src/                    # SvelteKit frontend source code
β”‚   β”œβ”€β”€ app.css             # Global CSS styles
β”‚   β”œβ”€β”€ app.html            # Main HTML shell
β”‚   β”œβ”€β”€ lib/                # Shared Svelte components, stores, and utilities
β”‚   β”‚   β”œβ”€β”€ AdvancedKeyShared.ts
β”‚   β”‚   β”œβ”€β”€ DarkModeStore.svelte.ts
β”‚   β”‚   β”œβ”€β”€ KeyboardState.svelte.ts
β”‚   β”‚   └── Zellia80HE.svelte   # Interactive keyboard component
β”‚   └── routes/             # SvelteKit page routes and layouts
β”‚       β”œβ”€β”€ +layout.svelte    # Main application layout
β”‚       β”œβ”€β”€ +page.svelte      # Home/Dashboard page
β”‚       β”œβ”€β”€ about/
β”‚       β”œβ”€β”€ advancedkey/
β”‚       β”œβ”€β”€ calibration/
β”‚       β”œβ”€β”€ debug/
β”‚       β”œβ”€β”€ lighting/
β”‚       β”œβ”€β”€ performance/
β”‚       β”œβ”€β”€ remap/
β”‚       └── settings/
β”œβ”€β”€ src-tauri/              # Tauri (Rust) backend source code
β”‚   β”œβ”€β”€ build.rs
β”‚   β”œβ”€β”€ Cargo.toml          # Rust dependencies and project metadata
β”‚   β”œβ”€β”€ capabilities/       # Tauri security capabilities
β”‚   β”œβ”€β”€ icons/              # Application icons for different platforms
β”‚   β”œβ”€β”€ src/                # Rust source files
β”‚   β”‚   β”œβ”€β”€ lib.rs
β”‚   β”‚   └── main.rs         # Main Rust application entry point
β”‚   └── tauri.conf.json     # Tauri application configuration
β”œβ”€β”€ jsconfig.json           # JavaScript/TypeScript configuration
β”œβ”€β”€ package.json            # Node.js project metadata and dependencies
β”œβ”€β”€ postcss.config.js       # PostCSS configuration
β”œβ”€β”€ README.md               # This file
β”œβ”€β”€ svelte.config.js        # SvelteKit configuration
β”œβ”€β”€ tailwind.config.js      # Tailwind CSS configuration
└── vite.config.js          # Vite configuration

πŸ“¦ Building for Production

To build the application for production, which will generate native installers or executables for your platform:

yarn tauri build

npm run tauri build

Build artifacts will be located in src-tauri/target/release/bundle/. The specific subdirectory and file type will depend on your operating system (e.g., .msi for Windows, .dmg or .app for macOS, .deb or .AppImage for Linux).


🀝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure your code adheres to the existing style and that all tests pass.


πŸ“œ License

Distributed under the MIT License. See LICENSE file for more information. (Note: You'll need to create a LICENSE file in your repository, typically containing the MIT License text if that's your chosen license.)


πŸ™ Acknowledgments

  • The Tauri Team for creating an amazing framework.
  • The Svelte Team for Svelte and SvelteKit.
  • All contributors and users of this project.

Made with ❀️ by the Zellia Team and Community for Hall Effect Keyboard Enthusiasts

About

HomePage of Zellia !

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •