Many keyboards employ a keyboard format having a standard spacing from the middle of one key to the middle of an adjacent key as well as a standard size for those keys. Consequently, users that have gained familiarity with these keyboard formats may have difficulty when interacting with keyboards with spacing that is different than that of a standard keyboard. For example, non-standard spacing and sizes may prevent a user from utilizing muscle memory to type. This can cause a user to have a poor and unproductive typing experience and lead to user frustration.
Maintaining the standard keyboard spacing, however, may yield a keyboard that has a minimum size that may hinder the mobility of a mobile computing device. For instance, a QWERTY keyboard with a standard key spacing and key size may be no smaller than approximately eleven inches and therefore a conventional mobile computing device that employs such a keyboard has a corresponding size. Accordingly, conventional techniques involved tradeoffs between a size of a keyboard and desired mobility of a device that employs the keyboard.
Gesture-initiated keyboard functions are described. In one or more implementations, one or more touch inputs are detected. Touch inputs can be detected using touch sensors associated with keys of a keyboard. Based on the touch inputs, a gesture indicative of a keyboard function is recognized. The indicated keyboard function is not available for input using the keys of the keyboard absent recognition of the gesture. The keyboard function, for instance, may be conventionally associated with a key of a keyboard format with which the keyboard substantially complies but is not included as part of the keyboard. In one or more implementations, the function is a shift, caps lock, backspace, enter, tab, control function, and so on.
In one or more implementations, a system includes a computing device and a pressure-sensitive keyboard. Keys of the pressure-sensitive keyboard detect touch inputs. The computing device identifies a gesture from the touch inputs and, based on the gesture, identifies a keyboard function.
In one or more implementations, responsive to recognition of a gesture, a radial menu is presented in a user interface. A touch input associated with the radial menu is received, and based on the touch input, a keyboard function is performed.
In one or more implementations, touch inputs are detected using touch sensors associated with keys of a keyboard. Based on the touch inputs, a gesture indicative of a mousing function is recognized. In one or more implementations, the mousing function is a function configured to click, scroll, pan, zoom, move a cursor or pointer displayed on a display device, cause a menu to be displayed on a user interface, or the like.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items. Entities represented in the figures may be indicative of one or more entities and thus reference may be made interchangeably to single or plural forms of the entities in the discussion.
Modified key spacing and key size conventionally associated with keyboards for use with mobile computing devices can render it difficult for users to utilize these devices for providing a large amount of input. For example, a user may find it difficult to type a long document or email using a keyboard of a conventional mobile computing device. This is because many mobile computing devices employ non-standard keyboard formats to achieve a smaller overall device. Thus, in order for a mobile computing device with an associated keyboard to have a size of less than eleven inches, conventional techniques have altered spacing and/or size of the keys of the keyboard.
Techniques described herein enable gesture-initiated keyboard functions. Gestures can be recognized from touch inputs received by touch sensors in a keyboard, such as a pressure sensitive keyboard, virtual keyboard, and so on. Through gesture-recognition, keyboard functions that are not available for input using the keys of the keyboard can be initiated. These techniques may be employed such that various keys conventionally included in a keyboard format that correspond to functions can be removed from the keyboard. For example, gestures can indicate the functions of editing and navigational keys such as the backspace, tab, caps lock, shift, control, enter, and escape keys of a QWERTY keyboard format. Because the functions normally associated with those keys are indicated by gestures, the keys that correspond to these functions may be eliminated from the keyboard without affecting the functionality of the keyboard. Thus, a fully functional QWERTY keyboard with standard key spacing and key size can be made smaller than the conventional size.
Techniques described herein also enable gestures indicative of mousing functions to be recognized when performed on the keys of the keyboard. For example, gestures can indicate the functions associated with of clicking, scrolling, panning, zooming, moving a cursor or pointer displayed on a display device, causing a menu to be displayed on a user interface, or the like. These techniques may be employed such that a mousing track pad or designated mousing area can be removed from a computing device. Thus, a computing device can receive inputs corresponding to mousing functions without having a dedicated mousing area. Further discussion of examples of gestures and keyboard and mousing functions may be found in relation to the following sections.
In the following discussion, an example environment is first described that may employ the techniques described herein. Example procedures are then described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.
Example Environment
The computing device 102, for instance, is illustrated as including an input/output module 108. The input/output module 108 is representative of functionality relating to processing of inputs and rendering outputs of the computing device 102. A variety of different inputs may be processed by the input/output module 108, such as inputs relating to functions that correspond to keys of the keyboard 104 or keys of a virtual keyboard displayed by the display device 110, inputs that correspond to gestures that may be recognized from touch inputs detected by the keyboard 104 and/or touchscreen functionality of the display device 110, and so forth. Thus, the input/output module 108 may support a variety of different input techniques by recognizing and leveraging a division between types of inputs including key presses, gestures, and so on.
In the illustrated example, the keyboard 104 is configured as having an arrangement of keys that substantially corresponds to a QWERTY arrangement of keys. As shown in
During interaction with the keyboard 104, a user may provide various touch inputs to the keys of the keyboard 104. When the user provides an input to a key, a touch sensor associated with the key detects the touch and provides the information to the input/output module 108. The input/output module 108 can recognize the touch input as corresponding to a key press, such as when the user presses down on the “d” key. The input/output module 108 can also recognize a gesture indicative of a keyboard function or a mousing function from the touch input as further described below.
In conventional devices associated with a keyboard, the keyboard included a variety of keys that are selectable to input a variety of keyboard functions. For example, the keyboard may include alphanumeric keys to provide inputs of letters and numbers. The keyboard may also be configured to provide keyboard functions responsive to selection of multiple keys, such as a shift and a letter or number, control key, and so on. Thus, the keyboard may include a variety of different keys that are selectable alone or in combination to initiate a variety of corresponding keyboard functions.
By recognizing gestures indicative of keyboard functions, touch inputs to the keys of the keyboard 104 can be detected and used by input/output module 108 to generate an input that corresponds to a keyboard function that is not available for input using the keys of the keyboard 104. For example, touch sensors in the keys of the keyboard 104 can detect touches when a user swipes to the right on the keys, and enable the input/output module 108 to recognize the gesture as indicating a tab function. Thus, the input/output module 108 can generate an input that corresponds to the tab function though the keyboard 104 does not include a tab key. In this way, keys of the keyboard may be “removed” (i.e., not included) and therefore enable a smaller size yet still support conventional spacing and size of the keys, further discussion of which may be found in relation to the following figure.
Like the keyboard 104 in
The touch sensors can take a variety of forms. For example, a touch sensor can be implemented as a digitizer or sensing element associated with the display device 110 that can sense proximity of an object to corresponding portions of the keyboard 104. Technologies such as capacitive field technologies, resistive technologies, optical technologies, and other input sensing technologies can also be utilized to detect the touch input. In other implementations, such as the one illustrated in
Various gestures can be indicative of keyboard functions. For example, gestures can be utilized to indicate navigation or editing functions, such as backspace, tab, delete, or escape functions. As another example, gestures may indicate other functions, such as modification functions. Such functions can include shift, caps lock, control, or alt functions. Gestures that are indicative of these keyboard functions may include gestures performed by one or more fingers on one or more keys of the keyboard. Consider, for example,
Also shown in
Additional gestures are illustrated in implementation 500 in
In various implementations, gestures are recognized independent of the location on the keyboard at which they are performed. For example,
Other implementations are also contemplated in which the location at which the gesture is performed on the keyboard is a factor in the input that is generated. For instance, a gesture can be used to indicate a modification function and the location can identify the key to be modified. Consider the example that is illustrated by the user's right hand 304 in
The user's right hand 304 in
In various implementations, the keyboard function indicated by a gesture is conventionally associated with a key selectable in combination with another key. Accordingly, a gesture may be recognized from multiple touch inputs.
In some implementations, the “I” key can function in a similar manner. For example, when a user presses the “I” key, a key press is identified and the “I” character can be input. However, when a user presses the “I” key in combination with another key, a gesture corresponding to the shift function can be recognized. The dual function of the “z” and “I” keys enable a user to utilize a two-key combination that commonly corresponds to the shift function while enabling the shift key to be removed from the format of the keyboard 104.
Similarly, other keys can have dual functionality based upon detection of multiple touch inputs. For example, the “a” key can insert an “a” when the touch input indicates a key strike of the “a” key (e.g., selection of the key). However, if the touch information indicates a press and hold of the “a” key and a touch input that is identified a strike of the “y” key, a “[” character can be inserted. In other words, when another key is struck during the lifetime of the depression of the “a” key, the gesture can indicate a shift function to secondary symbols that appear on keys of a conventional keyboard that have been removed from the keyboard described, e.g., “[”, “]”, and “\”. Though various implementations have been described in which the shift function can be indicated by a key having dual functionality, it is contemplated that other keyboard functions can be indicated by a key having dual functionality.
In
While some navigation functions may be indicated by gestures performed anywhere on the keyboard, in some implementations, a navigation key may be included in the keys of the keyboard 104. Consider, for example, the example implementation 800 illustrated in
The navigation key can, in various implementations, engage application-specific keyboard functions. For example, a touch input identified as dragging left on the navigation key while a web browser application is active can cause the web browser to return to the previous page. Likewise, a touch input identified as dragging left on the navigation key while a word processing application is active can cause the word processor to scroll to the left of the document.
Turning now to
Although gestures utilized by the techniques herein do not conflict with other gestures recognized by the computing device, in some implementations, the ability to toggle between modes of operation can enhance device functionality. For example, a user may toggle between a typing mode and a mousing mode. The mousing mode may be used to enable mousing gestures to be performed on the keys of the keyboard. Thus, a gesture performed on the keys of the keyboard can be recognized as a gesture indicative of a mousing function. Mousing functions can include, for example, functions configured to move of a cursor or pointer on a display, scroll, zoom, pan, cause a menu to be displayed on a user interface, indicate a selection on a user interface (e.g., single or double clicking), or the like. Responsive to recognizing such a gesture, an input corresponding to the mousing function can be generated by the computing device. In typing mode, the gestures performed on the keys are indicative of keyboard functions.
A gesture may be performed on the keys of the keyboard to toggle between modes. For example, a user may quickly swipe a finger back and forth on the keyboard to mimic shaking a mouse. This gesture can cause the computing device to switch into the mousing mode. Accordingly, any gestures performed may be associated with mousing functions rather than keyboard functions while in this mode. To return to typing mode, the user may press the “s”, “d”, and “f” keys in rapid succession, as though the user is drumming his or her fingers. Other gestures may be utilized to toggle between modes depending on the particular implementation.
Alternately or additionally, a mode may be selected according to a starting location of a touch input.
In some implementations, a toggle button may also be included in the keys of the keyboard to toggle between various modes. For example, a gesture performed on the toggle button may indicate a switch to a symbol or function key mode, emoticon mode, a charm button or media control mode, or a number pad mode. Thus, a user may drag up on the toggle button to enter symbol or function key mode. Accordingly, keys pressed or gestures performed while in this mode may be indicative of symbols or function keys (F1, F2, etc.) Similarly, a user may drag left on the toggle button to enter number pad mode. Accordingly, keys of the keyboard may be recognized as indicating numbers rather than the letters or symbols that they are conventionally associated with. As another example, a user may drag right to enter a charms mode or media control mode. Thus, key presses or gestures may indicate functions that are associated with a charms bar or media control bar. In various implementations, a user may tap the toggle button to return to typing mode. Additional gestures may be recognized to enable the user to select a mousing mode.
In various implementations, the computing device may recognize gestures indicative of mousing functions when the computing device has not been toggled into mousing mode. Thus, the computing device is configured to differentiate between gestures indicative of mousing functions and gestures indicative of keyboard functions. In order to ensure that gestures do not conflict, in some implementations, gestures indicative of mousing functions can be recognized from touch inputs from two fingers while single finger gestures and other multi-touch gestures can be indicative of other functions. In at least some implementations, the gesture is performed over at least one key that is also selectable to initiate a keyboard function via a key press. In the implementation 1100 in
Although in
In the example implementation 1200 of
Example Procedures
Turning now to
Assume, as described above, that a user touches a key of a keyboard 104. The touch sensors associated with the key detect one or more touch inputs (block 1302). The touch sensors, in some implementations, may also provide information regarding a location of the touch input, a duration of the touch input, a distance travelled by the touch input, a velocity of the touch input, and the like.
The input/output module 108 then recognizes a gesture indicative of a keyboard function that is not available for input using the keys of the keyboard 104 from the one or more touch inputs (block 1304). For example, the input/output module 108 can recognize a swipe from left to right from the touch input. Then, based on the gesture, the input/output module 108 generates an input corresponding to the indicated keyboard function for processing (block 1306). Thus, continuing the previous example, the input/output module 108 can generate an input corresponding to a tab function for processing. Accordingly, the computing device 102 can process the tab function. For example, if a word processing application is active when the user performed the gesture, the cursor can be advanced to the next tab stop.
The input generated by the input/output module 108 depends on the gesture that is recognized from touch inputs to the keys of the keyboard 104. The input/output module 108 can recognize a gesture according to various procedures.
In procedure 1400, the input/output module 108 determines whether a touch input was performed on a key (block 1402). The touch input can be, for example, the touch input detected by the touch sensors at block 1302 in
If the touch input is determined to be performed somewhere other than on the keys of the keyboard, the touch input is not determined to be a gesture and is filtered out by procedure 1400 (block 1404), although other implementations are also contemplated in which the touch input may be detected anywhere on the keyboard 104, using touch functionality of a display device 110, and so on. The touch input may be further processed according to other techniques. For example, the touch input may be processed to determine if the touch input is an input that corresponds to a command in a mousing mode.
If, however, the input/output module 108 determines that the touch input was performed on the keys of the keyboard 104, a check is made as to whether the touch input travelled at least a threshold distance (block 1406). This threshold distance can be a fixed distance (e.g., 0.25 inches) or a relative distance (e.g., 50% of the width of a key). The travelling of a touch refers to the distance moved by the user's finger while being moved along some path during the lifetime of the touch.
If the touch input did not travel at least a threshold distance, then a check is made as to whether the touch input has a threshold velocity (block 1408). The velocity of a touch refers to the distance moved by the user's finger while being moved along some path during the lifetime of the touch divided by the time duration of the lifetime of the touch. For example, the velocity may be 4 inches/second, although other velocities are contemplated.
If the touch input does not have a threshold velocity, then the input/output module 108 determines whether the touch involves multiple touch inputs (block 1410). For example, the input/output module 108 can determine if multiple touch inputs have been detected.
If the touch input travelled at least a threshold distance, had a threshold velocity, or involves multiple touch inputs, a check is made as to whether the touch input meets criteria of at least one gesture (block 1412). For example, characteristics of the touch input are compared to the characteristics of one or more gestures that indicate keyboard functions. If the characteristics of the touch input conform to the characteristics of a gesture, that gesture is recognized from the touch input. Thus, if the touch input meets the criteria of at least one gesture, the input/output module 108 determines that the touch is a gesture (block 1414). If the touch input does not conform to the characteristics of a gesture, the input/output module 108 determines that the touch is not a gesture (block 1404).
Turning now to
Assume that a user touches a key of a keyboard 104 with two fingers, such as is illustrated in
The input/output module 108 then recognizes a gesture indicative of a mousing function from the one or more touch inputs (block 1504). For example, the input/output module 108 can recognize a two-finger swipe up and to the right from the touch input. Then, based on the gesture, the input/output module 108 generates an input corresponding to the indicated mousing function for processing (block 1506). Thus, continuing the previous example, the input/output module 108 can generate an input that causes a cursor to be moved on the display device 110 for processing.
As above, the input generated by the input/output module 108 depends on the gesture that is recognized from touch inputs to the keys of the keyboard 104. The input/output module 108 can recognize a gesture that is indicative of a mousing function according to various procedures.
In procedure 1600, the input/output module 108 determines whether a touch input was performed on a key (block 1602). The touch input can be, for example, the touch input detected by the touch sensors at block 1502 in
If the touch input is determined to be performed somewhere other than on the keys of the keyboard, the touch input is not determined to be a gesture and is filtered out by procedure 1600 (block 1604), although other implementations are also contemplated in which the touch input may be detected anywhere on the keyboard 104, using touch functionality of a display device 110, and so on. The touch input may be further processed according to other techniques. For example, the touch input may be processed to determine if the touch input is an input that corresponds to a multi-finger gesture or a gesture indicative of a keyboard function.
If, however, the input/output module 108 determines that the touch input was performed on the keys of the keyboard 104, a check is made as to whether the touch input involves touch inputs from two fingers (block 1606). For example, the input/output module 108 can determine if the touch input is associated with a touch involving two fingers.
If the touch did not involve touch inputs from two fingers, then a check is made as to whether the touch began in a mousing region (block 1608). A mousing region can be a region of the keyboard that does not include keys. For example, the gesture in
If the touch did not begin in a mousing region, then the input/output module 108 determines whether the device is in mousing mode (block 1610). For example, the input/output module 108 can determine if a user has switched to mousing mode from typing mode.
If the touch involved touch inputs from two fingers, began in a mousing region, or occurred while the device was in mousing mode, a check is made as to whether the touch input meets criteria of at least one gesture (block 1612). For example, characteristics of the touch input are compared to the characteristics of one or more gestures that indicate mousing functions. If the characteristics of the touch input conform to the characteristics of a gesture, that gesture is recognized from the touch input. Thus, if the touch input meets the criteria of at least one gesture, the input/output module 108 determines that the touch is a gesture (block 1614). If the touch input does not conform to the characteristics of a gesture, the input/output module 108 determines that the touch is not a gesture (block 1604).
As described above, in some implementations, a radial menu can be displayed to a user responsive to recognition of a gesture.
Procedure 1700 begins when input/output module 108 recognizes a gesture from one or more touch inputs associated with keys of a keyboard (block 1702). The gesture may be recognized according to procedure 1400, for example.
Responsive to recognition of a gesture, a radial menu is presented (block 1704). For example, the input/output module 108 can cause radial menu 1202 to be displayed on a display device 110. The radial menu 1202 can display a number of options in the form of gestures. A keyboard function is associated with each gesture.
Next, the input/output module 108 receives a touch input associated with the radial menu (block 1706). For example, the input/output module 108 may receive touch information from a touch sensor responsive to a user performing a gesture included on the radial menu 1202. Finally, the input/output module 108 causes the computing device 102 to perform a keyboard function that is not available for input using the keys of the keyboard absent recognition of the gesture (block 1708). The keyboard function that is performed is based on the touch input associated with the radial menu 1202. For example, assume the radial menu 1202 indicates that a swipe to the right will cause an “é” to be inserted, as shown in
Example System and Device
The example computing device 1802 as illustrated includes a processing system 1804, one or more computer-readable media 1806, and one or more I/O interfaces 1808 that are communicatively coupled, one to another. Although not shown, the computing device 1802 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.
The processing system 1804 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 1804 is illustrated as including hardware elements 1810 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 1810 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
The computer-readable storage media 1806 is illustrated as including memory/storage 1812. The memory/storage 1812 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage component 1812 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 1812 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 1806 may be configured in a variety of other ways as further described below.
Input/output (I/O) interface(s) 1808 are representative of functionality to allow a user to enter commands and information to computing device 1802, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., capacitive, optical, or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, the computing device 1802 may be configured in a variety of ways to support user interaction.
The computing device 1802 is further illustrated as being communicatively and physically coupled to an input device 1814 that is physically and communicatively removable from the computing device 1802. In this way, a variety of different input devices may be coupled to the computing device 1802 having a wide variety of configurations to support a wide variety of functionality. In this example, the input device 1814 includes one or more keys 1816, which may be configured as pressure sensitive keys, keys on a touchpad or touchscreen, mechanically switched keys, and so forth.
The input device 1814 is further illustrated as including one or more modules 1818 that may be configured to support a variety of functionality. The one or more modules 1818, for instance, may be configured to process analog and/or digital signals received from the keys 1816 to determine whether a keystroke was intended, determine whether an input is indicative of resting pressure, support authentication of the input device 1814 for operation with the computing device 1802, recognize a gesture from the touch input, and so on.
Although illustrated as separate from the computing device 1802, the input device 1814 can alternatively be included as part of the computing device 1802 as discussed above. In such situations, the keys 1816 and the modules 1818 are included as part of the computing device 1802. Additionally, in such situations the keys 1816 may be keys of a virtual keyboard and/or keys of a non-virtual keyboard (e.g., a pressure sensitive input device).
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality,” and “component” as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the computing device 1802. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
“Computer-readable storage media” may refer to media and/or devices that enable persistent storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Thus, computer-readable storage media refers to non-signal bearing media. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
“Computer-readable signal media” may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 1802, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
As previously described, hardware elements 1810 and computer-readable media 1806 are representative of modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to perform one or more instructions. Hardware may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that performs program tasks defined by instructions and/or logic embodied by the hardware as well as a hardware utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
Combinations of the foregoing may also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 1810. The computing device 1802 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device 1802 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 1810 of the processing system 1804. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 1802 and/or processing systems 1804) to implement techniques, modules, and examples described herein.
Although the example implementations have been described in language specific to structural features and/or methodological acts, it is to be understood that the implementations defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed features.
This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 61/702,723, filed Sep. 18, 2012, Attorney Docket Number 337229.01, and titled “Keyboard Experience for Mobile Devices,” the entire disclosure of this application being incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61702723 | Sep 2012 | US |