What is quip?

quip is going to be an open source, cross-platform alternative to Quick Accent, a PowerToys tool for Windows that allows users to swap a character with an "accent" - essentially a Unicode character swap. Currently, quip is exclusive to Linux.

  • If you speak multiple languages, lugging around multiple keyboards or memorizing Unicodes for the characters you can't type on your layout is very inconvenient.
  • Key binds are an alternative, but they fill up quick.
  • There isn't a tool like this available for Linux.
  • There isn't an open-source tool like this for any of the three main computer operating systems.
  • There isn't an alternative that is cross-platform.

quip aims to solve all those issues.

Inspiration

I've been learning Spanish for a long time. One of my friends is learning Norwegian. I know people who are studying French and German. The problem we all have to face eventually is communicating with others with a keyboard that doesn't house the symbols you need to spell words in that language.

Strangely, we've solved this issue on smartphones. Android's GBoard allows you to press and hold a key on the keyboard to show a pop-up with symbols related to the one you've picked. My question for the longest time: why haven't we done this for our computers?

How does quip work?

quip is written in Rust and uses Slint to deliver a sleek, user-friendly GUI that runs on all platforms.

It uses evdev-rs to find and connect to a keyboard attached to the computer.

device.has_event_type(&EventType::EV_KEY) // does a device have an event for keys?

Then, it listens for an EV_KEY event, and when a key repeat is triggered with the activation key, left alt, it will interrupt the event to replace the key pressed by the user with something else from the config.

The Journey

  • I've never used Rust before. I've never used Slint before.
  • evdev and evdev-rs are two completely different crates that implement similar features.
  • wrote a mutex lock
  • figured out how to check for privilege.

Admittedly, I didn't get very far in this twelve-hour competition, but I learned an awful lot about Rust and how it works. It's great, honestly, you should try it. I'll be working more on quip in the future, as I see a genuine need for it; I run Linux on my computer, and I would like options outside of Microsoft's Quick Accent.

Built With

  • cargo
  • evdev-rs
  • rust
  • rustrover
  • slint
Share this project:

Updates