# pwr-solaar/solaar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pwr-solaar-solaar).**

8,281 stars · 507 forks · Python · gpl-2.0

## Links

- GitHub: https://github.com/pwr-Solaar/Solaar
- Homepage: https://pwr-solaar.github.io/Solaar
- awesome-repositories: https://awesome-repositories.com/repository/pwr-solaar-solaar.md

## Description

Solaar is a device management tool and configuration suite for Logitech wireless peripherals on Linux. It serves as an input peripheral monitor that tracks battery levels and connection link quality via a system tray application, while providing a receiver manager for pairing and unpairing wireless devices with proprietary USB receivers.

The project features an input device automation engine that maps hardware events and mouse gestures to simulated keyboard inputs or system commands. This allows for the creation of custom rules that trigger actions based on device notifications or specific window focus.

The toolkit covers a wide range of hardware customizations, including DPI and polling rate adjustments, LED lighting control, and scroll behavior modification. It also supports advanced keyboard tuning for magnetic switches, haptic feedback triggering, and the management of onboard device profiles.

A command-line interface is available for executing pairing, configuration, and management tasks in headless or automated environments.

## Tags

### Hardware & IoT

- [Peripheral Device Managers](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/internet-of-things/device-management/peripheral-device-managers.md) — Implements a comprehensive system for discovering and interacting with wireless peripherals via USB, Bluetooth, or proprietary receivers. ([source](https://pwr-solaar.github.io/Solaar/devices))
- [HID Device Communication](https://awesome-repositories.com/f/hardware-iot/hid-device-communication.md) — Interacts with peripherals by reading and writing raw reports directly to HID character devices.
- [Input Behavior Configurators](https://awesome-repositories.com/f/hardware-iot/input-behavior-configurators.md) — Offers sliders and toggles to adjust hardware sensitivity, scrolling direction, and backlighting. ([source](https://cdn.jsdelivr.net/gh/pwr-solaar/solaar@master/README.md))
- [Peripheral Lighting Controllers](https://awesome-repositories.com/f/hardware-iot/peripheral-lighting-controllers.md) — Provides control over individual and group LED lighting settings on supported hardware. ([source](https://pwr-solaar.github.io/Solaar/issues))
- [Pointer Precision Settings](https://awesome-repositories.com/f/hardware-iot/pointer-precision-settings.md) — Allows precise adjustment of mouse DPI, lift-off distance, and sensitivity axes. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [Polling Rate Configurations](https://awesome-repositories.com/f/hardware-iot/polling-rate-configurations.md) — Allows users to set the report rate for movement data using sub-millisecond intervals for higher precision. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [USB Receiver Management](https://awesome-repositories.com/f/hardware-iot/usb-receiver-management.md) — Provides a manager for pairing peripherals with proprietary USB receivers and handling onboard profiles.
- [Wireless Peripheral Pairing](https://awesome-repositories.com/f/hardware-iot/wireless-peripheral-pairing.md) — Provides utilities to pair and unpair wireless peripherals with compatible USB receivers. ([source](https://pwr-solaar.github.io/Solaar))
- [Hardware Configuration Automations](https://awesome-repositories.com/f/hardware-iot/hardware-configuration-automations.md) — A feature in the product that changes or toggles hardware configuration settings as part of an automated rule. ([source](https://pwr-solaar.github.io/Solaar/rules))
- [HID Event Automation](https://awesome-repositories.com/f/hardware-iot/hid-event-automation.md) — Processes device events via a rule-based system to trigger specific actions or hardware changes. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [Input Remapping](https://awesome-repositories.com/f/hardware-iot/input-behavior-configurators/input-configurators/input-remapping.md) — Allows reassigning physical hardware buttons to different system functions or virtual keys. ([source](https://pwr-solaar.github.io/Solaar/usage))
- [Actuation Tuning](https://awesome-repositories.com/f/hardware-iot/physical-switch-interfacing/actuation-tuning.md) — Provides advanced tuning for magnetic switch actuation points and rapid-trigger sensitivity. ([source](https://pwr-solaar.github.io/Solaar/capabilities))

### Development Tools & Productivity

- [Input Customization](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization.md) — Provides tools to adjust hardware settings including DPI, polling rates, and LED lighting.
- [Automation Rules](https://awesome-repositories.com/f/development-tools-productivity/automation-rules.md) — Provides a mechanism to execute specific automated rules in response to messages from connected hardware. ([source](https://cdn.jsdelivr.net/gh/pwr-solaar/solaar@master/README.md))
- [Event-Driven Automation Engines](https://awesome-repositories.com/f/development-tools-productivity/event-driven-automation-engines.md) — Ships an event-driven engine that triggers system actions based on hardware notifications.

### Operating Systems & Systems Programming

- [Hardware Profile Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-profile-managers.md) — Manages and toggles onboard hardware profiles to persist settings like DPI and polling rates. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [Virtual Input Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtual-input-emulators.md) — Sends virtual keyboard and mouse events to the operating system to simulate physical interactions.

### Software Engineering & Architecture

- [Daemon-Client Structures](https://awesome-repositories.com/f/software-engineering-architecture/client-server-architecture/daemon-client-structures.md) — Implements a daemon-client architecture to separate low-level hardware monitoring from the user interface.
- [Hardware Configuration Persistence](https://awesome-repositories.com/f/software-engineering-architecture/state-persistence/hardware-configuration-persistence.md) — Tracks and restores device-specific configuration settings and profiles when peripherals reconnect.

### System Administration & Monitoring

- [Device Management Tools](https://awesome-repositories.com/f/system-administration-monitoring/device-management-tools.md) — Provides a dedicated utility for configuring hardware settings and monitoring battery levels for Logitech wireless peripherals.
- [Peripheral Battery Monitors](https://awesome-repositories.com/f/system-administration-monitoring/energy-management/home-battery-integrations/peripheral-battery-monitors.md) — Features a system tray application that tracks battery status and connection quality for wireless peripherals.
- [Status Monitors](https://awesome-repositories.com/f/system-administration-monitoring/status-monitors.md) — Provides a real-time display of battery levels and connection link status within the system tray. ([source](https://pwr-solaar.github.io/Solaar))
- [Device-Specific Input Rules](https://awesome-repositories.com/f/system-administration-monitoring/virtual-device-drivers/input-device-emulators/device-specific-input-rules.md) — Implements a rule-based system that triggers system commands and shortcuts based on hardware device events. ([source](https://pwr-solaar.github.io/Solaar/rules))
- [Input Automation Engines](https://awesome-repositories.com/f/system-administration-monitoring/virtual-device-drivers/input-device-emulators/input-automation-engines.md) — Ships a rule-based engine that maps hardware events and mouse gestures to simulated keyboard inputs.
- [CLI System Management](https://awesome-repositories.com/f/system-administration-monitoring/cli-system-management.md) — Provides a command-line interface for pairing, configuration, and device management in headless environments. ([source](https://pwr-solaar.github.io/Solaar/usage))

### User Interface & Experience

- [Scroll Behavior Control](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-behavior-control.md) — Enables modification of scroll wheel resolution and direction to customize navigation. ([source](https://pwr-solaar.github.io/Solaar/issues))
- [Haptic Feedback Controllers](https://awesome-repositories.com/f/user-interface-experience/haptic-feedback-controllers.md) — Triggers haptic waveforms and tactile responses on compatible devices via CLI or rules. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [Key Sequence Simulators](https://awesome-repositories.com/f/user-interface-experience/modifier-key-simulators/key-sequence-simulators.md) — Sends synthetic key symbols and sequences to the OS to emulate physical keyboard presses. ([source](https://pwr-solaar.github.io/Solaar/rules))
- [Mouse Gesture Definition](https://awesome-repositories.com/f/user-interface-experience/mouse-gesture-definition.md) — Provides a tool to assign buttons to initiate movement-based gestures that trigger custom rules. ([source](https://pwr-solaar.github.io/Solaar/capabilities))
- [Mouse Gesture Mapping](https://awesome-repositories.com/f/user-interface-experience/mouse-gesture-mapping.md) — Allows mapping specific button combinations and mouse movements to execute automated tasks.

### Data & Databases

- [Peripheral State Restoration](https://awesome-repositories.com/f/data-databases/sql-query-interfaces/system-state-querying/device-state-interfaces/peripheral-state-restoration.md) — Persists hardware configuration options and restores them automatically when devices reconnect. ([source](https://pwr-solaar.github.io/Solaar/capabilities))

### Testing & Quality Assurance

- [Input Event Emulations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/mouse-action-simulations/input-event-emulations.md) — Performs virtual mouse clicks, depressions, releases, and scrolling to automate interactions. ([source](https://pwr-solaar.github.io/Solaar/rules))
