10 KiB
Espanso Quick Reference Guide
A comprehensive guide to using espanso text expansion with Aaron D. Lee's custom configuration.
Last Updated: 2025-12-14
🚀 Getting Started
Installation
Espanso is automatically installed when you run the main install script:
./install.sh
Or install it separately:
# Arch Linux
paru -S espanso-bin
espanso service register
# Ubuntu/Debian
wget https://github.com/espanso/espanso/releases/latest/download/espanso-debian-x11-amd64.deb
sudo apt install ./espanso-debian-x11-amd64.deb
espanso service register
# macOS
brew tap espanso/espanso
brew install espanso
espanso service register
Initial Setup
Run the setup wizard to personalize your configuration:
cd ~/.dotfiles
./bin/setup-espanso.sh
This will:
- Personalize your snippets with your information
- Install optional espanso packages
- Show you useful triggers and tips
⌨️ Basic Controls
| Action | Shortcut |
|---|---|
| Toggle espanso on/off | ALT+SHIFT+E |
| Open search menu | ALT+SPACE |
| Restart espanso | espanso restart |
| Check status | espanso status |
Complete Snippet Reference
All triggers use the .. prefix for consistency and to avoid accidental expansion.
Date & Time Stamps
| Trigger | Output | Example |
|---|---|---|
..date |
Current date | 2025-12-14 |
..ds |
Date stamp (alias) | 2025-12-14 |
..sds |
Short date (filename safe) | 20251214 |
..ts |
UTC ISO 8601 timestamp | 2025-12-14T14:30:45.123Z |
..time |
Current time | 14:30:45 |
..utime |
UTC time | 14:30:45 |
..ztime |
Time with timezone | 14:30:45.123 EST |
..uztime |
UTC time with timezone | 14:30:45.123 UTC |
..dt |
Date/time with timezone | 2025-12-14 14:30:45 EST |
..udt |
UTC date/time | 2025-12-14 14:30:45 UTC |
..utc |
Full UTC timestamp | 2025-12-14 14:30:45.123 UTC |
..month |
Current month name | December |
..year |
Current year | 2025 |
..week |
Week number | Week 50 |
..day |
Day of week | Saturday |
Unix Timestamps
| Trigger | Output | Example |
|---|---|---|
..epoch |
Unix timestamp (seconds) | 1702573845 |
..epochms |
Unix timestamp (milliseconds) | 1702573845123 |
Git Shortcuts
| Trigger | Output |
|---|---|
..gstat |
git status |
..gco |
git checkout |
..gcm |
git commit -m "" |
..glog |
git log --oneline --graph --decorate --all |
..gpush |
git push origin |
..gpull |
git pull origin |
..gbranch |
git branch -a |
..gdiff |
git diff |
..gadd |
git add . |
..branch |
Current git branch name |
Docker Shortcuts
| Trigger | Output |
|---|---|
..dps |
docker ps |
..dpsa |
docker ps -a |
..dcup |
docker-compose up -d |
..dcdown |
docker-compose down |
..dlog |
docker logs -f |
..dexec |
docker exec -it |
..dim |
docker images |
..dprune |
docker system prune -af |
System Information
| Trigger | Output | Description |
|---|---|---|
..ip |
Your public IP | Via ifconfig.me |
..locip |
Your local IP | From hostname -i |
Code Templates
| Trigger | Output |
|---|---|
..bash |
Bash script template with shebang and error handling |
..python |
Python script template with main function |
..she! |
#!/usr/bin/env bash (shebang only) |
Bash Template:
#!/usr/bin/env bash
set -euo pipefail
Python Template:
#!/usr/bin/env python3
def main():
pass
if __name__ == "__main__":
main()
Markdown Helpers
| Trigger | Output |
|---|---|
..mdcode |
Markdown code block |
..mdbash |
Bash code block |
..mdpy |
Python code block |
..mdjs |
JavaScript code block |
..mdtable |
Markdown table template |
..mdlink |
Markdown link (interactive) |
..mdimg |
Markdown image (interactive) |
Table Template:
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
Emoticons & Symbols
| Trigger | Output |
|---|---|
..shrug |
¯\_(ツ)_/¯ |
..flip |
(╯°□°)╯︵ ┻━┻ |
..unflip |
┬─┬ ノ( ゜-゜ノ) |
..lenny |
( ͡° ͜ʖ ͡°) |
..check |
✓ |
..cross |
✗ |
..arrow |
→ |
..larrow |
← |
Quick Responses
| Trigger | Output |
|---|---|
..brb |
Be right back |
..omw |
On my way |
..tyvm |
Thank you very much |
..lgtm |
Looks good to me |
..wfm |
Works for me |
..ack |
Acknowledged |
..asap |
As soon as possible |
File Paths & Navigation
| Trigger | Output |
|---|---|
..~ |
cd ~ |
..tmp |
cd /tmp/ |
..logs |
cd /var/log/ |
Common URLs
| Trigger | Output |
|---|---|
..gh |
https://github.com |
..gl |
https://gitlab.com |
..gist |
https://gist.github.com |
..so |
https://stackoverflow.com |
..reddit |
https://reddit.com |
Programming Comments
| Trigger | Output |
|---|---|
..todo |
// TODO: |
..fixme |
// FIXME: |
..note |
// NOTE: |
..hack |
// HACK: |
..debug |
// DEBUG: |
Common Commands
| Trigger | Output |
|---|---|
..ll |
ls -lah |
..la |
ls -A |
..grep |
grep -rni "" . |
..find |
find . -name "" |
..port |
lsof -i : |
..kill |
kill -9 |
..proc |
`ps aux |
..disk |
df -h |
..mem |
free -h |
Lorem Ipsum
| Trigger | Output |
|---|---|
..lorem |
Single paragraph |
..loremlong |
Extended lorem ipsum (4 sentences) |
Auto-Corrections
These work automatically without the .. prefix:
| Typo | Correction |
|---|---|
teh |
the |
recieve |
receive |
seperator |
separator |
definately |
definitely |
occured |
occurred |
lenght |
length |
wierd |
weird |
thier |
their |
Creating Custom Snippets
Edit your snippet files:
# Base snippets (general use)
vim ~/.config/espanso/match/base.yml
# Personal snippets (your info)
vim ~/.config/espanso/match/personal.yml
Simple Text Replacement
matches:
- trigger: "..hw"
replace: "Hello, World!"
With Date Variables
matches:
- trigger: "..today"
replace: "Today is {{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%B %d, %Y"
With Shell Commands
matches:
- trigger: "..uptime"
replace: "{{output}}"
vars:
- name: output
type: shell
params:
cmd: 'uptime -p'
Multi-line Templates
matches:
- trigger: "..header"
replace: |
# ============================================================================
# {{title}}
# Author: Aaron D. Lee
# Date: {{date}}
# ============================================================================
vars:
- name: title
type: form
params:
layout: "Title: {{title}}"
- name: date
type: date
params:
format: "%Y-%m-%d"
Package Management
List Installed Packages
espanso package list
Install Additional Packages
# Emoji support
espanso install emoji --force
# Greek letters
espanso install greek-letters --force
# Math symbols
espanso install math --force
# Complete emoji collection
espanso install all-emojis --force
Browse Available Packages
Visit: https://hub.espanso.org/
Configuration
Main Configuration
Location: ~/.config/espanso/config/default.yml
Key settings:
# Toggle key
toggle_key: ALT+SHIFT+E
# Search shortcut
search_shortcut: ALT+SPACE
# Backend
backend: Auto
# Show notifications
show_notifications: true
# Auto-restart on config changes
auto_restart: true
Match Files
~/.config/espanso/match/base.yml- Main snippets (100+ triggers)~/.config/espanso/match/personal.yml- Personal information
Troubleshooting
Espanso Not Working
-
Check if running:
espanso status -
Restart the service:
espanso restart -
Check logs:
espanso log
Snippets Not Expanding
- Verify the trigger syntax in your YAML files
- Check for YAML syntax errors:
espanso match list - Ensure espanso is enabled (not toggled off with
ALT+SHIFT+E)
Test a Specific Trigger
# List all matches
espanso match list | grep "..date"
# Check if trigger is recognized
espanso match list | grep "trigger"
Pro Tips
- Consistent Naming: All triggers use
..prefix to avoid accidents - Quick Testing: Type trigger in any text field to test immediately
- Search Feature: Use
ALT+SPACEto search all available snippets - Restart After Changes:
espanso restartafter editing YAML files - Check Logs: Use
espanso logto debug issues - Backup Your Config: Your espanso config is in your dotfiles repo!
Common Workflows
Developer Workflow
..gstat → Check git status
..gadd → Stage all changes
..gcm → Commit with message
..gpush → Push to remote
Documentation Writing
..date → Add current date
..mdcode → Insert code block
..mdtable → Create table
..todo → Add TODO comment
System Administration
..dps → Check running containers
..disk → Check disk usage
..mem → Check memory usage
..port → Check port usage
Syncing Across Systems
Your espanso config is part of your dotfiles:
# On system A (after making changes)
cd ~/.dotfiles
git add espanso/
git commit -m "Update espanso snippets"
git push
# On system B (pull changes)
cd ~/.dotfiles
git pull
espanso restart
Resources
Configuration Location: ~/.config/espanso/
Total Triggers: 100+ pre-configured
Custom Prefix: .. (double period)
Last Updated: 2025-12-14
Add your own snippets to personal.yml for custom shortcuts!