Jump to content

Cheatsheet - shortcuts for your tools

Recommended Posts



Alfred workflow that gets shortcuts for applications, websites, tools and others. Use the keyboard more.

Github repo

workflow file

Supported right now

  • Alfred
  • AutoMute Chrome extension
  • Evernote
  • Finder
  • Firefox
  • Google Chrome
  • IntelliJ Idea (default Mac OS X)
  • Mac OSX
  • Microsoft Word
  • Outlook
  • Reddit Enhancement Suite
  • Safari
  • Slack
  • Sublime Text
  • Terminal
  • Video Speed Controller chrome extension
  • Vim
  • Vintage Sublime
  • github.com
  • iTerm2
  • inbox.google.com
  • trello.com
  • youtube.com

    I focused on the stuff I use everyday to start with. Let me know what tools you would like this to support. Or better make a pull request with it.

Screen Shot 2017-10-07 at 6.24.40 PM.jpg

Edited by mutasem
updated list
Link to post
1 hour ago, edbro said:

Is there a way for individual users to modify this for the apps they choose?


I tried unzipping the workflow, editing shortcuts.py and rezipping into cheatsheet.workflow but when I went to install it said "document could not be opened".


Right-click on the workflow in Alfred Preferences and choose Open in Finder so you can edit its files.

Edited by xilopaint
Link to post

@edbro you don't need to unzip and zip back. Just open it through alfred workflow preferences (right click on workflow -> open in terminal/finder) and edit the shortcuts.py file in there. The shortcuts.py file generates a cPickle file that the workflow reads, so you need to run [python shortcuts.py] to update the cheatsheet_default.pkl file.

I don't recommend this because it will be overwritten by any update I make. The simplest way for now might be to add make your changes in a separate object and keep track of those changes outside of the workflow. I am still working on a feature to allow user-specific shortcuts from the datastore.  

Link to post

You have to run the shortcuts.py code, because it generates a cPickle file that's faster to read from.

> python shortcuts.py

Any changes will be overwritten by any update. I will try to add the feature to allow user-specific shortcuts as soon as I can. I already redid the structure to split the modules into several files instead of one big one.

Edited by mutasem
Link to post

Just released a new version that's customizable, with added support for Firefox, Safari and Microsoft Word. You can easily find the custom.json file to edit from the workflow itself, or overwrite any defaults from the workflow too. To update, you can wait for the workflow to give you the option to update (it checks once a day), or you can just enter [cheatsheet workflow:update] into Alfred. Enjoy :)

Link to post
Starting debug for 'Productivity Cheatsheet'

[2017-10-15 20:22:04][input.scriptfilter] Queuing argument ''
[2017-10-15 20:22:07][input.scriptfilter] Script with argument '(null)' finished
[2017-10-15 20:22:07][ERROR: input.scriptfilter] Code 1: 20:22:06 workflow.py:1743 DEBUG    default data serializer: json
20:22:07 workflow.py:1774 DEBUG    data `custom` stored as `json`
Traceback (most recent call last):
  File "cheatsheet.py", line 165, in <module>
    custom = wf.stored_data('custom')
  File "/Users/Users/Dropbox/Applications_Backups/Alfred_Backups/Backup_Alfred/Alfred.alfredpreferences/workflows/user.workflow.5DB72A1C-0D8A-4B9E-B375-32B8042360AF/workflow/workflow.py", line 1787, in stored_data
    data = serializer.load(file_obj)
  File "/Users/Users/Dropbox/Applications_Backups/Alfred_Backups/Backup_Alfred/Alfred.alfredpreferences/workflows/user.workflow.5DB72A1C-0D8A-4B9E-B375-32B8042360AF/workflow/workflow.py", line 608, in load
    return json.load(file_obj)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 290, in load
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 369, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 7 column 1 - line 11 column 2 (char 59 - 128)

@mutasem Here is my feedback. 

Link to post

@politicus this is clearly an issue with your custom.json file. I think the issue is that you are adding extra data after the main json object outside of the main curly brackets {}. As such, it cannot load a faulty json file. To fix this, Sublime has plugins for fixing jsons or use an online tool. Or go down to line 7 - 11 and try to fix it yourself. Or post here so we can help you fix it. I attached a photo of what my json looks like with multiple apps (the custom_app_example is generated automatically to help users).

Screen Shot 2017-10-16 at 9.40.39 PM.png

Link to post
  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...