LogoLogo
DownloadGet a QuoteConnect with Us
  • Introduction
    • What is Thinfinity® Workspace
    • About this Document
  • Product Overview
    • Architecture Components
    • Load Balancing
    • Deployment Scenarios Overview
    • Connectivity
      • Remote Desktop Access
      • Remote Application Access
      • Terminal Access
    • RPAM and Resource Reservation
    • Cloud Manager
    • Audit Logging
    • User Analytics
  • Getting Started
    • Basic Installation
    • Accessing Thinfinity® Workspace in Your Browser
    • Connection Types
      • Remote Desktop Connection
      • Remote App Connection
      • Remote Intranet Web App Connection
      • Telnet SSH Connection
    • Configuration
    • Security
    • Beyond the Basics
  • Reference
    • Thinfinity® Workspace Configuration Manager
      • General Tab
      • Broker Tab
      • Authentication Tab
        • Methods Tab
          • API Access Settings
          • RADIUS Settings
          • SAML Settings
          • OAuth 2.0 Settings
          • External DLL
        • Mappings Tab
        • 2FA Tab
        • Directory Services Tab
          • Local Computer Users Settings
          • Local Computer Users
          • Local Thinfinity IdP Settings
          • Computer Domain Settings
          • External Domain Settings
      • Access Profiles Tab
        • The [+] Access Profile
        • Desktop Access Profiles
          • RDC Access Profile
            • Core Settings
            • User Experience Settings
          • ThinVNC Access Profile
          • VNC/RFB Access Profile
            • User Experience Settings
        • Application Access Profiles
          • Remote App Access Profile
            • Core Settings
          • Web App Access Profiles
            • Web Link Access Profile
            • WAG Access Profile
          • VirtualUI App Access Profile
            • Core Settings
        • Web Folder Access Profile
        • Terminal Access Profiles
          • z/Scope Classic Access Profile
          • Telnet/SSH Access Profile
            • Core Settings
            • User Experience Settings
        • Label
        • Access Control Settings
      • VirtualUI Tab
      • Folders Tab
      • Permissions Tab
      • Protection Tab
      • Notifications Tab
      • Database Tab
      • z/Scope Classic Tab
      • Services Tab
      • License Tab
    • Thinfinity® Workspace Web Manager
      • Access Profiles
        • Desktop Access Profiles
          • RDC Access Profile
            • Core Settings
            • User Experience Settings
          • VNC
            • Core Settings
            • User Experience Settings
          • Thinfinity VNC
            • Core Settings
        • Application Access Profiles
          • Remote App
          • Web App
            • Web Application Gateway (WAG)
            • Web Link
          • VirtualUI App
        • Web Folder Access Profile
          • Core Settings
        • Terminal Access Profiles
          • Telnet SSH Terminal
          • Multi Terminal
        • Access Control Settings - Web Manager
      • Addons
        • Analytics
        • Brokers Monitor
        • Audit Log
        • Recordings
        • Members
        • Reports
        • Resource Reservation
    • Thinfinity® Gateway
  • Configuration
    • RBAC and Resource Reservation
      • Configuring the Resource Reservation Feature
      • Role Definition with Permissions Groups
      • Granting Approver or Requester Role to a User
      • Enabling Resource Reservation
      • Granting a User Access to a Single Access Profile
      • Granting Access Permissions for a Group of Access Profiles
      • Grouping Access Profiles Under a Label
      • Restricting Access to a Resource
      • Exception Days - No Booking Allowed
      • Booking a Resource
      • Approving a Booking Request
    • Security
      • Managing the SSL Certificate
        • Creating a Self-Signed Certificate
        • Creating a CA Certificate Request
        • Importing a Certificate
        • Using ACME Certificates
      • Session Recording
        • Viewing Recorded Sessions
    • User Experience
      • Bidirectional Audio Redirection
      • Customizing the Thinfinity® Workspace Toolbar
        • Using web.settings.js
        • Using the SDK 'connect' Method
        • Extend the Thinfinity® Workspace Toolbar
      • Customize Translation
      • GFX and H.264 Support
        • Enabling H.264 for an Access Profile
        • Preparing a Remote Desktop for H.264 Support
      • How to Enable Multi-Monitor
      • Multi-Touch Redirection
      • Redirecting Devices
      • Remote FX
      • Enhanced Browser and DPI Support
        • Display Model Inheritance
        • Properties Reference Tables
        • The Calculation Process
        • Example
    • Extended Features
      • Remote Active Directory
        • How to Install and Configure Thinfinity® Remote AD Services
        • Active Directory Credentials Mapping
      • WebBridge - Direct File Transfer
        • Installing Thinfinity® WebBridge
        • Using WebBridge
      • Silent Install Options
    • License Server Manager
      • Proxy Activation
      • Get a New Trial Serial Number
      • Activate a Serial Number Online
      • Activate a Serial Number Offline
      • Registering a License with License Server Manager
  • Deployment Scenarios
    • Single Machine Deployment
    • Distributed Deployment
    • Multitenant - Several Subdomains
    • Implementing Secondary Brokers Scenarios
      • Resource Pools
      • OT Networks
      • Multitenant - Single Domain
  • Integrations
    • Integrating Thinfinity® Workspace
    • External Authentication
      • API Key
    • Customizing the Web Interface
      • Customizing the Logo
      • Organizing custom files
    • One-Time-URL (OTURL)
      • Customizing OTURL Connection
      • Enabling Features
  • Mobile Devices
    • Mobile Devices
    • Accessing Thinfinity® Workspace
    • Mouse Control
    • Keyboards and Toolbars
    • Gestures
Powered by GitBook
On this page

Was this helpful?

  1. Configuration
  2. User Experience
  3. Customizing the Thinfinity® Workspace Toolbar

Extend the Thinfinity® Workspace Toolbar

To extend the toolbar with new Send Key options, you have to use the toolbar JSON structure. It contains a JavaScript object array named shortcuts where each object represents a Send Key option and has two fields:

  • text: Option caption text (String).

  • keys: Object array where each element contains a keyboard action.

Action name
Associated Field
Meaning

down

key

It represents a keydown (just the key down, without the key release).

stroke

key

It represents the complete keystroke sequence action, from the keydown to the keyup (i.e.: when pressing and releasing a key).

up

key

It represents a keyup (key release).

type

text

Send text.

Value field
Meaning

key

Numeric code for the key.

text

A text to be remotely typed.

Adding New Toolbar Options

To add new toolbar options, use one of the following methods:

Using customSettings.js to extend the Thinfinity Workspace toolbar

The customSettings global variable is a JSON object defined in the customSettings.js file found in the Thinfinity Workspace installation web folder. This variable, a JavaScript object, contains attributes to set or modify connection features, including those related to the toolbar. By default, it doesn’t have attributes enabled in the source code and looks like this:

var customSettings = {
  /*
  "createToolbar": true, // Creates the ThinRDP toolbar
  "toolbarVisible": false, // ThinRDP toolbar starts expanded (visible)
  "checkBeforeWindowClose": true, // When false, skips user confirmation popup of onBeforeUnload event
  "noSsnDialog": false, // Avoids the share session popup dialog
  "noShowPopupsOnClose": false // When true, skips session closed message popup
  */
};

To add the toolbar.shortcuts structure to customSettings, do the following:

  var customSettings = {
  ...
    "toolbar": {
    "shortcuts": [ ... ]
  }
}

Example of Actions and Values

Here’s an example of the toolbar configuration with actions and values:

"toolbar": {
  "shortcuts": [
    {
      "text": "Help (F1)",
      "keys": [
        { "action": "stroke", "key": 0x70 } // F1
      ]
    },
    {
      "text": "Find",
      "keys": [
        { "action": "down", "key": 0x11 }, // CTRL
        { "action": "stroke", "key": 0x46 }, // F
        { "action": "up", "key": 0x11 } // CTRL
      ]
    },
    {
      "text": "Type 'Hello'",
      "keys": [
        { "action": "type", "text": "Hello" }
      ]
    },
    {
      "text": "Find 'Hello'",
      "keys": [
        { "action": "down", "key": 0x11 }, // CTRL
        { "action": "stroke", "key": 0x46 }, // F
        { "action": "up", "key": 0x11 }, // CTRL
        { "action": "type", "text": "Hello" },
        { "action": "stroke", "key": 0x0D } // ENTER
      ]
    }
  ]
}

In this example:

  • The first shortcut sends an F1 key press.

  • The second triggers a find/search command ([CTRL]+F).

  • The third types “Hello.”

  • The fourth combines the second and third examples to find “Hello.”

Modifying Parameters in an SDK Custom Connection

If you are using the Thinfinity® Workspace SDK and prefer not to change the toolbar for all users or wish to modify it conditionally (e.g., based on user identification or profile), you can add the toolbar.shortcuts structure to the connection parameters. This change will only affect SDK users, and you can optionally add this data conditionally.

Adding the toolbar.shortcuts structure to connection parameters for all SDK users:

var mythinrdp = null;
$(document).ready(function () {
  mythinrdp = GetThinRDP("", false);
  mythinrdp.connect({
    targetWindow: "myiframe",
    centered: true,
    ...
    // Custom shortcuts (Toolbar Actions/Send Keys...)
    "toolbar": {
      "shortcuts": [ ... ]
    }
  });
});

For a selective addition of toolbar.shortcuts:

var mythinrdp = null;
$(document).ready(function () {
  var params = {
    targetWindow: "myiframe",
    centered: true,
    ...
  };
  // Hypothetical functions created by you
  if (userProfile(CurrentUser()).hasExtendsSendKeys) {
    params["toolbar"] = { "shortcuts": [ ... ] };
  }
  mythinrdp = GetThinRDP("", false);
  mythinrdp.connect(params);
});

This approach allows you to tailor the toolbar shortcuts based on specific user profiles while maintaining flexibility in your Thinfinity Workspace integration.

PreviousUsing the SDK 'connect' MethodNextCustomize Translation

Last updated 2 months ago

Was this helpful?