2026-01-10 09:10:34 +05:30
|
|
|
# Lollipop
|
|
|
|
|
|
|
|
|
|
Opinionated key remapper that brings sticky keys functionality like Android's
|
|
|
|
|
AOSP keyboard to Linux.
|
|
|
|
|
|
2026-01-10 17:32:21 +05:30
|
|
|
|
|
|
|
|
## Behavior
|
2026-01-10 09:10:34 +05:30
|
|
|
|
2026-01-10 11:42:18 +05:30
|
|
|
For a modifier key `M`, the following table illustrates latching and locking.
|
|
|
|
|
On first run all keys are unlatched.
|
2026-01-10 09:10:34 +05:30
|
|
|
|
2026-01-10 11:42:18 +05:30
|
|
|
Initial State | Next `M` struck at | Sticky state
|
|
|
|
|
----|---|---
|
|
|
|
|
Unlatched | Whenever | Latched
|
|
|
|
|
Latched | < 500ms | Locked
|
|
|
|
|
Latched | >= 500ms | Unlatched
|
|
|
|
|
Locked | Whenever | Unlatched
|
2026-01-10 12:38:48 +05:30
|
|
|
|
2026-01-10 17:32:21 +05:30
|
|
|
## Features
|
|
|
|
|
- Ridiculously fast.
|
|
|
|
|
- Release binary size is smaller than an average wallpaper.
|
|
|
|
|
- Simple `ini` config file with example provided in the repo.
|
|
|
|
|
|
2026-01-10 12:38:48 +05:30
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
|
|
### Build
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
cargo build --release
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Optionally place the binary in /usr/local/bin/
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
mkdir -p /usr/local/bin
|
|
|
|
|
cp ./target/release/lollipop /usr/local/bin/lollipop
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Run
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
sudo lollipop || sudo ./target/release/lollipop
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Systemd service
|
|
|
|
|
|
|
|
|
|
Coming soon
|