LogoLogo
Developer HubGitHubContact Us
  • Welcome!
  • Olive Helps
    • Platform
      • How Olive Helps Works
      • Installation
      • Account Creation
      • Distributing Olive Helps
    • FAQs
      • General Loop FAQs
      • Loop Development FAQs
      • Olive Helps User FAQs
      • Security / IT FAQs
    • Data Security
      • User Data
      • Antivirus and Firewalls
  • Loop Development Kit
    • Your First Loop
      • Become a Loop Author
      • Creating a Loop
      • Build Your Loop
      • Local Loop Installation
      • Restarting Local Loops
    • Troubleshooting
    • Loop Security
      • Permissions
      • Environment Permissions
    • Loop Publication
      • Loop Approval Checklist
    • Loop Analytics Library
    • Examples
  • Documentation
  • Interfaces
  • Type Alias
  • Enumerations
  • Whisper Components
    • Base Attributes
    • Autocomplete
    • Box
    • Breadcrumb
    • Button
    • Chart
    • CollapseBox
    • Grid
    • Checkbox
    • Date Time
    • Divider
    • DropZone
    • Email
    • Icon
    • List Pair
    • Link
    • Pagination
    • Number
    • Markdown
    • Message
    • Password
    • Progress
    • Radio
    • Rating
    • RichTextEditor
    • Section Title
    • Select
    • Text Input
    • Telephone
    • Typography
  • APTITUDES
    • What are Aptitudes?
    • Browser
    • Clipboard
    • Config
    • Cursor
      • Screen Scaling Behavior
    • Document
    • Filesystem
    • Keyboard
    • Network
    • Process
    • Screen
    • Search
      • Index
    • System
    • UI
      • Loop UI Handlers
    • User
      • JWT
    • Vault
    • Whisper
      • Whisper Updates
      • JSX Whispers
    • Window
      • Screen Scaling Behavior
  • Release Notes
    • What's New
      • Olive Helps v0.55.0
      • Olive Helps v0.54.1
      • Olive Helps v0.53.1
      • Olive Helps v0.51.2
      • LDK v4.0.0
      • Olive Helps v0.50.3
      • Olive Helps v0.49.5
      • LDK v 3.18.0
      • Olive Helps v0.47.2
      • Olive Helps v0.46.2
      • LDK v 3.17.0
      • Olive Helps v0.45.4
      • Olive Helps v0.44.2
      • Olive Helps v0.43.1
      • Olive Helps v0.42.1
      • Olive Helps v0.41.4
      • Olive Helps v0.40.2
      • Olive Helps v0.39.4 & LDK v3.16.0
      • Olive Helps v0.38.8 & LDK v3.15.0
      • Olive Helps v0.36.5
      • Olive Helps v0.36.4
    • Archive
      • Olive Helps v0.36.3 & LDK v3.14.0
      • Olive Helps v0.34.4
      • LDK v3.13.0
      • Olive Helps v0.32.2 & LDK v3.12.0
      • Olive Helps v0.31.2 & LDK v3.11.0
      • Olive Helps v0.30.2 & LDK v3.10.0
      • Olive Helps v0.29.4
      • Olive Helps v0.29.3 & LDK v3.9.0
      • Olive Helps v0.28.3 & LDK v3.8.0
      • Olive Helps v0.27.7
      • Olive Helps v0.27.5
      • Olive Helps v.027.4
      • Olive Helps v0.27.2 & LDK v3.7.0
      • Olive Helps v0.25.3 & LDK v3.5.1
      • Olive Helps v0.24.6 & LDK v3.4.0
      • Olive Helps v0.23.2 & LDK v3.3.0
      • Olive Helps v0.22.3 & LDK v3.2.0
Powered by GitBook
On this page

Was this helpful?

  1. APTITUDES

Keyboard

The Keyboard Aptitude provides access to the the ability to listen to hotkeys pressed and text or characters typed.

The Keyboard aptitude expects that a user is using a standard QWERTY layout for their keys, and will not operate as expected with alternate layouts.

listenHotkey

Calls callback function when the specified hotkey is pressed or released.

import { keyboard } from '@oliveai/ldk';

// The hotkey to monitor to initiate callback.
// There are more modifiers to choose, please visit our documentation 
// https://open-olive.github.io/loop-development-kit/ldk/javascript/interfaces/hotkey.html

// Add hotkeys: Ctrl + a

const hotkeys = {
    key: 'a',
    control: true,
};
    
// The callback function called when the specified hotkey is pressed or released.
// Calls callback function when the specified hotkey is pressed or released.
const callback = (pressed) => {
    console.log('Hotkey pressed', 'response', pressed);
};
    
// Function that is called when listenHotkey() detects hotkeys being pressed.
const listener = keyboard.listenHotkey(hotkeys, pressed);

// Clears the listener function
listener.cancel();

listenText

Sets a listener that detects text from the user's keyboard, triggering a callback when a user types and then pauses briefly.

import { keyboard } from '@oliveai/ldk';

// The callback function called when text is detected from the keyboard
const callback = (text) => {
    console.log(`Received keyboard text: ${text}`);
};

// if passed in true, callback will be called while olive helps window is in focus. Disabled by default.
const includeOliveHelpsEvents = true; 

const listener = keyboard.listenText(callback, includeOliveHelpsEvents); 

// Clears the listener function
listener.cancel();

listenCharacter

Calls callback function when any character is detected from the keyboard.

import { keyboard } from '@oliveai/ldk';

// Function that is called after listenCharacter() detects a keyboard event.
// The callback function called when a character is detected from the keyboard.
const callback = (char) => {
    console.log(`Received keyboard text: ${char}`);
};

const listener = keyboard.listenCharacter(callback); 

// Clears the listener function
listener.cancel();

If you are trying to display an information Whisper about a physician to the user. Other than using the Clipboard Aptitude, you can also use the Keyboard Aptitude.

To do this, you would use the listenCharacter() function. It adds a sensor to the Loop, catching all incoming changes of a user's keyboard.

In addition to detecting the events, it allows you to provide a callback to respond to any incoming events.

Let's look at an example to better illustrate the point.

import { keyboard, whisper } from '@oliveai/ldk';
const typedChar = 'o';

const keyboardListenChar = () => 
    keyboard.listenCharacter((keyboardChar) => {
        if (typedChar === keyboardChar) {
            whisper.create({
                // Information card whisper
            });
        } else {
            console.log(`Received keyboard character: ${keyboardChar}`);
        }
    });

In this example, if a user were to type the character "o" from the keyboard, it would trigger the Whisper displaying an information card. Anything else would cause the Loop to log received keyboard character. The second parameter includeOliveHelpsEvents is optional, so we skip this parameter for now.

To use the Keyboard aptitude, simply set the following permissions in your package.json under the ldk object.

...
"ldk": {
  "permissions": {
    "keyboard": {},
    ...
  }
},
...
PreviousFilesystemNextNetwork

Last updated 3 years ago

Was this helpful?

Please see our page for more information.

Permissions