Convert between different units offline in Alfred 3 & 4.
Alfred-Convert uses a built-in library for lightning-fast conversions.
You can also add your own custom units.
Note: Currency conversions do require occasional Internet connectivity to update exchange rates. Alfred-Convert will otherwise work just fine without an Internet connection.
Download from GitHub releases.
Note: Version 3.7 and above only supports Alfred 4+. If you're still using Alfred 3, please download v3.6.2.
As of macOS 12.3 Python 2.7 is no longer incleded in macOS by default so you will need to install it. In this fork I have added pyenv as a requirement.
Install it using Homebrew:
brew install pyenv
Add it to your ZSH profile (or go to the pyenv installation guide for more options):
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
Then install Python 2.7 using pyenv:
pyenv install pypy2.7-7.3.6
Once you have pyenv installed make sure to edit the PYTHONEXECUTABLE
variable in workflow/workflow.py
(should be on line 57) replacing YOURUSERNAME
with the your username (this should be the same as the name of your home folder, otherwise get this by running whoami
in Terminal). You can find the workflow
folder containing workflow.py
by right clicking on the workflow in the workflow tab of Alfred and then clicking "Open in Finder".
conv <quantity> <from unit> [<to unit>]
— Perform a conversion↩
— Copy result without thousands separator to pasteboard⌘C
— Copy result with thousands separator to pasteboard⌘↩
— Add/remove destination unit as default for this dimensionality⌘L
— Show result in Alfred's Large Type window
convinfo
— View help file and information about the workflow, or edit custom units and active currenciesView Help File
— Open this page in your browserView All Supported Currencies
— View/filter the list of all supported currencies in AlfredEdit Active Currencies
— Edit the list of active currencies in your default text editorEdit Custom Units
— Edit the list of custom currencies in your default text editor
NOTE: Only a limited number of fiat currencies are supported by default. Additional rates are only supported if you set a key for the openexchangerates.org API in the workflow's configuration sheet. You can sign up for a free account here. When you're signed up, copy the App ID from the email you receive or this page into the APP_KEY
field in the configuration sheet.
conv [<context>] <quantity> <from unit> [<to unit>]
— Perform a conversion↩
or⌘C
— Copy the result to the pasteboard⌘↩
— Add/remove destination unit as default for this dimensionality⌘L
— Show result in Alfred's Large Type window
If no destination unit is specified, any defaults you've saved will be used (that aren't the same as the source unit).
The syntax is simple: an optional context, the quantity, the unit you want to convert from then (optionally) the unit you want to convert to. For example:
conv 128 mph kph
conv 72in cm
conv 100psi bar
conv 20.5 m/s mph
conv 100 eur gbp
Or with a context:
conv spectroscopy 1Å eV
(orconv sp 1Å eV
)
It doesn't matter if there is a space between the quantity and the units or not. Alfred-Convert will tell you if it doesn't understand your query or know the units.
Actioning an item (selecting it and hitting ↩
) will copy it to the clipboard. Using ⌘+L
will display the result in Alfred's large text window, ⌘+C
will copy the selected result to the clipboard.
The workflow is configured via the configuration sheet (the [𝒙]
icon) in Alfred Preferences and via a couple of text files in its data directory.
Basic configuration is performed in the configuration sheet:
Option | Meaning |
---|---|
APP_KEY |
API key for openexchangerates.org. |
COPY_UNIT |
Include unit when copying conversion result. Any value but 0 or empty turns this option on. |
CURRENCY_DECIMAL_PLACES |
Overrides the default DECIMAL_PLACES setting for currency conversions. |
DECIMAL_PLACES |
Number of decimal places to show in results. |
DECIMAL_SEPARATOR |
Character to separate whole numbers and decimal fractions. Used for parsing input and generating output. |
DYNAMIC_DECIMALS |
Dynamically increase the number of decimal places (up to 10) so that the result is non-zero. Any value but 0 or empty turns this option on. |
THOUSANDS_SEPARATOR |
Character to delimit thousands Used for parsing input and generating output. |
UPDATE_INTERVAL |
How often (in minutes) to update currency exchange rates. |
By default, all supported fiat currencies (provided you've set APP_KEY
in the configuration sheet) and a handful of the most popular cryptocurrencies are active.
convinfo
View All Supported Currencies
Edit Active Currencies
Use Edit Active Currencies
to open the list of active currencies in your default editor. Add the symbol for the currency you'd like to activate on a new line in this file.
You can use View All Supported Currencies
to search for the currency you'd like to activate, then use ⌘C
on the result to copy the symbol to the pasteboard.
See Adding custom units.
Currently, Alfred-Convert only supports the units understood by the underlying Pint library plus currencies and a handful of additional units.
You can add your own custom units to the workflow. If you think they'd be useful to everyone, please create a corresponding GitHub issue to request addition as a default unit or submit a pull request.
To convert, use the appropriate abbreviation for the relevant currencies, e.g. conv 100 eur gbp
.
You can also view (and search) the list from within Alfred by using the keyword convinfo
and choosing View All Supported Currencies
.
You can add your own custom units using the format defined by Pint. Add your definitions to the unit_definitions.txt
file in the workflow's data directory.
To edit this file, enter convinfo
in Alfred and select Edit Custom Units
. The unit_definitions.txt
file will open in your default text editor.
Please see the Pint documentation for the required format. See Pint's default unit definitions for examples.
See CHANGELOG for more information.
Release | Date |
---|---|
3.7.0 | 2020-02-20 |
3.6.2 | 2019-09-06 |
3.6.1 | 2019-05-30 |
3.6.0 | 2019-05-06 |
3.5.3 | 2019-01-26 |
3.5.2 | 2019-01-26 |
3.5.1 | 2018-01-13 |
3.5 | 2018-01-12 |
3.4 | 2017-12-26 |
3.3.1 | 2017-11-21 |
3.3 | 2017-11-20 |
3.2.2 | 2017-11-07 |
3.2.1 | 2017-11-04 |
3.2 | 2017-11-02 |
3.1 | 2017-11-02 |
3.0 | 2017-07-16 |
2.6 | 2017-06-15 |
2.5 | 2015-12-11 |
2.4 | 2015-11-28 |
2.3 | 2015-11-26 |
2.2 | 2015-07-16 |
2.1 | Never released |
2.0 | 2014-12-26 |
1.2 | 2014-08-19 |
1.1 | 2014-08-09 |
- The Python Pint library does all the heavy lifting. See the Pint GitHub repo for Pint licensing or
LICENSE.txt
andAUTHORS.txt
in thepint
subdirectory. - The workflow icons are from Font Awesome
- Exchange rates are downloaded from openexchangerates.org and CryptoCompare (for cryptocurrencies).
- The Alfred-Workflow library is used heavily.
All other code/media are released under the MIT Licence.