diff --git a/public/extra_descriptions/slack.html b/public/extra_descriptions/slack.html
new file mode 100644
index 000000000..ca8f48e00
--- /dev/null
+++ b/public/extra_descriptions/slack.html
@@ -0,0 +1,88 @@
+
+
+
+ Hyper Key
+
+
+
+ The caps lock hyper key is included for quick left handed access to all the shortcuts.
+
+
+
+
+ Caps Lock |
+
+ Maps to left control + left shift + right command (⌃⇧⌘).
+ The Caps lock is disabled.
+ |
+
+
+ Double-tap right shift |
+ Caps lock toggle |
+
+
+
+
+ Searching and Navigation
+
+
+
+
+ Caps Lock Hyper key + 1 |
+ Quick search |
+
+
+ Caps Lock Hyper key + 2 |
+ Navigate to activity |
+
+
+ Caps Lock Hyper key + 3 |
+ Navigate to DMs |
+
+
+ Caps Lock Hyper key + 4 |
+ Navigate to all unread messages |
+
+
+
+
+ Formatting and Messages
+
+
+
+
+ Caps Lock Hyper key + q |
+ Format selection as quote |
+
+
+ Caps Lock Hyper key + a |
+ Code format |
+
+
+ Caps Lock Hyper key + s |
+ Code block |
+
+
+ Caps Lock Hyper key + d |
+ Add hyperlink |
+
+
+ Caps Lock Hyper key + f |
+ Upload file |
+
+
+
+
+ Other Shortcuts
+
+
+
+
+ Caps Lock Hyper key + e |
+ Set status |
+
+
+ Slack: Caps Lock Hyper key + w |
+ Toggle sidebar |
+
+
diff --git a/public/groups.json b/public/groups.json
index 048417e56..14b8b8c7e 100644
--- a/public/groups.json
+++ b/public/groups.json
@@ -478,7 +478,8 @@
"extra_description_path": "extra_descriptions/premiere_pro.html"
},
{
- "path": "json/slack_left_option_search.json"
+ "path": "json/slack.json",
+ "extra_description_path": "extra_descriptions/slack.html"
},
{
"path": "json/obsidian_emacs_vim-insert.json"
diff --git a/public/json/slack.json b/public/json/slack.json
new file mode 100644
index 000000000..c70a4c886
--- /dev/null
+++ b/public/json/slack.json
@@ -0,0 +1,401 @@
+{
+ "title": "Slack: Productivity Power Pack",
+ "maintainers": ["thecarlo"],
+ "rules": [
+ {
+ "description": "Hyper Key: Caps Lock → left control + left shift + right command (⌃⇧⌘)",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "caps_lock",
+ "modifiers": {
+ "optional": ["any"]
+ }
+ },
+ "to": [
+ {
+ "set_variable": {
+ "name": "hyper_caps_lock",
+ "value": 1
+ }
+ },
+ {
+ "key_code": "left_control",
+ "modifiers": ["left_shift", "right_command"]
+ }
+ ],
+ "to_after_key_up": [
+ {
+ "set_variable": {
+ "name": "hyper_caps_lock",
+ "value": 0
+ }
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Double-tap right ⇧ key → caps lock on",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "name": "right_shift pressed",
+ "type": "variable_if",
+ "value": 1
+ }
+ ],
+ "from": {
+ "key_code": "right_shift",
+ "modifiers": {
+ "optional": ["any"]
+ }
+ },
+ "to": [
+ {
+ "key_code": "caps_lock"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "right_shift",
+ "modifiers": {
+ "optional": ["any"]
+ }
+ },
+ "to": [
+ {
+ "set_variable": {
+ "name": "right_shift pressed",
+ "value": 1
+ }
+ },
+ {
+ "key_code": "right_shift"
+ }
+ ],
+ "to_delayed_action": {
+ "to_if_canceled": [
+ {
+ "set_variable": {
+ "name": "right_shift pressed",
+ "value": 0
+ }
+ }
+ ],
+ "to_if_invoked": [
+ {
+ "set_variable": {
+ "name": "right_shift pressed",
+ "value": 0
+ }
+ }
+ ]
+ },
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + 1 → Launch quick search",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "1",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": ["any"]
+ }
+ },
+ "to": [
+ {
+ "key_code": "k",
+ "modifiers": ["left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + 2 → Activity",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "2",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "m",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + 3 → DMs",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "3",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "k",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + 4 → All Unread Messages",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "4",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "a",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + q → format selection as quote",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "q",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "9",
+ "modifiers": ["left_shift", "command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + w → toggle sidebar",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "w",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "d",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + e → set status",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "e",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "y",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + a → code format",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "a",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "c",
+ "modifiers": ["left_shift", "left_command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + s → code block",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "s",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "c",
+ "modifiers": ["left_command", "left_option", "left_shift"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + d → hyperlink",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "d",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "u",
+ "modifiers": ["left_shift", "command"]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Slack: Caps Lock Hyper key + f → Upload file",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
+ }
+ ],
+ "type": "basic",
+ "from": {
+ "key_code": "f",
+ "modifiers": {
+ "mandatory": ["left_control", "left_shift", "right_command"],
+ "optional": []
+ }
+ },
+ "to": [
+ {
+ "key_code": "u",
+ "modifiers": ["command"]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/public/json/slack_left_option_search.json b/public/json/slack_left_option_search.json
deleted file mode 100644
index 4e4f6f759..000000000
--- a/public/json/slack_left_option_search.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "title": "left option → cmd + k (Slack → launch search)",
- "maintainers": ["thecarlo"],
- "rules": [
- {
- "description": "left option → cmd + k (Slack → launch search)",
- "manipulators": [
- {
- "type": "basic",
- "from": {
- "key_code": "left_option",
- "modifiers": {
- "optional": ["any"]
- }
- },
- "to": [
- {
- "key_code": "left_option"
- }
- ],
- "to_if_alone": [
- {
- "key_code": "k",
- "modifiers": ["left_command"]
- }
- ],
- "conditions": [
- {
- "type": "frontmost_application_if",
- "bundle_identifiers": ["^com\\.tinyspeck\\.slackmacgap$"]
- }
- ]
- }
- ]
- }
- ]
-}