├── .github └── FUNDING.yml ├── .gitignore ├── README.md ├── cache └── .gitignore ├── composer.json ├── composer.lock ├── content ├── 1password.json ├── adobe-lightroom.json ├── adobe-photoshop.json ├── adobe-xd.json ├── affinity-designer.json ├── affinity-photo.json ├── airtable.json ├── android-studio.json ├── apex-legends.json ├── apple-music.json ├── arduino.json ├── asana.json ├── audacity.json ├── bear-notes.json ├── bitbucket.json ├── blender.json ├── brave.json ├── chrome-devtools.json ├── code-editor-ios.json ├── discord.json ├── dropbox.json ├── evernote.json ├── excel.json ├── feedly.json ├── figma.json ├── filezilla.json ├── finder.json ├── firefox.json ├── fortnite.json ├── framer-x.json ├── gimp.json ├── github.json ├── gitlab.json ├── gmail.json ├── google-chrome.json ├── google-drive.json ├── guitar-pro.json ├── index.json ├── iterm.json ├── jira.json ├── kanbanmail.json ├── microsoft-teams.json ├── missive.json ├── monday.json ├── netflix.json ├── notepad-plus-plus.json ├── notion.json ├── obsidian.json ├── origami.json ├── outlook.json ├── phpstorm.json ├── pocket.json ├── postman.json ├── principle.json ├── proto-io.json ├── putty.json ├── quip.json ├── reddit.json ├── roam.json ├── sequelpro.json ├── shopify.json ├── sketch.json ├── sketchup.json ├── skype.json ├── slack.json ├── soundcloud.json ├── spotify.json ├── sublime-text.json ├── superhuman.json ├── tableplus.json ├── telegram.json ├── ticktick.json ├── todoist.json ├── transmit.json ├── trello.json ├── twitter.json ├── unity-3d.json ├── vivaldi.json ├── vlc-player.json ├── vs-code.json ├── webflow.json ├── wordpress.json ├── xcode.json ├── youtube.json ├── zoom-mac.json └── zoom-windows.json ├── dist ├── 1password │ └── index.html ├── adobe-lightroom │ └── index.html ├── adobe-photoshop │ └── index.html ├── adobe-xd │ └── index.html ├── affinity-designer │ └── index.html ├── affinity-photo │ └── index.html ├── airtable │ └── index.html ├── android-studio │ └── index.html ├── apex-legends │ └── index.html ├── apple-music │ └── index.html ├── arduino │ └── index.html ├── asana │ └── index.html ├── assets │ ├── css │ │ └── app.css │ ├── img │ │ ├── apple-touch-icon.png │ │ ├── apple.svg │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── github.svg │ │ ├── logo-discord.png │ │ ├── logo-evernote.png │ │ ├── logo-figma.png │ │ ├── logo-notion.png │ │ ├── logo-phpstorm.png │ │ ├── logo-slack.png │ │ ├── logo-spotify.png │ │ ├── logo-telegram.png │ │ ├── logo-vs-code.png │ │ ├── plus.svg │ │ ├── search.svg │ │ ├── twitter.svg │ │ ├── undraw-taking-notes-square.png │ │ ├── undraw-taking-notes.png │ │ ├── undraw_programming.svg │ │ ├── undraw_programming_2svr.svg │ │ ├── undraw_taking_notes.svg │ │ ├── undraw_taking_notes_tjaf.svg │ │ ├── undraw_typewriter.svg │ │ ├── usethekeyboard-logo.svg │ │ └── windows.svg │ └── js │ │ ├── app.js │ │ └── app.js.LICENSE.txt ├── audacity │ └── index.html ├── bear-notes │ └── index.html ├── bitbucket │ └── index.html ├── blender │ └── index.html ├── brave │ └── index.html ├── chrome-devtools │ └── index.html ├── code-editor-ios │ └── index.html ├── discord │ └── index.html ├── dropbox │ └── index.html ├── evernote │ └── index.html ├── excel │ └── index.html ├── feedly │ └── index.html ├── figma │ └── index.html ├── filezilla │ └── index.html ├── finder │ └── index.html ├── firefox │ └── index.html ├── fortnite │ └── index.html ├── framer-x │ └── index.html ├── gimp │ └── index.html ├── github │ └── index.html ├── gitlab │ └── index.html ├── gmail │ └── index.html ├── google-chrome │ └── index.html ├── google-drive │ └── index.html ├── guitar-pro │ └── index.html ├── index.html ├── iterm │ └── index.html ├── jira │ └── index.html ├── kanbanmail │ └── index.html ├── microsoft-teams │ └── index.html ├── missive │ └── index.html ├── monday │ └── index.html ├── netflix │ └── index.html ├── notepad-plus-plus │ └── index.html ├── notion │ └── index.html ├── obsidian │ └── index.html ├── origami │ └── index.html ├── outlook │ └── index.html ├── phpstorm │ └── index.html ├── pocket │ └── index.html ├── postman │ └── index.html ├── principle │ └── index.html ├── proto-io │ └── index.html ├── putty │ └── index.html ├── quip │ └── index.html ├── reddit │ └── index.html ├── roam │ └── index.html ├── sequel-pro │ └── index.html ├── shopify │ └── index.html ├── sketch │ └── index.html ├── sketchup │ └── index.html ├── skype │ └── index.html ├── slack │ └── index.html ├── soundcloud │ └── index.html ├── spotify │ └── index.html ├── sublime-text │ └── index.html ├── superhuman │ └── index.html ├── table-plus │ └── index.html ├── telegram │ └── index.html ├── ticktick │ └── index.html ├── todoist │ └── index.html ├── transmit │ └── index.html ├── trello │ └── index.html ├── twitter │ └── index.html ├── unity-3d │ └── index.html ├── vivaldi │ └── index.html ├── vlc │ └── index.html ├── vs-code │ └── index.html ├── webflow │ └── index.html ├── wordpress │ └── index.html ├── xcode │ └── index.html ├── youtube │ └── index.html ├── zoom-mac │ └── index.html └── zoom-windows │ └── index.html ├── mix-manifest.json ├── package-lock.json ├── package.json ├── resources ├── assets │ ├── img │ │ ├── apple-touch-icon.png │ │ ├── apple.svg │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── github.svg │ │ ├── logo-evernote.png │ │ ├── logo-notion.png │ │ ├── logo-phpstorm.png │ │ ├── logo-slack.png │ │ ├── logo-spotify.png │ │ ├── logo-vs-code.png │ │ ├── plus.svg │ │ ├── search.svg │ │ ├── twitter.svg │ │ ├── undraw-taking-notes-square.png │ │ ├── undraw_programming.svg │ │ ├── undraw_programming_2svr.svg │ │ ├── undraw_taking_notes.svg │ │ ├── undraw_taking_notes_tjaf.svg │ │ ├── undraw_typewriter.svg │ │ ├── usethekeyboard-logo.svg │ │ └── windows.svg │ ├── js │ │ └── app.js │ └── sass │ │ ├── app.scss │ │ ├── base │ │ ├── _mixins.scss │ │ ├── _utility.scss │ │ └── _var.scss │ │ ├── layout │ │ ├── _content.scss │ │ ├── _header.scss │ │ └── _main.scss │ │ └── modules │ │ ├── _buttons.scss │ │ ├── _forms.scss │ │ └── _titles.scss └── views │ ├── landing.blade.php │ ├── layout │ ├── default.blade.php │ └── shortcut.blade.php │ └── partials │ ├── footer.blade.php │ └── head.blade.php ├── taro ├── taro.build.js └── webpack.mix.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: aschmelyun 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /vendor 3 | npm-debug.log 4 | yarn-error.log 5 | .DS_Store 6 | .idea 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Use The Keyboard 2 | 3 | The source behind [usethekeyboard.com](https://usethekeyboard.com) 4 | 5 | ## Prerequisites 6 | If you'd like to clone this repo and use the underlying static site generator, you'll need to have the following installed on your environment: 7 | 8 | - PHP 5.6.4 or higher 9 | - Composer 10 | - Node/npm 11 | 12 | After cloning the repo, you'll want to get all the vendor packages installed. Run the following command from the project root: 13 | 14 | ```bash 15 | composer install && npm install 16 | ``` 17 | 18 | ## Adding/modifying a page 19 | All content for the site is stored in the `content` directory as JSON files. The actual names of the files don't correlate to anything, but for organization purposes are named the same as the page slug. 20 | 21 | During the site build process, each key in the content file is converted to a PHP variable and passed through to a Blade template engine for processing. 22 | 23 | For **Use The Keyboard**, these are the following required attributes and their purpose on rendered pages: 24 | 25 | - **view** - The Blade view template that these variables should be passed to. All pages use `layout.shortcut` except the landing page, which uses `layout.default`. 26 | 27 | - **slug** - The string that appears in the URL after https://usethekeyboard.com/ 28 | 29 | - **title** - The string that appears in the title before → UseTheKeyboard 30 | 31 | - **meta_title** - The title that appears as the h1 in the sidebar of shortcut pages 32 | 33 | - **meta_description** - Both the subtitle in the sidebar of shortcut pages, and the content value for the meta description of the page 34 | 35 | - **reference_link** - Where the "Original Reference" button links to on shortcut pages 36 | 37 | - **sections** - An array of objects, each one composed of a `name` and an array of `shortcuts`. These are used to display all main information on shortcut pages. 38 | 39 | The following are optional attributes: 40 | 41 | - **mac_only** - If an application is for MacOS-only, set this attribute to true. When the page loads up, Mac will be auto-selected regardless of OS and the visitor will not be able to select "Windows". 42 | 43 | ## Building the site 44 | 45 | Once you've completed any changes, additions, or modifications to the site content or assets, you'll need to run the build process. From the project root, run the following command: 46 | 47 | ```bash 48 | npm run production 49 | ``` 50 | 51 | This will compile the assets for production use (minify, version, etc) and then run the `php taro build` command to compile the HTML once that's been successfully finished. 52 | 53 | If you're in the middle of development and want a faster alternative, `npm run dev` skips minification and returns the compiled assets at a quicker pace. 54 | 55 | Everything that's built is then added to the `dist` folder at the project root. 56 | 57 | ## Questions? 58 | 59 | If you run into any issues regarding shortcuts on the site or the static build process, feel free to open and issue or submit a PR. 60 | 61 | I'm also on [Twitter](https://twitter.com/aschmelyun) if you'd like to follow me or get in more direct contact. -------------------------------------------------------------------------------- /cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aschmelyun/taro", 3 | "description": "A blazing-fast static site generator that uses JSON content files and the Laravel blade templating engine", 4 | "type": "project", 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Andrew Schmelyun", 9 | "email": "schmelyun@gmail.com", 10 | "homepage": "https://aschmelyun.com", 11 | "role": "Developer" 12 | } 13 | ], 14 | "require": { 15 | "php": ">=5.6.4", 16 | "philo/laravel-blade": "^3.1", 17 | "symfony/finder": "^4.2" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /content/1password.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "1password", 4 | "title": "1Password", 5 | "meta_title": "Keyboard shortcuts for 1Password", 6 | "meta_description": "A visual cheat-sheet for the 28 keyboard shortcuts found in 1Password", 7 | "reference_link": "https://support.1password.com/keyboard-shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "Global Shortcuts", 11 | "shortcuts": [ 12 | { 13 | "description": "Fill login on current web page", 14 | "keys": ["Ctrl", "\\"] 15 | }, 16 | { 17 | "description": "Show 1Password mini", 18 | "keys": ["Ctrl", "Alt", "\\"] 19 | }, 20 | { 21 | "description": "Open 1Password", 22 | "keys": ["Ctrl", "Shift", "\\"] 23 | }, 24 | { 25 | "description": "Lock 1Password", 26 | "keys": ["Win/Opt", "Shift", "L"] 27 | } 28 | ] 29 | }, 30 | { 31 | "name": "1Password App", 32 | "shortcuts": [ 33 | { 34 | "description": "Create a new item", 35 | "keys": ["Ctrl", "N"] 36 | }, 37 | { 38 | "description": "Create a new item in the selected category", 39 | "keys": ["Ctrl", "Shift", "N"] 40 | }, 41 | { 42 | "description": "Edit the selected item", 43 | "keys": ["Ctrl", "E"] 44 | }, 45 | { 46 | "description": "Cancel an edit or clear the search field", 47 | "keys": ["Esc"] 48 | }, 49 | { 50 | "description": "Save changes to an item", 51 | "keys": ["Ctrl", "S"] 52 | }, 53 | { 54 | "description": "Move the selected item(s) to the trash", 55 | "keys": ["Ctrl", "Del"] 56 | }, 57 | { 58 | "description": "Move, delete, or change the type of the selected field", 59 | "keys": ["Shift", "Enter"] 60 | }, 61 | { 62 | "description": "Show vaults", 63 | "keys": ["Ctrl", "D"] 64 | }, 65 | { 66 | "description": "Find items", 67 | "keys": ["Ctrl", "F"] 68 | }, 69 | { 70 | "description": "Search all items", 71 | "keys": ["Ctrl", "Shift", "F"] 72 | }, 73 | { 74 | "description": "Open selected login item (when unlocked), or unlock using secure desktop (when locked)", 75 | "keys": ["Ctrl", "Enter"] 76 | }, 77 | { 78 | "description": "Reveal the selected password", 79 | "keys": ["Ctrl", "R"] 80 | }, 81 | { 82 | "description": "Reveal all passwords in the item details", 83 | "keys": ["Ctrl", "Alt"] 84 | }, 85 | { 86 | "description": "View the selected password in large type", 87 | "keys": ["Ctrl", "L"] 88 | }, 89 | { 90 | "description": "Copy the selected item to the clipboard", 91 | "keys": ["Ctrl", "C"] 92 | }, 93 | { 94 | "description": "Copy the username, password, or one-time password of the selected item", 95 | "keys": ["Ctrl", "Shift", "C"] 96 | }, 97 | { 98 | "description": "Select the previous item detail", 99 | "keys": ["Ctrl", "Up"] 100 | }, 101 | { 102 | "description": "Select the next item detail", 103 | "keys": ["Ctrl", "Down"] 104 | }, 105 | { 106 | "description": "Move the item detail up", 107 | "keys": ["Alt", "Up"] 108 | }, 109 | { 110 | "description": "Move the item detail down", 111 | "keys": ["Alt", "Down"] 112 | }, 113 | { 114 | "description": "Decrease the font size", 115 | "keys": ["Ctrl", "-"] 116 | }, 117 | { 118 | "description": "Increase the font size", 119 | "keys": ["Ctrl", "+"] 120 | }, 121 | { 122 | "description": "Reset the font size", 123 | "keys": ["Ctrl", "0"] 124 | }, 125 | { 126 | "description": "Sign in to a 1Password account", 127 | "keys": ["Ctrl", "O"] 128 | } 129 | ] 130 | } 131 | ] 132 | } -------------------------------------------------------------------------------- /content/apex-legends.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "apex-legends", 4 | "title": "Apex Legends", 5 | "meta_title": "Keyboard shortcuts for Apex Legends", 6 | "meta_description": "A visual cheat-sheet for the 27 default keyboard shortcuts found in Apex Legends", 7 | "reference_link": "https://www.metabomb.net/off-meta/gameplay-guides/apex-legends-controls-pc-playstation-4xbox-one", 8 | "sections": [ 9 | { 10 | "name": "Movement", 11 | "shortcuts": [ 12 | { 13 | "description": "Move forward", 14 | "keys": ["W"] 15 | }, 16 | { 17 | "description": "Move back", 18 | "keys": ["S"] 19 | }, 20 | { 21 | "description": "Move left", 22 | "keys": ["A"] 23 | }, 24 | { 25 | "description": "Move right", 26 | "keys": ["D"] 27 | }, 28 | { 29 | "description": "Sprint", 30 | "keys": ["Left Shift"] 31 | }, 32 | { 33 | "description": "Jump", 34 | "keys": ["Space"] 35 | }, 36 | { 37 | "description": "Toggle crouch", 38 | "keys": ["C"] 39 | }, 40 | { 41 | "description": "Hold to crouch", 42 | "keys": ["Left Ctrl"] 43 | } 44 | ] 45 | }, 46 | { 47 | "name": "Weapons and Abilities", 48 | "shortcuts": [ 49 | { 50 | "description": "Tactical ability", 51 | "keys": ["Q"] 52 | }, 53 | { 54 | "description": "Ultimate ability", 55 | "keys": ["Z"] 56 | }, 57 | { 58 | "description": "Interact or pickup", 59 | "keys": ["E"] 60 | }, 61 | { 62 | "description": "Alternate interact", 63 | "keys": ["X"] 64 | }, 65 | { 66 | "description": "Toggle inventory", 67 | "keys": ["Tab"] 68 | }, 69 | { 70 | "description": "Toggle map", 71 | "keys": ["M"] 72 | }, 73 | { 74 | "description": "Toggle fire mode", 75 | "keys": ["B"] 76 | }, 77 | { 78 | "description": "Melee", 79 | "keys": ["V"] 80 | }, 81 | { 82 | "description": "Reload", 83 | "keys": ["R"] 84 | }, 85 | { 86 | "description": "Equip first weapon", 87 | "keys": ["1"] 88 | }, 89 | { 90 | "description": "Equip second weapon", 91 | "keys": ["2"] 92 | }, 93 | { 94 | "description": "Holster weapons", 95 | "keys": ["3"] 96 | }, 97 | { 98 | "description": "Equip grenade", 99 | "keys": ["G"] 100 | }, 101 | { 102 | "description": "Use selected health item", 103 | "keys": ["4"] 104 | }, 105 | { 106 | "description": "Toggle Gibraltar's shield", 107 | "keys": ["H"] 108 | }, 109 | { 110 | "description": "Inspect weapon", 111 | "keys": ["N"] 112 | } 113 | ] 114 | }, 115 | { 116 | "name": "Communication", 117 | "shortcuts": [ 118 | { 119 | "description": "Ping enemy here", 120 | "keys": ["F"] 121 | }, 122 | { 123 | "description": "Hold to use push to talk", 124 | "keys": ["T"] 125 | }, 126 | { 127 | "description": "Message team", 128 | "keys": ["Enter"] 129 | } 130 | ] 131 | } 132 | ] 133 | } -------------------------------------------------------------------------------- /content/arduino.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "arduino", 4 | "title": "Arduino IDE", 5 | "meta_title": "Keyboard shortcuts for the Arduino IDE", 6 | "meta_description": "A visual cheat-sheet for the 12 keyboard shortcuts found in the Arduino IDE", 7 | "reference_link": "https://progtpoint.blogspot.com/2017/02/arduino-keyboard-shortcuts.html", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Save", 14 | "keys": ["Ctrl", "S"] 15 | }, 16 | { 17 | "description": "Save as", 18 | "keys": ["Ctrl", "Shift", "S"] 19 | }, 20 | { 21 | "description": "Open a new sketch", 22 | "keys": ["Ctrl", "N"] 23 | }, 24 | { 25 | "description": "Open an existing sketch", 26 | "keys": ["Ctrl", "O"] 27 | }, 28 | { 29 | "description": "Close the Arduino IDE", 30 | "keys": ["Ctrl", "Q"] 31 | }, 32 | { 33 | "description": "Verify", 34 | "keys": ["Ctrl", "R"] 35 | }, 36 | { 37 | "description": "Upload", 38 | "keys": ["Ctrl", "U"] 39 | }, 40 | { 41 | "description": "Find", 42 | "keys": ["Ctrl", "F"] 43 | }, 44 | { 45 | "description": "Adjust the alignment and spacing", 46 | "keys": ["Ctrl", "T"] 47 | }, 48 | { 49 | "description": "Comment", 50 | "keys": ["Ctrl", "/"] 51 | }, 52 | { 53 | "description": "Open the serial monitor", 54 | "keys": ["Ctrl", "Shift", "M"] 55 | }, 56 | { 57 | "description": "Open the sketch folder", 58 | "keys": ["Ctrl", "K"] 59 | } 60 | ] 61 | } 62 | ] 63 | } -------------------------------------------------------------------------------- /content/bitbucket.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "bitbucket", 4 | "title": "Bitbucket", 5 | "meta_title": "Keyboard shortcuts for Bitbucket", 6 | "meta_description": "A visual cheat-sheet for the 35 keyboard shortcuts found on Bitbucket", 7 | "reference_link": "https://confluence.atlassian.com/bitbucket/keyboard-shortcuts-269980511.html", 8 | "sections": [ 9 | { 10 | "name": "All pages", 11 | "shortcuts": [ 12 | { 13 | "description": "Display keyboard shortcuts", 14 | "keys": ["?"] 15 | }, 16 | { 17 | "description": "Expand and collapse left navigation", 18 | "keys": ["["] 19 | }, 20 | { 21 | "description": "Focus the site search", 22 | "keys": ["/"] 23 | } 24 | ] 25 | }, 26 | { 27 | "name": "Most pages (except Your Work and Source)", 28 | "shortcuts": [ 29 | { 30 | "description": "Open the Omnibar", 31 | "keys": ["."] 32 | }, 33 | { 34 | "description": "Select next item", 35 | "keys": ["J"] 36 | }, 37 | { 38 | "description": "Select previous item", 39 | "keys": ["K"] 40 | }, 41 | { 42 | "description": "View selected item", 43 | "keys": ["Enter"] 44 | }, 45 | { 46 | "description": "Go to Your Work dashboard", 47 | "keys": ["G", "D"] 48 | }, 49 | { 50 | "description": "Go to your Personal Settings", 51 | "keys": ["G", "A"] 52 | }, 53 | { 54 | "description": "Dismiss dialog or remove focus", 55 | "keys": ["Esc"] 56 | }, 57 | { 58 | "description": "Go back", 59 | "keys": ["U"] 60 | } 61 | ] 62 | }, 63 | { 64 | "name": "Repository pages with sidebar", 65 | "shortcuts": [ 66 | { 67 | "description": "Expand and collapse right sidebar", 68 | "keys": ["]"] 69 | } 70 | ] 71 | }, 72 | { 73 | "name": "Repository source", 74 | "shortcuts": [ 75 | { 76 | "description": "Focus the file filter", 77 | "keys": ["F"] 78 | } 79 | ] 80 | }, 81 | { 82 | "name": "Repository pages (except for Source)", 83 | "shortcuts": [ 84 | { 85 | "description": "Create a repository", 86 | "keys": ["C", "R"] 87 | }, 88 | { 89 | "description": "Import a repository", 90 | "keys": ["I", "R"] 91 | }, 92 | { 93 | "description": "Open repository source", 94 | "keys": ["R", "S"] 95 | }, 96 | { 97 | "description": "Open repository commits", 98 | "keys": ["R", "C"] 99 | }, 100 | { 101 | "description": "Open repository branches", 102 | "keys": ["R", "B"] 103 | }, 104 | { 105 | "description": "Open repository pull requests", 106 | "keys": ["R", "P"] 107 | }, 108 | { 109 | "description": "Open repository issues", 110 | "keys": ["R", "I"] 111 | }, 112 | { 113 | "description": "Open repository wiki", 114 | "keys": ["R", "W"] 115 | }, 116 | { 117 | "description": "Open repository downloads", 118 | "keys": ["R", "D"] 119 | }, 120 | { 121 | "description": "Open repository settings", 122 | "keys": ["R", "A"] 123 | }, 124 | { 125 | "description": "Search for file", 126 | "keys": ["F"] 127 | } 128 | ] 129 | }, 130 | { 131 | "name": "Repository pages (except for Source and Settings)", 132 | "shortcuts": [ 133 | { 134 | "description": "Fork repository", 135 | "keys": ["X", "F"] 136 | }, 137 | { 138 | "description": "Create branch", 139 | "keys": ["X", "B"] 140 | }, 141 | { 142 | "description": "Compare branches or tags", 143 | "keys": ["X", "C"] 144 | }, 145 | { 146 | "description": "Create pull request", 147 | "keys": ["X", "P"] 148 | }, 149 | { 150 | "description": "Create issue", 151 | "keys": ["X", "I"] 152 | } 153 | ] 154 | }, 155 | { 156 | "name": "Pull requests", 157 | "shortcuts": [ 158 | { 159 | "description": "Submit a comment", 160 | "keys": ["Ctrl", "Enter"] 161 | }, 162 | { 163 | "description": "Toggle display of inline comments", 164 | "keys": ["T", "C"] 165 | }, 166 | { 167 | "description": "Switch to the pull request diff tab", 168 | "keys": ["P", "D"] 169 | }, 170 | { 171 | "description": "Switch to the pull request commits tab", 172 | "keys": ["P", "C"] 173 | }, 174 | { 175 | "description": "Switch to the pull request activity tab", 176 | "keys": ["P", "A"] 177 | }, 178 | { 179 | "description": "Show the list of tasks", 180 | "keys": ["Shift", "T"] 181 | } 182 | ] 183 | } 184 | ] 185 | } -------------------------------------------------------------------------------- /content/discord.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "discord", 4 | "title": "Discord", 5 | "meta_title": "Keyboard shortcuts for Discord", 6 | "meta_description": "A visual cheat-sheet for the 28 keyboard shortcuts found in Discord", 7 | "reference_link": "https://support.discordapp.com/hc/en-us/articles/225977308--Windows-Discord-Hotkeys", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Navigate between servers", 14 | "keys": ["Ctrl", "Alt", "Up/Down"] 15 | }, 16 | { 17 | "description": "Navigate between channels", 18 | "keys": ["Alt", "Up/Down"] 19 | }, 20 | { 21 | "description": "Navigate between unread channels", 22 | "keys": ["Alt", "Shift", "Up/Down"] 23 | }, 24 | { 25 | "description": "Navigate between unread channels with mentions", 26 | "keys": ["Ctrl", "Shift", "Alt", "Up/Down"] 27 | }, 28 | { 29 | "description": "Mark channel as read", 30 | "keys": ["Esc"] 31 | }, 32 | { 33 | "description": "Mark server read", 34 | "keys": ["Shift", "Esc"] 35 | }, 36 | { 37 | "description": "Toggle hotkeys", 38 | "keys": ["Ctrl", "/"] 39 | }, 40 | { 41 | "description": "Return to previous text channel", 42 | "keys": ["Ctrl", "B"] 43 | }, 44 | { 45 | "description": "Return to active audio channel", 46 | "keys": ["Ctrl", "Alt", "A"] 47 | }, 48 | { 49 | "description": "Toggle pins popout", 50 | "keys": ["Ctrl", "P"] 51 | }, 52 | { 53 | "description": "Toggle mentions popout", 54 | "keys": ["Ctrl", "Shift", "2"] 55 | }, 56 | { 57 | "description": "Toggle channel member list", 58 | "keys": ["Ctrl", "U"] 59 | }, 60 | { 61 | "description": "Toggle emoji picker", 62 | "keys": ["Ctrl", "E"] 63 | }, 64 | { 65 | "description": "Scroll chat up or down", 66 | "keys": ["PgUp/PgDn"] 67 | }, 68 | { 69 | "description": "Jump to oldest unread message", 70 | "keys": ["Shift", "PgUp"] 71 | }, 72 | { 73 | "description": "Create or join a server", 74 | "keys": ["Ctrl", "Shift", "N"] 75 | }, 76 | { 77 | "description": "Answer incoming call", 78 | "keys": ["Ctrl", "Enter"] 79 | }, 80 | { 81 | "description": "Find or start a direct message", 82 | "keys": ["Ctrl", "K"] 83 | }, 84 | { 85 | "description": "Decline incoming call", 86 | "keys": ["Esc"] 87 | }, 88 | { 89 | "description": "Create a private group", 90 | "keys": ["Ctrl", "Shift", "T"] 91 | }, 92 | { 93 | "description": "Start call in private message or group", 94 | "keys": ["Ctrl", "["] 95 | }, 96 | { 97 | "description": "Focus text area", 98 | "keys": ["Tab"] 99 | }, 100 | { 101 | "description": "Return to connected audio channel", 102 | "keys": ["Alt", "Left"] 103 | }, 104 | { 105 | "description": "Return to previous text channel", 106 | "keys": ["Alt", "Right"] 107 | }, 108 | { 109 | "description": "Toggle mute", 110 | "keys": ["Ctrl", "Shift", "M"] 111 | }, 112 | { 113 | "description": "Toggle deafen", 114 | "keys": ["Ctrl", "Shift", "D"] 115 | }, 116 | { 117 | "description": "Get help", 118 | "keys": ["Ctrl", "Shift", "H"] 119 | }, 120 | { 121 | "description": "Upload a file", 122 | "keys": ["Ctrl", "Shift", "U"] 123 | } 124 | ] 125 | } 126 | ] 127 | } -------------------------------------------------------------------------------- /content/dropbox.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "dropbox", 4 | "title": "Dropbox", 5 | "meta_title": "Keyboard shortcuts for Dropbox", 6 | "meta_description": "A visual cheat-sheet for the 9 keyboard shortcuts found on Dropbox", 7 | "reference_link": "https://help.dropbox.com/installs-integrations/desktop/keyboard-shortcuts", 8 | "sections": [ 9 | { 10 | "name": "Dropbox Website", 11 | "shortcuts": [ 12 | { 13 | "description": "Move between files or folders", 14 | "keys": ["Up/Down"] 15 | }, 16 | { 17 | "description": "Open a file or folder", 18 | "keys": ["Enter"] 19 | }, 20 | { 21 | "description": "Search through files and folders", 22 | "keys": ["/"] 23 | } 24 | ] 25 | }, 26 | { 27 | "name": "Dropbox Desktop App", 28 | "shortcuts": [ 29 | { 30 | "description": "Bold", 31 | "keys": ["Ctrl", "B"] 32 | }, 33 | { 34 | "description": "Italic", 35 | "keys": ["Ctrl", "I"] 36 | }, 37 | { 38 | "description": "Strikethrough", 39 | "keys": ["Ctrl", "Alt", "S"] 40 | }, 41 | { 42 | "description": "Create a link", 43 | "keys": ["Ctrl", "K"] 44 | }, 45 | { 46 | "description": "Create a to-do list", 47 | "keys": ["-", "Space"] 48 | }, 49 | { 50 | "description": "Create a bulleted list", 51 | "keys": ["-", "-", "Space"] 52 | }, 53 | { 54 | "description": "Create a numbered list", 55 | "keys": ["1", "Space"] 56 | }, 57 | { 58 | "description": "Mentioned someone", 59 | "keys": ["@"] 60 | }, 61 | { 62 | "description": "Move between files and folders in the expanded preview", 63 | "keys": ["Left/Right"] 64 | }, 65 | { 66 | "description": "Move to the next or previous page within a PDF or PPT file in the expanded preview", 67 | "keys": ["Up/Down"] 68 | }, 69 | { 70 | "description": "Move to next or previous page within a PDF or PPT file in the expanded preview", 71 | "keys": ["PgUp/PgDown"] 72 | }, 73 | { 74 | "description": "Move to first or last page within a PDF or PPT file in the expanded preview", 75 | "keys": ["Home/End"] 76 | }, 77 | { 78 | "description": "Zoom in while in the expanded preview", 79 | "keys": ["Ctrl", "+"] 80 | }, 81 | { 82 | "description": "Zoom out in the expanded preview", 83 | "keys": ["Ctrl", "-"] 84 | }, 85 | { 86 | "description": "Zoom back to 100% in the expanded preview", 87 | "keys": ["Ctrl", "0"] 88 | } 89 | ] 90 | } 91 | ] 92 | } -------------------------------------------------------------------------------- /content/feedly.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "feedly", 4 | "title": "Feedly", 5 | "meta_title": "Keyboard shortcuts for Feedly", 6 | "meta_description": "A visual cheat-sheet for the 25 keyboard shortcuts found on the Feedly app", 7 | "reference_link": "https://blog.feedly.com/keyboard-shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Show keyboard shortcuts", 14 | "keys": ["?"] 15 | } 16 | ] 17 | }, 18 | { 19 | "name": "Navigation", 20 | "shortcuts": [ 21 | { 22 | "description": "Show Today", 23 | "keys": ["G", "T"] 24 | }, 25 | { 26 | "description": "Show All", 27 | "keys": ["G", "A"] 28 | }, 29 | { 30 | "description": "Show Favorites", 31 | "keys": ["G", "F"] 32 | }, 33 | { 34 | "description": "Jump to...", 35 | "keys": ["G", "G"] 36 | }, 37 | { 38 | "description": "Read later", 39 | "keys": ["G", "L"] 40 | }, 41 | { 42 | "description": "Index", 43 | "keys": ["G", "I"] 44 | }, 45 | { 46 | "description": "Organize sources", 47 | "keys": ["G", "O"] 48 | }, 49 | { 50 | "description": "Next source or collection", 51 | "keys": ["Shift", "J"] 52 | }, 53 | { 54 | "description": "Previous source or collection", 55 | "keys": ["Shift", "K"] 56 | }, 57 | { 58 | "description": "Refresh", 59 | "keys": ["R"] 60 | } 61 | ] 62 | }, 63 | { 64 | "name": "Lists", 65 | "shortcuts": [ 66 | { 67 | "description": "Inline next artlcke", 68 | "keys": ["J"] 69 | }, 70 | { 71 | "description": "Inline previous article", 72 | "keys": ["K"] 73 | }, 74 | { 75 | "description": "Select the next article", 76 | "keys": ["N"] 77 | }, 78 | { 79 | "description": "Select the previous article", 80 | "keys": ["P"] 81 | }, 82 | { 83 | "description": "Mark all as read", 84 | "keys": ["Shift", "A"] 85 | } 86 | ] 87 | }, 88 | { 89 | "name": "Selected Article", 90 | "shortcuts": [ 91 | { 92 | "description": "Inline or close the currently selected article", 93 | "keys": ["O"] 94 | }, 95 | { 96 | "description": "View the original in a new tab", 97 | "keys": ["V"] 98 | }, 99 | { 100 | "description": "Toggle mark as read", 101 | "keys": ["M"] 102 | }, 103 | { 104 | "description": "Mark as read and hide", 105 | "keys": ["X"] 106 | }, 107 | { 108 | "description": "Read later", 109 | "keys": ["S"] 110 | }, 111 | { 112 | "description": "Save to Board", 113 | "keys": ["T"] 114 | }, 115 | { 116 | "description": "Save to Buffer", 117 | "keys": ["B"] 118 | }, 119 | { 120 | "description": "Clip to Evernote", 121 | "keys": ["C"] 122 | }, 123 | { 124 | "description": "Preview", 125 | "keys": ["Shift", "V"] 126 | } 127 | ] 128 | } 129 | ] 130 | } -------------------------------------------------------------------------------- /content/filezilla.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "filezilla", 4 | "title": "FileZilla", 5 | "meta_title": "Keyboard shortcuts for FileZilla", 6 | "meta_description": "A visual cheat-sheet for the 30 keyboard shortcuts found on the FileZilla program", 7 | "reference_link": "https://wiki.filezilla-project.org/Keyboard_shortcuts", 8 | "sections": [ 9 | { 10 | "name": "General Shortcuts", 11 | "shortcuts": [ 12 | { 13 | "description": "Rename selected file", 14 | "keys": ["F2"] 15 | }, 16 | { 17 | "description": "Search remote files", 18 | "keys": ["F3"] 19 | }, 20 | { 21 | "description": "Refreshes local and remote file and folder views", 22 | "keys": ["F5"] 23 | }, 24 | { 25 | "description": "Switches to the next view", 26 | "keys": ["Tab"] 27 | }, 28 | { 29 | "description": "Transfers the currently selected item to an item of the same name in the other pane", 30 | "keys": ["Alt", "Down"] 31 | }, 32 | { 33 | "description": "Navigates up one line in a tree view, navigates to parent folder in file view", 34 | "keys": ["Alt", "Up"] 35 | }, 36 | { 37 | "description": "Add bookmark", 38 | "keys": ["Ctrl", "B"] 39 | }, 40 | { 41 | "description": "Manage bookmarks", 42 | "keys": ["Ctrl", "Shift", "B"] 43 | }, 44 | { 45 | "description": "Stops the current operation", 46 | "keys": ["Ctrl", "C"] 47 | }, 48 | { 49 | "description": "Disconnects from server", 50 | "keys": ["Ctrl", "D"] 51 | }, 52 | { 53 | "description": "Show files currently being edited", 54 | "keys": ["Ctrl", "E"] 55 | }, 56 | { 57 | "description": "Directory listing filters...", 58 | "keys": ["Ctrl", "I"] 59 | }, 60 | { 61 | "description": "Manual transfer", 62 | "keys": ["Ctrl", "M"] 63 | }, 64 | { 65 | "description": "Create a new directory", 66 | "keys": ["Ctrl", "Shift", "N"] 67 | }, 68 | { 69 | "description": "Enable directory comparison", 70 | "keys": ["Ctrl", "O"] 71 | }, 72 | { 73 | "description": "Process queue", 74 | "keys": ["Ctrl", "P"] 75 | }, 76 | { 77 | "description": "Exit", 78 | "keys": ["Ctrl", "Q"] 79 | }, 80 | { 81 | "description": "Reconnects to server", 82 | "keys": ["Ctrl", "R"] 83 | }, 84 | { 85 | "description": "Opens the site manager", 86 | "keys": ["Ctrl", "S"] 87 | }, 88 | { 89 | "description": "Opens a new tab", 90 | "keys": ["Ctrl", "T"] 91 | }, 92 | { 93 | "description": "Preserve the timestamps of transferred files", 94 | "keys": ["Ctrl", "U"] 95 | }, 96 | { 97 | "description": "Toggle synchronized browsing", 98 | "keys": ["Ctrl", "Y"] 99 | }, 100 | { 101 | "description": "Close tab", 102 | "keys": ["Ctrl", "W"] 103 | }, 104 | { 105 | "description": "Transfer the currently selected item if it is a file, or expands if it is a directory", 106 | "keys": ["Enter"] 107 | }, 108 | { 109 | "description": "Switches to the next tab", 110 | "keys": ["Ctrl", "PgUp"] 111 | }, 112 | { 113 | "description": "Switches to the previous tab", 114 | "keys": ["Ctrl", "PgDn"] 115 | }, 116 | { 117 | "description": "Moves up one item in the current view", 118 | "keys": ["Up"] 119 | }, 120 | { 121 | "description": "Moves down one item in the current view", 122 | "keys": ["Down"] 123 | }, 124 | { 125 | "description": "Nothing in a files view, up on level in a tree view", 126 | "keys": ["Left"] 127 | }, 128 | { 129 | "description": "Down one level in a tree view if there are subfolders, nothing if there are none", 130 | "keys": ["Right"] 131 | } 132 | ] 133 | } 134 | ] 135 | } -------------------------------------------------------------------------------- /content/fortnite.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "fortnite", 4 | "title": "Fortnite", 5 | "meta_title": "Keyboard shortcuts for Fortnite", 6 | "meta_description": "A visual cheat-sheet for the 26 default keyboard shortcuts found in Fortnite", 7 | "reference_link": "https://fortnite.gamepedia.com/Controls", 8 | "sections": [ 9 | { 10 | "name": "Main Controls", 11 | "shortcuts": [ 12 | { 13 | "description": "Reload", 14 | "keys": ["R"] 15 | }, 16 | { 17 | "description": "Switch between combat mode and build mode", 18 | "keys": ["Q"] 19 | }, 20 | { 21 | "description": "Jump", 22 | "keys": ["Space"] 23 | }, 24 | { 25 | "description": "Crouch", 26 | "keys": ["Left Ctrl"] 27 | }, 28 | { 29 | "description": "Sprint", 30 | "keys": ["Left Shift"] 31 | }, 32 | { 33 | "description": "Auto run", 34 | "keys": ["="] 35 | }, 36 | { 37 | "description": "Move forward", 38 | "keys": ["W"] 39 | }, 40 | { 41 | "description": "Move backwards", 42 | "keys": ["S"] 43 | }, 44 | { 45 | "description": "Move left", 46 | "keys": ["A"] 47 | }, 48 | { 49 | "description": "Move right", 50 | "keys": ["D"] 51 | }, 52 | { 53 | "description": "Toggle map", 54 | "keys": ["M"] 55 | }, 56 | { 57 | "description": "Toggle inventory", 58 | "keys": ["Tab"] 59 | }, 60 | { 61 | "description": "Use or interact with object", 62 | "keys": ["E"] 63 | }, 64 | { 65 | "description": "Select pickaxe", 66 | "keys": ["F"] 67 | }, 68 | { 69 | "description": "Select weapon slot 1-5", 70 | "keys": ["1-5"] 71 | } 72 | ] 73 | }, 74 | { 75 | "name": "Building", 76 | "shortcuts": [ 77 | { 78 | "description": "Rotate building piece", 79 | "keys": ["R"] 80 | }, 81 | { 82 | "description": "Wall mode", 83 | "keys": ["Z"] 84 | }, 85 | { 86 | "description": "Floor mode", 87 | "keys": ["X"] 88 | }, 89 | { 90 | "description": "Stair mode", 91 | "keys": ["C"] 92 | }, 93 | { 94 | "description": "Pyramid mode", 95 | "keys": ["V"] 96 | }, 97 | { 98 | "description": "Trap mode", 99 | "keys": ["Y"] 100 | }, 101 | { 102 | "description": "Select trap", 103 | "keys": ["F3"] 104 | }, 105 | { 106 | "description": "Upgrade building piece of repair damaged building piece", 107 | "keys": ["H"] 108 | }, 109 | { 110 | "description": "Edit building piece", 111 | "keys": ["G"] 112 | } 113 | ] 114 | }, 115 | { 116 | "name": "Communication", 117 | "shortcuts": [ 118 | { 119 | "description": "Chat", 120 | "keys": ["Enter"] 121 | }, 122 | { 123 | "description": "Emote", 124 | "keys": ["B"] 125 | } 126 | ] 127 | } 128 | ] 129 | } -------------------------------------------------------------------------------- /content/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.default", 3 | "slug": "/", 4 | "title": "Use The Keyboard", 5 | "meta_title": "A collection of keyboard shortcuts for Mac apps, Windows programs, and websites", 6 | "meta_description": "A collection of keyboard shortcuts for Mac apps, Windows programs, and a variety of websites.", 7 | "popular": ["notion", "figma", "discord", "telegram"] 8 | } 9 | -------------------------------------------------------------------------------- /content/iterm.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "iterm", 4 | "title": "iTerm", 5 | "meta_title": "Keyboard shortcuts for iTerm terminal", 6 | "meta_description": "A visual cheat-sheet for the 22 keyboard shortcuts found in iTerm. This application is MacOS-only.", 7 | "reference_link": "http://www.ifdattic.com/iterm-shortcut-keys/", 8 | "mac_only": true, 9 | "sections": [ 10 | { 11 | "name": "Multiple terminals", 12 | "shortcuts": [ 13 | { 14 | "description": "New tab", 15 | "keys": ["Cmd", "T"] 16 | }, 17 | { 18 | "description": "Previous tab", 19 | "keys": ["Cmd", "Left"] 20 | }, 21 | { 22 | "description": "Next tab", 23 | "keys": ["Cmd", "Right"] 24 | }, 25 | { 26 | "description": "Close tab", 27 | "keys": ["Cmd", "W"] 28 | }, 29 | { 30 | "description": "Move tab right", 31 | "keys": ["Shift", "Cmd", "Right"] 32 | }, 33 | { 34 | "description": "Move tab left", 35 | "keys": ["Shift", "Cmd", "Left"] 36 | } 37 | ] 38 | }, 39 | { 40 | "name": "Splitting terminals", 41 | "shortcuts": [ 42 | { 43 | "description": "Split vertically with current profile", 44 | "keys": ["Cmd", "D"] 45 | }, 46 | { 47 | "description": "Split horizontally with current profile", 48 | "keys": ["Cmd", "Shift", "D"] 49 | }, 50 | { 51 | "description": "Move to the next pane", 52 | "keys": ["Cmd", "]"] 53 | }, 54 | { 55 | "description": "Move to the previous pane", 56 | "keys": ["Cmd", "["] 57 | }, 58 | { 59 | "description": "Select pane above", 60 | "keys": ["Opt", "Cmd", "Up"] 61 | }, 62 | { 63 | "description": "Select pane below", 64 | "keys": ["Opt", "Cmd", "Down"] 65 | }, 66 | { 67 | "description": "Select pane to the left", 68 | "keys": ["Opt", "Cmd", "Left"] 69 | }, 70 | { 71 | "description": "Select pane to the right", 72 | "keys": ["Opt", "Cmd", "Right"] 73 | } 74 | ] 75 | }, 76 | { 77 | "name": "Interacting with the terminal", 78 | "shortcuts": [ 79 | { 80 | "description": "Clear window", 81 | "keys": ["Ctrl", "L"] 82 | }, 83 | { 84 | "description": "Clear buffer", 85 | "keys": ["Cmd", "K"] 86 | }, 87 | { 88 | "description": "Scroll up", 89 | "keys": ["Shift", "PgUp"] 90 | }, 91 | { 92 | "description": "Scroll down", 93 | "keys": ["Shift", "PgDown"] 94 | }, 95 | { 96 | "description": "Find", 97 | "keys": ["Cmd", "F"] 98 | } 99 | ] 100 | }, 101 | { 102 | "name": "Changing font size", 103 | "shortcuts": [ 104 | { 105 | "description": "Make text bigger", 106 | "keys": ["Cmd", "+"] 107 | }, 108 | { 109 | "description": "Make text smaller", 110 | "keys": ["Cmd", "-"] 111 | }, 112 | { 113 | "description": "Make text normal size", 114 | "keys": ["Cmd", "0"] 115 | } 116 | ] 117 | } 118 | ] 119 | } -------------------------------------------------------------------------------- /content/kanbanmail.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "kanbanmail", 4 | "title": "KanbanMail", 5 | "meta_title": "Keyboard shortcuts for KanbanMail", 6 | "meta_description": "A visual cheat-sheet for the 29 keyboard shortcuts found in KanbanMail", 7 | "reference_link": "https://guides.kanbanmail.app/keyboard-shortcuts", 8 | "sections": [ 9 | { 10 | "name": "Global", 11 | "shortcuts": [ 12 | { 13 | "description": "Toggle split view", 14 | "keys": ["Ctrl", "\\"] 15 | } 16 | ] 17 | }, 18 | { 19 | "name": "Board", 20 | "shortcuts": [ 21 | { 22 | "description": "Open composer", 23 | "keys": ["C"] 24 | }, 25 | { 26 | "description": "New note in the to-do column", 27 | "keys": ["Ctrl", "N"] 28 | }, 29 | { 30 | "description": "Focus the search bar", 31 | "keys": ["/"] 32 | }, 33 | { 34 | "description": "Clear search, if it's on", 35 | "keys": ["Esc"] 36 | }, 37 | { 38 | "description": "Select the first thread in column ", 39 | "keys": ["1-5"] 40 | } 41 | ] 42 | }, 43 | { 44 | "name": "Email", 45 | "shortcuts": [ 46 | { 47 | "description": "Star or unstar", 48 | "keys": ["S"] 49 | }, 50 | { 51 | "description": "Mark as important or not important", 52 | "keys": ["I"] 53 | }, 54 | { 55 | "description": "Mark as read or unread", 56 | "keys": ["U"] 57 | }, 58 | { 59 | "description": "Pin", 60 | "keys": ["Shift", "P"] 61 | }, 62 | { 63 | "description": "Reply", 64 | "keys": ["R"] 65 | }, 66 | { 67 | "description": "Reply all", 68 | "keys": ["A"] 69 | }, 70 | { 71 | "description": "Forward", 72 | "keys": ["F"] 73 | }, 74 | { 75 | "description": "Move to archived", 76 | "keys": ["E"] 77 | }, 78 | { 79 | "description": "Move to column ", 80 | "keys": ["1-5"] 81 | }, 82 | { 83 | "description": "Move to trash", 84 | "keys": ["Shift", "3"] 85 | }, 86 | { 87 | "description": "Go to the previous message in the thread", 88 | "keys": ["P"] 89 | }, 90 | { 91 | "description": "Go to the next message in the thread", 92 | "keys": ["N"] 93 | }, 94 | { 95 | "description": "Unsubscribe", 96 | "keys": ["Shift", "U"] 97 | }, 98 | { 99 | "description": "Open selected thread", 100 | "keys": ["Enter"] 101 | }, 102 | { 103 | "description": "Close thread viewer, if open", 104 | "keys": ["Esc"] 105 | }, 106 | { 107 | "description": "Clear selected threads", 108 | "keys": ["Esc"] 109 | } 110 | ] 111 | }, 112 | { 113 | "name": "Composer", 114 | "shortcuts": [ 115 | { 116 | "description": "Send email", 117 | "keys": ["Ctrl", "Enter"] 118 | }, 119 | { 120 | "description": "Save as draft", 121 | "keys": ["Ctrl", "S"] 122 | }, 123 | { 124 | "description": "Close composer", 125 | "keys": ["Esc"] 126 | } 127 | ] 128 | }, 129 | { 130 | "name": "Editor", 131 | "shortcuts": [ 132 | { 133 | "description": "Bold", 134 | "keys": ["Ctrl", "B"] 135 | }, 136 | { 137 | "description": "Italic", 138 | "keys": ["Ctrl", "I"] 139 | }, 140 | { 141 | "description": "Underline", 142 | "keys": ["Ctrl", "U"] 143 | }, 144 | { 145 | "description": "Add hyperlink", 146 | "keys": ["Ctrl", "K"] 147 | } 148 | ] 149 | } 150 | ] 151 | } -------------------------------------------------------------------------------- /content/monday.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "monday", 4 | "title": "Monday.com", 5 | "meta_title": "Keyboard shortcuts for Monday.com", 6 | "meta_description": "A visual cheat-sheet for the 24 keyboard shortcuts found on Monday.com", 7 | "reference_link": "https://support.monday.com/hc/en-us/articles/115005339905-The-Spreadsheet-capabilities-shortcuts-", 8 | "sections": [ 9 | { 10 | "name": "System", 11 | "shortcuts": [ 12 | { 13 | "description": "Bolt Switch (quick switch between boards)", 14 | "keys": ["Ctrl", "B"] 15 | }, 16 | { 17 | "description": "Close Item Page", 18 | "keys": ["Esc"] 19 | }, 20 | { 21 | "description": "Close Dialogs", 22 | "keys": ["Esc"] 23 | }, 24 | { 25 | "description": "Close Search", 26 | "keys": ["Esc"] 27 | } 28 | ] 29 | }, 30 | { 31 | "name": "Board", 32 | "shortcuts": [ 33 | { 34 | "description": "Navigate Down", 35 | "keys": ["Down"] 36 | }, 37 | { 38 | "description": "Navigate Up", 39 | "keys": ["Up"] 40 | }, 41 | { 42 | "description": "Navigate Left", 43 | "keys": ["Left"] 44 | }, 45 | { 46 | "description": "Navigate Right", 47 | "keys": ["Right"] 48 | }, 49 | { 50 | "description": "Navigate to Next Cell", 51 | "keys": ["Tab"] 52 | }, 53 | { 54 | "description": "Navigate to Previous Tab", 55 | "keys": ["Shift", "Tab"] 56 | }, 57 | { 58 | "description": "Edit Cell Content", 59 | "keys": ["Enter"] 60 | }, 61 | { 62 | "description": "Clear Cell Content", 63 | "keys": ["Backspace"] 64 | }, 65 | { 66 | "description": "Open Column View", 67 | "keys": ["Space"] 68 | }, 69 | { 70 | "description": "Search Board", 71 | "keys": ["Ctrl", "F"] 72 | }, 73 | { 74 | "description": "Copy Cell Content", 75 | "keys": ["Ctrl", "C"] 76 | }, 77 | { 78 | "description": "Paste Cell Content", 79 | "keys": ["Ctrl", "V"] 80 | }, 81 | { 82 | "description": "Cut Cell Content", 83 | "keys": ["Ctrl", "X"] 84 | }, 85 | { 86 | "description": "Select Item", 87 | "keys": ["Ctrl", "Enter"] 88 | }, 89 | { 90 | "description": "Select Range of Items", 91 | "keys": ["Shift", "Enter"] 92 | }, 93 | { 94 | "description": "Create New Group", 95 | "keys": ["Ctrl", "Shift", "G"] 96 | }, 97 | { 98 | "description": "Create New Column", 99 | "keys": ["Ctrl", "Shift", "C"] 100 | }, 101 | { 102 | "description": "Open Activity Log", 103 | "keys": ["Ctrl", "L"] 104 | }, 105 | { 106 | "description": "Sort Another Column", 107 | "keys": ["Ctrl", "(click)"] 108 | }, 109 | { 110 | "description": "Collapse/Expand All Groups", 111 | "keys": ["Ctrl", "G"] 112 | } 113 | ] 114 | } 115 | ] 116 | } -------------------------------------------------------------------------------- /content/netflix.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "netflix", 4 | "title": "Netflix", 5 | "meta_title": "Keyboard shortcuts for Netflix", 6 | "meta_description": "A visual cheat-sheet for the 9 keyboard shortcuts found on Netflix", 7 | "reference_link": "https://help.netflix.com/en/node/24855", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Toggle play or pause", 14 | "keys": ["Space"] 15 | }, 16 | { 17 | "description": "Toggle play or pause", 18 | "keys": ["Enter"] 19 | }, 20 | { 21 | "description": "Full-screen", 22 | "keys": ["F"] 23 | }, 24 | { 25 | "description": "Exit full-screen", 26 | "keys": ["Esc"] 27 | }, 28 | { 29 | "description": "Rewind ten (10) seconds", 30 | "keys": ["Left"] 31 | }, 32 | { 33 | "description": "Fast-forward ten (10) seconds", 34 | "keys": ["Right"] 35 | }, 36 | { 37 | "description": "Volume up", 38 | "keys": ["Up"] 39 | }, 40 | { 41 | "description": "Volume down", 42 | "keys": ["Down"] 43 | }, 44 | { 45 | "description": "Toggle mute", 46 | "keys": ["M"] 47 | } 48 | ] 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /content/obsidian.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "obsidian", 4 | "title": "Obsidian", 5 | "meta_title": "Keyboard shortcuts for Obsidian", 6 | "meta_description": "A visual cheat-sheet for the 17 keyboard shortcuts found in the Obsidian knowledge base app.", 7 | "reference_link": "https://help.obsidian.md/How+to/Keyboard+shortcuts", 8 | "sections": [ 9 | { 10 | "name": "Default Shortcuts", 11 | "shortcuts": [ 12 | { 13 | "description": "Save a file in the editor", 14 | "keys": ["Ctrl", "S"] 15 | }, 16 | { 17 | "description": "Create a new note", 18 | "keys": ["Ctrl", "N"] 19 | }, 20 | { 21 | "description": "Open the command palette", 22 | "keys": ["Ctrl", "P"] 23 | }, 24 | { 25 | "description": "Open the quick switcher", 26 | "keys": ["Ctrl", "O"] 27 | }, 28 | { 29 | "description": "Search in all files", 30 | "keys": ["Ctrl", "Shift", "F"] 31 | }, 32 | { 33 | "description": "Open the graph view", 34 | "keys": ["Ctrl", "G"] 35 | }, 36 | { 37 | "description": "Navigate backwards", 38 | "keys": ["Ctrl", "Alt", "Left"] 39 | }, 40 | { 41 | "description": "Navigate forwards", 42 | "keys": ["Ctrl", "Alt", "Right"] 43 | }, 44 | { 45 | "description": "Search the current file", 46 | "keys": ["Ctrl", "F"] 47 | }, 48 | { 49 | "description": "Toggle edit or preview mode", 50 | "keys": ["Ctrl", "E"] 51 | }, 52 | { 53 | "description": "Open settings", 54 | "keys": ["Ctrl", ","] 55 | } 56 | ] 57 | }, 58 | { 59 | "name": "Editing", 60 | "shortcuts": [ 61 | { 62 | "description": "Bold selected text", 63 | "keys": ["Ctrl", "B"] 64 | }, 65 | { 66 | "description": "Italic selected text", 67 | "keys": ["Ctrl", "I"] 68 | }, 69 | { 70 | "description": "Insert an external link", 71 | "keys": ["Ctrl", "K"] 72 | }, 73 | { 74 | "description": "Indent", 75 | "keys": ["Ctrl", "]"] 76 | }, 77 | { 78 | "description": "Unindent", 79 | "keys": ["Ctrl", "["] 80 | }, 81 | { 82 | "description": "Jump into the selected backlink", 83 | "keys": ["Alt", "Enter"] 84 | } 85 | ] 86 | } 87 | ] 88 | } -------------------------------------------------------------------------------- /content/pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "pocket", 4 | "title": "Pocket", 5 | "meta_title": "Keyboard shortcuts for Pocket", 6 | "meta_description": "A visual cheat-sheet for the 36 keyboard shortcuts found on Pocket for Web", 7 | "reference_link": "https://help.getpocket.com/article/994-keyboard-shortcuts-in-pocket-for-web", 8 | "sections": [ 9 | { 10 | "name": "Viewing Your List", 11 | "shortcuts": [ 12 | { 13 | "description": "Go to My List", 14 | "keys": ["G", "L"] 15 | }, 16 | { 17 | "description": "Go to Archive", 18 | "keys": ["G", "A"] 19 | }, 20 | { 21 | "description": "Go to Favorites", 22 | "keys": ["G", "F"] 23 | }, 24 | { 25 | "description": "Go to Articles", 26 | "keys": ["G", "R"] 27 | }, 28 | { 29 | "description": "Go to Highlights", 30 | "keys": ["G", "H"] 31 | }, 32 | { 33 | "description": "Go to Videos", 34 | "keys": ["G", "V"] 35 | }, 36 | { 37 | "description": "Go to All Tags", 38 | "keys": ["G", "T"] 39 | }, 40 | { 41 | "description": "Go to Search", 42 | "keys": ["G", "S"] 43 | }, 44 | { 45 | "description": "Bulk Edit", 46 | "keys": ["G", "B"] 47 | }, 48 | { 49 | "description": "Save a URL", 50 | "keys": ["G", "U"] 51 | }, 52 | { 53 | "description": "Sort by Newest", 54 | "keys": ["S", "N"] 55 | }, 56 | { 57 | "description": "Sort by Oldest", 58 | "keys": ["S", "O"] 59 | }, 60 | { 61 | "description": "List View", 62 | "keys": ["V", "L"] 63 | }, 64 | { 65 | "description": "Grid View", 66 | "keys": ["V", "G"] 67 | }, 68 | { 69 | "description": "Detail View", 70 | "keys": ["V", "D"] 71 | }, 72 | { 73 | "description": "Change to Light Theme", 74 | "keys": ["C", "L"] 75 | }, 76 | { 77 | "description": "Change to Dark Theme", 78 | "keys": ["C", "D"] 79 | }, 80 | { 81 | "description": "Change to Sepia Theme", 82 | "keys": ["C", "S"] 83 | }, 84 | { 85 | "description": "Open Help Overlay", 86 | "keys": ["?"] 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "Item Actions", 92 | "shortcuts": [ 93 | { 94 | "description": "Open the original in a new tab", 95 | "keys": ["O"] 96 | }, 97 | { 98 | "description": "Archive the selected item", 99 | "keys": ["A"] 100 | }, 101 | { 102 | "description": "Favorite the selected item", 103 | "keys": ["F"] 104 | }, 105 | { 106 | "description": "Tag the selected item", 107 | "keys": ["T"] 108 | }, 109 | { 110 | "description": "Delete the selected item", 111 | "keys": ["D"] 112 | }, 113 | { 114 | "description": "Select item in bulk edit", 115 | "keys": ["X"] 116 | }, 117 | { 118 | "description": "Select the next item", 119 | "keys": ["J"] 120 | }, 121 | { 122 | "description": "Select the previous item", 123 | "keys": ["K"] 124 | } 125 | ] 126 | }, 127 | { 128 | "name": "Article View", 129 | "shortcuts": [ 130 | { 131 | "description": "Increase the font size", 132 | "keys": ["Ctrl", "="] 133 | }, 134 | { 135 | "description": "Decrease the font size", 136 | "keys": ["Ctrl", "-"] 137 | }, 138 | { 139 | "description": "Toggle full screen mode", 140 | "keys": ["B"] 141 | }, 142 | { 143 | "description": "Edit tags", 144 | "keys": ["D"] 145 | }, 146 | { 147 | "description": "Archive the item", 148 | "keys": ["T"] 149 | }, 150 | { 151 | "description": "Favorite the item", 152 | "keys": ["F"] 153 | }, 154 | { 155 | "description": "View the original", 156 | "keys": ["O"] 157 | }, 158 | { 159 | "description": "Increase the column width (premium only)", 160 | "keys": ["Alt", "="] 161 | }, 162 | { 163 | "description": "Decrease the column width (premium only)", 164 | "keys": ["Alt", "-"] 165 | } 166 | ] 167 | } 168 | ] 169 | } -------------------------------------------------------------------------------- /content/postman.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "postman", 4 | "title": "Postman", 5 | "meta_title": "Keyboard shortcuts for Postman", 6 | "meta_description": "A visual cheat-sheet for the 23 keyboard shortcuts found in Postman", 7 | "reference_link": "https://learning.getpostman.com/docs/postman/launching_postman/keyboard_shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "Navigational Shortcuts", 11 | "shortcuts": [ 12 | { 13 | "description": "Focus Sidebar", 14 | "keys": ["Ctrl", "Alt", "1"] 15 | }, 16 | { 17 | "description": "Focus Builder", 18 | "keys": ["Ctrl", "Alt", "2"] 19 | }, 20 | { 21 | "description": "Focus on #th tab", 22 | "keys": ["Ctrl", "#"] 23 | }, 24 | { 25 | "description": "Switch between tabs", 26 | "keys": ["Ctrl", "Shift", "/"] 27 | }, 28 | { 29 | "description": "Move to next item", 30 | "keys": ["Down"] 31 | }, 32 | { 33 | "description": "Move to previous item", 34 | "keys": ["Up"] 35 | }, 36 | { 37 | "description": "Expand collection/folder", 38 | "keys": ["Right"] 39 | }, 40 | { 41 | "description": "Collapse collection/folder", 42 | "keys": ["Left"] 43 | }, 44 | { 45 | "description": "Select current AND next item", 46 | "keys": ["Shift", "Down"] 47 | }, 48 | { 49 | "description": "Select current AND previous item", 50 | "keys": ["Shift", "Up"] 51 | }, 52 | { 53 | "description": "Search sidebar", 54 | "keys": ["Ctrl", "F"] 55 | }, 56 | { 57 | "description": "Open request in a tab", 58 | "keys": ["Enter"] 59 | } 60 | ] 61 | }, 62 | { 63 | "name": "Manipulation Shortcuts", 64 | "shortcuts": [ 65 | { 66 | "description": "Copy", 67 | "keys": ["Ctrl", "C"] 68 | }, 69 | { 70 | "description": "Paste", 71 | "keys": ["Ctrl", "V"] 72 | }, 73 | { 74 | "description": "Delete", 75 | "keys": ["Delete"] 76 | }, 77 | { 78 | "description": "Duplicate", 79 | "keys": ["Ctrl", "D"] 80 | }, 81 | { 82 | "description": "Edit/Rename", 83 | "keys": ["Ctrl", "E"] 84 | } 85 | ] 86 | }, 87 | { 88 | "name": "Global Shortcuts", 89 | "shortcuts": [ 90 | { 91 | "description": "Save", 92 | "keys": ["Ctrl", "S"] 93 | }, 94 | { 95 | "description": "Save As", 96 | "keys": ["Ctrl", "Shift", "S"] 97 | }, 98 | { 99 | "description": "Send Request", 100 | "keys": ["Ctrl", "Enter"] 101 | }, 102 | { 103 | "description": "Toggle Sidebar", 104 | "keys": ["Ctrl", "\\"] 105 | }, 106 | { 107 | "description": "Jump to URL", 108 | "keys": ["Ctrl", "L"] 109 | }, 110 | { 111 | "description": "Open Console", 112 | "keys": ["Ctrl", "Alt", "C"] 113 | } 114 | ] 115 | } 116 | ] 117 | } 118 | -------------------------------------------------------------------------------- /content/principle.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "principle", 4 | "title": "Principle", 5 | "meta_title": "Keyboard shortcuts for Principle", 6 | "meta_description": "A visual cheat-sheet for the 30 keyboard shortcuts found in Principle. This application is MacOS-only.", 7 | "reference_link": "https://principleformac.com/docs.html#shortcuts", 8 | "mac_only": true, 9 | "sections": [ 10 | { 11 | "name": "Layers", 12 | "shortcuts": [ 13 | { 14 | "description": "Add rectangle", 15 | "keys": ["R"] 16 | }, 17 | { 18 | "description": "Add rectangle as a child", 19 | "keys": ["Opt", "R"] 20 | }, 21 | { 22 | "description": "Add text", 23 | "keys": ["T"] 24 | }, 25 | { 26 | "description": "Add text as a child", 27 | "keys": ["Opt", "T"] 28 | }, 29 | { 30 | "description": "Add artboard", 31 | "keys": ["A"] 32 | }, 33 | { 34 | "description": "Group", 35 | "keys": ["Cmd", "G"] 36 | }, 37 | { 38 | "description": "Ungroup", 39 | "keys": ["Cmd", "Shift", "G"] 40 | }, 41 | { 42 | "description": "Bring forward", 43 | "keys": ["Cmd", "]"] 44 | }, 45 | { 46 | "description": "Bring to front", 47 | "keys": ["Cmd", "Shift", "]"] 48 | }, 49 | { 50 | "description": "Send backward", 51 | "keys": ["Cmd", "["] 52 | }, 53 | { 54 | "description": "Send to back", 55 | "keys": ["Cmd", "Shift", "["] 56 | } 57 | ] 58 | }, 59 | { 60 | "name": "Editing", 61 | "shortcuts": [ 62 | { 63 | "description": "Nudge", 64 | "keys": ["(arrows)"] 65 | }, 66 | { 67 | "description": "Large nudge", 68 | "keys": ["Shift", "(arrows)"] 69 | }, 70 | { 71 | "description": "Duplicate", 72 | "keys": ["Cmd", "D"] 73 | }, 74 | { 75 | "description": "Rename layer", 76 | "keys": ["Cmd", "R"] 77 | } 78 | ] 79 | }, 80 | { 81 | "name": "Canvas Navigation", 82 | "shortcuts": [ 83 | { 84 | "description": "Pan", 85 | "keys": ["Space", "(drag)"] 86 | }, 87 | { 88 | "description": "Zoom in", 89 | "keys": ["Cmd", "="] 90 | }, 91 | { 92 | "description": "Zoom out", 93 | "keys": ["Cmd", "-"] 94 | }, 95 | { 96 | "description": "Zoom all", 97 | "keys": ["Cmd", "1"] 98 | }, 99 | { 100 | "description": "Zoom selection", 101 | "keys": ["Cmd", "2"] 102 | }, 103 | { 104 | "description": "Center selection", 105 | "keys": ["Cmd", "3"] 106 | }, 107 | { 108 | "description": "Zoom to actual size", 109 | "keys": ["Cmd", "0"] 110 | } 111 | ] 112 | }, 113 | { 114 | "name": "Selection", 115 | "shortcuts": [ 116 | { 117 | "description": "Select parent", 118 | "keys": ["Esc"] 119 | }, 120 | { 121 | "description": "Select child", 122 | "keys": ["Enter"] 123 | }, 124 | { 125 | "description": "Select next sibling", 126 | "keys": ["Tab"] 127 | }, 128 | { 129 | "description": "Select previous sibling", 130 | "keys": ["Shift", "Tab"] 131 | }, 132 | { 133 | "description": "Select all siblings", 134 | "keys": ["Cmd", "A"] 135 | } 136 | ] 137 | }, 138 | { 139 | "name": "Preview", 140 | "shortcuts": [ 141 | { 142 | "description": "Rewind prototype", 143 | "keys": ["W"] 144 | }, 145 | { 146 | "description": "Start recording video", 147 | "keys": ["Ctrl", "V"] 148 | }, 149 | { 150 | "description": "Start recording video without cursor", 151 | "keys": ["Ctrl", "Opt", "V"] 152 | } 153 | ] 154 | } 155 | ] 156 | } -------------------------------------------------------------------------------- /content/putty.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "putty", 4 | "title": "PuTTy", 5 | "meta_title": "Keyboard shortcuts for PuTTy", 6 | "meta_description": "A visual cheat-sheet for the 32 keyboard shortcuts found on the PuTTy app", 7 | "reference_link": "http://rizwanansari.net/putty-shell-keyboard-shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "General Shortcuts", 11 | "shortcuts": [ 12 | { 13 | "description": "Open context menu", 14 | "keys": ["Ctrl", "(right click)"] 15 | }, 16 | { 17 | "description": "Jump to the start of the line", 18 | "keys": ["Ctrl", "A"] 19 | }, 20 | { 21 | "description": "Move back a character", 22 | "keys": ["Ctrl", "B"] 23 | }, 24 | { 25 | "description": "Terminal the command", 26 | "keys": ["Ctrl", "C"] 27 | }, 28 | { 29 | "description": "Delete from under the cursor", 30 | "keys": ["Ctrl", "D"] 31 | }, 32 | { 33 | "description": "Jump to the end of the line", 34 | "keys": ["Ctrl", "E"] 35 | }, 36 | { 37 | "description": "Move forward a character", 38 | "keys": ["Ctrl", "F"] 39 | }, 40 | { 41 | "description": "Delete to end-of-line", 42 | "keys": ["Ctrl", "K"] 43 | }, 44 | { 45 | "description": "Clear the screen", 46 | "keys": ["Ctrl", "L"] 47 | }, 48 | { 49 | "description": "Search the history backwards", 50 | "keys": ["Ctrl", "R"] 51 | }, 52 | { 53 | "description": "Search the history backwards with multi occurrence", 54 | "keys": ["Ctrl", "Shift", "R"] 55 | }, 56 | { 57 | "description": "Delete backward from cursor", 58 | "keys": ["Ctrl", "U"] 59 | }, 60 | { 61 | "description": "Move between end-of-line and current cursor position", 62 | "keys": ["Ctrl", "X", "X"] 63 | }, 64 | { 65 | "description": "Show possible hostname completions", 66 | "keys": ["Ctrl", "X", "@"] 67 | }, 68 | { 69 | "description": "Suspend or stop the command", 70 | "keys": ["Ctrl", "Z"] 71 | }, 72 | { 73 | "description": "Move to the first line in the history", 74 | "keys": ["Alt", "Left"] 75 | }, 76 | { 77 | "description": "Move to the last line in the history", 78 | "keys": ["Alt", "Right"] 79 | }, 80 | { 81 | "description": "Show current completion list", 82 | "keys": ["Alt", "?"] 83 | }, 84 | { 85 | "description": "Insert all possible completions", 86 | "keys": ["Alt", "*"] 87 | }, 88 | { 89 | "description": "Attempt to complete filename", 90 | "keys": ["Alt", "/"] 91 | }, 92 | { 93 | "description": "Yank last argument to previous command", 94 | "keys": ["Alt", "."] 95 | }, 96 | { 97 | "description": "Move backward", 98 | "keys": ["Alt", "B"] 99 | }, 100 | { 101 | "description": "Capitalize the word", 102 | "keys": ["Alt", "C"] 103 | }, 104 | { 105 | "description": "Delete word", 106 | "keys": ["Alt", "D"] 107 | }, 108 | { 109 | "description": "Move forward", 110 | "keys": ["Alt", "F"] 111 | }, 112 | { 113 | "description": "Make word lowercase", 114 | "keys": ["Alt", "L"] 115 | }, 116 | { 117 | "description": "Search the history forwards non-incremental", 118 | "keys": ["Alt", "N"] 119 | }, 120 | { 121 | "description": "Search the history backwards non-incremental", 122 | "keys": ["Alt", "P"] 123 | }, 124 | { 125 | "description": "Recall command", 126 | "keys": ["Alt", "R"] 127 | }, 128 | { 129 | "description": "Move words around", 130 | "keys": ["Alt", "T"] 131 | }, 132 | { 133 | "description": "Make word uppercase", 134 | "keys": ["Alt", "U"] 135 | }, 136 | { 137 | "description": "Delete backwards from the cursor", 138 | "keys": ["Alt", "Backspace"] 139 | } 140 | ] 141 | } 142 | ] 143 | } -------------------------------------------------------------------------------- /content/reddit.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "reddit", 4 | "title": "Reddit", 5 | "meta_title": "Keyboard shortcuts for Reddit", 6 | "meta_description": "A visual cheat-sheet for the 17 keyboard shortcuts found on Reddit.com", 7 | "reference_link": "https://i.imgur.com/7644kEy.png", 8 | "sections": [ 9 | { 10 | "name": "Navigation", 11 | "shortcuts": [ 12 | { 13 | "description": "Show shortcuts", 14 | "keys": ["Shift", "?"] 15 | }, 16 | { 17 | "description": "Next post or comment", 18 | "keys": ["J"] 19 | }, 20 | { 21 | "description": "Previous post or comment", 22 | "keys": ["K"] 23 | }, 24 | { 25 | "description": "Next post in lightbox", 26 | "keys": ["N"] 27 | }, 28 | { 29 | "description": "Previous post in lightbox", 30 | "keys": ["P"] 31 | }, 32 | { 33 | "description": "Open post", 34 | "keys": ["Enter"] 35 | }, 36 | { 37 | "description": "Open or close expando", 38 | "keys": ["X"] 39 | }, 40 | { 41 | "description": "Go to post link", 42 | "keys": ["L"] 43 | } 44 | ] 45 | }, 46 | { 47 | "name": "Action", 48 | "shortcuts": [ 49 | { 50 | "description": "Upvote", 51 | "keys": ["A"] 52 | }, 53 | { 54 | "description": "Downvote", 55 | "keys": ["Z"] 56 | }, 57 | { 58 | "description": "New post", 59 | "keys": ["C"] 60 | }, 61 | { 62 | "description": "Reply to comments", 63 | "keys": ["R"] 64 | }, 65 | { 66 | "description": "Submit comment or post", 67 | "keys": ["Ctrl", "Enter"] 68 | }, 69 | { 70 | "description": "Save", 71 | "keys": ["S"] 72 | }, 73 | { 74 | "description": "Hide", 75 | "keys": ["H"] 76 | }, 77 | { 78 | "description": "Open navigation", 79 | "keys": ["Q"] 80 | }, 81 | { 82 | "description": "Collapse or expand comment", 83 | "keys": ["Enter"] 84 | } 85 | ] 86 | } 87 | ] 88 | } -------------------------------------------------------------------------------- /content/skype.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "skype", 4 | "title": "Skype", 5 | "meta_title": "Keyboard shortcuts for Skype", 6 | "meta_description": "A visual cheat-sheet for the 31 keyboard shortcuts found in Skype", 7 | "reference_link": "https://support.skype.com/en/faq/FA12025/what-are-keyboard-shortcuts-and-how-do-i-use-them-in-skype", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Open Notification panel", 14 | "keys": ["Ctrl", "Shift", "O"] 15 | }, 16 | { 17 | "description": "Open app settings", 18 | "keys": ["Ctrl", ","] 19 | }, 20 | { 21 | "description": "Launch main dial pad", 22 | "keys": ["Ctrl", "2"] 23 | }, 24 | { 25 | "description": "Start new conversation", 26 | "keys": ["Ctrl", "N"] 27 | }, 28 | { 29 | "description": "New group", 30 | "keys": ["Ctrl", "G"] 31 | }, 32 | { 33 | "description": "Find in current conversation", 34 | "keys": ["Ctrl", "F"] 35 | }, 36 | { 37 | "description": "Select next message in search results", 38 | "keys": ["Shift", "Enter"] 39 | }, 40 | { 41 | "description": "Select previous message in search results", 42 | "keys": ["Enter"] 43 | }, 44 | { 45 | "description": "Focus Message Composer", 46 | "keys": ["Ctrl", "Shift", "E"] 47 | }, 48 | { 49 | "description": "Search for People, Groups, and Messages", 50 | "keys": ["Ctrl", "Option", "S"] 51 | }, 52 | { 53 | "description": "Navigate to recent chats", 54 | "keys": ["Alt", "1"] 55 | }, 56 | { 57 | "description": "Open contacts", 58 | "keys": ["Ctrl", "Shift", "C"] 59 | }, 60 | { 61 | "description": "Open contact screen to bots", 62 | "keys": ["Ctrl", "Shift", "B"] 63 | }, 64 | { 65 | "description": "Send feedback", 66 | "keys": ["Ctrl", "Alt", "O"] 67 | }, 68 | { 69 | "description": "Refresh the app", 70 | "keys": ["Ctrl", "R"] 71 | }, 72 | { 73 | "description": "Open themes", 74 | "keys": ["Ctrl", "T"] 75 | }, 76 | { 77 | "description": "Toggle between light and dark mode", 78 | "keys": ["Ctrl", "Shift", "T"] 79 | }, 80 | { 81 | "description": "Zoom in, out, or actual size", 82 | "keys": ["Ctrl", "+/-/0"] 83 | }, 84 | { 85 | "description": "Edit the last message sent", 86 | "keys": ["Ctrl", "Shift", "E"] 87 | }, 88 | { 89 | "description": "Show conversation profile", 90 | "keys": ["Ctrl", "I"] 91 | }, 92 | { 93 | "description": "Add people to conversation or call", 94 | "keys": ["Ctrl", "Shift", "A"] 95 | }, 96 | { 97 | "description": "Hide conversation", 98 | "keys": ["Ctrl", "E"] 99 | }, 100 | { 101 | "description": "Mark as unread", 102 | "keys": ["Ctrl", "Shift", "U"] 103 | }, 104 | { 105 | "description": "Start video call or toggle video on/off", 106 | "keys": ["Ctrl", "Shift", "K"] 107 | }, 108 | { 109 | "description": "Select multiple messages in conversation", 110 | "keys": ["Ctrl", "Shift", "L"] 111 | }, 112 | { 113 | "description": "Start or answer audio call", 114 | "keys": ["Ctrl", "Shift", "R"] 115 | }, 116 | { 117 | "description": "Send a file", 118 | "keys": ["Ctrl", "Shift", "F"] 119 | }, 120 | { 121 | "description": "Open gallery", 122 | "keys": ["Ctrl", "Shift", "G"] 123 | }, 124 | { 125 | "description": "Take a snapshot", 126 | "keys": ["Ctrl", "S"] 127 | }, 128 | { 129 | "description": "Hang up", 130 | "keys": ["Ctrl", "Shift", "H"] 131 | }, 132 | { 133 | "description": "Toggle mute", 134 | "keys": ["Ctrl", "Shift", "M"] 135 | } 136 | ] 137 | } 138 | ] 139 | } -------------------------------------------------------------------------------- /content/soundcloud.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "soundcloud", 4 | "title": "SoundCloud", 5 | "meta_title": "Keyboard shortcuts for SoundCloud", 6 | "meta_description": "A visual cheat-sheet for the 22 keyboard shortcuts found on SoundCloud", 7 | "reference_link": "https://i.imgur.com/ZQf24je.png", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Play or pause", 14 | "keys": ["Space"] 15 | }, 16 | { 17 | "description": "Play next track", 18 | "keys": ["Shift", "Right"] 19 | }, 20 | { 21 | "description": "Repeat playing track", 22 | "keys": ["Shift", "L"] 23 | }, 24 | { 25 | "description": "Play previous track", 26 | "keys": ["Shift", "Left"] 27 | }, 28 | { 29 | "description": "Seek forward", 30 | "keys": ["Right"] 31 | }, 32 | { 33 | "description": "Like playing track", 34 | "keys": ["L"] 35 | }, 36 | { 37 | "description": "Repost playing track", 38 | "keys": ["R"] 39 | }, 40 | { 41 | "description": "Search", 42 | "keys": ["S"] 43 | }, 44 | { 45 | "description": "Navigate to likes", 46 | "keys": ["G", "L"] 47 | }, 48 | { 49 | "description": "Navigate to library", 50 | "keys": ["G", "C"] 51 | }, 52 | { 53 | "description": "Navigate to history", 54 | "keys": ["G", "H"] 55 | }, 56 | { 57 | "description": "Shuffle", 58 | "keys": ["Shift", "S"] 59 | }, 60 | { 61 | "description": "Decrease volume", 62 | "keys": ["Shift", "Down"] 63 | }, 64 | { 65 | "description": "Increase volume", 66 | "keys": ["Shift", "Up"] 67 | }, 68 | { 69 | "description": "Mute volume", 70 | "keys": ["M"] 71 | }, 72 | { 73 | "description": "Seek backwards", 74 | "keys": ["Left"] 75 | }, 76 | { 77 | "description": "Seek to position", 78 | "keys": ["0-9"] 79 | }, 80 | { 81 | "description": "Navigate to playing track", 82 | "keys": ["P"] 83 | }, 84 | { 85 | "description": "Show keyboard shortcuts", 86 | "keys": ["H"] 87 | }, 88 | { 89 | "description": "Navigate to stream", 90 | "keys": ["G", "S"] 91 | }, 92 | { 93 | "description": "Navigate to profile", 94 | "keys": ["G", "P"] 95 | }, 96 | { 97 | "description": "Show next up", 98 | "keys": ["Q"] 99 | } 100 | ] 101 | } 102 | ] 103 | } -------------------------------------------------------------------------------- /content/spotify.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "spotify", 4 | "title": "Spotify", 5 | "meta_title": "Keyboard shortcuts for Spotify", 6 | "meta_description": "A visual cheat-sheet for the 23 keyboard shortcuts found in Spotify", 7 | "reference_link": "https://support.spotify.com/is/using_spotify/system_settings/keyboard-shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Create new playlist", 14 | "keys": ["Ctrl", "N"] 15 | }, 16 | { 17 | "description": "Cut", 18 | "keys": ["Ctrl", "X"] 19 | }, 20 | { 21 | "description": "Copy", 22 | "keys": ["Ctrl", "C"] 23 | }, 24 | { 25 | "description": "Copy (alternative link)", 26 | "keys": ["Ctrl", "Alt", "C"] 27 | }, 28 | { 29 | "description": "Paste", 30 | "keys": ["Ctrl", "V"] 31 | }, 32 | { 33 | "description": "Delete", 34 | "keys": ["Del"] 35 | }, 36 | { 37 | "description": "Select all", 38 | "keys": ["Ctrl", "A"] 39 | }, 40 | { 41 | "description": "Play/pause", 42 | "keys": ["Space"] 43 | }, 44 | { 45 | "description": "Next track", 46 | "keys": ["Ctrl", "Right"] 47 | }, 48 | { 49 | "description": "Previous track", 50 | "keys": ["Ctrl", "Left"] 51 | }, 52 | { 53 | "description": "Volume up", 54 | "keys": ["Ctrl", "Up"] 55 | }, 56 | { 57 | "description": "Volume down", 58 | "keys": ["Ctrl", "Down"] 59 | }, 60 | { 61 | "description": "Mute", 62 | "keys": ["Ctrl", "Shift", "Down"] 63 | }, 64 | { 65 | "description": "Max volume", 66 | "keys": ["Ctrl", "Shift", "Up"] 67 | }, 68 | { 69 | "description": "Show help", 70 | "keys": ["F1"] 71 | }, 72 | { 73 | "description": "Filter (in Songs and Playlists)", 74 | "keys": ["Ctrl", "F"] 75 | }, 76 | { 77 | "description": "Give focus to search field", 78 | "keys": ["Ctrl", "L"] 79 | }, 80 | { 81 | "description": "Go back", 82 | "keys": ["Alt", "Left"] 83 | }, 84 | { 85 | "description": "Go forward", 86 | "keys": ["Alt", "Right"] 87 | }, 88 | { 89 | "description": "Play selected row", 90 | "keys": ["Enter"] 91 | }, 92 | { 93 | "description": "Preferences", 94 | "keys": ["Ctrl", "P"] 95 | }, 96 | { 97 | "description": "Logout active user", 98 | "keys": ["Ctrl", "Shift", "W"] 99 | }, 100 | { 101 | "description": "Quit", 102 | "keys": ["Alt", "F4"] 103 | } 104 | ] 105 | } 106 | ] 107 | } -------------------------------------------------------------------------------- /content/tableplus.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "table-plus", 4 | "title": "TablePlus", 5 | "meta_title": "Keyboard shortcuts for TablePlus app", 6 | "meta_description": "A visual cheat-sheet for the 34 keyboard shortcuts found in TablePlus", 7 | "reference_link": "https://tableplus.com/blog/2018/02/shortcut-keys.html", 8 | "sections": [ 9 | { 10 | "name": "Global", 11 | "shortcuts": [ 12 | { 13 | "description": "Open a new connection", 14 | "keys": ["Ctrl", "N"] 15 | }, 16 | { 17 | "description": "Quit app", 18 | "keys": ["Ctrl", "Q"] 19 | }, 20 | { 21 | "description": "Open SQL file", 22 | "keys": ["Ctrl", "Shift", "O"] 23 | }, 24 | { 25 | "description": "Open Preferences", 26 | "keys": ["Ctrl", ","] 27 | } 28 | ] 29 | }, 30 | { 31 | "name": "Workspace", 32 | "shortcuts": [ 33 | { 34 | "description": "Close a tab/window", 35 | "keys": ["Ctrl", "W"] 36 | }, 37 | { 38 | "description": "Commit the changes", 39 | "keys": ["Ctrl", "S"] 40 | }, 41 | { 42 | "description": "Open a new tab", 43 | "keys": ["Ctrl", "T"] 44 | }, 45 | { 46 | "description": "Open plugin manager", 47 | "keys": ["Ctrl", "L"] 48 | }, 49 | { 50 | "description": "Run custom script", 51 | "keys": ["Ctrl", "."] 52 | }, 53 | { 54 | "description": "Reload workspace", 55 | "keys": ["Ctrl", "R"] 56 | }, 57 | { 58 | "description": "Navigate to left tab", 59 | "keys": ["Ctrl", "["] 60 | }, 61 | { 62 | "description": "Navigate to right tab", 63 | "keys": ["Ctrl", "]"] 64 | }, 65 | { 66 | "description": "Navigate to left Pane", 67 | "keys": ["Ctrl", "Shift", "["] 68 | }, 69 | { 70 | "description": "Navigate to right Pane", 71 | "keys": ["Ctrl", "Shift", "]"] 72 | }, 73 | { 74 | "description": "Split Pane horizontally", 75 | "keys": ["Ctrl", "D"] 76 | }, 77 | { 78 | "description": "Navigate to number tab", 79 | "keys": ["Ctrl", "1-9"] 80 | }, 81 | { 82 | "description": "Switch database", 83 | "keys": ["Ctrl", "K"] 84 | }, 85 | { 86 | "description": "Switch connection", 87 | "keys": ["Ctrl", "Shift", "K"] 88 | }, 89 | { 90 | "description": "Indent selected SQL Code", 91 | "keys": ["Ctrl", "I"] 92 | }, 93 | { 94 | "description": "Execute SQL Code", 95 | "keys": ["Ctrl", "E"] 96 | }, 97 | { 98 | "description": "Open file SQL", 99 | "keys": ["Ctrl", "O"] 100 | }, 101 | { 102 | "description": "Uglify selected SQL statements", 103 | "keys": ["Ctrl", "Shift", "Enter"] 104 | }, 105 | { 106 | "description": "Comment/Uncomment lines of SQL", 107 | "keys": ["Ctrl", "\\"] 108 | }, 109 | { 110 | "description": "Undo", 111 | "keys": ["Ctrl", "Z"] 112 | }, 113 | { 114 | "description": "Redo", 115 | "keys": ["Ctrl", "Shift", "Z"] 116 | }, 117 | { 118 | "description": "Open anything", 119 | "keys": ["Ctrl", "P"] 120 | }, 121 | { 122 | "description": "Open SQL Query", 123 | "keys": ["Ctrl", "E"] 124 | }, 125 | { 126 | "description": "Open item in new tab", 127 | "keys": ["Ctrl", "(click)"] 128 | }, 129 | { 130 | "description": "Move focus while editing", 131 | "keys": ["Tab"] 132 | } 133 | ] 134 | }, 135 | { 136 | "name": "Table Data", 137 | "shortcuts": [ 138 | { 139 | "description": "Toggle row detail when row selected", 140 | "keys": ["Space"] 141 | }, 142 | { 143 | "description": "Copy rows", 144 | "keys": ["Ctrl", "C"] 145 | }, 146 | { 147 | "description": "Paste rows", 148 | "keys": ["Ctrl", "V"] 149 | }, 150 | { 151 | "description": "Insert a new row", 152 | "keys": ["Ctrl", "Alt", "I"] 153 | }, 154 | { 155 | "description": "Move focus while editing", 156 | "keys": ["Tab"] 157 | } 158 | ] 159 | } 160 | ] 161 | } -------------------------------------------------------------------------------- /content/telegram.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "telegram", 4 | "title": "Telegram Desktop", 5 | "meta_title": "Keyboard shortcuts for Telegram Desktop", 6 | "meta_description": "A visual cheat-sheet for the 37 keyboard shortcuts found on the Telegram Desktop app", 7 | "reference_link": "https://github.com/telegramdesktop/tdesktop/wiki/Keyboard-Shortcuts", 8 | "sections": [ 9 | { 10 | "name": "Chats", 11 | "shortcuts": [ 12 | { 13 | "description": "In-Chat Navigation", 14 | "keys": ["Up/Down"] 15 | }, 16 | { 17 | "description": "Suggested Stickers Navigation", 18 | "keys": ["Up/Down/Left/Right"] 19 | }, 20 | { 21 | "description": "Suggested Emojis Navigation", 22 | "keys": ["Left/Right"] 23 | }, 24 | { 25 | "description": "Move to the Chat Below", 26 | "keys": ["Ctrl", "Tab"] 27 | }, 28 | { 29 | "description": "Move to the Chat Above", 30 | "keys": ["Ctrl", "Shift", "Tab"] 31 | }, 32 | { 33 | "description": "Exit", 34 | "keys": ["Esc"] 35 | }, 36 | { 37 | "description": "Go Back", 38 | "keys": ["Esc"] 39 | }, 40 | { 41 | "description": "Cancel Current Action", 42 | "keys": ["Esc"] 43 | }, 44 | { 45 | "description": "Send File", 46 | "keys": ["Ctrl", "O"] 47 | } 48 | ] 49 | }, 50 | { 51 | "name": "Messages", 52 | "shortcuts": [ 53 | { 54 | "description": "Reply to a Message", 55 | "keys": ["Ctrl", "Up/Down"] 56 | }, 57 | { 58 | "description": "Cancel Reply", 59 | "keys": ["Ctrl", "Down"] 60 | }, 61 | { 62 | "description": "Edit Last Message Sent", 63 | "keys": ["Up"] 64 | }, 65 | { 66 | "description": "Delete Currently Selected Message", 67 | "keys": ["Del"] 68 | }, 69 | { 70 | "description": "Edit Media", 71 | "keys": ["Ctrl", "E"] 72 | }, 73 | { 74 | "description": "Send GIF Directly", 75 | "keys": ["Ctrl", "(click gif)"] 76 | }, 77 | { 78 | "description": "Open Bot Profile via Inline Message", 79 | "keys": ["Ctrl", "(click name)"] 80 | } 81 | ] 82 | }, 83 | { 84 | "name": "Search", 85 | "shortcuts": [ 86 | { 87 | "description": "Search Selected Chat", 88 | "keys": ["Ctrl", "F"] 89 | }, 90 | { 91 | "description": "Exit Search", 92 | "keys": ["Esc"] 93 | } 94 | ] 95 | }, 96 | { 97 | "name": "QuickShare Panel", 98 | "shortcuts": [ 99 | { 100 | "description": "Navigate", 101 | "keys": ["Up/Down"] 102 | }, 103 | { 104 | "description": "Select Chat", 105 | "keys": ["Enter"] 106 | }, 107 | { 108 | "description": "Remove Chat", 109 | "keys": ["Backspace"] 110 | }, 111 | { 112 | "description": "Send Message", 113 | "keys": ["Ctrl", "Enter"] 114 | } 115 | ] 116 | }, 117 | { 118 | "name": "Jump to", 119 | "shortcuts": [ 120 | { 121 | "description": "Jump to the bottom of the chat", 122 | "keys": ["Alt", "Enter"] 123 | }, 124 | { 125 | "description": "Scroll the chat list to the top", 126 | "keys": ["Alt", "Enter"] 127 | }, 128 | { 129 | "description": "Jump to your saved messages", 130 | "keys": ["Ctrl", "0"] 131 | }, 132 | { 133 | "description": "Jump between folders", 134 | "keys": ["Ctrl", "1-5"] 135 | }, 136 | { 137 | "description": "Jump to the next folder", 138 | "keys": ["Ctrl", "Shift", "Down"] 139 | }, 140 | { 141 | "description": "Jump to the previous folder", 142 | "keys": ["Ctrl", "Shift", "Up"] 143 | } 144 | ] 145 | }, 146 | { 147 | "name": "Window Related", 148 | "shortcuts": [ 149 | { 150 | "description": "Minimize to System Tray", 151 | "keys": ["Ctrl", "W"] 152 | }, 153 | { 154 | "description": "Quit Telegram", 155 | "keys": ["Ctrl", "Q"] 156 | }, 157 | { 158 | "description": "Lock Telegram", 159 | "keys": ["Ctrl", "L"] 160 | }, 161 | { 162 | "description": "Minimize Telegram", 163 | "keys": ["Ctrl", "M"] 164 | } 165 | ] 166 | }, 167 | { 168 | "name": "Selected Text", 169 | "shortcuts": [ 170 | { 171 | "description": "Bold", 172 | "keys": ["Ctrl", "B"] 173 | }, 174 | { 175 | "description": "Italic", 176 | "keys": ["Ctrl", "I"] 177 | }, 178 | { 179 | "description": "Create Link", 180 | "keys": ["Ctrl", "K"] 181 | }, 182 | { 183 | "description": "Underline", 184 | "keys": ["Ctrl", "U"] 185 | }, 186 | { 187 | "description": "Monospace", 188 | "keys": ["Ctrl", "Shift", "M"] 189 | }, 190 | { 191 | "description": "Null / Plain Text", 192 | "keys": ["Ctrl", "Shift", "N"] 193 | }, 194 | { 195 | "description": "Strikethrough", 196 | "keys": ["Ctrl", "Shift", "X"] 197 | } 198 | ] 199 | } 200 | ] 201 | } -------------------------------------------------------------------------------- /content/ticktick.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "ticktick", 4 | "title": "TickTick", 5 | "meta_title": "Keyboard shortcuts for TickTick", 6 | "meta_description": "A visual cheat-sheet for the 25 keyboard shortcuts found in the TickTick desktop app", 7 | "reference_link": "https://support.ticktick.com/hc/en-us/articles/360016272252-Shortcuts", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Show quick add bar", 14 | "keys": ["Ctrl", "Shift", "A"] 15 | }, 16 | { 17 | "description": "Show or hide mini window", 18 | "keys": ["Ctrl", "Shift", "L"] 19 | }, 20 | { 21 | "description": "Start or abandon pomo", 22 | "keys": ["Ctrl", "Shift", "P"] 23 | }, 24 | { 25 | "description": "Sync task", 26 | "keys": ["Ctrl", "S"] 27 | }, 28 | { 29 | "description": "Search for a task", 30 | "keys": ["Ctrl", "F"] 31 | }, 32 | { 33 | "description": "Add task", 34 | "keys": ["Ctrl", "N"] 35 | }, 36 | { 37 | "description": "Complete task", 38 | "keys": ["Ctrl", "Shift", "M"] 39 | }, 40 | { 41 | "description": "Clear date", 42 | "keys": ["Ctrl", "0"] 43 | }, 44 | { 45 | "description": "Set date", 46 | "keys": ["Ctrl", "D"] 47 | }, 48 | { 49 | "description": "Set today", 50 | "keys": ["Ctrl", "1"] 51 | }, 52 | { 53 | "description": "Set tomorrow", 54 | "keys": ["Ctrl", "2"] 55 | }, 56 | { 57 | "description": "Set next week", 58 | "keys": ["Ctrl", "3"] 59 | }, 60 | { 61 | "description": "Set no priority", 62 | "keys": ["Ctrl", "0"] 63 | }, 64 | { 65 | "description": "Set low priority", 66 | "keys": ["Ctrl", "1"] 67 | }, 68 | { 69 | "description": "Set medium priority", 70 | "keys": ["Ctrl", "2"] 71 | }, 72 | { 73 | "description": "Set high priority", 74 | "keys": ["Ctrl", "3"] 75 | }, 76 | { 77 | "description": "Print", 78 | "keys": ["Ctrl", "P"] 79 | }, 80 | { 81 | "description": "Open today's list", 82 | "keys": ["Ctrl", "Alt", "T"] 83 | }, 84 | { 85 | "description": "Open tomorrow's list", 86 | "keys": ["Ctrl", "Opt", "T"] 87 | }, 88 | { 89 | "description": "Open next 7 days list", 90 | "keys": ["Ctrl", "Alt", "N"] 91 | }, 92 | { 93 | "description": "Open all list", 94 | "keys": ["Ctrl", "Alt", "A"] 95 | }, 96 | { 97 | "description": "Open the calendar view", 98 | "keys": ["Ctrl", "Alt", "C"] 99 | }, 100 | { 101 | "description": "Open the assigned to me list", 102 | "keys": ["Ctrl", "Alt", "A"] 103 | }, 104 | { 105 | "description": "Open the inbox", 106 | "keys": ["Ctrl", "Alt", "1"] 107 | }, 108 | { 109 | "description": "Open completed tasks", 110 | "keys": ["Ctrl", "Alt", "C"] 111 | } 112 | ] 113 | } 114 | ] 115 | } -------------------------------------------------------------------------------- /content/trello.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "trello", 4 | "title": "Trello", 5 | "meta_title": "Keyboard shortcuts for Trello", 6 | "meta_description": "A visual cheat-sheet for the 29 keyboard shortcuts found on Trello", 7 | "reference_link": "https://trello.com/shortcuts", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Navigate Cards", 14 | "keys": ["Up/Down/Left/Right"] 15 | }, 16 | { 17 | "description": "Open Header Boards Menu", 18 | "keys": ["B"] 19 | }, 20 | { 21 | "description": "Focus Search Box", 22 | "keys": ["/"] 23 | }, 24 | { 25 | "description": "Archive Card", 26 | "keys": ["C"] 27 | }, 28 | { 29 | "description": "Due Date", 30 | "keys": ["D"] 31 | }, 32 | { 33 | "description": "Quick Edit Mode", 34 | "keys": ["E"] 35 | }, 36 | { 37 | "description": "Close Menu/Cancel Editing", 38 | "keys": ["Esc"] 39 | }, 40 | { 41 | "description": "Save Text", 42 | "keys": ["Ctrl", "Enter"] 43 | }, 44 | { 45 | "description": "Open Card", 46 | "keys": ["Enter"] 47 | }, 48 | { 49 | "description": "Open Card Filter Menu", 50 | "keys": ["F"] 51 | }, 52 | { 53 | "description": "Label", 54 | "keys": ["L"] 55 | }, 56 | { 57 | "description": "Toggle Label Names", 58 | "keys": [";"] 59 | }, 60 | { 61 | "description": "Add/Remove Members", 62 | "keys": ["M"] 63 | }, 64 | { 65 | "description": "Insert New Card", 66 | "keys": ["N"] 67 | }, 68 | { 69 | "description": "Move Card to Adjacent List", 70 | "keys": [",/./"] 71 | }, 72 | { 73 | "description": "My Cards Filter", 74 | "keys": ["Q"] 75 | }, 76 | { 77 | "description": "Watch", 78 | "keys": ["S"] 79 | }, 80 | { 81 | "description": "Assign Self", 82 | "keys": ["Space"] 83 | }, 84 | { 85 | "description": "Edit Title", 86 | "keys": ["T"] 87 | }, 88 | { 89 | "description": "Vote", 90 | "keys": ["V"] 91 | }, 92 | { 93 | "description": "Toggle Board Menu", 94 | "keys": ["W"] 95 | }, 96 | { 97 | "description": "Clear All Filters", 98 | "keys": ["X"] 99 | }, 100 | { 101 | "description": "Open Shortcuts Page", 102 | "keys": ["?"] 103 | }, 104 | { 105 | "description": "Autocomplete Members", 106 | "keys": ["Shift", "2"] 107 | }, 108 | { 109 | "description": "Autocomplete Labels", 110 | "keys": ["Shift", "3"] 111 | }, 112 | { 113 | "description": "Autocomplete Position", 114 | "keys": ["Shift", "6"] 115 | }, 116 | { 117 | "description": "Copy Card", 118 | "keys": ["Ctrl", "C"] 119 | }, 120 | { 121 | "description": "Paste Card", 122 | "keys": ["Ctrl", "V"] 123 | }, 124 | { 125 | "description": "Move Card", 126 | "keys": ["Ctrl", "X"] 127 | } 128 | ] 129 | } 130 | ] 131 | } -------------------------------------------------------------------------------- /content/twitter.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "twitter", 4 | "title": "Twitter", 5 | "meta_title": "Keyboard shortcuts for Twitter", 6 | "meta_description": "A visual cheat-sheet for the 26 keyboard shortcuts found on Twitter", 7 | "reference_link": "https://help.twitter.com/en/using-twitter/how-to-tweet", 8 | "sections": [ 9 | { 10 | "name": "Actions", 11 | "shortcuts": [ 12 | { 13 | "description": "New tweet", 14 | "keys": ["N"] 15 | }, 16 | { 17 | "description": "Like tweet", 18 | "keys": ["L"] 19 | }, 20 | { 21 | "description": "Reply to tweet", 22 | "keys": ["R"] 23 | }, 24 | { 25 | "description": "Retweet", 26 | "keys": ["T"] 27 | }, 28 | { 29 | "description": "Direct message", 30 | "keys": ["M"] 31 | }, 32 | { 33 | "description": "Mute account", 34 | "keys": ["U"] 35 | }, 36 | { 37 | "description": "Block account", 38 | "keys": ["B"] 39 | }, 40 | { 41 | "description": "Open tweet details", 42 | "keys": ["Enter"] 43 | }, 44 | { 45 | "description": "Expand photos", 46 | "keys": ["O"] 47 | }, 48 | { 49 | "description": "Search", 50 | "keys": ["/"] 51 | }, 52 | { 53 | "description": "Send tweet", 54 | "keys": ["Ctrl", "Enter"] 55 | } 56 | ] 57 | }, 58 | { 59 | "name": "Navigation", 60 | "shortcuts": [ 61 | { 62 | "description": "Full keyboard menu", 63 | "keys": ["?"] 64 | }, 65 | { 66 | "description": "Next tweet", 67 | "keys": ["J"] 68 | }, 69 | { 70 | "description": "Previous tweet", 71 | "keys": ["K"] 72 | }, 73 | { 74 | "description": "Page down", 75 | "keys": ["Space"] 76 | }, 77 | { 78 | "description": "Load new tweets", 79 | "keys": ["."] 80 | } 81 | ] 82 | }, 83 | { 84 | "name": "Timelines", 85 | "shortcuts": [ 86 | { 87 | "description": "Home timeline", 88 | "keys": ["G", "N"] 89 | }, 90 | { 91 | "description": "Moments", 92 | "keys": ["G", "O"] 93 | }, 94 | { 95 | "description": "Notifications tab", 96 | "keys": ["G", "N"] 97 | }, 98 | { 99 | "description": "Mentions", 100 | "keys": ["G", "R"] 101 | }, 102 | { 103 | "description": "Profile", 104 | "keys": ["G", "P"] 105 | }, 106 | { 107 | "description": "Likes tab", 108 | "keys": ["G", "L"] 109 | }, 110 | { 111 | "description": "Lists tab", 112 | "keys": ["G", "I"] 113 | }, 114 | { 115 | "description": "Direct messages", 116 | "keys": ["G", "M"] 117 | }, 118 | { 119 | "description": "Settings and privacy", 120 | "keys": ["G", "S"] 121 | }, 122 | { 123 | "description": "Go to someone's profile", 124 | "keys": ["G", "U"] 125 | } 126 | ] 127 | } 128 | ] 129 | } -------------------------------------------------------------------------------- /content/wordpress.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "wordpress", 4 | "title": "WordPress", 5 | "meta_title": "Keyboard shortcuts for WordPress", 6 | "meta_description": "A visual cheat-sheet for the 34 keyboard shortcuts found in the WordPress visual editor", 7 | "reference_link": "https://wordpress.org/support/article/keyboard-shortcuts/", 8 | "sections": [ 9 | { 10 | "name": "Editor", 11 | "shortcuts": [ 12 | { 13 | "description": "Copy", 14 | "keys": ["Ctrl", "C"] 15 | }, 16 | { 17 | "description": "Paste", 18 | "keys": ["Ctrl", "V"] 19 | }, 20 | { 21 | "description": "Select all", 22 | "keys": ["Ctrl", "A"] 23 | }, 24 | { 25 | "description": "Cut", 26 | "keys": ["Ctrl", "X"] 27 | }, 28 | { 29 | "description": "Undo", 30 | "keys": ["Ctrl", "Z"] 31 | }, 32 | { 33 | "description": "Redo", 34 | "keys": ["Ctrl", "Y"] 35 | }, 36 | { 37 | "description": "Bold", 38 | "keys": ["Ctrl", "B"] 39 | }, 40 | { 41 | "description": "Italic", 42 | "keys": ["Ctrl", "I"] 43 | }, 44 | { 45 | "description": "Underline", 46 | "keys": ["Ctrl", "U"] 47 | }, 48 | { 49 | "description": "Insert or edit a link", 50 | "keys": ["Ctrl", "K"] 51 | }, 52 | { 53 | "description": "Check spelling, this requires a plugin", 54 | "keys": ["Alt", "Shift", "N"], 55 | "mac_keys": ["Ctrl", "Opt", "N"] 56 | }, 57 | { 58 | "description": "Align text left", 59 | "keys": ["Alt", "Shift", "L"], 60 | "mac_keys": ["Ctrl", "Opt", "L"] 61 | }, 62 | { 63 | "description": "Justify text", 64 | "keys": ["Alt", "Shift", "J"], 65 | "mac_keys": ["Ctrl", "Opt", "J"] 66 | }, 67 | { 68 | "description": "Align text center", 69 | "keys": ["Alt", "Shift", "C"], 70 | "mac_keys": ["Ctrl", "Opt", "C"] 71 | }, 72 | { 73 | "description": "Strikethrough", 74 | "keys": ["Alt", "Shift", "D"], 75 | "mac_keys": ["Ctrl", "Opt", "D"] 76 | }, 77 | { 78 | "description": "Align text right", 79 | "keys": ["Alt", "Shift", "R"], 80 | "mac_keys": ["Ctrl", "Opt", "R"] 81 | }, 82 | { 83 | "description": "Unordered list", 84 | "keys": ["Alt", "Shift", "U"], 85 | "mac_keys": ["Ctrl", "Opt", "U"] 86 | }, 87 | { 88 | "description": "Insert a link", 89 | "keys": ["Alt", "Shift", "A"], 90 | "mac_keys": ["Ctrl", "Opt", "A"] 91 | }, 92 | { 93 | "description": "Ordered list", 94 | "keys": ["Alt", "Shift", "O"], 95 | "mac_keys": ["Ctrl", "Opt", "O"] 96 | }, 97 | { 98 | "description": "Remove a link", 99 | "keys": ["Alt", "Shift", "S"], 100 | "mac_keys": ["Ctrl", "Opt", "S"] 101 | }, 102 | { 103 | "description": "Quote", 104 | "keys": ["Alt", "Shift", "Q"], 105 | "mac_keys": ["Ctrl", "Opt", "Q"] 106 | }, 107 | { 108 | "description": "Insert an image", 109 | "keys": ["Alt", "Shift", "M"], 110 | "mac_keys": ["Ctrl", "Opt", "M"] 111 | }, 112 | { 113 | "description": "Distraction free writing mode", 114 | "keys": ["Alt", "Shift", "W"], 115 | "mac_keys": ["Ctrl", "Opt", "W"] 116 | }, 117 | { 118 | "description": "Insert a more tag", 119 | "keys": ["Alt", "Shift", "T"], 120 | "mac_keys": ["Ctrl", "Opt", "T"] 121 | }, 122 | { 123 | "description": "Insert a page break tag", 124 | "keys": ["Alt", "Shift", "P"], 125 | "mac_keys": ["Ctrl", "Opt", "P"] 126 | }, 127 | { 128 | "description": "Help", 129 | "keys": ["Alt", "Shift", "H"], 130 | "mac_keys": ["Ctrl", "Opt", "H"] 131 | }, 132 | { 133 | "description": "Add or remove a code tag", 134 | "keys": ["Alt", "Shift", "X"], 135 | "mac_keys": ["Ctrl", "Opt", "X"] 136 | }, 137 | { 138 | "description": "Heading one", 139 | "keys": ["Alt", "Shift", "1"], 140 | "mac_keys": ["Ctrl", "Opt", "1"] 141 | }, 142 | { 143 | "description": "Heading two", 144 | "keys": ["Alt", "Shift", "2"], 145 | "mac_keys": ["Ctrl", "Opt", "2"] 146 | }, 147 | { 148 | "description": "Heading three", 149 | "keys": ["Alt", "Shift", "3"], 150 | "mac_keys": ["Ctrl", "Opt", "3"] 151 | }, 152 | { 153 | "description": "Heading four", 154 | "keys": ["Alt", "Shift", "4"], 155 | "mac_keys": ["Ctrl", "Opt", "4"] 156 | }, 157 | { 158 | "description": "Heading five", 159 | "keys": ["Alt", "Shift", "5"], 160 | "mac_keys": ["Ctrl", "Opt", "5"] 161 | }, 162 | { 163 | "description": "Heading six", 164 | "keys": ["Alt", "Shift", "6"], 165 | "mac_keys": ["Ctrl", "Opt", "6"] 166 | }, 167 | { 168 | "description": "Insert an address", 169 | "keys": ["Alt", "Shift", "9"], 170 | "mac_keys": ["Ctrl", "Opt", "9"] 171 | } 172 | ] 173 | } 174 | ] 175 | } -------------------------------------------------------------------------------- /content/youtube.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "youtube", 4 | "title": "YouTube", 5 | "meta_title": "Keyboard shortcuts for YouTube", 6 | "meta_description": "A visual cheat-sheet for the 18 keyboard shortcuts found on YouTube.com", 7 | "reference_link": "https://support.google.com/youtube/answer/7631406?hl=en", 8 | "sections": [ 9 | { 10 | "name": "General", 11 | "shortcuts": [ 12 | { 13 | "description": "Play/Pause when the seek bar is selected, activate a button if a button has focus", 14 | "keys": ["Space"] 15 | }, 16 | { 17 | "description": "Play/Pause in player", 18 | "keys": ["K"] 19 | }, 20 | { 21 | "description": "Seek backward/forward 5 seconds", 22 | "keys": ["Left/Right"] 23 | }, 24 | { 25 | "description": "Seek backward 10 seconds in player", 26 | "keys": ["J"] 27 | }, 28 | { 29 | "description": "Seek forward 10 seconds in player", 30 | "keys": ["L"] 31 | }, 32 | { 33 | "description": "Seek to the beginning of the video", 34 | "keys": ["Home"] 35 | }, 36 | { 37 | "description": "Seek to the last seconds of the video", 38 | "keys": ["End"] 39 | }, 40 | { 41 | "description": "Increase volume 5%", 42 | "keys": ["Up"] 43 | }, 44 | { 45 | "description": "Decrease volume 5%", 46 | "keys": ["Down"] 47 | }, 48 | { 49 | "description": "Seek to the 10-90% of the video", 50 | "keys": ["1-9"] 51 | }, 52 | { 53 | "description": "Seek to the beginning of the video", 54 | "keys": ["0"] 55 | }, 56 | { 57 | "description": "Move between H1 headers", 58 | "keys": ["Shift", "1"] 59 | }, 60 | { 61 | "description": "Go to search box", 62 | "keys": ["/"] 63 | }, 64 | { 65 | "description": "Activate full screen, press again (or Esc) to exit", 66 | "keys": ["F"] 67 | }, 68 | { 69 | "description": "Activate closed captions and subtitles, press again to hide", 70 | "keys": ["C"] 71 | }, 72 | { 73 | "description": "Move to the next video", 74 | "keys": ["Shift", "N"] 75 | }, 76 | { 77 | "description": "Move to the previous video", 78 | "keys": ["Shift", "P"] 79 | }, 80 | { 81 | "description": "Launch the Miniplayer", 82 | "keys": ["I"] 83 | }, 84 | { 85 | "description": "Move forward a single frame (while paused)", 86 | "keys": ["."] 87 | }, 88 | { 89 | "description": "Move back a single frame (while paused)", 90 | "keys": [","] 91 | } 92 | ] 93 | } 94 | ] 95 | } -------------------------------------------------------------------------------- /content/zoom-mac.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "zoom-mac", 4 | "title": "Zoom for Mac", 5 | "meta_title": "Keyboard shortcuts for Zoom on MacOS", 6 | "meta_description": "A visual cheat-sheet for the 32 keyboard shortcuts found in Zoom. These shortcuts are for MacOS, for Windows visit /zoom-windows.", 7 | "reference_link": "https://support.zoom.us/hc/en-us/articles/205683899-Hot-Keys-and-Keyboard-Shortcuts-for-Zoom", 8 | "mac_only": true, 9 | "sections": [ 10 | { 11 | "name": "Meetings", 12 | "shortcuts": [ 13 | { 14 | "description": "Join meeting", 15 | "keys": ["Cmd", "J"] 16 | }, 17 | { 18 | "description": "Start meeting", 19 | "keys": ["Cmd", "Ctrl", "V"] 20 | }, 21 | { 22 | "description": "Schedule meeting", 23 | "keys": ["Cmd", "J"] 24 | }, 25 | { 26 | "description": "Screen share via direct share", 27 | "keys": ["Cmd", "Ctrl", "S"] 28 | }, 29 | { 30 | "description": "Mute or unmute audio", 31 | "keys": ["Cmd", "Shift", "A"] 32 | }, 33 | { 34 | "description": "Mute audio for everyone except the host, only available to the host", 35 | "keys": ["Cmd", "Ctrl", "U"] 36 | }, 37 | { 38 | "description": "Push to talk", 39 | "keys": ["Space"] 40 | }, 41 | { 42 | "description": "Start or stop video", 43 | "keys": ["Cmd", "Shift", "V"] 44 | }, 45 | { 46 | "description": "Switch camera", 47 | "keys": ["Cmd", "Shift", "N"] 48 | }, 49 | { 50 | "description": "Start or stop screen share", 51 | "keys": ["Cmd", "Shift", "S"] 52 | }, 53 | { 54 | "description": "Pause or resume screen share", 55 | "keys": ["Cmd", "Shift", "T"] 56 | }, 57 | { 58 | "description": "Start local recording", 59 | "keys": ["Cmd", "Shift", "R"] 60 | }, 61 | { 62 | "description": "Start cloud recording", 63 | "keys": ["Cmd", "Shift", "C"] 64 | }, 65 | { 66 | "description": "Pause or resume recording", 67 | "keys": ["Cmd", "Shift", "P"] 68 | }, 69 | { 70 | "description": "Switch to active speaker view or gallery view, depending on current view", 71 | "keys": ["Cmd", "Shift", "W"] 72 | }, 73 | { 74 | "description": "View previous 25 participants in gallery view", 75 | "keys": ["Ctrl", "P"] 76 | }, 77 | { 78 | "description": "View next 25 participants in gallery view", 79 | "keys": ["Ctrl", "N"] 80 | }, 81 | { 82 | "description": "Display or hide participants panel", 83 | "keys": ["Cmd", "U"] 84 | }, 85 | { 86 | "description": "Show or hide in-meeting chat panel", 87 | "keys": ["Cmd", "Shift", "H"] 88 | }, 89 | { 90 | "description": "Open invite window", 91 | "keys": ["Cmd", "I"] 92 | }, 93 | { 94 | "description": "Raise hand or lower hand", 95 | "keys": ["Opt", "Y"] 96 | }, 97 | { 98 | "description": "Gain remote control", 99 | "keys": ["Ctrl", "Shift", "R"] 100 | }, 101 | { 102 | "description": "Stop remote control", 103 | "keys": ["Ctrl", "Shift", "G"] 104 | }, 105 | { 106 | "description": "Enter or exit full screen", 107 | "keys": ["Cmd", "Shift", "F"] 108 | }, 109 | { 110 | "description": "Switch to minimal window", 111 | "keys": ["Cmd", "Shift", "M"] 112 | }, 113 | { 114 | "description": "Show or hide meeting controls", 115 | "keys": ["Ctrl", "Opt", "Cmd", "H"] 116 | }, 117 | { 118 | "description": "Prompt to end or leave meeting", 119 | "keys": ["Cmd", "W"] 120 | } 121 | ] 122 | }, 123 | { 124 | "name": "Chat Shortcuts", 125 | "shortcuts": [ 126 | { 127 | "description": "Jump to chat with someone", 128 | "keys": ["Cmd", "K"] 129 | }, 130 | { 131 | "description": "Screenshot", 132 | "keys": ["Cmd", "T"] 133 | } 134 | ] 135 | }, 136 | { 137 | "name": "General Shortcuts", 138 | "shortcuts": [ 139 | { 140 | "description": "Close the current window", 141 | "keys": ["Cmd", "W"] 142 | }, 143 | { 144 | "description": "Switch to portrait or landscape view, depending on current view", 145 | "keys": ["Cmd", "L"] 146 | }, 147 | { 148 | "description": "Switch from one tab to the next", 149 | "keys": ["Ctrl", "T"] 150 | } 151 | ] 152 | } 153 | ] 154 | } -------------------------------------------------------------------------------- /content/zoom-windows.json: -------------------------------------------------------------------------------- 1 | { 2 | "view": "layout.shortcut", 3 | "slug": "zoom-windows", 4 | "title": "Zoom for Windows", 5 | "meta_title": "Keyboard shortcuts for Zoom on Windows", 6 | "meta_description": "A visual cheat-sheet for the 35 keyboard shortcuts found in Zoom. These shortcuts are for Windows, for MacOS visit /zoom-mac.", 7 | "reference_link": "https://support.zoom.us/hc/en-us/articles/205683899-Hot-Keys-and-Keyboard-Shortcuts-for-Zoom", 8 | "windows_only": true, 9 | "sections": [ 10 | { 11 | "name": "All Shortcuts", 12 | "shortcuts": [ 13 | { 14 | "description": "Navigate among Zoom popup windows", 15 | "keys": ["F6"] 16 | }, 17 | { 18 | "description": "Move focus to Zoom's meeting controls", 19 | "keys": ["Ctrl", "Alt", "Shift"] 20 | }, 21 | { 22 | "description": "View previous 25 video stream in gallery view", 23 | "keys": ["PgUp"] 24 | }, 25 | { 26 | "description": "View next 25 video stream in gallery view", 27 | "keys": ["PgDn"] 28 | }, 29 | { 30 | "description": "Switch to active speaker view in video meeting", 31 | "keys": ["Alt", "F1"] 32 | }, 33 | { 34 | "description": "Switch to gallery video view in video meeting", 35 | "keys": ["Alt", "F2"] 36 | }, 37 | { 38 | "description": "Close the current window", 39 | "keys": ["Alt", "F4"] 40 | }, 41 | { 42 | "description": "Start or stop video", 43 | "keys": ["Alt", "V"] 44 | }, 45 | { 46 | "description": "Mute or unmute audio", 47 | "keys": ["Alt", "A"] 48 | }, 49 | { 50 | "description": "Mute or unmute audio for everyone except host, available to the meeting host only", 51 | "keys": ["Alt", "M"] 52 | }, 53 | { 54 | "description": "Launch share screen window and stop screen share", 55 | "keys": ["Alt", "S"] 56 | }, 57 | { 58 | "description": "Start or stop new screen share", 59 | "keys": ["Alt", "Shift", "S"] 60 | }, 61 | { 62 | "description": "Pause or resume screen share", 63 | "keys": ["Alt", "T"] 64 | }, 65 | { 66 | "description": "Start or stop local recording", 67 | "keys": ["Alt", "R"] 68 | }, 69 | { 70 | "description": "Start or stop cloud recording", 71 | "keys": ["Alt", "C"] 72 | }, 73 | { 74 | "description": "Pause or resume recording", 75 | "keys": ["Alt", "P"] 76 | }, 77 | { 78 | "description": "Switch camera", 79 | "keys": ["Alt", "N"] 80 | }, 81 | { 82 | "description": "Enter or exit full screen", 83 | "keys": ["Alt", "F"] 84 | }, 85 | { 86 | "description": "Display or hide in-meeting chat panel", 87 | "keys": ["Alt", "H"] 88 | }, 89 | { 90 | "description": "Display or hide participants panel", 91 | "keys": ["Alt", "U"] 92 | }, 93 | { 94 | "description": "Open invite window", 95 | "keys": ["Alt", "I"] 96 | }, 97 | { 98 | "description": "Raise or lower hand", 99 | "keys": ["Alt", "Y"] 100 | }, 101 | { 102 | "description": "Gain remote control", 103 | "keys": ["Alt", "Shift", "R"] 104 | }, 105 | { 106 | "description": "Stop remote control", 107 | "keys": ["Alt", "Shift", "G"] 108 | }, 109 | { 110 | "description": "Read active speaker name", 111 | "keys": ["Ctrl", "2"] 112 | }, 113 | { 114 | "description": "Show or hide floating meeting controls", 115 | "keys": ["Ctrl", "Alt", "Shift", "H"] 116 | }, 117 | { 118 | "description": "Screenshot", 119 | "keys": ["Alt", "Shift", "T"] 120 | }, 121 | { 122 | "description": "Switch to portrait or landscape view", 123 | "keys": ["Alt", "L"] 124 | }, 125 | { 126 | "description": "Close current chat session", 127 | "keys": ["Ctrl", "W"] 128 | }, 129 | { 130 | "description": "Go to previous chat", 131 | "keys": ["Ctrl", "Up"] 132 | }, 133 | { 134 | "description": "Go to next chat", 135 | "keys": ["Ctrl", "Down"] 136 | }, 137 | { 138 | "description": "Jump to chat with someone", 139 | "keys": ["Ctrl", "T"] 140 | }, 141 | { 142 | "description": "Search", 143 | "keys": ["Ctrl", "F"] 144 | }, 145 | { 146 | "description": "Move to the next tab", 147 | "keys": ["Ctrl", "Tab"] 148 | }, 149 | { 150 | "description": "Move to the previous tab", 151 | "keys": ["Ctrl", "Shift", "Tab"] 152 | } 153 | ] 154 | } 155 | ] 156 | } -------------------------------------------------------------------------------- /dist/assets/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/apple-touch-icon.png -------------------------------------------------------------------------------- /dist/assets/img/apple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | apple 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/assets/img/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/favicon-16x16.png -------------------------------------------------------------------------------- /dist/assets/img/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/favicon-32x32.png -------------------------------------------------------------------------------- /dist/assets/img/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | github 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/assets/img/logo-discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-discord.png -------------------------------------------------------------------------------- /dist/assets/img/logo-evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-evernote.png -------------------------------------------------------------------------------- /dist/assets/img/logo-figma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-figma.png -------------------------------------------------------------------------------- /dist/assets/img/logo-notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-notion.png -------------------------------------------------------------------------------- /dist/assets/img/logo-phpstorm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-phpstorm.png -------------------------------------------------------------------------------- /dist/assets/img/logo-slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-slack.png -------------------------------------------------------------------------------- /dist/assets/img/logo-spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-spotify.png -------------------------------------------------------------------------------- /dist/assets/img/logo-telegram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-telegram.png -------------------------------------------------------------------------------- /dist/assets/img/logo-vs-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/logo-vs-code.png -------------------------------------------------------------------------------- /dist/assets/img/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | plus 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dist/assets/img/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | search 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/assets/img/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | twitter 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/assets/img/undraw-taking-notes-square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/undraw-taking-notes-square.png -------------------------------------------------------------------------------- /dist/assets/img/undraw-taking-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/dist/assets/img/undraw-taking-notes.png -------------------------------------------------------------------------------- /dist/assets/img/usethekeyboard-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 4 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /dist/assets/img/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | windows 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/assets/js/app.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Sizzle CSS Selector Engine v2.3.5 3 | * https://sizzlejs.com/ 4 | * 5 | * Copyright JS Foundation and other contributors 6 | * Released under the MIT license 7 | * https://js.foundation/ 8 | * 9 | * Date: 2020-03-14 10 | */ 11 | 12 | /*! 13 | * Vue.js v2.6.10 14 | * (c) 2014-2019 Evan You 15 | * Released under the MIT License. 16 | */ 17 | 18 | /*! 19 | * jQuery JavaScript Library v3.5.1 20 | * https://jquery.com/ 21 | * 22 | * Includes Sizzle.js 23 | * https://sizzlejs.com/ 24 | * 25 | * Copyright JS Foundation and other contributors 26 | * Released under the MIT license 27 | * https://jquery.org/license 28 | * 29 | * Date: 2020-05-04T22:49Z 30 | */ 31 | 32 | /** 33 | * @license 34 | * Lodash 35 | * Copyright OpenJS Foundation and other contributors 36 | * Released under MIT license 37 | * Based on Underscore.js 1.8.3 38 | * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 39 | */ 40 | -------------------------------------------------------------------------------- /mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/dist/assets/js/app.js": "/dist/assets/js/app.js?id=64996a949fb7e376fe56", 3 | "/dist/assets/css/app.css": "/dist/assets/css/app.css?id=4d4a4c142c938feeccaf" 4 | } 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "local": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --env=local --config=node_modules/laravel-mix/setup/webpack.config.js", 5 | "staging": "cross-env NODE_ENV=staging node_modules/webpack/bin/webpack.js --progress --hide-modules --env=staging --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --env=production --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "dev": "npm run local", 8 | "prod": "npm run production", 9 | "watch": "npm run local -- --watch" 10 | }, 11 | "devDependencies": { 12 | "bootstrap": "^4.3.1", 13 | "browser-sync": "^2.26.12", 14 | "browser-sync-webpack-plugin": "^2.0.1", 15 | "cross-env": "^3.2.4", 16 | "false": "^0.0.4", 17 | "jquery": "^3.5.1", 18 | "laravel-mix": "^5.0.7", 19 | "lodash": "^4.17.21", 20 | "node-cmd": "^3.0.0", 21 | "on-build-webpack": "^0.1.0", 22 | "sass": "^1.22.2", 23 | "sass-loader": "7.*", 24 | "vue": "^2.6.10", 25 | "vue-template-compiler": "^2.6.10", 26 | "webpack-watch": "^0.2.0" 27 | }, 28 | "dependencies": { 29 | "cross-spawn": "^6.0.5", 30 | "popper.js": "^1.16.1" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /resources/assets/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/apple-touch-icon.png -------------------------------------------------------------------------------- /resources/assets/img/apple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | apple 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/assets/img/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/favicon-16x16.png -------------------------------------------------------------------------------- /resources/assets/img/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/favicon-32x32.png -------------------------------------------------------------------------------- /resources/assets/img/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | github 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/assets/img/logo-evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-evernote.png -------------------------------------------------------------------------------- /resources/assets/img/logo-notion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-notion.png -------------------------------------------------------------------------------- /resources/assets/img/logo-phpstorm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-phpstorm.png -------------------------------------------------------------------------------- /resources/assets/img/logo-slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-slack.png -------------------------------------------------------------------------------- /resources/assets/img/logo-spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-spotify.png -------------------------------------------------------------------------------- /resources/assets/img/logo-vs-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/logo-vs-code.png -------------------------------------------------------------------------------- /resources/assets/img/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | plus 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/assets/img/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | search 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/assets/img/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | twitter 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/assets/img/undraw-taking-notes-square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aschmelyun/use-the-keyboard/36ff76b3dd8c017e31ac9f19cbdd874f3320a15b/resources/assets/img/undraw-taking-notes-square.png -------------------------------------------------------------------------------- /resources/assets/img/usethekeyboard-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 4 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /resources/assets/img/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | windows 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/assets/js/app.js: -------------------------------------------------------------------------------- 1 | window._ = require('lodash'); 2 | 3 | try { 4 | window.$ = window.jQuery = require('jquery'); 5 | } catch (e) {} 6 | 7 | window.Vue = require('vue'); 8 | 9 | var app = new Vue({ 10 | el: '#app', 11 | data: { 12 | operatingSystem: 'windows', 13 | searchInput: '', 14 | isMacOnly: $('#app').data('mac-only'), 15 | isWindowsOnly: $('#app').data('windows_only') 16 | }, 17 | created() { 18 | if(navigator.platform.indexOf('Mac') > -1) { 19 | this.operatingSystem = 'mac'; 20 | this.changeAllKeys('Ctrl', 'Cmd'); 21 | this.displayMacKeys(true); 22 | } 23 | }, 24 | methods: { 25 | toggleOperatingSystem() { 26 | if(this.isMacOnly || this.isWindowsOnly) { 27 | return false; 28 | } 29 | 30 | if(this.operatingSystem === 'windows') { 31 | this.operatingSystem = 'mac'; 32 | this.changeAllKeys('Ctrl', 'Cmd'); 33 | this.displayMacKeys(true); 34 | } else { 35 | this.operatingSystem = 'windows'; 36 | this.changeAllKeys('Cmd', 'Ctrl'); 37 | this.displayMacKeys(false); 38 | } 39 | }, 40 | changeAllKeys(from, to) { 41 | if(!this.isMacOnly && !this.isWindowsOnly) { 42 | let keys = document.getElementsByClassName('key-switch'); 43 | for (let key of keys) { 44 | if (key.innerHTML === from) { 45 | key.innerHTML = to; 46 | } 47 | } 48 | } 49 | }, 50 | displayMacKeys(shouldShow) { 51 | if(shouldShow) { 52 | let macKeys = document.getElementsByClassName('mac-keys'); 53 | for (let key of macKeys) { 54 | key.style.display = 'flex'; 55 | } 56 | 57 | let allKeys = document.getElementsByClassName('win-keys'); 58 | for (let key of allKeys) { 59 | key.style.display = 'none'; 60 | } 61 | } else { 62 | let macKeys = document.getElementsByClassName('mac-keys'); 63 | for (let key of macKeys) { 64 | key.style.display = 'none'; 65 | } 66 | 67 | let allKeys = document.getElementsByClassName('win-keys'); 68 | for (let key of allKeys) { 69 | key.style.display = 'flex'; 70 | } 71 | } 72 | }, 73 | showPotentialResults(search) { 74 | let programs = document.getElementsByClassName('data-program'); 75 | for(let program of programs) { 76 | program.style.display = 'block'; 77 | if(!program.dataset.slug.startsWith(search.toLowerCase()) && !program.dataset.title.toLowerCase().startsWith(search.toLowerCase())) { 78 | program.style.display = 'none'; 79 | } 80 | } 81 | } 82 | }, 83 | watch: { 84 | searchInput(val) { 85 | this.showPotentialResults(val); 86 | } 87 | } 88 | }); -------------------------------------------------------------------------------- /resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | @import 'base/var'; 2 | 3 | @import 'node_modules/bootstrap/scss/bootstrap-reboot'; 4 | @import 'node_modules/bootstrap/scss/bootstrap-grid'; 5 | 6 | @import 'base/mixins'; 7 | @import 'base/utility'; 8 | 9 | @import 'layout/main'; 10 | @import 'layout/header'; 11 | @import 'layout/content'; 12 | 13 | @import 'modules/titles'; 14 | @import 'modules/buttons'; 15 | @import 'modules/forms'; -------------------------------------------------------------------------------- /resources/assets/sass/base/_mixins.scss: -------------------------------------------------------------------------------- 1 | $breakpoints: ( 2 | 'sm': 767px, 3 | 'md': 992px, 4 | 'lg': 1200px 5 | ) !default; 6 | 7 | @mixin respond-to($breakpoint) { 8 | 9 | @if map-has-key($breakpoints, $breakpoint) { 10 | 11 | @media(min-width: map-get($breakpoints, $breakpoint)) { 12 | @content; 13 | } 14 | } 15 | @else { 16 | @warn "No value could be retrieved from `#{$breakpoint}`."; 17 | } 18 | } -------------------------------------------------------------------------------- /resources/assets/sass/base/_utility.scss: -------------------------------------------------------------------------------- 1 | @each $dir in (left, right, center) { 2 | .ta-#{$dir} { 3 | text-align: $dir; 4 | } 5 | } 6 | @for $i from 1 through 12 { 7 | .mt-#{$i} { 8 | margin-top: ($i/4) + 0rem; 9 | } 10 | .mb-#{$i} { 11 | margin-bottom: ($i/4) + 0rem; 12 | } 13 | .ml-#{$i} { 14 | margin-left: ($i/4) + 0rem; 15 | } 16 | .mr-#{$i} { 17 | margin-right: ($i/4) + 0rem; 18 | } 19 | .mtb-#{$i} { 20 | margin-top: ($i/4) + 0rem; 21 | margin-bottom: ($i/4) + 0rem; 22 | } 23 | .mlr-#{$i} { 24 | margin-left: ($i/4) + 0rem; 25 | margin-right: ($i/4) + 0rem; 26 | } 27 | .m-#{$i} { 28 | margin: ($i/4) + 0rem; 29 | } 30 | .pt-#{$i} { 31 | padding-top: ($i/4) + 0rem; 32 | } 33 | .pb-#{$i} { 34 | padding-bottom: ($i/4) + 0rem; 35 | } 36 | .pl-#{$i} { 37 | padding-left: ($i/4) + 0rem; 38 | } 39 | .pr-#{$i} { 40 | padding-right: ($i/4) + 0rem; 41 | } 42 | .ptb-#{$i} { 43 | padding-top: ($i/4) + 0rem; 44 | padding-bottom: ($i/4) + 0rem; 45 | } 46 | .plr-#{$i} { 47 | padding-left: ($i/4) + 0rem; 48 | padding-right: ($i/4) + 0rem; 49 | } 50 | .p-#{$i} { 51 | padding: ($i/4) + 0rem; 52 | } 53 | } 54 | .sr-only { 55 | position: absolute; 56 | width: 1px; 57 | height: 1px; 58 | padding: 0; 59 | overflow: hidden; 60 | clip: rect(0, 0, 0, 0); 61 | white-space: nowrap; 62 | border: 0; 63 | } 64 | -------------------------------------------------------------------------------- /resources/assets/sass/base/_var.scss: -------------------------------------------------------------------------------- 1 | $color-light-grey: #f1f2f6; 2 | $color-dark-grey: #2b2d42; 3 | $color-regular-grey: #535361; 4 | $color-med-grey: #ced6e0; 5 | $color-white: #fff; 6 | $color-red: #b53471; 7 | 8 | $ff-primary: 'Open Sans', sans-serif; 9 | $ff-alt: 'Nunito', sans-serif; -------------------------------------------------------------------------------- /resources/assets/sass/layout/_content.scss: -------------------------------------------------------------------------------- 1 | main { 2 | 3 | &.content { 4 | margin-left: 0; 5 | 6 | @include respond-to('lg') { 7 | margin-left: 500px; 8 | } 9 | 10 | .content-wrapper { 11 | max-width: 560px; 12 | margin: 0 auto; 13 | padding: 0 0 2.5rem; 14 | } 15 | } 16 | } 17 | .shortcut-section { 18 | margin: 2.5rem 0 0; 19 | 20 | .shortcuts { 21 | background: $color-white; 22 | border-radius: 2px; 23 | border: 1px solid $color-med-grey; 24 | box-shadow: 0 1px 7px rgba(0,0,0,0.08); 25 | 26 | .shortcut { 27 | padding: 0.65rem 1rem; 28 | display: flex; 29 | align-items: center; 30 | justify-content: space-between; 31 | font-size: 13px; 32 | font-weight: 600; 33 | 34 | @include respond-to('sm') { 35 | font-size: 15px; 36 | } 37 | 38 | &:nth-child(even) { 39 | background: rgba($color-light-grey, 0.5); 40 | } 41 | 42 | .description { 43 | margin: 0; 44 | font-weight: 400; 45 | } 46 | .keys { 47 | list-style: none; 48 | margin: 0; 49 | padding: 0; 50 | display: flex; 51 | align-items: center; 52 | justify-content: flex-end; 53 | 54 | .key { 55 | min-width: 34px; 56 | background: $color-white; 57 | border-radius: 0.45rem; 58 | border: 1px solid $color-med-grey; 59 | text-align: center; 60 | padding: 0.55rem 0.7rem; 61 | margin: 0 0.2rem; 62 | line-height: 1em; 63 | 64 | @include respond-to('sm') { 65 | margin: 0 0.35rem; 66 | } 67 | } 68 | .plus { 69 | width: 9px; 70 | height: 9px; 71 | background: url('/assets/img/plus.svg') no-repeat center center; 72 | background-size: 9px; 73 | } 74 | } 75 | } 76 | } 77 | } 78 | .row-programs { 79 | 80 | .program { 81 | display: flex; 82 | align-items: center; 83 | padding: 0.5rem 0; 84 | color: $color-dark-grey; 85 | text-decoration: none !important; 86 | transition: all 0.15s ease-in; 87 | 88 | img { 89 | max-width: 48px; 90 | max-height: 48px; 91 | } 92 | span { 93 | display: block; 94 | font-size: 15px; 95 | font-weight: 600; 96 | } 97 | 98 | &:hover { 99 | opacity: 0.75; 100 | } 101 | 102 | &.is-popular { 103 | background: $color-white; 104 | border-radius: 2px; 105 | border: 1px solid $color-med-grey; 106 | box-shadow: 0 1px 7px rgba(0,0,0,0.08); 107 | padding: 0.5rem; 108 | margin-bottom: 0.5rem; 109 | 110 | &:hover { 111 | opacity: 1; 112 | border-color: darken($color-med-grey, 5); 113 | box-shadow: 0 1px 9px rgba(0,0,0,0.13); 114 | } 115 | 116 | span { 117 | margin-left: 0.75rem; 118 | } 119 | } 120 | } 121 | } -------------------------------------------------------------------------------- /resources/assets/sass/layout/_header.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | position: relative; 3 | width: 100%; 4 | height: auto; 5 | background: $color-white; 6 | display: flex; 7 | align-items: center; 8 | flex-direction: column; 9 | 10 | @include respond-to('lg') { 11 | position: fixed; 12 | top: 0; 13 | left: 0; 14 | width: 500px; 15 | height: 100%; 16 | flex-direction: row; 17 | } 18 | 19 | .header-wrapper { 20 | padding: 0 1rem; 21 | margin: 3rem auto 1rem; 22 | 23 | @include respond-to('lg') { 24 | margin: 0; 25 | } 26 | 27 | .subtitle { 28 | font-size: 15px; 29 | line-height: 26px; 30 | margin: 0.5rem 0 2.5rem; 31 | color: $color-regular-grey; 32 | } 33 | } 34 | .logo { 35 | width: 100%; 36 | position: relative; 37 | top: 1rem; 38 | left: 0; 39 | padding: 0 1rem; 40 | display: flex; 41 | align-items: center; 42 | justify-content: space-between; 43 | 44 | @include respond-to('lg') { 45 | width: 500px; 46 | position: fixed; 47 | } 48 | } 49 | .switcher { 50 | position: relative; 51 | background: $color-light-grey; 52 | width: 42px; 53 | height: 24px; 54 | border-radius: 12px; 55 | margin-right: 18px; 56 | transition: all 0.15s ease-in; 57 | 58 | &:hover { 59 | cursor: pointer; 60 | } 61 | 62 | &:before, 63 | &:after { 64 | content: ''; 65 | position: absolute; 66 | display: block; 67 | } 68 | &:before { 69 | left: -20px; 70 | top: 4px; 71 | width: 16px; 72 | height: 16px; 73 | background: url('/assets/img/windows.svg') no-repeat center center; 74 | background-size: 16px; 75 | opacity: 1; 76 | transition: all 0.15s ease-in; 77 | } 78 | &:after { 79 | right: -18px; 80 | top: 3px; 81 | width: 14px; 82 | height: 16px; 83 | background: url('/assets/img/apple.svg') no-repeat center center; 84 | background-size: cover; 85 | opacity: 0.25; 86 | transition: all 0.15s ease-in; 87 | } 88 | 89 | .toggle { 90 | display: block; 91 | width: 24px; 92 | height: 24px; 93 | background: $color-white; 94 | border: 1px solid $color-med-grey; 95 | border-radius: 50%; 96 | position: absolute; 97 | top: 0; 98 | left: 0; 99 | transition: all 0.15s ease-in; 100 | } 101 | 102 | &.is-right { 103 | 104 | .toggle { 105 | left: 18px; 106 | } 107 | &:before { 108 | opacity: 0.25; 109 | } 110 | &:after { 111 | opacity: 1; 112 | } 113 | } 114 | } 115 | } 116 | .header-landing { 117 | background: $color-white; 118 | text-align: center; 119 | padding: 1rem 0; 120 | } -------------------------------------------------------------------------------- /resources/assets/sass/layout/_main.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: $color-light-grey; 3 | color: $color-dark-grey; 4 | font-family: $ff-primary; 5 | } 6 | .intro { 7 | margin-top: 3rem; 8 | 9 | img { 10 | max-width: 100%; 11 | } 12 | 13 | .intro-wrapper { 14 | display: flex; 15 | align-items: center; 16 | } 17 | } 18 | .footer { 19 | position: relative; 20 | padding: 0 1rem 2rem; 21 | 22 | @include respond-to('lg') { 23 | position: fixed; 24 | left: 0; 25 | bottom: 1rem; 26 | width: 500px; 27 | padding: 0 1rem; 28 | } 29 | } 30 | .footer-landing { 31 | width: 100%; 32 | padding: 0.75rem 0 1.5rem; 33 | text-align: center; 34 | } 35 | .credit { 36 | font-size: 12px; 37 | color: $color-regular-grey; 38 | font-weight: 400; 39 | line-height: 24px; 40 | transition: all 0.15s ease-in; 41 | 42 | &:hover { 43 | color: $color-dark-grey; 44 | } 45 | 46 | a { 47 | font-weight: 600; 48 | color: $color-regular-grey; 49 | text-decoration: none !important; 50 | transition: all 0.15s ease-in; 51 | 52 | &:hover { 53 | color: $color-red; 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /resources/assets/sass/modules/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn { 2 | display: inline-block; 3 | text-decoration: none !important; 4 | font-size: 12px; 5 | font-weight: 600; 6 | text-align: center; 7 | padding: 0.65rem 1.5rem; 8 | text-transform: uppercase; 9 | letter-spacing: 0.75px; 10 | border-radius: 2px; 11 | 12 | &.btn-primary { 13 | background: $color-red; 14 | color: $color-white; 15 | transition: all 0.15s ease-in; 16 | 17 | &:hover { 18 | background: lighten($color-red, 5); 19 | } 20 | &:focus { 21 | outline: none; 22 | box-shadow: 0 0 0 3px rgba($color-red, 0.35); 23 | } 24 | } 25 | &.btn-secondary { 26 | background: $color-light-grey; 27 | color: $color-regular-grey; 28 | transition: all 0.15s ease-in; 29 | 30 | &:hover { 31 | background: darken($color-light-grey, 5); 32 | } 33 | &:focus { 34 | outline: none; 35 | box-shadow: 0 0 0 3px rgba($color-light-grey, 0.35); 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /resources/assets/sass/modules/_forms.scss: -------------------------------------------------------------------------------- 1 | .search-input { 2 | width: 100%; 3 | background-color: $color-white; 4 | background-image: url('/assets/img/search.svg'); 5 | background-repeat: no-repeat; 6 | background-position: 97% center; 7 | background-size: 22px; 8 | border-radius: 2px; 9 | color: $color-dark-grey; 10 | border: 1px solid $color-med-grey; 11 | box-shadow: 0 1px 7px rgba(0,0,0,0.08); 12 | font-family: $ff-primary; 13 | font-weight: 400; 14 | font-size: 15px; 15 | padding: 0.75rem 1rem; 16 | margin-top: 1.25rem; 17 | transition: all 0.15s ease-in; 18 | 19 | &:focus { 20 | outline: none; 21 | border-color: darken($color-med-grey, 5); 22 | box-shadow: 0 1px 9px rgba(0,0,0,0.13); 23 | } 24 | } -------------------------------------------------------------------------------- /resources/assets/sass/modules/_titles.scss: -------------------------------------------------------------------------------- 1 | .title-primary { 2 | font-family: $ff-alt; 3 | font-weight: 700; 4 | font-size: 37px; 5 | line-height: 49px; 6 | } 7 | .title-section { 8 | font-size: 19px; 9 | font-weight: 600; 10 | border-bottom: 1px solid $color-med-grey; 11 | margin: 0 1rem 1rem; 12 | 13 | @include respond-to('sm') { 14 | margin: 0 0 1rem; 15 | } 16 | 17 | span { 18 | display: inline-block; 19 | position: relative; 20 | padding: 0 0 0.15rem; 21 | 22 | &:after { 23 | content: ''; 24 | position: absolute; 25 | bottom: -4px; 26 | left: 0; 27 | width: 100%; 28 | height: 4px; 29 | background: $color-red; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /resources/views/landing.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.default') 2 | @section('content') 3 |
4 |
5 |

Taro

6 |
7 |
8 | @endsection -------------------------------------------------------------------------------- /resources/views/layout/default.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | @include('partials.head') 4 | 5 |
6 | 9 |
10 |
11 |
12 |
13 |
14 | Vector illustration of a person hanging up notes courtesy of Undraw.co 15 |
16 |
17 |
18 |

Use The Keyboard

19 |

A collection of keyboard shortcuts for Mac apps, Windows programs, and websites.

20 | 21 | 22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |

Most Popular

34 |
35 | @foreach($popular as $file) 36 | @php 37 | $data = json_decode(file_get_contents($contentDir . '/' . $file . '.json')); 38 | @endphp 39 | 45 | @endforeach 46 |
47 |
48 |
49 |

All Programs

50 |
51 | @php 52 | $contentFiles = array_diff(scandir($contentDir), array('.', '..')); 53 | @endphp 54 | @foreach($contentFiles as $file) 55 | @php 56 | $data = json_decode(file_get_contents($contentDir . '/' . $file)); 57 | @endphp 58 | @if($data->slug === '/') 59 | @continue; 60 | @endif 61 | 66 | @endforeach 67 |
68 |
69 |
70 |
71 |
72 |
73 | 76 | @include('partials.footer') 77 | 78 | 79 | -------------------------------------------------------------------------------- /resources/views/layout/shortcut.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | @include('partials.head') 4 | 5 |
6 | 18 |
19 |
20 |
21 |
22 |
23 | @foreach($sections as $section) 24 |
25 |

{{ $section->name }}

26 |
27 | @foreach($section->shortcuts as $shortcut) 28 |
29 |

{{ $shortcut->description }}

30 | @if(isset($shortcut->mac_keys)) 31 | 39 |
    40 | @foreach($shortcut->keys as $keyIndex => $key) 41 |
  • {{ $key }}
  • 42 | @if($keyIndex < (count($shortcut->keys) - 1)) 43 |
  • 44 | @endif 45 | @endforeach 46 |
47 | @else 48 |
    49 | @foreach($shortcut->keys as $keyIndex => $key) 50 |
  • {{ $key }}
  • 51 | @if($keyIndex < (count($shortcut->keys) - 1)) 52 |
  • 53 | @endif 54 | @endforeach 55 |
56 | @endif 57 |
58 | @endforeach 59 |
60 |
61 | @endforeach 62 |
63 |
64 | 67 |
68 | @include('partials.footer') 69 | 70 | 71 | -------------------------------------------------------------------------------- /resources/views/partials/footer.blade.php: -------------------------------------------------------------------------------- 1 | @yield('bottom-scripts') 2 | 3 | -------------------------------------------------------------------------------- /resources/views/partials/head.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ $meta_title ?? 'Keyboard shortcuts for Mac apps, Windows programs, and websites' }} → UseTheKeyboard 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 37 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /taro: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | blade = new Blade($this->viewsDir, $this->cacheDir); 25 | $this->processTime['start'] = microtime(true); 26 | } 27 | 28 | public function init() 29 | { 30 | $this->cleanDistFolder(); 31 | 32 | $contentFiles = array_diff(scandir($this->contentDir), array('.', '..')); 33 | $mixManifest = json_decode(str_replace('/dist', '', file_get_contents($this->mixManifest)), true); 34 | 35 | foreach($contentFiles as $file) { 36 | $data = json_decode(file_get_contents($this->contentDir . '/' . $file)); 37 | $data->contentDir = $this->contentDir; 38 | $data->mix = $mixManifest; 39 | 40 | if(!$this->dataHasErrors($data, $file)) { 41 | $this->renderPage($data); 42 | } 43 | } 44 | 45 | $this->finish(); 46 | } 47 | 48 | public function cleanDistFolder() 49 | { 50 | $finder = new Finder(); 51 | $directories = $finder->directories() 52 | ->in($this->outputRoot) 53 | ->ignoreDotFiles(true) 54 | ->exclude(['assets']) 55 | ->depth(0); 56 | 57 | foreach($directories as $dir) { 58 | rmdir($dir); 59 | } 60 | 61 | $files = $finder->files() 62 | ->in($this->outputRoot) 63 | ->ignoreDotFiles(true) 64 | ->exclude(['ads.txt']) 65 | ->depth(0); 66 | 67 | foreach($files as $file) { 68 | unlink($file); 69 | } 70 | 71 | return true; 72 | } 73 | 74 | public function dataHasErrors($data, $file) 75 | { 76 | $hasErrors = false; 77 | if(!isset($data->view)) { 78 | echo "❌ \033[1m " . $file . "\033[0m is missing the 'view' property, skipping that page." . PHP_EOL; 79 | $hasErrors = true; 80 | } 81 | 82 | if(!isset($data->slug)) { 83 | echo "🚫 \033[1m " . $file . "\033[0m is missing the 'slug' property, skipping that page." . PHP_EOL; 84 | $hasErrors = true; 85 | } 86 | 87 | return $hasErrors; 88 | } 89 | 90 | public function renderPage($data) 91 | { 92 | $started = microtime(true); 93 | $content = $this->blade->view() 94 | ->make($data->view, get_object_vars($data)) 95 | ->render(); 96 | 97 | $outputPath = $this->determineOutputPath($data->slug); 98 | 99 | $stored = file_put_contents($outputPath, $content); 100 | $ended = microtime(true); 101 | 102 | if($stored) { 103 | $this->contentCount++; 104 | echo "👍 \033[1m " . $data->slug . "\033[0m built in " . round((($ended - $started)*1000), 3) . " milliseconds." . PHP_EOL; 105 | } else { 106 | echo "🚫 \033[1m " . $data->slug . "\033[0m could not be built." . PHP_EOL; 107 | } 108 | } 109 | 110 | public function determineOutputPath($output) 111 | { 112 | $outputDir = $this->outputRoot . '/' . $output; 113 | if(!is_dir($outputDir)) 114 | mkdir($outputDir, 0755, true); 115 | 116 | $outputPath = $outputDir . '/index.html'; 117 | return $outputPath; 118 | } 119 | 120 | public function finish() 121 | { 122 | $this->processTime['end'] = microtime(true); 123 | echo "🎁 \033[1m " . 124 | $this->contentCount . 125 | " pages \033[0mbuilt in " . 126 | round((($this->processTime['end'] - $this->processTime['start'])*1000), 3) . 127 | " milliseconds." . 128 | PHP_EOL; 129 | } 130 | } 131 | 132 | $taro = new Taro; 133 | if(isset($argv[1]) && $argv[1] === 'build') { 134 | $taro->init(); 135 | exit(); 136 | } 137 | 138 | echo 'V' . $taro->version . PHP_EOL; 139 | exit(); -------------------------------------------------------------------------------- /taro.build.js: -------------------------------------------------------------------------------- 1 | let command = require('node-cmd'), 2 | AfterWebpack = require('on-build-webpack'); 3 | 4 | module.exports = { 5 | taro: new AfterWebpack(() => { 6 | command.get('php taro build', (error, stdout, stderr) => { 7 | console.log(error ? stderr : stdout); 8 | }); 9 | }) 10 | } -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | let mix = require('laravel-mix'), 2 | build = require('./taro.build.js'); 3 | 4 | mix.disableNotifications(); 5 | mix.webpackConfig({ 6 | plugins: [ 7 | build.taro 8 | ] 9 | }); 10 | 11 | mix.setPublicPath('./') 12 | .js('resources/assets/js/app.js', 'dist/assets/js') 13 | .sass('resources/assets/sass/app.scss', 'dist/assets/css') 14 | .copy('resources/assets/img/', 'dist/assets/img') 15 | .options({ 16 | processCssUrls: false 17 | }) 18 | .version(); 19 | 20 | mix.browserSync(); --------------------------------------------------------------------------------