Your little expandable text snippet helper.

Save your often used text snippets and then expand them whenever you type their abbreviation.

For example:- "spr`" expands to "Snippet Pixie rules!"

Supports placeholders:-

Date/Time: Insert the current or calculated date/time with configurable format.Clipboard: Insert the text contents of the clipboard.Snippets: Insert snippets in your snippets!Cursor: Set where the cursor should end up after the snippet has expanded.

Snippet Pixie edit snippets screenshot

Quick Start Guide

[more coming soon]

Choosing an Abbreviation

Abbreviations should be short, easy to remember and hard to trigger accidentally.

It helps if an abbreviation includes either a key word from the fully expanded text, or an initialization or acronym that is part of it.

For example, if you regularly wrote "Snippet Pixie" 😉 you might use "sp".

However, there are a lot of words that include the letter combination "sp", so there's a reasonably high chance that Snippet Pixie would expand that abbreviation when you didn't want it to.

So instead it's common to add a "trigger character" to the end of the abbreviation. This is commonly a character that isn't found in normal sentences such as "`" or "~" that is easy to find on your keyboard. Often just appending a space is enough, or doubling up characters.

I personally use "`" (commonly known as grav or backtick) a lot as it's a single keystroke on my British layout keyboard just below my Escape key. So for me "sp`" is a natural abbreviation for "Snippet Pixie".

However, I could see using "sp " or "spp" for the abbreviation.

If you do use a trailing space as your trigger character you might find it useful to include a trailing space in the text that is expanded, e.g. "sp " expands to "Snippet Pixie " as it's more natural when typing.


Placeholders

All placeholders are delimited (wrapped) by $$, with the placeholder name starting with an @ symbol.

For example, today's date can be inserted with $$@date$$.

Some placeholders allow for extra arguments when : follows their name and that is followed by the argument. For example a format for a date, or the abbreviation for a snippet. Check the following descriptions for each placeholder for more details.

To use $$ in your snippet body, escape the second $ with a backslash like so: $\$.

@date

Quick Examples:

Today's date with system format: $$@date$$Today's date with custom format: $$@date:%Y-%m-%d %H:%M:%S$$Tomorrow's date with system format: $$@date@+1D$$Date 2 weeks from today with custom format: $$@date@+2W:%x$$Time 3 hours from now: $$@time@+3H$$
@time is an alias for @date, with one important difference, the default output if no format specified is the default time format (%X) rather than default date format (%x).

The optional format specified after : can take a format string as detailed in the GLib.DateTime.format function's docs.

The optional date calculation starts with an @ after the placeholder name, followed by a signed integer and unit. The unit types are as follows:

Y: YearsM: MonthsW: WeeksD: Daysh: Hoursm: Minutess: Seconds
You can apply more than one date calculation, for example +2h+30m adds 2 hours and 30 minutes to the current time.

You can use both positive (+) and negative calculations, for example -3D takes 3 days from the current date.

@clipboard

When $$@clipboard$$ is part of a snippet's body, when its abbreviation is expanded the current text contents of the clipboard will replace the placeholder.

@snippet

You can have up to three levels of embedded snippets with the @snippet placeholder.

The abbreviation for the snippet to be embedded is entered after :, for example $$@snippet:sigg;$$ expands the snippet with abbreviation sigg; in place of the placeholder.

@cursor

Adding $$@cursor$$ to a snippet's body will put the cursor in its place after expansion instead of at the end of the expanded text.

If $$@cursor$$ is entered more than once in a snippet's body or via snippet embedding, then the last occurrence of the cursor placeholder wins.


Command Line Options

Usage:
com.github.bytepixie.snippetpixie [OPTION…]

Options:
--show
Show Snippet Pixie's window (default action)

--start
Start with no window

--stop
Fully quit the application, including the background process

--autostart={on|off|status}
Turn auto start of Snippet Pixie on login, on, off, or show status of setting

--status
Shows status of the application, exits with status 0 if running, 1 if not

-e, --export=filename
Export snippets to file

-i, --import=filename
Import snippets from file, skips snippets where abbreviation already exists

--force
If used in conjunction with import, existing snippets with same abbreviation are updated

--version
Display version number

-h, --help
Display help