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.
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!
- β¨ Key Features
- π οΈ Tech Stack
- π Getting Started
- π» Usage
- βοΈ Development
- π¦ Building for Production
- π€ Contributing
- π License
- π Acknowledgments
- π Contact
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.
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.
Follow these steps to get Zellia Control up and running on your local machine.
Ensure you have the following installed:
- Node.js (v18.x or higher recommended)
- Yarn (v1.x) or npm (v8.x or higher)
- Rust (latest stable version)
- System dependencies for Tauri (see Tauri prerequisites)
-
Clone the repository:
git clone https://github.com/Zellia-Keyboards/Zellia-Control.git cd Zellia-Control
-
Install frontend dependencies:
yarn install # or # npm install
-
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.
Once the application is running:
- Connect your Zellia Hall Effect Keyboard. The application should automatically detect it.
- 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.
- Changes are applied in real-time to your connected keyboard where applicable.
- Use the Profile Management features in Settings to save and load your configurations.
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).
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
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).
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code adheres to the existing style and that all tests pass.
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.)
- 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