Keyboard

The Keyboard APIs are useful to make your actions accessible via the keyboard shortcuts. Shortcuts help users to use your command without touching the mouse.

Use the Common shortcuts whenever possible to keep a consistent user experience throughout Raycast.

Types

Keyboard.Shortcut

A keyboard shortcut is defined by one or more modifier keys (command, control, etc.) and a single key equivalent (a character or special key).

See KeyModifier and KeyEquivalent for supported values.

Example

import { Action, ActionPanel, Detail, Keyboard } from "@raycast/api";

export default function Command() {
  return (
    <Detail
      markdown="Let's play some games 👾"
      actions={
        <ActionPanel title="Game controls">
          <Action title="Up" shortcut={{ modifiers: ["opt"], key: "arrowUp" }} onAction={() => console.log("Go up")} />
          <Action
            title="Down"
            shortcut={{ modifiers: ["opt"], key: "arrowDown" }}
            onAction={() => console.log("Go down")}
          />
          <Action
            title="Left"
            shortcut={{ modifiers: ["opt"], key: "arrowLeft" }}
            onAction={() => console.log("Go left")}
          />
          <Action
            title="Right"
            shortcut={{ modifiers: ["opt"], key: "arrowRight" }}
            onAction={() => console.log("Go right")}
          />
          <Action title="Open" shortcut={Keyboard.Shortcut.Common.Open} onAction={() => console.log("Open")} />
        </ActionPanel>
      }
    />
  );
}

Properties

Property
Description
Type

key*

The key of the keyboard shortcut.

modifiers*

The modifier keys of the keyboard shortcut.

If the shortcut contains some "ambiguous" modifiers (eg. ctrl, or cmd, or windows), you will need to specify the shortcut for both platforms:

{
  macOS: { modifiers: ["cmd", "shift"], key: "c" },
  windows: { modifiers: ["ctrl", "shift"], key: "c" },
}

Keyboard.Shortcut.Common

A collection of shortcuts that are commonly used throughout Raycast. Using them should help provide a more consistent experience and preserve muscle memory.

Name
macOS
Windows

Copy

⌘ + ⇧ + C

ctrl + shift + C

CopyDeeplink

⌘ + ⇧ + C

ctrl + shift + C

CopyName

⌘ + ⇧ + .

ctrl + alt + C

CopyPath

⌘ + ⇧ + ,

alt + shift + C

Save

⌘ + S

ctrl + S

Duplicate

⌘ + D

ctrl + shift + S

Edit

⌘ + E

ctrl + E

MoveDown

⌘ + ⇧ + ↓

ctrl + shift + ↓

MoveUp

⌘ + ⇧ + ↑

ctrl + shift + ↑

New

⌘ + N

ctrl + N

Open

⌘ + O

ctrl + O

OpenWith

⌘ + ⇧ + O

ctrl + shift + O

Pin

⌘ + ⇧ + P

ctrl + .

Refresh

⌘ + R

ctrl + R

Remove

⌃ + X

ctrl + D

RemoveAll

⌃ + ⇧ + X

ctrl + shift + D

ToggleQuickLook

⌘ + Y

ctrl + Y

Keyboard.KeyEquivalent

KeyEquivalent: "a" |
  "b" |
  "c" |
  "d" |
  "e" |
  "f" |
  "g" |
  "h" |
  "i" |
  "j" |
  "k" |
  "l" |
  "m" |
  "n" |
  "o" |
  "p" |
  "q" |
  "r" |
  "s" |
  "t" |
  "u" |
  "v" |
  "w" |
  "x" |
  "y" |
  "z" |
  "0" |
  "1" |
  "2" |
  "3" |
  "4" |
  "5" |
  "6" |
  "7" |
  "8" |
  "9" |
  "." |
  "," |
  ";" |
  "=" |
  "+" |
  "-" |
  "[" |
  "]" |
  "{" |
  "}" |
  "«" |
  "»" |
  "(" |
  ")" |
  "/" |
  "\\" |
  "'" |
  "`" |
  "§" |
  "^" |
  "@" |
  "$" |
  "return" |
  "delete" |
  "deleteForward" |
  "tab" |
  "arrowUp" |
  "arrowDown" |
  "arrowLeft" |
  "arrowRight" |
  "pageUp" |
  "pageDown" |
  "home" |
  "end" |
  "space" |
  "escape" |
  "enter" |
  "backspace";

KeyEquivalent of a Shortcut

Keyboard.KeyModifier

KeyModifier: "cmd" | "ctrl" | "opt" | "shift" | "alt" | "windows";

Modifier of a Shortcut.

Note that "alt" and "opt" are the same key, they are just named differently on macOS and Windows.

Last updated