# Enum Class LinuxFFMKeys.Keysym

java.lang.Object
java.lang.Enum<LinuxFFMKeys.Keysym>
org.stianloader.jxkbwayland.LinuxFFMKeys.Keysym

All Implemented Interfaces:
  `Serializable, Comparable<LinuxFFMKeys.Keysym>, Constable`

Enclosing class:
  `LinuxFFMKeys`

public static enum LinuxFFMKeys.Keysym extends Enum<LinuxFFMKeys.Keysym>
A Keysym (Key Symbol) in the context of XKB represents the layout-specific and keystate-specific (i.e. which modifiers are active) meaning of a key.

This specific enumeration defines by which method the XKB Keysym is converted into a readable `String`.

## Nested Class Summary

### Nested classes/interfaces inherited from class Enum

`Enum.EnumDesc<E>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`CHARACTER`
The keysym is converted into a `String` using the `xkb_keysym_to_utf8` function.
`NAME`
The keysym is converted into a `String` using the `xkb_keysym_get_name` function.

## Method Summary

Modifier and Type
Method
Description
`static LinuxFFMKeys.Keysym`
`valueOf(String name)`
Returns the enum constant of this class with the specified name.
`static LinuxFFMKeys.Keysym[]`
`values()`
Returns an array containing the constants of this enum class, in the order they are declared.

### Methods inherited from class Enum

`clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class Object

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### CHARACTER

public static final LinuxFFMKeys.Keysym CHARACTER
The keysym is converted into a `String` using the `xkb_keysym_to_utf8` function. This returns the printable representation of the key according to the current keyboard state (i.e. capital characters are returned when the shift key is pressed, and lowercase characters when they are not).

Although the `LinuxFFMKeys` states that the keysym is being used, this is technically incorrect, but also not really worth delving into. Read the XKB documentation for the aforementioned underlying XKB function.

When the key does not have a character representation (as would be the case for e.g. the function or modifier keys), an empty string will instead be returned.

Note: The control modifier key will also be interpreted for ASCII escape codes such as ^C, or similar.

Implementation details: Should ever the returned string exceed 255 bytes in size (should that even be possible), an exception shall be thrown. That being said, no XKB key should have a UTF8 representation of that size.

### NAME

public static final LinuxFFMKeys.Keysym NAME
The keysym is converted into a `String` using the `xkb_keysym_get_name` function. This returns the name of the keysym, which might not exactly be human-friendly.

Implementation details: Should ever the returned string exceed 255 bytes in size, an exception shall be thrown. That being said, no XKB key should have a name of that size.

## Method Details

### values

public static LinuxFFMKeys.Keysym[] values()
Returns an array containing the constants of this enum class, in the order they are declared.

Returns:
  an array containing the constants of this enum class, in the order they are declared

### valueOf

public static LinuxFFMKeys.Keysym valueOf(String name)
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum class has no constant with the specified name
  `NullPointerException` - if the argument is null