US20150091805A1 - Run-time image display on a device - Google Patents
Run-time image display on a device Download PDFInfo
- Publication number
- US20150091805A1 US20150091805A1 US14/498,506 US201414498506A US2015091805A1 US 20150091805 A1 US20150091805 A1 US 20150091805A1 US 201414498506 A US201414498506 A US 201414498506A US 2015091805 A1 US2015091805 A1 US 2015091805A1
- Authority
- US
- United States
- Prior art keywords
- display
- keyboard
- context information
- runtime
- computing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 239000003623 enhancer Substances 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 47
- 230000000007 visual effect Effects 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 208000036993 Frustration Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0227—Cooperation and interconnection of the input arrangement with other functional units of a computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/021—Arrangements integrating additional peripherals in a keyboard, e.g. card or barcode reader, optical scanner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/0219—Special purpose keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0238—Programmable keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01H—ELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
- H01H2219/00—Legends
- H01H2219/002—Legends replaceable; adaptable
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Definitions
- the present disclosure generally relates to creating and assigning runtime created images.
- the present techniques relate to displaying runtime created images on a key cap of a keyboard and selecting the runtime created image.
- the runtime images may be in the form of auto-complete text or decrypted passwords.
- PC personal computer
- FIG. 1 is a block diagram of a computing device that displays a runtime configurable display on a keyboard.
- FIG. 2 is a block diagram for an auto-complete recommendation service.
- FIG. 3 is a block diagram of the architecture for the display of an image on a keycap on a keyboard.
- FIGS. 4A and 4B each illustrate displaying a runtime created image on a space bar of a keyboard and selecting the runtime created image on the keyboard.
- FIGS. 5A and 5B each illustrate a visual layer of a keyboard and a scan code layer of the keyboard.
- FIGS. 6A and 6B each illustrate displaying a hidden password as asterisks on a space bar of a keyboard and an actual display of the runtime created and decrypted image of the password on the keyboard.
- FIG. 7 is a process flow diagram of a method for displaying a runtime configurable display.
- FIG. 8 is a block diagram showing a tangible, non-transitory, computer readable storage medium that stores code to display a runtime configurable display.
- the present techniques relate to enabling key caps on a keyboard with matrix display, touch sensors, and runtime software programmable methods to create and assign a runtime created image on the key caps that can be viewed and selected by a user. Additionally, the techniques relate to a method of selecting the runtime created image. In operation, the techniques include combining the technologies of display based and positioned graphics within key caps to create customized key caps tailored to lessen user frustrations and to provide a more pleasurable keyboard experience for the user.
- the present techniques may include an auto-completion recommendation directly on a key cap instead of directly on a display screen so that a user may select a recommended word while both typing on and viewing the keyboard.
- the keyboard may include an embedded screen so that a user can see what is being typed while looking down at the keyboard.
- the space bar key or other surface of the keyboard includes a display that outputs a predicted word as the user is typing.
- the present techniques may include decoupling the layers of a keyboard so that a user may utilize simple-to-remember passwords with the ability to view images of the passwords on a key of the keyboard.
- FIG. 1 is a block diagram of a computing device 100 that displays a runtime configurable display on a keyboard.
- the computing device 100 may be, for example, a laptop computer, desktop computer, ultrabook, tablet computer, mobile device, or server, among others.
- the computing device 100 may include a central processing unit (CPU) 102 that is configured to execute stored instructions, as well as a memory device 104 that stores instructions that are executable by the CPU 102 .
- the CPU may be coupled to the memory device 104 by a bus 106 .
- the CPU 102 can be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations.
- the CPU may include a cache.
- the computing device 100 may include more than one CPU 102 .
- the memory device 104 can include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems.
- the memory device 104 may include dynamic random access memory (DRAM).
- the CPU 102 may be linked through the bus 106 to a display interface 108 configured to connect the computing device 100 to display devices 110 .
- the display devices 110 may include a display screen that is a built-in component of the computing device 100 .
- the display devices 110 may also include a computer monitor, television, or projector, among others, that is externally connected to the computing device 100 .
- the CPU 102 may also be connected through the bus 106 to an I/O device interface 112 configured to connect the computing device 100 to a keyboard 114 .
- the keyboard 114 may be a configurable keyboard with graphic capabilities within each keycap of the keyboard 114 .
- the keyboard 114 may include an embedded display 116 , at least one microcontroller 118 , a touch sensor 120 , and a display manager 122 , among other components.
- the embedded display 116 may be a runtime configurable display where runtime programmable software may be embedded within the keyboard 114 .
- the runtime programmable software may be utilized to update the runtime configurable display of each keycap with an autocomplete engine.
- the embedded display 116 may be an active matrix display to display autocomplete text recommendations from the autocomplete engine.
- the embedded display may show recommended word possibilities directly on the keyboard.
- the microcontrollers 118 may include, but are not limited to, at least one keyboard microcontroller, at least one display controller, and at least one touch controller.
- the at least one display controller and the at least one touch controller are universal serial bus-human interface device (USB-HID) compliant microcontrollers.
- USB-HID universal serial bus-human interface device
- each of the at least one display controller and the at least one touch controller may be exposed to the operating system of the computing device 100 as a USB-HID compliant standard auxiliary display device with touch support.
- the touch sensor 120 may receive input when a user touches a particular key cap that includes the touch sensor.
- the keyboard 114 may include a plurality of touch sensors. As a user is typing, the text may be provided to a recommendation engine via a keyboard monitor module.
- Words can be recommended by the recommendation engine, which sends multiple recommended words to the display manager 122 .
- the display manager 122 may rank, identify, and display the recommended words.
- the display manger may also identify the selection of the particular text selection from the recommended words application as a touch event on the computing device 100 .
- I/O devices may be included, such as a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others.
- the I/O devices may be built-in components of the computing device 100 , or may be devices that are externally connected to the computing device 100 .
- the computing device 100 may include a storage device 124 .
- the storage device 124 is a physical memory such as a hard drive, an optical drive, a thumbdrive, an array of drives, or any combinations thereof.
- the computing device 100 may also include a network interface controller (NIC) 126 configured to connect the computing device 100 through the bus 106 to a network 128 .
- the network 128 may be a wide area network (WAN), local area network (LAN), or the Internet, among others.
- FIG. 1 The block diagram of FIG. 1 is not intended to indicate that the computing device 100 is to include all of the components shown in FIG. 1 . Further, the computing device 100 may include any number of additional components not shown in FIG. 1 , depending on the details of the specific implementation.
- FIG. 2 is a block diagram for an auto-complete recommendation service 200 .
- a display and touch panel 202 and its respective controllers 204 , 206 , and 208 may be exposed to an operating system as a universal serial bus-human interface device (USB-HID) display device.
- USB-HID universal serial bus-human interface device
- FIG. 2 illustrates a USB-HID interface
- any I/O interface can be used.
- the display and touch panel 202 is illustrated as a component of a space bar key, any location of the keyboard may be used.
- the display and touch panel 202 is an active matrix display with a high pin connector, i.e., 40 pins, that is integrated on a large size keycap such as the space bar or on any other location of the keyboard.
- the display and touch panel 202 may be located on any key cap or any surface of the keyboard that is not a key cap, such as between rows of key caps or between columns of keycaps.
- the display and touch panel 202 may also be located on any edge of the keyboard, such as to the top, bottom, left, or right of any grouping of keys.
- a scan codes reported by an HID stack 210 can be intercepted by a keyboard filter driver 212 and provided to a keyboard monitor 214 .
- runtime input text can be interpreted by a recommendation engine 216 which in turn may recommend one or more words to the auto-complete recommendation service 200 .
- the recommendation engine 216 may also have a default engine 218 provided by a manufacturing entity and may provide a method to plug in third party recommendations 220 for better performance and multi-lingual support.
- a word database enhancer 222 within the auto-complete recommendation service 200 may add new words into the database used by the recommendation engine 216 .
- the new words can be added using either of two methods including an user manual method or an adaptive method where a module intercepts the new words the user has inputted and adds any words to the database that do not currently exist.
- Another component of the auto-complete recommendation service 200 may include the ranking and display manager 223 , which can receive multiple words from the recommendation engine 216 .
- the ranking and display manager 223 may rank and identify multiple options that can be accommodated in an available keycap space.
- the manager 222 may render the input text auto-complete image 226 , e.g., runtime text input, of the user to memory and update the display and touch panel 202 using a display application programming interface (API) 226 .
- API application programming interface
- Various words and text displayed may be displayed in the auto-complete image 226 on the keycap space and selected by the user.
- the key cap may display auto-complete recommendations to the user.
- the user does not have to switch between focusing on a computing device screen for viewing auto-complete recommendations and focusing on the keyboard while typing. Instead, the auto-complete recommendations can be viewed directly on the keyboard.
- the selection of the user may be reported as a touch event 230 and interpreted by the manager 223 associated with the keyboard.
- the text selection can then be reported to one or several applications 224 that may be plugged into the auto-complete recommendation service 200 .
- a password service may operate in a similar manner as the auto-complete recommendation service 200 . However, instead of auto-complete text displayed on the keyboard, a user's encrypted and decrypted password may be displayed.
- the block diagram of FIG. 2 is not intended to indicate that the auto-complete recommendation service 200 is to include all of the components shown in Fig. w. Further, the auto-complete recommendation service 200 may include any number of additional components not shown in FIG. 2 , depending on the details of the specific implementation.
- FIG. 3 is a block diagram of the architecture 300 for the display of an image on a keycap on a keyboard.
- various text and words e.g., custom key images
- the architecture 300 may provide techniques to configure the keyboard 302 for the actual display of the custom key images.
- the keyboard 302 may be controlled by a Trusted Keyboard Manager (TKM) 304 that is running in a Trusted Execution Environment (TEE) platform 306 .
- TKM 304 and the TEE platform 306 are a portion of firmware 307 .
- An operating system 309 may manage the system hardware and software resources, including the keyboard 302 .
- the TKM 304 may be primarily responsible for displaying a custom key image on the keyboard 302 .
- the TKM 304 may have cached a set of generic images, e.g., runtime configurable display images, for display on the keycap of the keyboard 302 .
- the TKM 304 may periodically consult with a platform manufacturer to obtain a list of additional images to display, including auto-complete recommendations or visible passwords.
- the TM 304 may consult with cloud services 318 such as a platform manufacturer cloud service 314 or a third party cloud service 316 to obtain the list of additional keys to display.
- the application 310 can consult with its own service provider to obtain a signed image for a custom key. The application can then register itself (as illustrated at reference number 311 ) with the Keyboard Manager 312 running in the Operating System 309 or at the application layer and deliver the signed key image to the TKM 304 . Thus, during execution of an application 310 , the application 310 may deliver the generic custom key image to the TKM 306 for display. The TKM 306 may validate each custom key image before it is displayed by determining its validity and eligibility for display on the keycaps. As illustrated in FIG. 3 , a keyboard manager 312 may interface with the keyboard 302 to display the generic custom key images. In the case of a virtual keyboard, the keyboard manager 312 may overlay the custom key images on top of the virtual keyboard of an operating system and may intercept a touch event corresponding to the custom keycaps.
- the TKM 304 can automatically request or “get” a key image list from the cloud services 318 as illustrated at reference number 320 .
- a signed image list may be sent to the TKM 304 from the cloud services 318 as illustrated by reference number 322 .
- a user can request or “get” a key image from the cloud services 318 as illustrated at reference number 324 .
- a signed key image may be sent to the app 310 from the cloud services 318 as illustrated by reference number 326 .
- FIGS. 4A and 4B each illustrate displaying a runtime created image on a space bar of a keyboard 400 and selecting the runtime created image on the keyboard 400 , respectively.
- a user may input text using the keyboard 400 that may then be interpreted by a recommendation engine, as previously discussed.
- the recommendation engine may provide one or more words, e.g., “Company” or “Computer,” that may be closely related in spelling to the input text of the user.
- the recommended words are illustrated on the space bar at reference number 402 .
- a custom key image may be displayed on a screen embedded in the keyboard 400 .
- the word “Computer” may be chosen by selecting the word on the space bar key with a touch, as shown on the space bar at reference number 404 .
- the user is provided with a visual depiction of auto-complete text and words without viewing the screen of the computing device.
- FIGS. 5A and 5B each illustrate a visual layer of a keyboard 500 and a scan code layer of the keyboard 500 , respectively.
- IT information technology
- many information technology (IT) security protocols may discourage or prohibit the use of simple, non-complex user credentials, i.e., password, or periodic change of the password.
- certain rules may govern the content of a user's credentials including a certain minimum length, the exclusion of certain words, the inclusion or exclusion of non-alphanumeric characters, among other criteria.
- complicated passwords can present the user with unconventional problems. If the user's password is intercepted for malicious use, the user may be exposed to a potential loss of credentials, which can be revoked but not replaced. Further, complicated passwords can often be difficult to remember especially when a user may be required to change passwords on a periodic basis.
- a keyboard can be conceptualized as a two-layer device including a visual layer and a scan code layer.
- the visual layer may represent a character, a number, or a symbol displayed on a key to identify one key from another.
- the scan code layer may be the underlying value generated by the software and/or the hardware of a keyboard that can be sent to a computer to report which keys on the keyboard have been pressed.
- both layers may be statically coupled.
- FIGS. 5A and 5B the two layers may be decoupled to provide a runtime configurable display.
- the visual layer of the keyboard may include a keyboard layout 502 that a user may actual view when typing a password.
- the user may type the password “circuit” using the visual layer of the keyboard 500 , as depicted by the asterisks in FIG. 5A .
- the keys 504 , 506 , 508 , 510 , and 512 are used to spell the word “circuit.”
- the password “circuit”, when interpreted by the scan code layer may actually use the characters “TaAT ⁇ a!”, as depicted by the asterisks on a keyboard layout 504 to allow access to a device, as shown in FIG. 5B .
- the same keys on a different layer specifically, the keys 514 , 516 , 518 , 520 , and 522 , now output the characters “TaAT ⁇ a!”.
- the randomized scan code layer can be generated at runtime based on the context information provided by the user.
- FIGS. 6A and 6B each illustrate displaying a hidden password as asterisks on a space bar of a keyboard 600 and an actual display of the runtime created and decrypted image of the password on the keyboard 600 , respectively.
- a user may input a password using a keyboard.
- a scan code layer of the keyboard may actually change the interpretation of the characters of the inputted password.
- the space bar 602 of the keyboard 600 may provide a password entry indication using a series of asterisks, as illustrated in FIG. 6A .
- the user may desire to visually inspect the actual password without encryption.
- the user may press and hold the space bar 602 for about 2 to 3 seconds so that the actual password may be revealed on the space bar 602 , as shown in FIG. 6B .
- the user is provided with a visual display of the output associated with the password.
- FIG. 7 is a process flow diagram of a method 700 for displaying a runtime configurable display.
- a computing device When a computing device is in system boot mode, a default table corresponding to a lower case alphabet layout may be assigned by a microcontroller.
- a user may input context information into the computing device using a keyboard.
- the context information may include a user ID, website ID, password, platform ID, among other text.
- the keycaps of the keyboard are pressed, the input of the user may be detected using a scan matrix, at block 704 , and sent to a keyboard module. In some embodiments, the input may be detected using a coarse resistive or capacitive grid on a screen of the computing device.
- a code layer may be generated.
- the code layer may be a scan code layer.
- the microcontroller maintains multiple keyboard scan code maps for individual keyboard layouts.
- the event may include a change of the keyboard module, for example, the decoupling of the visual code layer and the scan code layer. If the input of the context information corresponds to the event, then the active scan code map may be changed and notification of the event may be sent to a layout change transmitter module of the microcontroller, at block 710 .
- the scan code layer may be generated at runtime based on the context information.
- the context information in the form of a runtime configurable display may be displayed on a keycap of a configurable keyboard. A report related to the runtime configurable display may be reported to an application running on the computing device.
- FIG. 7 The process flow diagram of FIG. 7 is not intended to indicate that that method 700 is to include all of the components shown in FIG. 7 in every case. Further, any number of additional components can be included within the method 700 , depending on the details of the specific implementation.
- FIG. 8 is a block diagram showing a tangible, non-transitory, computer readable storage medium 800 that stores code to display a runtime configurable display.
- the tangible, non-transitory computer-readable medium 800 may be accessed by a processor 802 over a computer bus 804 .
- the tangible, non-transitory computer-readable medium 800 may include code configured to direct the processor 802 to perform the method described herein.
- a keyboard monitor module 806 may be configured as a gateway to accept the selection of the context information, e.g., runtime text or words.
- a word database module 808 made be configured to add new words into a database that is utilized by a recommendation engine module 810 .
- the new words may be added manually by a user.
- new words may be added implicitly as the word database module 808 accepts new words inputted by the user.
- the recommendation engine module 810 may interpret runtime text input and recommend such input to auto-complete.
- a ranking and display manager module 812 may receive the runtime text input and words from the recommendation engine module 810 and may identify word options to display on an embedded display of a keyboard. In some embodiments, the ranking and display manager module 812 may update the embedded display.
- FIG. 8 The block diagram of FIG. 8 is not intended to indicate that the tangible, non-transitory computer readable medium 800 is to include all of the components shown in FIG. 8 . Further, the tangible, non-transitory, computer readable storage medium may include any number of additional components not shown in FIG. 8 , depending on the details of the specific implementation. For example, the tangible, non-transitory, computer readable storage medium 800 may include components to perform a method 700 as illustrated in FIG. 7 .
- the computing device includes a word database enhancer, a recommendation engine, a keyboard monitor, a ranking and display manager; and a keyboard.
- the keyboard includes an embedded display, where the embedded display is a runtime configurable display.
- the keyboard also includes a microcontroller, a touch sensor, and a keyboard filter driver.
- the computing device includes a database to supply words to the recommendation engine.
- the recommendation engine can interpret runtime text input and to recommend words to an auto-complete recommendation service.
- the ranking and display manager can receive words from the recommendation engine and identify word options to display on the embedded display of the keyboard.
- the ranking and display manager can update the embedded display.
- the embedded display may be an active matrix display to display the runtime text input.
- the embedded display can display autocomplete text recommendations.
- the microcontroller may include at least one keyboard microcontroller, at least one universal serial bus-human interface device (USB-HID) microcontroller, at least one display controller and at least one touch controller.
- the touch sensor can intercept a touch event.
- the display manager can identify text selection based on the touch event.
- a method for displaying a runtime configurable display includes inputting context information, detecting the context information using a scan matrix, generating a code layer based on the context information, determining the context information corresponds to an event, notifying a layout change transmitter of the event, and displaying the context information on the runtime configurable display.
- the method includes assigning a default table that corresponds to a lower case alphabet layout.
- the method includes sending the context information to a keyboard module.
- the event comprises a change of the keyboard module.
- the method includes changing an active scan code map.
- the active scan code map may change when the context information corresponds to the event.
- the change of the active scan code map may include decoupling a visual code layer and the scan code layer.
- the method includes generating a scan code layer at runtime based on the context information.
- the runtime configurable display may be located on a configurable keyboard.
- the method includes reporting the runtime configurable display to an application.
- a tangible, non-transitory, computer readable storage medium includes code to direct a processor to input context information, detect the context information using a scan matrix, generate a scan code layer based on the content information, determine the context information corresponds to an event, notify a layout change transmitter of the event, and display the context information on the runtime configurable display.
- the tangible, non-transitory, computer readable storage medium includes code to direct the processor to assign a default table that corresponds to a lower case alphabet layout.
- the tangible, non-transitory, computer readable storage medium includes code to direct the processor to send the context information to a keyboard module.
- the event may include a change of the keyboard module.
- the tangible, non-transitory, computer readable storage medium includes code to change an active scan code map.
- the active scan code map may be changed when the context information corresponds to the event.
- the change of the active scan code map may include decoupling a visual code layer and the scan code layer.
- the tangible, non-transitory, computer readable storage medium includes code to generate a scan code layer at runtime based on the context information.
- the runtime configurable display may be located on a configurable keyboard.
- the tangible, non-transitory, computer readable storage medium includes code to report the runtime configurable display to an application.
- a method for displaying a runtime configurable display includes a means for inputting context information, a means for detecting the context information using a scan matrix, a means for generating a scan code layer based on the content information, a means for determining the context information corresponds to an event, a means for notifying a layout change transmitter of the event, and a means for displaying the context information on the runtime configurable display.
- the method includes a means for assigning a default table that corresponds to a lower case alphabet layout.
- the method includes a means for sending the context information to a keyboard module.
- the event may include a change of the keyboard module.
- the method includes a means for changing an active scan code map.
- the active scan code map may be changed when the context information corresponds to the event.
- the change of the active scan code map may include decoupling a visual code layer and the scan code layer.
- the method may include a means for generating a scan code layer at runtime based on the context information.
- the runtime configurable display may be located on a configurable keyboard.
- the method may include a means for reporting the runtime configurable display to an application.
- An embodiment is an implementation or example.
- Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” “various embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the present techniques.
- the various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- User Interface Of Digital Computer (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
An embodiment for a computing device is described herein. The computing device may include a word database enhancer, a recommendation engine, a keyboard monitor, a ranking and display manager, and a keyboard. The keyboard may be a configurable physical keyboard device that includes an embedded display, where the embedded display is a runtime configurable display. The keyboard may display configurable images in the form of auto-text completion text or a decrypted password. The keyboard may also include a microcontroller, a touch sensor, and a keyboard filter driver.
Description
- This application claims the benefit of an India Provisional Application No. 4381/CHE/2013 filed Sep. 27, 2013.
- The present disclosure generally relates to creating and assigning runtime created images. In particular, the present techniques relate to displaying runtime created images on a key cap of a keyboard and selecting the runtime created image. The runtime images may be in the form of auto-complete text or decrypted passwords.
- Less sophisticated personal computer (PC) users may encounter issues such as lack of character recognition and lack of data entry skills, when utilizing a keyboard. For example, showing auto-complete recommendations on a main screen may be useful when the PC user is focusing on the main screen while typing. However, a PC user who cannot type without viewing the keyboard may become frustrated since the user has to switch their attention back and forth to view both the keyboard and the main screen. As a result, the PC user may often miss the auto-complete recommendation on the screen.
-
FIG. 1 is a block diagram of a computing device that displays a runtime configurable display on a keyboard. -
FIG. 2 is a block diagram for an auto-complete recommendation service. -
FIG. 3 is a block diagram of the architecture for the display of an image on a keycap on a keyboard. -
FIGS. 4A and 4B each illustrate displaying a runtime created image on a space bar of a keyboard and selecting the runtime created image on the keyboard. -
FIGS. 5A and 5B each illustrate a visual layer of a keyboard and a scan code layer of the keyboard. -
FIGS. 6A and 6B each illustrate displaying a hidden password as asterisks on a space bar of a keyboard and an actual display of the runtime created and decrypted image of the password on the keyboard. -
FIG. 7 is a process flow diagram of a method for displaying a runtime configurable display. -
FIG. 8 is a block diagram showing a tangible, non-transitory, computer readable storage medium that stores code to display a runtime configurable display. - The present techniques relate to enabling key caps on a keyboard with matrix display, touch sensors, and runtime software programmable methods to create and assign a runtime created image on the key caps that can be viewed and selected by a user. Additionally, the techniques relate to a method of selecting the runtime created image. In operation, the techniques include combining the technologies of display based and positioned graphics within key caps to create customized key caps tailored to lessen user frustrations and to provide a more pleasurable keyboard experience for the user.
- In embodiments, the present techniques may include an auto-completion recommendation directly on a key cap instead of directly on a display screen so that a user may select a recommended word while both typing on and viewing the keyboard. Additionally, the keyboard may include an embedded screen so that a user can see what is being typed while looking down at the keyboard. In embodiments, the space bar key or other surface of the keyboard includes a display that outputs a predicted word as the user is typing. Also, in embodiments the present techniques may include decoupling the layers of a keyboard so that a user may utilize simple-to-remember passwords with the ability to view images of the passwords on a key of the keyboard.
-
FIG. 1 is a block diagram of acomputing device 100 that displays a runtime configurable display on a keyboard. Thecomputing device 100 may be, for example, a laptop computer, desktop computer, ultrabook, tablet computer, mobile device, or server, among others. Thecomputing device 100 may include a central processing unit (CPU) 102 that is configured to execute stored instructions, as well as amemory device 104 that stores instructions that are executable by theCPU 102. The CPU may be coupled to thememory device 104 by abus 106. Additionally, theCPU 102 can be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The CPU may include a cache. Furthermore, thecomputing device 100 may include more than oneCPU 102. - The
memory device 104 can include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems. For example, thememory device 104 may include dynamic random access memory (DRAM). TheCPU 102 may be linked through thebus 106 to adisplay interface 108 configured to connect thecomputing device 100 to displaydevices 110. Thedisplay devices 110 may include a display screen that is a built-in component of thecomputing device 100. Thedisplay devices 110 may also include a computer monitor, television, or projector, among others, that is externally connected to thecomputing device 100. - The
CPU 102 may also be connected through thebus 106 to an I/O device interface 112 configured to connect thecomputing device 100 to akeyboard 114. Thekeyboard 114 may be a configurable keyboard with graphic capabilities within each keycap of thekeyboard 114. Thekeyboard 114 may include an embeddeddisplay 116, at least onemicrocontroller 118, atouch sensor 120, and adisplay manager 122, among other components. The embeddeddisplay 116 may be a runtime configurable display where runtime programmable software may be embedded within thekeyboard 114. In particular, the runtime programmable software may be utilized to update the runtime configurable display of each keycap with an autocomplete engine. In some embodiments, the embeddeddisplay 116 may be an active matrix display to display autocomplete text recommendations from the autocomplete engine. The embedded display may show recommended word possibilities directly on the keyboard. - The
microcontrollers 118 may include, but are not limited to, at least one keyboard microcontroller, at least one display controller, and at least one touch controller. In embodiments, the at least one display controller and the at least one touch controller are universal serial bus-human interface device (USB-HID) compliant microcontrollers. Thus, each of the at least one display controller and the at least one touch controller may be exposed to the operating system of thecomputing device 100 as a USB-HID compliant standard auxiliary display device with touch support. Thetouch sensor 120 may receive input when a user touches a particular key cap that includes the touch sensor. Although one touch sensor is illustrated, thekeyboard 114 may include a plurality of touch sensors. As a user is typing, the text may be provided to a recommendation engine via a keyboard monitor module. Words can be recommended by the recommendation engine, which sends multiple recommended words to thedisplay manager 122. Thedisplay manager 122 may rank, identify, and display the recommended words. The display manger may also identify the selection of the particular text selection from the recommended words application as a touch event on thecomputing device 100. - Other I/O devices may be included, such as a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others. The I/O devices may be built-in components of the
computing device 100, or may be devices that are externally connected to thecomputing device 100. - The
computing device 100 may include astorage device 124. Thestorage device 124 is a physical memory such as a hard drive, an optical drive, a thumbdrive, an array of drives, or any combinations thereof. Thecomputing device 100 may also include a network interface controller (NIC) 126 configured to connect thecomputing device 100 through thebus 106 to anetwork 128. Thenetwork 128 may be a wide area network (WAN), local area network (LAN), or the Internet, among others. - The block diagram of
FIG. 1 is not intended to indicate that thecomputing device 100 is to include all of the components shown inFIG. 1 . Further, thecomputing device 100 may include any number of additional components not shown inFIG. 1 , depending on the details of the specific implementation. -
FIG. 2 is a block diagram for an auto-complete recommendation service 200. As shown inFIG. 2 , a display andtouch panel 202 and itsrespective controllers FIG. 2 illustrates a USB-HID interface, any I/O interface can be used. Moreover, although the display andtouch panel 202 is illustrated as a component of a space bar key, any location of the keyboard may be used. In examples, the display andtouch panel 202 is an active matrix display with a high pin connector, i.e., 40 pins, that is integrated on a large size keycap such as the space bar or on any other location of the keyboard. In particular, the display andtouch panel 202 may be located on any key cap or any surface of the keyboard that is not a key cap, such as between rows of key caps or between columns of keycaps. The display andtouch panel 202 may also be located on any edge of the keyboard, such as to the top, bottom, left, or right of any grouping of keys. - When a user
types text input 211 onto key caps coupled with amicrocontroller 209, a scan codes reported by anHID stack 210 can be intercepted by akeyboard filter driver 212 and provided to akeyboard monitor 214. As a result, runtime input text can be interpreted by arecommendation engine 216 which in turn may recommend one or more words to the auto-complete recommendation service 200. Therecommendation engine 216 may also have adefault engine 218 provided by a manufacturing entity and may provide a method to plug inthird party recommendations 220 for better performance and multi-lingual support. Aword database enhancer 222 within the auto-complete recommendation service 200 may add new words into the database used by therecommendation engine 216. The new words can be added using either of two methods including an user manual method or an adaptive method where a module intercepts the new words the user has inputted and adds any words to the database that do not currently exist. - Another component of the auto-
complete recommendation service 200 may include the ranking anddisplay manager 223, which can receive multiple words from therecommendation engine 216. In operation, the ranking anddisplay manager 223 may rank and identify multiple options that can be accommodated in an available keycap space. Themanager 222 may render the input text auto-complete image 226, e.g., runtime text input, of the user to memory and update the display andtouch panel 202 using a display application programming interface (API) 226. Various words and text displayed may be displayed in the auto-complete image 226 on the keycap space and selected by the user. Accordingly, the key cap may display auto-complete recommendations to the user. As a result, the user does not have to switch between focusing on a computing device screen for viewing auto-complete recommendations and focusing on the keyboard while typing. Instead, the auto-complete recommendations can be viewed directly on the keyboard. - The selection of the user may be reported as a
touch event 230 and interpreted by themanager 223 associated with the keyboard. The text selection can then be reported to one orseveral applications 224 that may be plugged into the auto-complete recommendation service 200. - In some embodiments, a password service may operate in a similar manner as the auto-
complete recommendation service 200. However, instead of auto-complete text displayed on the keyboard, a user's encrypted and decrypted password may be displayed. - The block diagram of
FIG. 2 is not intended to indicate that the auto-complete recommendation service 200 is to include all of the components shown in Fig. w. Further, the auto-complete recommendation service 200 may include any number of additional components not shown inFIG. 2 , depending on the details of the specific implementation. -
FIG. 3 is a block diagram of thearchitecture 300 for the display of an image on a keycap on a keyboard. As discussed with respect toFIG. 2 , various text and words, e.g., custom key images, may be display on the keycaps of a physical keyboard. As illustrated inFIG. 3 , thearchitecture 300 may provide techniques to configure thekeyboard 302 for the actual display of the custom key images. Thekeyboard 302 may be controlled by a Trusted Keyboard Manager (TKM) 304 that is running in a Trusted Execution Environment (TEE)platform 306. In embodiments, theTKM 304 and theTEE platform 306 are a portion offirmware 307. An operating system 309 may manage the system hardware and software resources, including thekeyboard 302. - The
TKM 304 may be primarily responsible for displaying a custom key image on thekeyboard 302. On start-up of aPC device 308, theTKM 304 may have cached a set of generic images, e.g., runtime configurable display images, for display on the keycap of thekeyboard 302. Thereafter, theTKM 304 may periodically consult with a platform manufacturer to obtain a list of additional images to display, including auto-complete recommendations or visible passwords. In embodiments, theTM 304 may consult withcloud services 318 such as a platformmanufacturer cloud service 314 or a thirdparty cloud service 316 to obtain the list of additional keys to display. - On startup or during execution of an
application 310 belonging to partner service providers, theapplication 310 can consult with its own service provider to obtain a signed image for a custom key. The application can then register itself (as illustrated at reference number 311) with theKeyboard Manager 312 running in the Operating System 309 or at the application layer and deliver the signed key image to theTKM 304. Thus, during execution of anapplication 310, theapplication 310 may deliver the generic custom key image to theTKM 306 for display. TheTKM 306 may validate each custom key image before it is displayed by determining its validity and eligibility for display on the keycaps. As illustrated inFIG. 3 , akeyboard manager 312 may interface with thekeyboard 302 to display the generic custom key images. In the case of a virtual keyboard, thekeyboard manager 312 may overlay the custom key images on top of the virtual keyboard of an operating system and may intercept a touch event corresponding to the custom keycaps. - In embodiments, the
TKM 304 can automatically request or “get” a key image list from thecloud services 318 as illustrated atreference number 320. A signed image list may be sent to theTKM 304 from thecloud services 318 as illustrated byreference number 322. Similarly, a user can request or “get” a key image from thecloud services 318 as illustrated atreference number 324. A signed key image may be sent to theapp 310 from thecloud services 318 as illustrated byreference number 326. -
FIGS. 4A and 4B each illustrate displaying a runtime created image on a space bar of akeyboard 400 and selecting the runtime created image on thekeyboard 400, respectively. As shown inFIG. 4A , a user may input text using thekeyboard 400 that may then be interpreted by a recommendation engine, as previously discussed. The recommendation engine may provide one or more words, e.g., “Company” or “Computer,” that may be closely related in spelling to the input text of the user. The recommended words are illustrated on the space bar atreference number 402. As shown inFIG. 4B , a custom key image may be displayed on a screen embedded in thekeyboard 400. For example, based on the discretion of the user, the word “Computer” may be chosen by selecting the word on the space bar key with a touch, as shown on the space bar atreference number 404. As a result of the embedded screen within the keyboard, the user is provided with a visual depiction of auto-complete text and words without viewing the screen of the computing device. -
FIGS. 5A and 5B each illustrate a visual layer of akeyboard 500 and a scan code layer of thekeyboard 500, respectively. As a line of defense, many information technology (IT) security protocols may discourage or prohibit the use of simple, non-complex user credentials, i.e., password, or periodic change of the password. Thus, to obtain a password, certain rules may govern the content of a user's credentials including a certain minimum length, the exclusion of certain words, the inclusion or exclusion of non-alphanumeric characters, among other criteria. However, complicated passwords can present the user with unconventional problems. If the user's password is intercepted for malicious use, the user may be exposed to a potential loss of credentials, which can be revoked but not replaced. Further, complicated passwords can often be difficult to remember especially when a user may be required to change passwords on a periodic basis. - A keyboard can be conceptualized as a two-layer device including a visual layer and a scan code layer. The visual layer may represent a character, a number, or a symbol displayed on a key to identify one key from another. The scan code layer may be the underlying value generated by the software and/or the hardware of a keyboard that can be sent to a computer to report which keys on the keyboard have been pressed. In typical keyboards, both layers may be statically coupled. As illustrated in
FIGS. 5A and 5B , the two layers may be decoupled to provide a runtime configurable display. As shown inFIG. 5A , the visual layer of the keyboard may include akeyboard layout 502 that a user may actual view when typing a password. For example, the user may type the password “circuit” using the visual layer of thekeyboard 500, as depicted by the asterisks inFIG. 5A . Specifically, thekeys keyboard layout 504 to allow access to a device, as shown inFIG. 5B . The same keys on a different layer, specifically, thekeys -
FIGS. 6A and 6B each illustrate displaying a hidden password as asterisks on a space bar of akeyboard 600 and an actual display of the runtime created and decrypted image of the password on thekeyboard 600, respectively. As discussed with respect toFIGS. 5A and 5B , a user may input a password using a keyboard. However, a scan code layer of the keyboard may actually change the interpretation of the characters of the inputted password. - As shown in
FIG. 6A , after the user has provided the input text to satisfy the password requirement, thespace bar 602 of thekeyboard 600 may provide a password entry indication using a series of asterisks, as illustrated inFIG. 6A . However, the user may desire to visually inspect the actual password without encryption. Thus, the user may press and hold thespace bar 602 for about 2 to 3 seconds so that the actual password may be revealed on thespace bar 602, as shown inFIG. 6B . As a result of the embedded screen within the keyboard, the user is provided with a visual display of the output associated with the password. -
FIG. 7 is a process flow diagram of amethod 700 for displaying a runtime configurable display. When a computing device is in system boot mode, a default table corresponding to a lower case alphabet layout may be assigned by a microcontroller. As a result, atblock 702, a user may input context information into the computing device using a keyboard. The context information may include a user ID, website ID, password, platform ID, among other text. When the keycaps of the keyboard are pressed, the input of the user may be detected using a scan matrix, atblock 704, and sent to a keyboard module. In some embodiments, the input may be detected using a coarse resistive or capacitive grid on a screen of the computing device. - At
block 706, based on the context information, a code layer may be generated. The code layer may be a scan code layer. In some cases, the microcontroller maintains multiple keyboard scan code maps for individual keyboard layouts. Atblock 708, it is determined whether the context information corresponds to an event. In some aspects, the event may include a change of the keyboard module, for example, the decoupling of the visual code layer and the scan code layer. If the input of the context information corresponds to the event, then the active scan code map may be changed and notification of the event may be sent to a layout change transmitter module of the microcontroller, atblock 710. In some embodiments, the scan code layer may be generated at runtime based on the context information. Atblock 712, the context information in the form of a runtime configurable display may be displayed on a keycap of a configurable keyboard. A report related to the runtime configurable display may be reported to an application running on the computing device. - The process flow diagram of
FIG. 7 is not intended to indicate that thatmethod 700 is to include all of the components shown inFIG. 7 in every case. Further, any number of additional components can be included within themethod 700, depending on the details of the specific implementation. -
FIG. 8 is a block diagram showing a tangible, non-transitory, computerreadable storage medium 800 that stores code to display a runtime configurable display. The tangible, non-transitory computer-readable medium 800 may be accessed by aprocessor 802 over acomputer bus 804. Furthermore, the tangible, non-transitory computer-readable medium 800 may include code configured to direct theprocessor 802 to perform the method described herein. - The various software components discussed herein may be stored on one or more tangible, non-transitory medium 800, as indicated in
FIG. 8 . For example, akeyboard monitor module 806 may be configured as a gateway to accept the selection of the context information, e.g., runtime text or words. Aword database module 808 made be configured to add new words into a database that is utilized by arecommendation engine module 810. For example, the new words may be added manually by a user. Additionally, new words may be added implicitly as theword database module 808 accepts new words inputted by the user. In addition to accepting words from theword database module 808, therecommendation engine module 810 may interpret runtime text input and recommend such input to auto-complete. - A ranking and
display manager module 812 may receive the runtime text input and words from therecommendation engine module 810 and may identify word options to display on an embedded display of a keyboard. In some embodiments, the ranking anddisplay manager module 812 may update the embedded display. - The block diagram of
FIG. 8 is not intended to indicate that the tangible, non-transitory computerreadable medium 800 is to include all of the components shown inFIG. 8 . Further, the tangible, non-transitory, computer readable storage medium may include any number of additional components not shown inFIG. 8 , depending on the details of the specific implementation. For example, the tangible, non-transitory, computerreadable storage medium 800 may include components to perform amethod 700 as illustrated inFIG. 7 . - A computing device is described herein. The computing device includes a word database enhancer, a recommendation engine, a keyboard monitor, a ranking and display manager; and a keyboard. The keyboard includes an embedded display, where the embedded display is a runtime configurable display. The keyboard also includes a microcontroller, a touch sensor, and a keyboard filter driver.
- The computing device includes a database to supply words to the recommendation engine. The recommendation engine can interpret runtime text input and to recommend words to an auto-complete recommendation service. The ranking and display manager can receive words from the recommendation engine and identify word options to display on the embedded display of the keyboard. The ranking and display manager can update the embedded display. The embedded display may be an active matrix display to display the runtime text input. The embedded display can display autocomplete text recommendations. The microcontroller may include at least one keyboard microcontroller, at least one universal serial bus-human interface device (USB-HID) microcontroller, at least one display controller and at least one touch controller. The touch sensor can intercept a touch event. The display manager can identify text selection based on the touch event.
- A method for displaying a runtime configurable display is described herein. The method includes inputting context information, detecting the context information using a scan matrix, generating a code layer based on the context information, determining the context information corresponds to an event, notifying a layout change transmitter of the event, and displaying the context information on the runtime configurable display.
- The method includes assigning a default table that corresponds to a lower case alphabet layout. The method includes sending the context information to a keyboard module. The event comprises a change of the keyboard module. The method includes changing an active scan code map. The active scan code map may change when the context information corresponds to the event. The change of the active scan code map may include decoupling a visual code layer and the scan code layer. The method includes generating a scan code layer at runtime based on the context information. The runtime configurable display may be located on a configurable keyboard. The method includes reporting the runtime configurable display to an application.
- A tangible, non-transitory, computer readable storage medium is described herein. The tangible, non-transitory, computer readable storage medium includes code to direct a processor to input context information, detect the context information using a scan matrix, generate a scan code layer based on the content information, determine the context information corresponds to an event, notify a layout change transmitter of the event, and display the context information on the runtime configurable display.
- The tangible, non-transitory, computer readable storage medium includes code to direct the processor to assign a default table that corresponds to a lower case alphabet layout. The tangible, non-transitory, computer readable storage medium includes code to direct the processor to send the context information to a keyboard module. The event may include a change of the keyboard module. The tangible, non-transitory, computer readable storage medium includes code to change an active scan code map. The active scan code map may be changed when the context information corresponds to the event. The change of the active scan code map may include decoupling a visual code layer and the scan code layer. The tangible, non-transitory, computer readable storage medium includes code to generate a scan code layer at runtime based on the context information. The runtime configurable display may be located on a configurable keyboard. The tangible, non-transitory, computer readable storage medium includes code to report the runtime configurable display to an application.
- A method for displaying a runtime configurable display is described herein. The method includes a means for inputting context information, a means for detecting the context information using a scan matrix, a means for generating a scan code layer based on the content information, a means for determining the context information corresponds to an event, a means for notifying a layout change transmitter of the event, and a means for displaying the context information on the runtime configurable display.
- The method includes a means for assigning a default table that corresponds to a lower case alphabet layout. The method includes a means for sending the context information to a keyboard module. The event may include a change of the keyboard module. The method includes a means for changing an active scan code map. The active scan code map may be changed when the context information corresponds to the event. The change of the active scan code map may include decoupling a visual code layer and the scan code layer. The method may include a means for generating a scan code layer at runtime based on the context information. The runtime configurable display may be located on a configurable keyboard. The method may include a means for reporting the runtime configurable display to an application.
- An embodiment is an implementation or example. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” “various embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the present techniques. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
- Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular embodiment or embodiments. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
- The present techniques are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims including any amendments thereto that define the scope of the present techniques.
Claims (20)
1. A computing device, comprising:
a word database enhancer;
a recommendation engine;
a keyboard monitor;
a ranking and display manager; and
a keyboard, comprising:
an embedded display, wherein the embedded display is a runtime configurable display.
a microcontroller;
a touch sensor; and
a keyboard filter driver.
2. The computing device of claim 1 , comprising a database to supply words to the recommendation engine.
3. The computing device of claim 1 , wherein the recommendation engine is to interpret runtime text input and to recommend words to an auto-complete recommendation service.
4. The computing device of claim 1 , wherein the ranking and display manager is to receive words from the recommendation engine and to identify word options to display on the embedded display of the keyboard.
5. The computing device of claim 3 , wherein the embedded display is an active matrix display to display the runtime text input.
6. The computing device of claim 1 , wherein the embedded display is to display autocomplete text recommendations.
7. The computing device of claim 1 , wherein the microcontroller comprises at least one keyboard microcontroller, at least one universal serial bus-human interface device (USB-HID) microcontroller, at least one display controller and at least one touch controller.
8. A method for displaying a runtime configurable display, comprising:
inputting context information;
detecting the context information using a scan matrix;
generating a code layer based on the context information;
determining the context information corresponds to an event;
notifying a layout change transmitter of the event; and
displaying the context information on the runtime configurable display.
9. The method of claim 8 , comprising sending the context information to a keyboard module.
10. The method of claim 8 , wherein the event comprises a change of the keyboard module.
11. The method of claim 8 , comprising changing an active scan code map.
12. The method of claim 11 , wherein the active scan code map is changed when the context information corresponds to the event.
13. The method of claim 12 , wherein the change of the active scan code map comprises decoupling a visual code layer and the scan code layer.
14. The method of claim 8 , wherein the runtime configurable display is located on a configurable keyboard.
15. A tangible, non-transitory, computer readable storage medium comprising code to direct a processor to:
input context information;
detect the context information using a scan matrix;
generate a scan code layer based on the content information;
determine the context information corresponds to an event;
notify a layout change transmitter of the event; and
display the context information on the runtime configurable display.
16. The non-transitory, computer readable storage medium of claim 15 ,
comprising code to direct the processor to:
send the context information to a keyboard module.
17. The non-transitory, computer readable storage medium of claim 15 , wherein the event comprises a change of the keyboard module.
18. The non-transitory, computer readable storage medium of claim 15 ,
comprising code to direct the processor to:
change an active scan code map.
19. The non-transitory, computer readable storage medium of claim 18 , wherein the change of the active scan code map comprises decoupling a visual code layer and the scan code layer.
20. The non-transitory, computer readable storage medium of claim 15 , wherein the runtime configurable display is located on a configurable keyboard.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/683,377 US10354193B2 (en) | 2013-09-27 | 2017-08-22 | Run-time image display on a device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN4381/CHE/2013 | 2013-09-27 | ||
IN4381CH2013 | 2013-09-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/683,377 Continuation US10354193B2 (en) | 2013-09-27 | 2017-08-22 | Run-time image display on a device |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150091805A1 true US20150091805A1 (en) | 2015-04-02 |
Family
ID=52739629
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/498,506 Abandoned US20150091805A1 (en) | 2013-09-27 | 2014-09-26 | Run-time image display on a device |
US15/683,377 Expired - Fee Related US10354193B2 (en) | 2013-09-27 | 2017-08-22 | Run-time image display on a device |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/683,377 Expired - Fee Related US10354193B2 (en) | 2013-09-27 | 2017-08-22 | Run-time image display on a device |
Country Status (1)
Country | Link |
---|---|
US (2) | US20150091805A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170024096A1 (en) * | 2015-07-20 | 2017-01-26 | Nowww.Us Pty Ltd | Method for disguising a computer system's login interface |
US20170052703A1 (en) * | 2015-08-20 | 2017-02-23 | Google Inc. | Apparatus and method for touchscreen keyboard suggestion word generation and display |
CN106648122A (en) * | 2015-11-25 | 2017-05-10 | 苏州达方电子有限公司 | Keyboard device |
US9922619B2 (en) | 2014-12-23 | 2018-03-20 | Intel Corporation | Computing device with a secondary display |
US20220405405A1 (en) * | 2018-10-30 | 2022-12-22 | Jason Allen Rexilius | Systems and methods for secure peripherals |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4188626A (en) * | 1977-05-23 | 1980-02-12 | Texas Instruments Incorporated | Method for scanning a keyboard and for actuating a display device via common conductors |
US5287526A (en) * | 1986-04-14 | 1994-02-15 | Chris L. Wolf | System for selectively modifying codes generated by a touch type keyboard upon detecting predetermined sequence of make/break codes and expiration of predefined time interval |
US20040070620A1 (en) * | 2002-10-11 | 2004-04-15 | Hirotoshi Fujisawa | Display device, display method, and program |
US20070288247A1 (en) * | 2006-06-11 | 2007-12-13 | Michael Mackay | Digital life server |
US7339583B2 (en) * | 2005-02-24 | 2008-03-04 | Kabushiki Kaisha Toshiba | Computer graphics data coding apparatus, decoding apparatus, coding method and decoding method |
US20080074294A1 (en) * | 2006-09-26 | 2008-03-27 | Compal Electronics, Inc. | System for controlling keyboard |
US20080303793A1 (en) * | 2007-06-05 | 2008-12-11 | Microsoft Corporation | On-screen keyboard |
US20090207138A1 (en) * | 2008-02-18 | 2009-08-20 | Sony Ericsson Mobile Communications Ab | Selecting a layout |
US20120151413A1 (en) * | 2010-12-08 | 2012-06-14 | Nokia Corporation | Method and apparatus for providing a mechanism for presentation of relevant content |
US20130073081A1 (en) * | 2010-06-30 | 2013-03-21 | Northeast University | Device for positioning submarine pipeline robots and method thereof |
US20130222371A1 (en) * | 2011-08-26 | 2013-08-29 | Reincloud Corporation | Enhancing a sensory perception in a field of view of a real-time source within a display screen through augmented reality |
US20130226758A1 (en) * | 2011-08-26 | 2013-08-29 | Reincloud Corporation | Delivering aggregated social media with third party apis |
US20130307786A1 (en) * | 2012-05-16 | 2013-11-21 | Immersion Corporation | Systems and Methods for Content- and Context Specific Haptic Effects Using Predefined Haptic Effects |
US20140092097A1 (en) * | 2012-10-01 | 2014-04-03 | Barak R. Naveh | Processing Combining-Character Sequences |
US20150110409A1 (en) * | 2013-10-18 | 2015-04-23 | Google Inc. | Spatial proximity context entropy coding |
-
2014
- 2014-09-26 US US14/498,506 patent/US20150091805A1/en not_active Abandoned
-
2017
- 2017-08-22 US US15/683,377 patent/US10354193B2/en not_active Expired - Fee Related
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4188626A (en) * | 1977-05-23 | 1980-02-12 | Texas Instruments Incorporated | Method for scanning a keyboard and for actuating a display device via common conductors |
US5287526A (en) * | 1986-04-14 | 1994-02-15 | Chris L. Wolf | System for selectively modifying codes generated by a touch type keyboard upon detecting predetermined sequence of make/break codes and expiration of predefined time interval |
US20040070620A1 (en) * | 2002-10-11 | 2004-04-15 | Hirotoshi Fujisawa | Display device, display method, and program |
US7339583B2 (en) * | 2005-02-24 | 2008-03-04 | Kabushiki Kaisha Toshiba | Computer graphics data coding apparatus, decoding apparatus, coding method and decoding method |
US20070288247A1 (en) * | 2006-06-11 | 2007-12-13 | Michael Mackay | Digital life server |
US20080074294A1 (en) * | 2006-09-26 | 2008-03-27 | Compal Electronics, Inc. | System for controlling keyboard |
US20080303793A1 (en) * | 2007-06-05 | 2008-12-11 | Microsoft Corporation | On-screen keyboard |
US20090207138A1 (en) * | 2008-02-18 | 2009-08-20 | Sony Ericsson Mobile Communications Ab | Selecting a layout |
US20130073081A1 (en) * | 2010-06-30 | 2013-03-21 | Northeast University | Device for positioning submarine pipeline robots and method thereof |
US20120151413A1 (en) * | 2010-12-08 | 2012-06-14 | Nokia Corporation | Method and apparatus for providing a mechanism for presentation of relevant content |
US20130222371A1 (en) * | 2011-08-26 | 2013-08-29 | Reincloud Corporation | Enhancing a sensory perception in a field of view of a real-time source within a display screen through augmented reality |
US20130226758A1 (en) * | 2011-08-26 | 2013-08-29 | Reincloud Corporation | Delivering aggregated social media with third party apis |
US20130307786A1 (en) * | 2012-05-16 | 2013-11-21 | Immersion Corporation | Systems and Methods for Content- and Context Specific Haptic Effects Using Predefined Haptic Effects |
US20140092097A1 (en) * | 2012-10-01 | 2014-04-03 | Barak R. Naveh | Processing Combining-Character Sequences |
US20150110409A1 (en) * | 2013-10-18 | 2015-04-23 | Google Inc. | Spatial proximity context entropy coding |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9922619B2 (en) | 2014-12-23 | 2018-03-20 | Intel Corporation | Computing device with a secondary display |
US20170024096A1 (en) * | 2015-07-20 | 2017-01-26 | Nowww.Us Pty Ltd | Method for disguising a computer system's login interface |
US10078429B2 (en) * | 2015-07-20 | 2018-09-18 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US20180356951A1 (en) * | 2015-07-20 | 2018-12-13 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US10795551B2 (en) * | 2015-07-20 | 2020-10-06 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US11301118B2 (en) * | 2015-07-20 | 2022-04-12 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US20220221967A1 (en) * | 2015-07-20 | 2022-07-14 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US11681419B2 (en) * | 2015-07-20 | 2023-06-20 | Nowww.Us Pty Ltd. | Method for disguising a computer system's login interface |
US20170052703A1 (en) * | 2015-08-20 | 2017-02-23 | Google Inc. | Apparatus and method for touchscreen keyboard suggestion word generation and display |
US9952764B2 (en) * | 2015-08-20 | 2018-04-24 | Google Llc | Apparatus and method for touchscreen keyboard suggestion word generation and display |
CN106648122A (en) * | 2015-11-25 | 2017-05-10 | 苏州达方电子有限公司 | Keyboard device |
US20220405405A1 (en) * | 2018-10-30 | 2022-12-22 | Jason Allen Rexilius | Systems and methods for secure peripherals |
Also Published As
Publication number | Publication date |
---|---|
US10354193B2 (en) | 2019-07-16 |
US20170351960A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10354193B2 (en) | Run-time image display on a device | |
US10853019B1 (en) | Systems and methods for the secure synchronization of user interface state amongst computing devices | |
EP3005066B1 (en) | Multiple graphical keyboards for continuous gesture input | |
RU2632122C2 (en) | Method and password verification device for inspecting input password and computer system containing password verification device | |
US10331871B2 (en) | Password input interface | |
US20180196854A1 (en) | Application extension for generating automatic search queries | |
US20120167204A1 (en) | Isolation tool for user assistance in solving a captcha test | |
US20100277424A1 (en) | Electronic device and method for predicting word input | |
KR20140018403A (en) | Secure input via a touchscreen | |
US8869261B1 (en) | Securing access to touch-screen devices | |
US9817570B2 (en) | Three dimensional keyboard with rotatable keys | |
US11570169B2 (en) | Multi-factor authentication via multiple devices | |
US20170169594A1 (en) | Method and electronic device for implementing video recommendation | |
CN102708329B (en) | Data security management system and method | |
US8201213B2 (en) | Controlling access of application programs to an adaptive input device | |
JP7142961B2 (en) | multilingual keyboard system | |
TW201237734A (en) | Electronic device, and control method and computer program product of the same | |
US10831882B2 (en) | Device, program and method for calculating a number of days a password is used | |
JP2015176268A (en) | Electronic device and authentication method | |
US20150309590A1 (en) | Inputting method and associated electronic device | |
EP2990925A1 (en) | Apparatus and method for displaying a virtual keyboard | |
CN102681752A (en) | Electronic device and control method thereof | |
US20170097766A1 (en) | Bi-stable display based off-screen keyboard | |
Walker | Touch displays | |
US11822869B2 (en) | User interface with command-line link creation for generating graphical objects linked to third-party content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAHAJAN, AYESHWARYA;PENDAKUR, RAMESH;REEL/FRAME:036130/0751 Effective date: 20150717 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |