- Rust 85.5%
- Python 13.5%
- Shell 1%
| backup | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| PKGBUILD | ||
| README.md | ||
| summary.md | ||
| wayslate-spinner.py | ||
| wayslate.service | ||
Wayslate
Wayslate is a native text expander and AI-assistance tool designed for Wayland. It allows you to trigger specific commands, shortcuts, or AI macros using simple text triggers (e.g. ?onlinefix).
Features
- Native Wayland support: Built from the ground up for Wayland environments.
- Fast and lightweight: Core daemon is written in Rust.
- GTK4 Settings UI: A beautiful native GTK4 application to manage your macros.
- Systemd Integration: Runs as a background user service via systemd.
Installation
You can build and install Wayslate using makepkg on Arch Linux (or derivatives):
git clone https://github.com/meh/wayslate.git
cd wayslate
makepkg -si
This will compile the daemon and the settings UI, and install them alongside the systemd service.
Usage
Start the daemon using systemd:
systemctl --user enable --now wayslate.service
Configuration
You can easily add, edit, or remove macros using the graphical settings application. Run:
wayslate menu
# or directly:
wayslate-settings
This will launch the GTK4 settings window where you can manage your triggers (e.g., ?proton) and the commands they execute.
AI Features and Custom AI Macros
Wayslate supports executing generative AI prompts natively on your desktop using the Google Gemini API.
- Launch
wayslate menuand paste your Gemini API key in the top text box. - Hit "Save & Restart" to securely save it to your system's keyring.
Custom AI Macros:
You can create your own custom AI commands! Simply start any macro's replacement value with [AI] followed by your system prompt. Wayslate will use whatever text you typed before the macro (or whatever is currently in your clipboard) as the input.
Example 1 - Grammar correction:
- Trigger:
?improve - Command:
[AI] Improve the following text (fix grammar, typos, style). Return ONLY the improved text, nothing else:
Example 2 - Custom assistant:
- Trigger:
?help - Command:
[AI] You are an expert programmer. Answer the user's question concisely: