Giter VIP home page Giter VIP logo

espanso's Introduction

Espanso

Note: My personal Espanso text expander configuration files and setup.

This repository is a part of my dotfiles.


Generate Changelog

Espanso Website | EspansoHub | Documentation | Reddit Community | GitHub


Contents

What is espanso?

Espanso is an Open Source, Cross-Platform Text Expander tool written in Rust.

What is a Text Expander?

A text expander is a program that detects when you type a specific keyword and replaces it with something else.

This is useful in many ways, including but not limited to:

  • Save a lot of typing, expanding common sentences.
  • Create system-wide code snippets.
  • Execute custom scripts
  • Use emojis like a pro.

Key Features

  • Works on Windows, macOS and Linux
  • Works with almost any program
  • Works with Emojis πŸ˜„
  • Works with Images
  • Includes a powerful Search Bar πŸ”Ž
  • Date expansion support
  • Custom scripts support
  • Shell commands support
  • App-specific configurations
  • Support Forms
  • Expandable with packages
  • Built-in package manager for espanso hub
  • File based configuration
  • Support Regex triggers
  • Experimental Wayland support

Setup

Installation

Install using your preferred package manager:

  • winget
  • chocolatey
  • scoop
# winget
winget install FedericoTerzi.espanso

# chocolatey
sudo choco inst -y espanso

# scoop
scoop install espanso

espanso should launch at startup, but to check run espanso status, and if it says espanso is not running then run espanso start.

Configuration

espanso uses a file-based configuration approach. Simply run espanso path to determine the configuration folder's path.

On Widows, the default path is %APPDATA%\espanso, and the configuration files are split into two folders:

  • config: Contains the main configuration file, default.yml, and any other configuration files.
  • match: Contains the match files, which are YAML files that contain the actual text expansions along with any installed packages.

File Structure

β”œβ”€β”€β”€config
β”‚       default.yml
β”‚
└───match
    β”‚   about.yml
    β”‚   address.yml
    β”‚   base.yml
    β”‚   datetime.yml
    β”‚   dev.yml
    β”‚   emails.yml
    β”‚   excel.yml
    β”‚   git.yml
    β”‚   links.yml
    β”‚   passwords.yml
    β”‚   phones.yml
    β”‚   secrets.yml
    β”‚
    └───packages
        β”œβ”€β”€β”€docker-compose
        β”œβ”€β”€β”€get-ip
        β”œβ”€β”€β”€lorem
        β”œβ”€β”€β”€markdown-shortcuts
        β”œβ”€β”€β”€rand-tools
        └───wttr

User Configuration

My personal configuration file, default.yml, is located in the config folder.

See User Configuration for more information.

Currently the only settings I specify are:

toggle_key: ALT
search_shortcut: ALT+SHIFT+SPACE
search_trigger: ":search"
show_icon: true

Matches

The match folder contains the match files, which are YAML files that contain the actual text expansions.

I have organized my match files into various categories:

Packages

The packages folder contains the packages that I have installed.

See Packages for more information.

Currently, I have the following packages installed:

Editing

For quick editing of espanso scripts run espanso edit.

Toggle

To toggle espanso's runtime simply double-tab the Alt key. This makes it useful to temporarily disable then re-enable the service.

Application Specific

Use the filter_title configuration variable to specify expansions that should only apply in windows with a title of the provided value. For example, to only match and trigger the below expansion in Outlook you would use:

filter_title: "Outlook"
matches:
    - trigger: ":signature"
      replace: "Jimmy Briggs"

The following table lays out all possible filter_* configurations:

Filter Description Windows Support MacOS Support Linux Support
filter_title Filter based on the current Window title Full support Uses the App identifier instead of the Window title Full support
filter_exec Filter based on the current application executable path Full support Full support Partial support
filter_class Filter based on the current Window class Uses the application executable path instead Uses the App identifier instead Full support

Resources

Footnotes

  1. Passwords and secrets files are encrypted via git-crypt. ↩ ↩2

espanso's People

Contributors

github-actions[bot] avatar jimbrig avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.