| Title: | Keyboard Shortcuts for 'shiny' | 
| Version: | 0.1.1 | 
| Description: | Assign and listen to keyboard shortcuts in 'shiny' using the 'Mousetrap' Javascript library. | 
| License: | Apache License (≥ 2) | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.1.1 | 
| Imports: | htmltools, shiny, jsonlite | 
| URL: | https://github.com/r4fun/keys | 
| BugReports: | https://github.com/r4fun/keys/issues | 
| Suggests: | knitr, rmarkdown | 
| VignetteBuilder: | knitr | 
| NeedsCompilation: | no | 
| Packaged: | 2021-07-11 17:49:30 UTC; tlittlef | 
| Author: | Tyler Littlefield [aut, cre] (Author of Javascript wrapper),
  Colin Fay | 
| Maintainer: | Tyler Littlefield <tylerlittlefield@hey.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-07-11 18:00:02 UTC | 
Add a key binding from the server side
Description
Add a key binding from the server side
Usage
addKeys(inputId, keys, session = shiny::getDefaultReactiveDomain())
removeKeys(keys, session = shiny::getDefaultReactiveDomain())
Arguments
| inputId | The input slot that will be used to access the value. | 
| keys | A character vector of keys to bind. Examples include,  | 
| session | The  | 
Create a keys input control
Description
Create a key input that can be used to observe keys pressed by the user.
Usage
keysInput(inputId, keys, global = FALSE)
Arguments
| inputId | The input slot that will be used to access the value. | 
| keys | A character vector of keys to bind. Examples include,  | 
| global | Should keys work anywhere? If TRUE, keys are triggered when inside a textInput. | 
Examples
## Not run: 
ui <- fluidPage(
  keysInput("keys", c(
    "1",
    "2",
    "3",
    "command+shift+k",
    "up up down down left right left right b a enter"
  )),
)
server <- function(input, output, session) {
  observeEvent(input$keys, {
    print(input$keys)
  })
}
shinyApp(ui, server)
## End(Not run)
Create a keys recorder input control
Description
Create a key input that can be used to record keys pressed by the user.
Usage
keysRecordInput(inputId)
recordKeys(inputId, session = shiny::getDefaultReactiveDomain())
Arguments
| inputId | The input slot that will be used to access the value. | 
| session | The  | 
Examples
if (interactive()) {
  library(shiny)
  ui <- fluidPage(
    useKeys(),
    keysRecordInput("recorder"),
    keysInput("keys", "command+shift+k"),
    actionButton("record", "Record keys")
  )
  server <- function(input, output, session) {
    observeEvent(input$record, {
      print("recording keys...")
      recordKeys("recorder")
    })
    observeEvent(input$recorder, {
      print("adding keys...")
      addKeys("keys", input$recorder)
    })
    observeEvent(input$keys, {
      print(input$keys)
    })
  }
  shinyApp(ui, server)
}
Pause or Unpause Keys
Description
These functions allow to pause and unpause keyboard watching
Usage
pauseKey(session = shiny::getDefaultReactiveDomain())
unpauseKey(session = shiny::getDefaultReactiveDomain())
Arguments
| session | The  | 
Examples
if (interactive()){
library(shiny)
ui <- fluidPage(
  useKeys(),
  keysInput("keys", letters),
  actionButton("pause", "Pause"),
  actionButton("unpause", "Unpause")
)
server <- function(input, output, session) {
  observeEvent(input$keys, {
    print(input$keys)
  })
  observeEvent(input$pause, {
    pauseKey()
  })
  observeEvent(input$unpause, {
    unpauseKey()
  })
}
shinyApp(ui, server)
}
Use Keys in your application
Description
This function adds the keys dependencies to your application
Usage
useKeys()
Value
An html singleton