Skip to content

matheusfaustino/textfast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TextFast

Have you ever felt bored typing long and tedious words or sentences every time you want to reply to a chat or create a post on reddit? This addon is for you, it helps you type fast in a very customizable way in the browser.

You can create shortcuts for words, sentences or emoji and then type them in the browser and write really fast. For instance: you can transform the phrase "I'm coming" into a shortcut "imc" and every time you type "imc" you will get "I'm coming". Another one? You can transform "¯_[ツ]_/¯" into "shrug" and then you will never mess up with the characters ever again.

All you have to do is to enter in the configuration page (click in the icon) and create a unique style of writing to you and then, save it and that is it.

Good Luck, Have fun (typed: glhf)

Why?

Well, I'm lazy and I don't like to type too much, so I want to be able to type fast in Firefox and all the websites that I use.

Configuration

After you install the addon, it will add a new icon to the top bar. Click on it and you will be taken to the "configuration page" (I'll improve that, I hope, I'm not very good at design). Then, click on the "+" (plus) icon and it will create a new row in the list. In the "Replace" column you put the shortcut for your boring word, sentence or emoji, and in the "With" column you put the real word/sentence/emoji, then click Save. That's it — now go to google and test it, then add more shortcuts.

Configuration Page

Import

This is for advanced users or for those who exported the list from another installation (if you exported the list, you don't have to change a thing — just import it, you can skip the rest). For those who don't want to add shortcuts one by one, you can create a JSON file following this example with your words and just import it and save it. See the JSON format section below for the full schema.

JSON format

The import and export use the same JSON shape: a single array of objects, where each object describes one shortcut.

[
  {
    "replace": "imc",
    "with": "I'm coming"
  },
  {
    "replace": "multiliness",
    "with": "First Line\nSecond Line\n"
  }
]

Fields:

Key Type Required Description
replace string yes The shortcut you type. Must not contain spaces (a space/enter is what triggers the replacement).
with string yes The text the shortcut expands into. Use \n for line breaks; any other character (including emoji and non-Latin text) is allowed.

Notes:

  • The file must be valid JSON (UTF-8, no trailing commas).
  • Entries with an empty replace or with are skipped on import.
  • Importing adds rows to the existing list — it does not replace it. Remember to click Save afterwards.
  • Duplicate replace keys: the last one wins after you save.

Browsers

For now, I'm only focusing on Firefox + webext. But it would be cool to port it to other browsers — that's a good idea.

Using TextFast without the extension (Ferdium, Electron apps)

If you are using an Electron-based app like Ferdium you cannot install browser extensions inside its service webviews. Instead, use the standalone userscript:

  1. Run the build (see Development) to produce textfast.user.js.
  2. In Ferdium, open the service you want (WhatsApp, Messenger, etc.) → Settings → Custom JS.
  3. Paste the entire contents of textfast.user.js and save.
  4. Reload the service, then press Alt+Shift+T inside it to open the shortcuts panel.

Shortcuts are stored in that service's localStorage. Use the Export JSON / Import JSON buttons in the panel to copy your list across services.

The same file also works as a Tampermonkey / Violentmonkey userscript — install it directly from the textfast.user.js file.

Development

The repository source lives in src/. The files at the root that the extension and userscript use are generated by the build — do not edit them directly.

Generated file Source
text-replacer.js src/content-script.js + src/core.js
textfast.user.js src/userscript.js + src/core.js

All shared logic (text replacement engine, keyboard handler, element detection) lives in src/core.js. Platform-specific wiring (extension storage, userscript storage, settings panel) lives in the respective entry point.

Prerequisites

npm install

Build

npm run build       # single build
npm run watch       # rebuild on every src/ change
make build          # build + package the .xpi
make run            # build + lint + run in Firefox

TODO

  • Support dynamic inputs;
  • Support non-usual way to enter a text;
  • Improve the UI of the list;
  • Use a better icon;
  • Sync your list with all your browsers;
  • Change the name (maybe).

Do you want to help?

Well, see the TODO list and talk to me, I'm open for new ideas.

About

Webextension Addon that helps you create shortcuts for words, setences or emoji and then type them in browser and write really fast.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors