brlapi_keycodes(3)
๐ NAME ๐
brlapi_keycodes(3) โ Types and Defines for \e BrlAPI Key Codes, from the Library Functions Manual. Okay so this is the BrlAPI key-code lore: types and defines, exactly as the page says. No cap, itโs giving header-file energy. ๐
โจ SYNOPSIS โจ
๐ Macros ๐
Bestie, hereโs the full macro menu. Every #define is copied exactly โ same names, same values, same spacing โ because we are not about to fumble the bag on a UINT64_C or a mask. ๐
#define BRLAPI_KEYCODE_C(value)
#define BRLAPI_PRIxKEYCODE PRIx64
#define BRLAPI_PRIuKEYCODE PRIu64
#define BRLAPI_KEY_MAX UINT64_C(0XFFFFFFFFFFFFFFFF)
#define BRLAPI_KEY_FLAGS_MASK UINT64_C(0XFFFFFFFF00000000)
#define BRLAPI_KEY_FLAGS_SHIFT 32
#define BRLAPI_KEY_FLG(v)
#define BRLAPI_KEY_FLG_MOD1 BRLAPI_KEY_FLG(0x00000008)
#define BRLAPI_KEY_FLG_MOD2 BRLAPI_KEY_FLG(0x00000010)
#define BRLAPI_KEY_FLG_MOD3 BRLAPI_KEY_FLG(0x00000020)
#define BRLAPI_KEY_FLG_MOD4 BRLAPI_KEY_FLG(0x00000040)
#define BRLAPI_KEY_FLG_MOD5 BRLAPI_KEY_FLG(0x00000080)
#define BRLAPI_KEY_TYPE_MASK UINT64_C(0X00000000E0000000)
#define BRLAPI_KEY_TYPE_SHIFT 29
#define BRLAPI_KEY_TYPE_CMD UINT64_C(0X0000000020000000)
#define BRLAPI_KEY_TYPE_SYM UINT64_C(0X0000000000000000)
#define BRLAPI_KEY_CODE_MASK UINT64_C(0X000000001FFFFFFF)
#define BRLAPI_KEY_CODE_SHIFT 0
#define BRLAPI_KEY_CMD_BLK_MASK UINT64_C(0X1FFF0000)
#define BRLAPI_KEY_CMD_BLK_SHIFT 16
#define BRLAPI_KEY_CMD_ARG_MASK UINT64_C(0X0000FFFF)
#define BRLAPI_KEY_CMD_ARG_SHIFT 0
#define BRLAPI_KEY_CMD(v)
#define BRLAPI_KEY_SYM_BACKSPACE UINT64_C(0X0000FF08)
#define BRLAPI_KEY_SYM_TAB UINT64_C(0X0000FF09)
#define BRLAPI_KEY_SYM_LINEFEED UINT64_C(0X0000FF0D)
#define BRLAPI_KEY_SYM_ESCAPE UINT64_C(0X0000FF1B)
#define BRLAPI_KEY_SYM_HOME UINT64_C(0X0000FF50)
#define BRLAPI_KEY_SYM_LEFT UINT64_C(0X0000FF51)
#define BRLAPI_KEY_SYM_UP UINT64_C(0X0000FF52)
#define BRLAPI_KEY_SYM_RIGHT UINT64_C(0X0000FF53)
#define BRLAPI_KEY_SYM_DOWN UINT64_C(0X0000FF54)
#define BRLAPI_KEY_SYM_PAGE_UP UINT64_C(0X0000FF55)
#define BRLAPI_KEY_SYM_PAGE_DOWN UINT64_C(0X0000FF56)
#define BRLAPI_KEY_SYM_END UINT64_C(0X0000FF57)
#define BRLAPI_KEY_SYM_INSERT UINT64_C(0X0000FF63)
#define BRLAPI_KEY_SYM_FUNCTION UINT64_C(0X0000FFBE)
#define BRLAPI_KEY_SYM_DELETE UINT64_C(0X0000FFFF)
#define BRLAPI_KEY_SYM_UNICODE UINT64_C(0X01000000)
#define BRLAPI_DRV_KEY_PRESS BRLAPI_KEYCODE_C(0X8000000000000000)
#define BRLAPI_DRV_KEY_NUMBER_SHIFT 0
#define BRLAPI_DRV_KEY_NUMBER_MASK 0XFF
#define BRLAPI_DRV_KEY_NUMBER(code)
#define BRLAPI_DRV_KEY_GROUP_SHIFT 8
#define BRLAPI_DRV_KEY_GROUP_MASK 0XFF00
#define BRLAPI_DRV_KEY_GROUP(code)
#define BRLAPI_DRV_KEY_VALUE_MASK (BRLAPI_DRV_KEY_GROUP_MASK |
BRLAPI_DRV_KEY_NUMBER_MASK)
#define BRLAPI_DRV_KEY_NUMBER_ANY 0XFF
โจ Typedefs โจ
Okay bestie, before we get into the โจspicyโจ command soup, here's the one typedef you actually gotta know:
typedef uint64_t brlapi_keyCode_t
That's the type. Sixty-four bits of pure keycode realness. ๐
So what follows is a whole lot of #defines, and every single one is built off BRLAPI_KEY_CMD(*n*) โ that's the macro doing the heavy lifting so you don't have to. The first huge chunk is all BRLAPI_KEY_CMD(0) plus some offset, and then there's a lil' bonus squad at the end where the number inside the parens goes up instead. iykyk. ๐ง
Not me listing every single one though โ we don't skip, we don't summarize, we list. Grab a snack. ๐
the BRLAPI_KEY_CMD(0) + *n* girlies ๐ธ
BRLAPI_KEY_CMD_NOOPโ(BRLAPI_KEY_CMD(0) + 0)โ do absolutely nothing, iconic behaviour honestly ๐คBRLAPI_KEY_CMD_LNUPโ(BRLAPI_KEY_CMD(0) + 1)โ line up โฌ๏ธBRLAPI_KEY_CMD_LNDNโ(BRLAPI_KEY_CMD(0) + 2)โ line down โฌ๏ธBRLAPI_KEY_CMD_WINUPโ(BRLAPI_KEY_CMD(0) + 3)โ window upBRLAPI_KEY_CMD_WINDNโ(BRLAPI_KEY_CMD(0) + 4)โ window downBRLAPI_KEY_CMD_PRDIFLNโ(BRLAPI_KEY_CMD(0) + 5)โ previous different lineBRLAPI_KEY_CMD_NXDIFLNโ(BRLAPI_KEY_CMD(0) + 6)โ next different lineBRLAPI_KEY_CMD_ATTRUPโ(BRLAPI_KEY_CMD(0) + 7)โ attribute up ๐BRLAPI_KEY_CMD_ATTRDNโ(BRLAPI_KEY_CMD(0) + 8)โ attribute downBRLAPI_KEY_CMD_TOPโ(BRLAPI_KEY_CMD(0) + 9)โ to the top, we're going up bestie ๐ฅBRLAPI_KEY_CMD_BOTโ(BRLAPI_KEY_CMD(0) + 10)โ to the bottomBRLAPI_KEY_CMD_TOP_LEFTโ(BRLAPI_KEY_CMD(0) + 11)โ top left corner, main character energyBRLAPI_KEY_CMD_BOT_LEFTโ(BRLAPI_KEY_CMD(0) + 12)โ bottom left cornerBRLAPI_KEY_CMD_PRPGRPHโ(BRLAPI_KEY_CMD(0) + 13)โ previous paragraphBRLAPI_KEY_CMD_NXPGRPHโ(BRLAPI_KEY_CMD(0) + 14)โ next paragraphBRLAPI_KEY_CMD_PRPROMPTโ(BRLAPI_KEY_CMD(0) + 15)โ previous promptBRLAPI_KEY_CMD_NXPROMPTโ(BRLAPI_KEY_CMD(0) + 16)โ next promptBRLAPI_KEY_CMD_PRSEARCHโ(BRLAPI_KEY_CMD(0) + 17)โ previous search result ๐BRLAPI_KEY_CMD_NXSEARCHโ(BRLAPI_KEY_CMD(0) + 18)โ next search resultBRLAPI_KEY_CMD_CHRLTโ(BRLAPI_KEY_CMD(0) + 19)โ char leftBRLAPI_KEY_CMD_CHRRTโ(BRLAPI_KEY_CMD(0) + 20)โ char rightBRLAPI_KEY_CMD_HWINLTโ(BRLAPI_KEY_CMD(0) + 21)โ half window leftBRLAPI_KEY_CMD_HWINRTโ(BRLAPI_KEY_CMD(0) + 22)โ half window rightBRLAPI_KEY_CMD_FWINLTโ(BRLAPI_KEY_CMD(0) + 23)โ full window leftBRLAPI_KEY_CMD_FWINRTโ(BRLAPI_KEY_CMD(0) + 24)โ full window rightBRLAPI_KEY_CMD_FWINLTSKIPโ(BRLAPI_KEY_CMD(0) + 25)โ full window left, but make it skip ๐ฆBRLAPI_KEY_CMD_FWINRTSKIPโ(BRLAPI_KEY_CMD(0) + 26)โ full window right, but make it skipBRLAPI_KEY_CMD_LNBEGโ(BRLAPI_KEY_CMD(0) + 27)โ beginning of the lineBRLAPI_KEY_CMD_LNENDโ(BRLAPI_KEY_CMD(0) + 28)โ end of the lineBRLAPI_KEY_CMD_HOMEโ(BRLAPI_KEY_CMD(0) + 29)โ home ๐BRLAPI_KEY_CMD_BACKโ(BRLAPI_KEY_CMD(0) + 30)โ backBRLAPI_KEY_CMD_RETURNโ(BRLAPI_KEY_CMD(0) + 31)โ return, periodtBRLAPI_KEY_CMD_FREEZEโ(BRLAPI_KEY_CMD(0) + 32)โ freeze ๐งBRLAPI_KEY_CMD_DISPMDโ(BRLAPI_KEY_CMD(0) + 33)โ display modeBRLAPI_KEY_CMD_SIXDOTSโ(BRLAPI_KEY_CMD(0) + 34)โ six dots, the classic โ ฟBRLAPI_KEY_CMD_SLIDEWINโ(BRLAPI_KEY_CMD(0) + 35)โ slide the windowBRLAPI_KEY_CMD_SKPIDLNSโ(BRLAPI_KEY_CMD(0) + 36)โ skip idle linesBRLAPI_KEY_CMD_SKPBLNKWINSโ(BRLAPI_KEY_CMD(0) + 37)โ skip blank windowsBRLAPI_KEY_CMD_CSRVISโ(BRLAPI_KEY_CMD(0) + 38)โ cursor visible ๐BRLAPI_KEY_CMD_CSRHIDEโ(BRLAPI_KEY_CMD(0) + 39)โ cursor hide ๐BRLAPI_KEY_CMD_CSRTRKโ(BRLAPI_KEY_CMD(0) + 40)โ cursor trackingBRLAPI_KEY_CMD_CSRSIZEโ(BRLAPI_KEY_CMD(0) + 41)โ cursor size, it's giving resizeBRLAPI_KEY_CMD_CSRBLINKโ(BRLAPI_KEY_CMD(0) + 42)โ cursor blink โจBRLAPI_KEY_CMD_ATTRVISโ(BRLAPI_KEY_CMD(0) + 43)โ attribute visibleBRLAPI_KEY_CMD_ATTRBLINKโ(BRLAPI_KEY_CMD(0) + 44)โ attribute blinkBRLAPI_KEY_CMD_CAPBLINKโ(BRLAPI_KEY_CMD(0) + 45)โ capital blinkBRLAPI_KEY_CMD_TUNESโ(BRLAPI_KEY_CMD(0) + 46)โ tunes ๐ตBRLAPI_KEY_CMD_AUTOREPEATโ(BRLAPI_KEY_CMD(0) + 47)โ autorepeat, the way it just keeps goingBRLAPI_KEY_CMD_AUTOSPEAKโ(BRLAPI_KEY_CMD(0) + 48)โ autospeak ๐ฃ๏ธBRLAPI_KEY_CMD_HELPโ(BRLAPI_KEY_CMD(0) + 49)โ help, we love a rescue moment ๐ซถBRLAPI_KEY_CMD_INFOโ(BRLAPI_KEY_CMD(0) + 50)โ infoBRLAPI_KEY_CMD_LEARNโ(BRLAPI_KEY_CMD(0) + 51)โ learn ๐BRLAPI_KEY_CMD_PREFMENUโ(BRLAPI_KEY_CMD(0) + 52)โ preferences menuBRLAPI_KEY_CMD_PREFSAVEโ(BRLAPI_KEY_CMD(0) + 53)โ save those prefs ๐พBRLAPI_KEY_CMD_PREFLOADโ(BRLAPI_KEY_CMD(0) + 54)โ load those prefsBRLAPI_KEY_CMD_MENU_FIRST_ITEMโ(BRLAPI_KEY_CMD(0) + 55)โ first menu itemBRLAPI_KEY_CMD_MENU_LAST_ITEMโ(BRLAPI_KEY_CMD(0) + 56)โ last menu itemBRLAPI_KEY_CMD_MENU_PREV_ITEMโ(BRLAPI_KEY_CMD(0) + 57)โ previous menu itemBRLAPI_KEY_CMD_MENU_NEXT_ITEMโ(BRLAPI_KEY_CMD(0) + 58)โ next menu itemBRLAPI_KEY_CMD_MENU_PREV_SETTINGโ(BRLAPI_KEY_CMD(0) + 59)โ previous menu settingBRLAPI_KEY_CMD_MENU_NEXT_SETTINGโ(BRLAPI_KEY_CMD(0) + 60)โ next menu settingBRLAPI_KEY_CMD_MUTEโ(BRLAPI_KEY_CMD(0) + 61)โ mute ๐คซBRLAPI_KEY_CMD_SPKHOMEโ(BRLAPI_KEY_CMD(0) + 62)โ speech homeBRLAPI_KEY_CMD_SAY_LINEโ(BRLAPI_KEY_CMD(0) + 63)โ say the lineBRLAPI_KEY_CMD_SAY_ABOVEโ(BRLAPI_KEY_CMD(0) + 64)โ say what's aboveBRLAPI_KEY_CMD_SAY_BELOWโ(BRLAPI_KEY_CMD(0) + 65)โ say what's belowBRLAPI_KEY_CMD_SAY_SLOWERโ(BRLAPI_KEY_CMD(0) + 66)โ slower, bestie, we can't keep up ๐ญBRLAPI_KEY_CMD_SAY_FASTERโ(BRLAPI_KEY_CMD(0) + 67)โ faster, go go go ๐ฅBRLAPI_KEY_CMD_SAY_SOFTERโ(BRLAPI_KEY_CMD(0) + 68)โ softerBRLAPI_KEY_CMD_SAY_LOUDERโ(BRLAPI_KEY_CMD(0) + 69)โ louder ๐ขBRLAPI_KEY_CMD_SWITCHVT_PREVโ(BRLAPI_KEY_CMD(0) + 70)โ previous VTBRLAPI_KEY_CMD_SWITCHVT_NEXTโ(BRLAPI_KEY_CMD(0) + 71)โ next VTBRLAPI_KEY_CMD_CSRJMP_VERTโ(BRLAPI_KEY_CMD(0) + 72)โ cursor jump, verticalBRLAPI_KEY_CMD_PASTEโ(BRLAPI_KEY_CMD(0) + 73)โ paste ๐BRLAPI_KEY_CMD_RESTARTBRLโ(BRLAPI_KEY_CMD(0) + 74)โ restart the brailleBRLAPI_KEY_CMD_RESTARTSPEECHโ(BRLAPI_KEY_CMD(0) + 75)โ restart the speechBRLAPI_KEY_CMD_OFFLINEโ(BRLAPI_KEY_CMD(0) + 76)โ offline mode, going ghost ๐ปBRLAPI_KEY_CMD_SHIFTโ(BRLAPI_KEY_CMD(0) + 77)โ shiftBRLAPI_KEY_CMD_UPPERโ(BRLAPI_KEY_CMD(0) + 78)โ upperBRLAPI_KEY_CMD_CONTROLโ(BRLAPI_KEY_CMD(0) + 79)โ controlBRLAPI_KEY_CMD_METAโ(BRLAPI_KEY_CMD(0) + 80)โ metaBRLAPI_KEY_CMD_TIMEโ(BRLAPI_KEY_CMD(0) + 81)โ time โฐBRLAPI_KEY_CMD_MENU_PREV_LEVELโ(BRLAPI_KEY_CMD(0) + 82)โ previous menu levelBRLAPI_KEY_CMD_ASPK_SEL_LINEโ(BRLAPI_KEY_CMD(0) + 83)โ select lineBRLAPI_KEY_CMD_ASPK_SEL_CHARโ(BRLAPI_KEY_CMD(0) + 84)โ select charBRLAPI_KEY_CMD_ASPK_INS_CHARSโ(BRLAPI_KEY_CMD(0) + 85)โ insert charsBRLAPI_KEY_CMD_ASPK_DEL_CHARSโ(BRLAPI_KEY_CMD(0) + 86)โ delete charsBRLAPI_KEY_CMD_ASPK_REP_CHARSโ(BRLAPI_KEY_CMD(0) + 87)โ replace charsBRLAPI_KEY_CMD_ASPK_CMP_WORDSโ(BRLAPI_KEY_CMD(0) + 88)โ compare wordsBRLAPI_KEY_CMD_SPEAK_CURR_CHARโ(BRLAPI_KEY_CMD(0) + 89)โ speak current charBRLAPI_KEY_CMD_SPEAK_PREV_CHARโ(BRLAPI_KEY_CMD(0) + 90)โ speak previous charBRLAPI_KEY_CMD_SPEAK_NEXT_CHARโ(BRLAPI_KEY_CMD(0) + 91)โ speak next charBRLAPI_KEY_CMD_SPEAK_CURR_WORDโ(BRLAPI_KEY_CMD(0) + 92)โ speak current wordBRLAPI_KEY_CMD_SPEAK_PREV_WORDโ(BRLAPI_KEY_CMD(0) + 93)โ speak previous wordBRLAPI_KEY_CMD_SPEAK_NEXT_WORDโ(BRLAPI_KEY_CMD(0) + 94)โ speak next wordBRLAPI_KEY_CMD_SPEAK_CURR_LINEโ(BRLAPI_KEY_CMD(0) + 95)โ speak current lineBRLAPI_KEY_CMD_SPEAK_PREV_LINEโ(BRLAPI_KEY_CMD(0) + 96)โ speak previous lineBRLAPI_KEY_CMD_SPEAK_NEXT_LINEโ(BRLAPI_KEY_CMD(0) + 97)โ speak next lineBRLAPI_KEY_CMD_SPEAK_FRST_CHARโ(BRLAPI_KEY_CMD(0) + 98)โ speak first charBRLAPI_KEY_CMD_SPEAK_LAST_CHARโ(BRLAPI_KEY_CMD(0) + 99)โ speak last charBRLAPI_KEY_CMD_SPEAK_FRST_LINEโ(BRLAPI_KEY_CMD(0) + 100)โ speak first lineBRLAPI_KEY_CMD_SPEAK_LAST_LINEโ(BRLAPI_KEY_CMD(0) + 101)โ speak last lineBRLAPI_KEY_CMD_DESC_CURR_CHARโ(BRLAPI_KEY_CMD(0) + 102)โ describe current charBRLAPI_KEY_CMD_SPELL_CURR_WORDโ(BRLAPI_KEY_CMD(0) + 103)โ spell current word ๐คBRLAPI_KEY_CMD_ROUTE_CURR_LOCNโ(BRLAPI_KEY_CMD(0) + 104)โ route current locationBRLAPI_KEY_CMD_SPEAK_CURR_LOCNโ(BRLAPI_KEY_CMD(0) + 105)โ speak current location ๐BRLAPI_KEY_CMD_SHOW_CURR_LOCNโ(BRLAPI_KEY_CMD(0) + 106)โ show current locationBRLAPI_KEY_CMD_CLIP_SAVEโ(BRLAPI_KEY_CMD(0) + 107)โ clip saveBRLAPI_KEY_CMD_CLIP_RESTOREโ(BRLAPI_KEY_CMD(0) + 108)โ clip restoreBRLAPI_KEY_CMD_BRLUCDOTSโ(BRLAPI_KEY_CMD(0) + 109)โ braille unicode dots โ โ ตBRLAPI_KEY_CMD_BRLKBDโ(BRLAPI_KEY_CMD(0) + 110)โ braille keyboardBRLAPI_KEY_CMD_UNSTICKโ(BRLAPI_KEY_CMD(0) + 111)โ unstuck that thing ๐ซBRLAPI_KEY_CMD_ALTGRโ(BRLAPI_KEY_CMD(0) + 112)โ AltGrBRLAPI_KEY_CMD_GUIโ(BRLAPI_KEY_CMD(0) + 113)โ GUIBRLAPI_KEY_CMD_BRL_STOPโ(BRLAPI_KEY_CMD(0) + 114)โ stop brailleBRLAPI_KEY_CMD_BRL_STARTโ(BRLAPI_KEY_CMD(0) + 115)โ start brailleBRLAPI_KEY_CMD_SPK_STOPโ(BRLAPI_KEY_CMD(0) + 116)โ stop speechBRLAPI_KEY_CMD_SPK_STARTโ(BRLAPI_KEY_CMD(0) + 117)โ start speechBRLAPI_KEY_CMD_SCR_STOPโ(BRLAPI_KEY_CMD(0) + 118)โ stop screenBRLAPI_KEY_CMD_SCR_STARTโ(BRLAPI_KEY_CMD(0) + 119)โ start screenBRLAPI_KEY_CMD_SELECTVT_PREVโ(BRLAPI_KEY_CMD(0) + 120)โ select previous VTBRLAPI_KEY_CMD_SELECTVT_NEXTโ(BRLAPI_KEY_CMD(0) + 121)โ select next VTBRLAPI_KEY_CMD_PRNBWINโ(BRLAPI_KEY_CMD(0) + 122)โ previous non-blank windowBRLAPI_KEY_CMD_NXNBWINโ(BRLAPI_KEY_CMD(0) + 123)โ next non-blank windowBRLAPI_KEY_CMD_TOUCH_NAVโ(BRLAPI_KEY_CMD(0) + 124)โ touch navigation ๐BRLAPI_KEY_CMD_SPEAK_INDENTโ(BRLAPI_KEY_CMD(0) + 125)โ speak that indentBRLAPI_KEY_CMD_ASPK_INDENTโ(BRLAPI_KEY_CMD(0) + 126)โ ask about that indentBRLAPI_KEY_CMD_REFRESHโ(BRLAPI_KEY_CMD(0) + 127)โ refresh, the way we all need one ๐BRLAPI_KEY_CMD_INDICATORSโ(BRLAPI_KEY_CMD(0) + 128)โ indicators ๐กBRLAPI_KEY_CMD_TXTSEL_CLEARโ(BRLAPI_KEY_CMD(0) + 129)โ clear the text selectionBRLAPI_KEY_CMD_TXTSEL_ALLโ(BRLAPI_KEY_CMD(0) + 130)โ select all the textBRLAPI_KEY_CMD_HOST_COPYโ(BRLAPI_KEY_CMD(0) + 131)โ host copyBRLAPI_KEY_CMD_HOST_CUTโ(BRLAPI_KEY_CMD(0) + 132)โ host cut โ๏ธBRLAPI_KEY_CMD_HOST_PASTEโ(BRLAPI_KEY_CMD(0) + 133)โ host pasteBRLAPI_KEY_CMD_GUI_TITLEโ(BRLAPI_KEY_CMD(0) + 134)โ GUI titleBRLAPI_KEY_CMD_GUI_BRL_ACTIONSโ(BRLAPI_KEY_CMD(0) + 135)โ GUI braille actionsBRLAPI_KEY_CMD_GUI_HOMEโ(BRLAPI_KEY_CMD(0) + 136)โ GUI homeBRLAPI_KEY_CMD_GUI_BACKโ(BRLAPI_KEY_CMD(0) + 137)โ GUI backBRLAPI_KEY_CMD_GUI_DEV_SETTINGSโ(BRLAPI_KEY_CMD(0) + 138)โ GUI device settingsBRLAPI_KEY_CMD_GUI_DEV_OPTIONSโ(BRLAPI_KEY_CMD(0) + 139)โ GUI device optionsBRLAPI_KEY_CMD_GUI_APP_LISTโ(BRLAPI_KEY_CMD(0) + 140)โ GUI app listBRLAPI_KEY_CMD_GUI_APP_MENUโ(BRLAPI_KEY_CMD(0) + 141)โ GUI app menuBRLAPI_KEY_CMD_GUI_APP_ALERTSโ(BRLAPI_KEY_CMD(0) + 142)โ GUI app alerts ๐จBRLAPI_KEY_CMD_GUI_AREA_ACTVโ(BRLAPI_KEY_CMD(0) + 143)โ GUI active areaBRLAPI_KEY_CMD_GUI_AREA_PREVโ(BRLAPI_KEY_CMD(0) + 144)โ GUI previous areaBRLAPI_KEY_CMD_GUI_AREA_NEXTโ(BRLAPI_KEY_CMD(0) + 145)โ GUI next areaBRLAPI_KEY_CMD_GUI_ITEM_FRSTโ(BRLAPI_KEY_CMD(0) + 146)โ GUI first itemBRLAPI_KEY_CMD_GUI_ITEM_PREVโ(BRLAPI_KEY_CMD(0) + 147)โ GUI previous itemBRLAPI_KEY_CMD_GUI_ITEM_NEXTโ(BRLAPI_KEY_CMD(0) + 148)โ GUI next itemBRLAPI_KEY_CMD_GUI_ITEM_LASTโ(BRLAPI_KEY_CMD(0) + 149)โ GUI last itemBRLAPI_KEY_CMD_SAY_LOWERโ(BRLAPI_KEY_CMD(0) + 150)โ lowerBRLAPI_KEY_CMD_SAY_HIGHERโ(BRLAPI_KEY_CMD(0) + 151)โ higherBRLAPI_KEY_CMD_SAY_ALLโ(BRLAPI_KEY_CMD(0) + 152)โ say it ALL ๐ฃ๏ธBRLAPI_KEY_CMD_CONTRACTEDโ(BRLAPI_KEY_CMD(0) + 153)โ contracted brailleBRLAPI_KEY_CMD_COMPBRL6โ(BRLAPI_KEY_CMD(0) + 154)โ computer braille 6BRLAPI_KEY_CMD_PREFRESETโ(BRLAPI_KEY_CMD(0) + 155)โ reset those prefsBRLAPI_KEY_CMD_ASPK_EMP_LINEโ(BRLAPI_KEY_CMD(0) + 156)โ ask about the empty lineBRLAPI_KEY_CMD_SPK_PUNCT_LEVELโ(BRLAPI_KEY_CMD(0) + 157)โ speech punctuation level โBRLAPI_KEY_CMD_PASTE_ALTMODEโ(BRLAPI_KEY_CMD(0) + 158)โ paste, alt mode
and the ones that switch up the number inside the parens ๐ฆ
Yeah, these girlies leveled up โ different first arg, same energy. (Also: some of them are straight-up aliases of each other, same value and all. Not a typo, that's just how the page ships them. ๐ )
BRLAPI_KEY_CMD_ROUTEโBRLAPI_KEY_CMD(1)BRLAPI_KEY_CMD_CLIP_NEWโBRLAPI_KEY_CMD(2)BRLAPI_KEY_CMD_CUTBEGINโBRLAPI_KEY_CMD(2)โ same value asCLIP_NEW, twins fr fr ๐ฏBRLAPI_KEY_CMD_CLIP_ADDโBRLAPI_KEY_CMD(3)BRLAPI_KEY_CMD_CUTAPPENDโBRLAPI_KEY_CMD(3)โ twinning withCLIP_ADDBRLAPI_KEY_CMD_COPY_RECTโBRLAPI_KEY_CMD(4)BRLAPI_KEY_CMD_CUTRECTโBRLAPI_KEY_CMD(4)โ twinning withCOPY_RECTBRLAPI_KEY_CMD_COPY_LINEโBRLAPI_KEY_CMD(5)BRLAPI_KEY_CMD_CUTLINEโBRLAPI_KEY_CMD(5)โ twinning withCOPY_LINEBRLAPI_KEY_CMD_SWITCHVTโBRLAPI_KEY_CMD(6)BRLAPI_KEY_CMD_PRINDENTโBRLAPI_KEY_CMD(7)BRLAPI_KEY_CMD_NXINDENTโBRLAPI_KEY_CMD(8)BRLAPI_KEY_CMD_DESCCHARโBRLAPI_KEY_CMD(9)BRLAPI_KEY_CMD_SETLEFTโBRLAPI_KEY_CMD(10)BRLAPI_KEY_CMD_SETMARKโBRLAPI_KEY_CMD(11)BRLAPI_KEY_CMD_GOTOMARKโBRLAPI_KEY_CMD(12)BRLAPI_KEY_CMD_GOTOLINEโBRLAPI_KEY_CMD(13)BRLAPI_KEY_CMD_PRDIFCHARโBRLAPI_KEY_CMD(14)BRLAPI_KEY_CMD_NXDIFCHARโBRLAPI_KEY_CMD(15)
That's the whole typedef + define squad, bestie โ not a single one left behind โจ keep scrolling, there's more coming and it's lowkey juicy ๐ซถ
#define BRLAPI_KEY_CMD_CLIP_COPY BRLAPI_KEY_CMD(16)
#define BRLAPI_KEY_CMD_COPYCHARS BRLAPI_KEY_CMD(16)
#define BRLAPI_KEY_CMD_CLIP_APPEND BRLAPI_KEY_CMD(17)
#define BRLAPI_KEY_CMD_APNDCHARS BRLAPI_KEY_CMD(17)
#define BRLAPI_KEY_CMD_PASTE_HISTORY BRLAPI_KEY_CMD(18)
#define BRLAPI_KEY_CMD_SET_TEXT_TABLE BRLAPI_KEY_CMD(19)
#define BRLAPI_KEY_CMD_SET_ATTRIBUTES_TABLE BRLAPI_KEY_CMD(20)
#define BRLAPI_KEY_CMD_SET_CONTRACTION_TABLE BRLAPI_KEY_CMD(21)
#define BRLAPI_KEY_CMD_SET_KEYBOARD_TABLE BRLAPI_KEY_CMD(22)
#define BRLAPI_KEY_CMD_SET_LANGUAGE_PROFILE BRLAPI_KEY_CMD(23)
#define BRLAPI_KEY_CMD_ROUTE_LINE BRLAPI_KEY_CMD(24)
#define BRLAPI_KEY_CMD_REFRESH_LINE BRLAPI_KEY_CMD(25)
#define BRLAPI_KEY_CMD_TXTSEL_START BRLAPI_KEY_CMD(26)
#define BRLAPI_KEY_CMD_TXTSEL_SET BRLAPI_KEY_CMD(27)
#define BRLAPI_KEY_CMD_ROUTE_SPEECH BRLAPI_KEY_CMD(28)
#define BRLAPI_KEY_CMD_PASTE_HISTORY_ALTMODE BRLAPI_KEY_CMD(29)
#define BRLAPI_KEY_CMD_SELECTVT BRLAPI_KEY_CMD(30)
#define BRLAPI_KEY_CMD_ALERT BRLAPI_KEY_CMD(31)
#define BRLAPI_KEY_CMD_PASSDOTS BRLAPI_KEY_CMD(34)
#define BRLAPI_KEY_CMD_PASSAT BRLAPI_KEY_CMD(35)
#define BRLAPI_KEY_CMD_PASSXT BRLAPI_KEY_CMD(36)
#define BRLAPI_KEY_CMD_PASSPS2 BRLAPI_KEY_CMD(37)
#define BRLAPI_KEY_CMD_CONTEXT BRLAPI_KEY_CMD(38)
#define BRLAPI_KEY_CMD_TOUCH_AT BRLAPI_KEY_CMD(39)
#define BRLAPI_KEY_CMD_MACRO BRLAPI_KEY_CMD(40)
#define BRLAPI_KEY_CMD_HOSTCMD BRLAPI_KEY_CMD(41)
#define BRLAPI_KEY_FLG_TOGGLE_ON BRLAPI_KEY_FLG(0X0100)
#define BRLAPI_KEY_FLG_TOGGLE_OFF BRLAPI_KEY_FLG(0X0200)
#define BRLAPI_KEY_FLG_TOGGLE_MASK (BRLAPI_KEY_FLG_TOGGLE_ON |
BRLAPI_KEY_FLG_TOGGLE_OFF)
#define BRLAPI_KEY_FLG_MOTION_ROUTE BRLAPI_KEY_FLG(0X0400)
#define BRLAPI_KEY_FLG_MOTION_SCALED BRLAPI_KEY_FLG(0X0800)
#define BRLAPI_KEY_FLG_MOTION_TOLEFT BRLAPI_KEY_FLG(0X1000)
#define BRLAPI_KEY_FLG_SHIFT BRLAPI_KEY_FLG(0X01)
#define BRLAPI_KEY_FLG_UPPER BRLAPI_KEY_FLG(0X02)
#define BRLAPI_KEY_FLG_CONTROL BRLAPI_KEY_FLG(0X04)
#define BRLAPI_KEY_FLG_META BRLAPI_KEY_FLG(0X08)
#define BRLAPI_KEY_FLG_ALTGR BRLAPI_KEY_FLG(0X10)
#define BRLAPI_KEY_FLG_GUI BRLAPI_KEY_FLG(0X20)
#define BRLAPI_KEY_FLG_ESCAPED BRLAPI_KEY_FLG(0X40)
#define BRLAPI_KEY_FLG_CAPSLOCK BRLAPI_KEY_FLG(0X80)
#define BRLAPI_KEY_FLG_KBD_RELEASE BRLAPI_KEY_FLG(0X0100)
#define BRLAPI_KEY_FLG_KBD_EMUL0 BRLAPI_KEY_FLG(0X0200)
#define BRLAPI_KEY_FLG_KBD_EMUL1 BRLAPI_KEY_FLG(0X0400)
#define BRLAPI_DOT1 1
#define BRLAPI_DOT2 2
#define BRLAPI_DOT3 4
#define BRLAPI_DOT4 8
#define BRLAPI_DOT5 16
#define BRLAPI_DOT6 32
#define BRLAPI_DOT7 64
#define BRLAPI_DOT8 128
#define BRLAPI_DOTC 256
#define BRLAPI_DOTS(dot1, dot2, dot3, dot4, dot5, dot6, dot7,
dot8)
#define BRLAPI_DOT_CHORD 256
๐ Detailed Description
okay so key codes are unsigned 64 bit integers, right? and this whole 64-bit space is split into 3 parts:
- bits 63-32 (
BRLAPI_KEY_FLAGS_MASK), the flags: bits 39-32 are standard X modifiers (shift, control, meta, ...). the other flags are used for some commands, so go read the documentation ofBRLAPI_KEY_FLG_*for their respective uses, iykyk. - bits 31-29 (
BRLAPI_KEY_TYPE_MASK), the key type: eitherBRLAPI_KEY_TYPE_CMDfor braille commands, orBRLAPI_KEY_TYPE_SYMfor standard X keysyms. - bits 28-0 (
BRLAPI_KEY_CODE_MASK), the key code: for braille commands, seeBRLAPI_KEY_CMD_*; for standard X keysyms, this is the keysym value, see X11 documentation, a complete list is probably available on your system in/usr/include/X11/keysymdef.h.
so the second and third part are literally mandatory โ they're the ones telling you the type of keycode and the value of the keycode. the first part is where the optional flags live. no flags? still valid. flags are the garnish ๐
The third part is itself split into two parts: a command number and a command value. and bestie, the relative sizes of these parts vary according to the key type โ it's giving adaptive, it's giving flexible.
For a braille command, bits 28-16 (BRLAPI_KEY_CMD_BLK_MASK) hold the braille command number, while bits 15-0 (BRLAPI_KEY_CMD_ARG_MASK) hold the command value.
The brlapi_expandKeyCode() function may be used for splitting key codes into these parts. use it, it's there for you ๐ซถ
For a X keysym, if it is a unicode keysym (0x1uvwxyz), then the command number part is 0x1000000 and the value part is 0xuvwxyz. Else, the command part is held by bits 28-8 and the value part is held by bits 7-0. this permits you to easily handle usual cases like 0x00xy (latin1), 0x01xy (latin2), XK_Backspace (0xff08, backspace), XK_Tab (0xff09, tab), ... you get it โจ
For instance, if key == 0x0000000020010008,
(key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_CMD, so it's a braille command(key & BRLAPI_KEY_CMD_BLK_MASK) == BRLAPI_KEY_CMD_ROUTE, so it's the braille route command.(key & BRLAPI_KEY_CMD_ARG_MASK) == 8, so the highlighted cell is the 9th one (cells are numbered from 0) โ yes, from 0, we don't count like cavemen ๐(key & BRLAPI_KEY_FLAGS_MASK) == 0, so no modifier key was pressed during the command, and no particular flag applies to the command.
if key == 0x000000010000FF09,
(key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_SYM, so it's a keysym(key & BRLAPI_KEY_CODE_MASK) == XK_Tab, so it's the tab key.BRLAPI_KEY_SYM_TABcan also be used here, as well as a few otherBRLAPI_KEY_SYM_*constants which are provided to avoid having to includeX11/keysymdef.hโ icon behaviour honestly ๐(key & BRLAPI_KEY_FLAGS_MASK) == BRLAPI_KEY_FLG_SHIFT, so the shift modifier was pressed during the command.
in the X11 standard some keysyms are directly unicode, for instance if key == 0x0000000001001EA0,
(key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_SYM, so it's a keysym(key & BRLAPI_KEY_SYM_UNICODE) != 0so it's a unicode keysym, whose value iskey & (BRLAPI_KEY_SYM_UNICODE-1). of course, one can also consider(key & BRLAPI_KEY_CODE_MASK) == XK_Abelowdot(key & BRLAPI_KEY_FLAGS_MASK) == 0, so no modifier key was pressed during the command, and no particular flag applies to the command.
brlapi_ignoreKeyRanges() and brlapi_acceptKeyRanges() manipulate keycode ranges. they are composed of 2 keycodes: the "first" and the "last" boundaries. the range expressed by these two keycodes is the set of keycodes whose lower part (bits 31-0) is between the lower part of the "first" keycode and the "last" keycode (inclusive), and whose high part (bits 63-32), the flags, contains at least the flags of the "first" keycode, and at most the flags of the "last" keycode. setting the "first" and "last" keycode to the same value expresses only one keycode, for instance. setting the first and last keycode to the same command code but setting no flags in the "first" keycode and setting one flag in the "last" keycode expresses only two keycode, with the same lower part and no flags set except possibly the flag that is set in the "last" keycode. setting one flag i in the "first" keycode and setting the same flag plus another flag j in the "last" keycode expresses that the keycodes in the range have flag i set and possibly flag j set, but no other flag. that's the whole contract, don't come for me ๐ธ
๐ Macro Definition Documentation
#define BRLAPI_DOT1 1
upper-left dot of standard braille cell
#define BRLAPI_DOT2 2
middle-left dot of standard braille cell
#define BRLAPI_DOT3 4
lower-left dot of standard braille cell
#define BRLAPI_DOT4 8
upper-right dot of standard braille cell
#define BRLAPI_DOT5 16
middle-right dot of standard braille cell
#define BRLAPI_DOT6 32
lower-right dot of standard braille cell
#define BRLAPI_DOT7 64
lower-left dot of computer braille cell
#define BRLAPI_DOT8 128
lower-right dot of computer braille cell
#define BRLAPI_DOT_CHORD 256
space key
#define BRLAPI_DOTC 256
chord (space bar on braille keyboard)
#define BRLAPI_DOTS( dot1, dot2, dot3, dot4, dot5, dot6, dot7, dot8)
Value:
(\
((dot1)? BRLAPI_DOT1: 0) | \
((dot2)? BRLAPI_DOT2: 0) | \
((dot3)? BRLAPI_DOT3: 0) | \
((dot4)? BRLAPI_DOT4: 0) | \
((dot5)? BRLAPI_DOT5: 0) | \
((dot6)? BRLAPI_DOT6: 0) | \
((dot7)? BRLAPI_DOT7: 0) | \
((dot8)? BRLAPI_DOT8: 0) \
)
helper macro to easily produce braille patterns. you pass in which dots are on, it hands you the pattern, no math required, we love a shortcut ๐ฆ
#define BRLAPI_DRV_KEY_GROUP( code)
Value:
(((code) & BRLAPI_DRV_KEY_GROUP_MASK) >> BRLAPI_DRV_KEY_GROUP_SHIFT)
get key group of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_GROUP_MASK 0XFF00
mask for key group of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_GROUP_SHIFT 8
shift for key group of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_NUMBER( code)
Value:
(((code) & BRLAPI_DRV_KEY_NUMBER_MASK) >> BRLAPI_DRV_KEY_NUMBER_SHIFT)
get key number of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_NUMBER_ANY 0XFF
key number representing any key in the group
#define BRLAPI_DRV_KEY_NUMBER_MASK 0XFF
mask for key number of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_NUMBER_SHIFT 0
shift for key number of brlapi_keyCode_t
#define BRLAPI_DRV_KEY_PRESS BRLAPI_KEYCODE_C(0X8000000000000000)
When brlapi_enterTtyMode() or brlapi_entg$erTtyModeWithPath() is called with a driver name, brlapi_readKey() and brlapi_readKeyWithTimeout() will return driver-specific key codes. From most- to least-significant, their eight bytes are: F 0 0 0 0 0 G N. F is a byte that contains flag bits which are common for all drivers. BRLAPI_DRV_KEY_PRESS, which indicates that it's a key press (as opposed to a release) event, is the only currently defined flag. The other flag bits are always 0. G is the key's group, and N is the key's number within that group. flag for a driver-specific keycode press (not set means a release)
#define BRLAPI_DRV_KEY_VALUE_MASK (BRLAPI_DRV_KEY_GROUP_MASK | BRLAPI_DRV_KEY_NUMBER_MASK)
mask for key value (group and number) of brlapi_keyCode_t
#define BRLAPI_KEY_CMD( v)
Value:
((v) << BRLAPI_KEY_CMD_BLK_SHIFT)
#define BRLAPI_KEY_CMD_ALERT BRLAPI_KEY_CMD(31)
render an alert
#define BRLAPI_KEY_CMD_ALTGR (BRLAPI_KEY_CMD(0) + 112)
cycle the AltGr (Right Alt) sticky input modifier (next, on, off)
#define BRLAPI_KEY_CMD_APNDCHARS BRLAPI_KEY_CMD(17)
deprecated definition of CLIP_APPEND - append characters to clipboard
#define BRLAPI_KEY_CMD_ARG_MASK UINT64_C(0X0000FFFF)
mask for braille command value
#define BRLAPI_KEY_CMD_ARG_SHIFT 0
shift for braille command value
#define BRLAPI_KEY_CMD_ASPK_CMP_WORDS (BRLAPI_KEY_CMD(0) + 88)
set autospeak completed words on/off
#define BRLAPI_KEY_CMD_ASPK_DEL_CHARS (BRLAPI_KEY_CMD(0) + 86)
set autospeak deleted characters on/off
#define BRLAPI_KEY_CMD_ASPK_EMP_LINE (BRLAPI_KEY_CMD(0) + 156)
set autospeak empty line on/off
#define BRLAPI_KEY_CMD_ASPK_INDENT (BRLAPI_KEY_CMD(0) + 126)
set autospeak indent of current line on/off
#define BRLAPI_KEY_CMD_ASPK_INS_CHARS (BRLAPI_KEY_CMD(0) + 85)
set autospeak inserted characters on/off
#define BRLAPI_KEY_CMD_ASPK_REP_CHARS (BRLAPI_KEY_CMD(0) + 87)โ flips autospeak of replaced characters on/off ๐ฆ#define BRLAPI_KEY_CMD_ASPK_SEL_CHAR (BRLAPI_KEY_CMD(0) + 84)โ flips autospeak of the selected character on/off โจ#define BRLAPI_KEY_CMD_ASPK_SEL_LINE (BRLAPI_KEY_CMD(0) + 83)โ flips autospeak of the selected line on/off ๐#define BRLAPI_KEY_CMD_ATTRBLINK (BRLAPI_KEY_CMD(0) + 44)โ set attribute blinking on/off ๐#define BRLAPI_KEY_CMD_ATTRDN (BRLAPI_KEY_CMD(0) + 8)โ jump down to the nearest line that has different highlighting, lowkey so useful ๐#define BRLAPI_KEY_CMD_ATTRUP (BRLAPI_KEY_CMD(0) + 7)โ jump up to the nearest line with different highlighting โญ#define BRLAPI_KEY_CMD_ATTRVIS (BRLAPI_KEY_CMD(0) + 43)โ set attribute underlining on/off (yes bestie, that's what the page says, we don't question it) ๐#define BRLAPI_KEY_CMD_AUTOREPEAT (BRLAPI_KEY_CMD(0) + 47)โ set autorepeat on/off ๐#define BRLAPI_KEY_CMD_AUTOSPEAK (BRLAPI_KEY_CMD(0) + 48)โ set autospeak on/off ๐ฃ๏ธ#define BRLAPI_KEY_CMD_BACK (BRLAPI_KEY_CMD(0) + 30)โ go back after cursor tracking, the lil undo of navigation ๐#define BRLAPI_KEY_CMD_BLK_MASK UINT64_C(0X1FFF0000)โ the mask for the braille command type, iykyk ๐ซ#define BRLAPI_KEY_CMD_BLK_SHIFT 16โ the shift amount for that braille command type ๐ง#define BRLAPI_KEY_CMD_BOT (BRLAPI_KEY_CMD(0) + 10)โ go to the bottom line โฌ๏ธ#define BRLAPI_KEY_CMD_BOT_LEFT (BRLAPI_KEY_CMD(0) + 12)โ go to the beginning of the bottom line, main character energy ๐ฌ#define BRLAPI_KEY_CMD_BRL_START (BRLAPI_KEY_CMD(0) + 115)โ start the braille driver, let's GO ๐ฅ#define BRLAPI_KEY_CMD_BRL_STOP (BRLAPI_KEY_CMD(0) + 114)โ stop the braille driver, we rest ๐ด#define BRLAPI_KEY_CMD_BRLKBD (BRLAPI_KEY_CMD(0) + 110)โ set braille keyboard enabled/disabled โจ๏ธ#define BRLAPI_KEY_CMD_BRLUCDOTS (BRLAPI_KEY_CMD(0) + 109)โ set braille typing mode dots/text ๐#define BRLAPI_KEY_CMD_CAPBLINK (BRLAPI_KEY_CMD(0) + 45)โ set capital letter blinking on/off โจ#define BRLAPI_KEY_CMD_CHRLT (BRLAPI_KEY_CMD(0) + 19)โ go left one character ๐#define BRLAPI_KEY_CMD_CHRRT (BRLAPI_KEY_CMD(0) + 20)โ go right one character ๐#define BRLAPI_KEY_CMD_CLIP_ADD BRLAPI_KEY_CMD(3)โ append to clipboard from character ๐#define BRLAPI_KEY_CMD_CLIP_APPEND BRLAPI_KEY_CMD(17)โ append characters to clipboard ๐ซถ#define BRLAPI_KEY_CMD_CLIP_COPY BRLAPI_KEY_CMD(16)โ copy characters to clipboard, classic slay ๐#define BRLAPI_KEY_CMD_CLIP_NEW BRLAPI_KEY_CMD(2)โ start a new clipboard at character, fresh start bestie ๐ธ#define BRLAPI_KEY_CMD_CLIP_RESTORE (BRLAPI_KEY_CMD(0) + 108)โ restore clipboard from disk ๐พ#define BRLAPI_KEY_CMD_CLIP_SAVE (BRLAPI_KEY_CMD(0) + 107)โ save clipboard to disk ๐พ#define BRLAPI_KEY_CMD_COMPBRL6 (BRLAPI_KEY_CMD(0) + 154)โ set six/eight dot computer braille ๐ก#define BRLAPI_KEY_CMD_CONTEXT BRLAPI_KEY_CMD(38)โ switch to command context ๐#define BRLAPI_KEY_CMD_CONTRACTED (BRLAPI_KEY_CMD(0) + 153)โ set contracted/computer braille ๐ง#define BRLAPI_KEY_CMD_CONTROL (BRLAPI_KEY_CMD(0) + 79)โ cycle the Control sticky input modifier (next, on, off) ๐#define BRLAPI_KEY_CMD_COPY_LINE BRLAPI_KEY_CMD(5)โ linear copy to character, keep it simple โจ#define BRLAPI_KEY_CMD_COPY_RECT BRLAPI_KEY_CMD(4)โ rectangular copy to character, fancy ๐#define BRLAPI_KEY_CMD_COPYCHARS BRLAPI_KEY_CMD(16)โ deprecated definition ofCLIP_COPYโ copy characters to clipboard. It's the old name, ngl still works but like, use the other one ๐#define BRLAPI_KEY_CMD_CSRBLINK (BRLAPI_KEY_CMD(0) + 42)โ set screen cursor blinking on/off โจ#define BRLAPI_KEY_CMD_CSRHIDE (BRLAPI_KEY_CMD(0) + 39)โ set hidden screen cursor on/off ๐#define BRLAPI_KEY_CMD_CSRJMP_VERT (BRLAPI_KEY_CMD(0) + 72)โ bring the screen cursor to the current line ๐ฏ#define BRLAPI_KEY_CMD_CSRSIZE (BRLAPI_KEY_CMD(0) + 41)โ set screen cursor style block/underline ๐๏ธ#define BRLAPI_KEY_CMD_CSRTRK (BRLAPI_KEY_CMD(0) + 40)โ set track screen cursor on/off ๐#define BRLAPI_KEY_CMD_CSRVIS (BRLAPI_KEY_CMD(0) + 38)โ set screen cursor visibility on/off ๐#define BRLAPI_KEY_CMD_CUTAPPEND BRLAPI_KEY_CMD(3)โ deprecated definition ofCLIP_ADDโ append to clipboard from character. Yes it's the legacy one, we still list it tho ๐ซ#define BRLAPI_KEY_CMD_CUTBEGIN BRLAPI_KEY_CMD(2)โ deprecated definition ofCLIP_NEWโ start new clipboard at character. oldie but a goldie ๐#define BRLAPI_KEY_CMD_CUTLINE BRLAPI_KEY_CMD(5)โ deprecated definition ofCOPY_LINEโ linear copy to character ๐ท#define BRLAPI_KEY_CMD_CUTRECT BRLAPI_KEY_CMD(4)โ deprecated definition ofCOPY_RECTโ rectangular copy to character ๐ท#define BRLAPI_KEY_CMD_DESC_CURR_CHAR (BRLAPI_KEY_CMD(0) + 102)โ describe the current character, tell me everything ๐#define BRLAPI_KEY_CMD_DESCCHAR BRLAPI_KEY_CMD(9)โ describe character ๐#define BRLAPI_KEY_CMD_DISPMD (BRLAPI_KEY_CMD(0) + 33)โ set display mode attributes/text ๐๏ธ#define BRLAPI_KEY_CMD_FREEZE (BRLAPI_KEY_CMD(0) + 32)โ set screen image frozen/unfrozen ๐ง#define BRLAPI_KEY_CMD_FWINLT (BRLAPI_KEY_CMD(0) + 23)โ go backward one braille window โฌ ๏ธ#define BRLAPI_KEY_CMD_FWINLTSKIP (BRLAPI_KEY_CMD(0) + 25)โ go backward skipping blank braille windows, efficiency icon ๐#define BRLAPI_KEY_CMD_FWINRT (BRLAPI_KEY_CMD(0) + 24)โ go forward one braille window โก๏ธ#define BRLAPI_KEY_CMD_FWINRTSKIP (BRLAPI_KEY_CMD(0) + 26)โ go forward skipping blank braille windows โฉ#define BRLAPI_KEY_CMD_GOTOLINE BRLAPI_KEY_CMD(13)โ go to selected line ๐ฏ#define BRLAPI_KEY_CMD_GOTOMARK BRLAPI_KEY_CMD(12)โ go to the remembered braille window position ๐#define BRLAPI_KEY_CMD_GUI (BRLAPI_KEY_CMD(0) + 113)โ cycle the GUI (Windows) sticky input modifier (next, on, off) ๐ช#define BRLAPI_KEY_CMD_GUI_APP_ALERTS (BRLAPI_KEY_CMD(0) + 142)โ open the application alerts window ๐จ#define BRLAPI_KEY_CMD_GUI_APP_LIST (BRLAPI_KEY_CMD(0) + 140)โ open the application list window ๐#define BRLAPI_KEY_CMD_GUI_APP_MENU (BRLAPI_KEY_CMD(0) + 141)โ open the application-specific menu ๐#define BRLAPI_KEY_CMD_GUI_AREA_ACTV (BRLAPI_KEY_CMD(0) + 143)โ return to the active screen area ๐#define BRLAPI_KEY_CMD_GUI_AREA_NEXT (BRLAPI_KEY_CMD(0) + 145)โ switch to the next screen area ๐โโ๏ธ#define BRLAPI_KEY_CMD_GUI_AREA_PREV (BRLAPI_KEY_CMD(0) + 144)โ switch to the previous screen area ๐#define BRLAPI_KEY_CMD_GUI_BACK (BRLAPI_KEY_CMD(0) + 137)โ go back to the previous screen ๐#define BRLAPI_KEY_CMD_GUI_BRL_ACTIONS (BRLAPI_KEY_CMD(0) + 135)โ open the braille actions window ๐งโ๐ฆฏ#define BRLAPI_KEY_CMD_GUI_DEV_OPTIONS (BRLAPI_KEY_CMD(0) + 139)โ open the device options window โ๏ธ#define BRLAPI_KEY_CMD_GUI_DEV_SETTINGS (BRLAPI_KEY_CMD(0) + 138)โ open the device settings window ๐ง#define BRLAPI_KEY_CMD_GUI_HOME (BRLAPI_KEY_CMD(0) + 136)โ go to the home screen ๐ก#define BRLAPI_KEY_CMD_GUI_ITEM_FRST (BRLAPI_KEY_CMD(0) + 146)โ move to the first item in the screen area ๐ฅ#define BRLAPI_KEY_CMD_GUI_ITEM_LAST (BRLAPI_KEY_CMD(0) + 149)โ move to the last item in the screen area ๐#define BRLAPI_KEY_CMD_GUI_ITEM_NEXT (BRLAPI_KEY_CMD(0) + 148)โ move to the next item in the screen area ๐พ#define BRLAPI_KEY_CMD_GUI_ITEM_PREV (BRLAPI_KEY_CMD(0) + 147)โ move to the previous item in the screen area ๐พ#define BRLAPI_KEY_CMD_GUI_TITLE (BRLAPI_KEY_CMD(0) + 134)โ show the window title ๐ชง#define BRLAPI_KEY_CMD_HELP (BRLAPI_KEY_CMD(0) + 49)โ enter/leave help display ๐#define BRLAPI_KEY_CMD_HOME (BRLAPI_KEY_CMD(0) + 29)โ go to screen cursor ๐#define BRLAPI_KEY_CMD_HOST_COPY (BRLAPI_KEY_CMD(0) + 131)โ copy selected text to the host clipboard ๐#define BRLAPI_KEY_CMD_HOST_CUT (BRLAPI_KEY_CMD(0) + 132)โ cut selected text to the host clipboard โ๏ธ#define BRLAPI_KEY_CMD_HOST_PASTE (BRLAPI_KEY_CMD(0) + 133)โ insert the host clipboard text before the screen cursor ๐ฅ#define BRLAPI_KEY_CMD_HOSTCMD BRLAPI_KEY_CMD(41)โ run host command ๐ฅ๏ธ#define BRLAPI_KEY_CMD_HWINLT (BRLAPI_KEY_CMD(0) + 21)โ go left half a braille window, precision bestie ๐ฏ#define BRLAPI_KEY_CMD_HWINRT (BRLAPI_KEY_CMD(0) + 22)โ go right half a braille window ๐ฏ#define BRLAPI_KEY_CMD_INDICATORS (BRLAPI_KEY_CMD(0) + 128)โ show various device status indicators ๐#define BRLAPI_KEY_CMD_INFO (BRLAPI_KEY_CMD(0) + 50)โ enter/leave status display โน๏ธ#define BRLAPI_KEY_CMD_LEARN (BRLAPI_KEY_CMD(0) + 51)โ enter/leave command learn mode ๐#define BRLAPI_KEY_CMD_LNBEG (BRLAPI_KEY_CMD(0) + 27)โ go to beginning of line โฌ ๏ธ#define BRLAPI_KEY_CMD_LNDN (BRLAPI_KEY_CMD(0) + 2)โ go down one line โฌ๏ธ#define BRLAPI_KEY_CMD_LNEND (BRLAPI_KEY_CMD(0) + 28)โ go to end of line โก๏ธ#define BRLAPI_KEY_CMD_LNUP (BRLAPI_KEY_CMD(0) + 1)โ go up one line โฌ๏ธ#define BRLAPI_KEY_CMD_MACRO BRLAPI_KEY_CMD(40)โ execute command macro ๐ช#define BRLAPI_KEY_CMD_MENU_FIRST_ITEM (BRLAPI_KEY_CMD(0) + 55)โ go up to first item ๐#define BRLAPI_KEY_CMD_MENU_LAST_ITEM (BRLAPI_KEY_CMD(0) + 56)โ go down to last item ๐#define BRLAPI_KEY_CMD_MENU_NEXT_ITEM (BRLAPI_KEY_CMD(0) + 58)โ go down to next item โฌ#define BRLAPI_KEY_CMD_MENU_NEXT_SETTING (BRLAPI_KEY_CMD(0) + 60)โ select next choice ๐๏ธ#define BRLAPI_KEY_CMD_MENU_PREV_ITEM (BRLAPI_KEY_CMD(0) + 57)โ go up to previous item โซ#define BRLAPI_KEY_CMD_MENU_PREV_LEVEL (BRLAPI_KEY_CMD(0) + 82)โ go to previous menu level ๐ช#define BRLAPI_KEY_CMD_MENU_PREV_SETTING (BRLAPI_KEY_CMD(0) + 59)โ select previous choice ๐๏ธ#define BRLAPI_KEY_CMD_META (BRLAPI_KEY_CMD(0) + 80)โ cycle the Meta (Left Alt) sticky input modifier (next, on, off) ๐#define BRLAPI_KEY_CMD_MUTE (BRLAPI_KEY_CMD(0) + 61)โ stop speaking ๐ค#define BRLAPI_KEY_CMD_NOOP (BRLAPI_KEY_CMD(0) + 0)โ do nothing. literally the do-nothing icon ๐#define BRLAPI_KEY_CMD_NXDIFCHAR BRLAPI_KEY_CMD(15)โ go down to nearest line with a different character ๐ค#define BRLAPI_KEY_CMD_NXDIFLN (BRLAPI_KEY_CMD(0) + 6)โ go down to nearest line with different content ๐#define BRLAPI_KEY_CMD_NXINDENT BRLAPI_KEY_CMD(8)โ go down to nearest line with less indent than character ๐#define BRLAPI_KEY_CMD_NXNBWIN (BRLAPI_KEY_CMD(0) + 123)โ go forward to the nearest non-blank braille window ๐#define BRLAPI_KEY_CMD_NXPGRPH (BRLAPI_KEY_CMD(0) + 14)โ go down to the first line of the next paragraph ๐#define BRLAPI_KEY_CMD_NXPROMPT (BRLAPI_KEY_CMD(0) + 16)โ go down to the next command prompt ๐ป#define BRLAPI_KEY_CMD_NXSEARCH (BRLAPI_KEY_CMD(0) + 18)โ search forward for clipboard text ๐#define BRLAPI_KEY_CMD_OFFLINE (BRLAPI_KEY_CMD(0) + 76)โ braille display temporarily unavailable, she's on a break ๐ญ#define BRLAPI_KEY_CMD_PASSAT BRLAPI_KEY_CMD(35)โ AT (set 2) keyboard scan code โจ๏ธ#define BRLAPI_KEY_CMD_PASSDOTS BRLAPI_KEY_CMD(34)โ type braille dots โ ฟ#define BRLAPI_KEY_CMD_PASSPS2 BRLAPI_KEY_CMD(37)โ PS/2 (set 3) keyboard scan code ๐ฑ๏ธ#define BRLAPI_KEY_CMD_PASSXT BRLAPI_KEY_CMD(36)โ XT (set 1) keyboard scan code โจ๏ธ#define BRLAPI_KEY_CMD_PASTE (BRLAPI_KEY_CMD(0) + 73)โ insert the clipboard content before the screen cursor ๐ฅ#define BRLAPI_KEY_CMD_PASTE_ALTMODE (BRLAPI_KEY_CMD(0) + 158)โ insert the clipboard content before the screen cursor using the alternate paste mode ๐#define BRLAPI_KEY_CMD_PASTE_HISTORY BRLAPI_KEY_CMD(18)โ insert a clipboard history entry before the screen cursor ๐๏ธ#define BRLAPI_KEY_CMD_PASTE_HISTORY_ALTMODE BRLAPI_KEY_CMD(29)โ insert a clipboard history entry before the screen cursor using the alternate paste mode ๐#define BRLAPI_KEY_CMD_PRDIFCHAR BRLAPI_KEY_CMD(14)โ go up to nearest line with a different character ๐คBRLAPI_KEY_CMD_PRDIFLN=(BRLAPI_KEY_CMD(0) + 5)โ go up to the nearest line that's got different content โจBRLAPI_KEY_CMD_PREFLOAD=(BRLAPI_KEY_CMD(0) + 54)โ restore your prefs straight from disk, iconic ๐พBRLAPI_KEY_CMD_PREFMENU=(BRLAPI_KEY_CMD(0) + 52)โ enter/leave the preferences menu, yes bestie ๐BRLAPI_KEY_CMD_PREFRESET=(BRLAPI_KEY_CMD(0) + 155)โ reset prefs back to defaults, no cap ๐BRLAPI_KEY_CMD_PREFSAVE=(BRLAPI_KEY_CMD(0) + 53)โ save your prefs to disk, slay ๐BRLAPI_KEY_CMD_PRINDENT=BRLAPI_KEY_CMD(7)โ go up to the nearest line with less indent than the character, lowkey satisfying ๐ฆBRLAPI_KEY_CMD_PRNBWIN=(BRLAPI_KEY_CMD(0) + 122)โ go backward to the nearest non-blank braille window ๐BRLAPI_KEY_CMD_PRPGRPH=(BRLAPI_KEY_CMD(0) + 13)โ go up to the first line of the paragraph ๐ธBRLAPI_KEY_CMD_PRPROMPT=(BRLAPI_KEY_CMD(0) + 15)โ go up to the previous command prompt ๐ปBRLAPI_KEY_CMD_PRSEARCH=(BRLAPI_KEY_CMD(0) + 17)โ search backward for clipboard text ๐BRLAPI_KEY_CMD_REFRESH=(BRLAPI_KEY_CMD(0) + 127)โ refresh the braille display, periodt โจBRLAPI_KEY_CMD_REFRESH_LINE=BRLAPI_KEY_CMD(25)โ refresh just the braille line, efficient queen ๐BRLAPI_KEY_CMD_RESTARTBRL=(BRLAPI_KEY_CMD(0) + 74)โ restart the braille driver ๐BRLAPI_KEY_CMD_RESTARTSPEECH=(BRLAPI_KEY_CMD(0) + 75)โ restart the speech driver ๐ฃ๏ธBRLAPI_KEY_CMD_RETURN=(BRLAPI_KEY_CMD(0) + 31)โ go to the screen cursor, or go back after cursor tracking โฉ๏ธBRLAPI_KEY_CMD_ROUTE=BRLAPI_KEY_CMD(1)โ bring the screen cursor to the character ๐BRLAPI_KEY_CMD_ROUTE_CURR_LOCN=(BRLAPI_KEY_CMD(0) + 104)โ bring the screen cursor to the speech cursor ๐ฏBRLAPI_KEY_CMD_ROUTE_LINE=BRLAPI_KEY_CMD(24)โ bring the screen cursor to the line ๐BRLAPI_KEY_CMD_ROUTE_SPEECH=BRLAPI_KEY_CMD(28)โ bring the speech cursor to the character ๐ฌBRLAPI_KEY_CMD_SAY_ABOVE=(BRLAPI_KEY_CMD(0) + 64)โ speak from the top of the screen through the current line โฌ๏ธBRLAPI_KEY_CMD_SAY_ALL=(BRLAPI_KEY_CMD(0) + 152)โ speak from the top of the screen through the bottom of the screen, the whole vibe ๐ญBRLAPI_KEY_CMD_SAY_BELOW=(BRLAPI_KEY_CMD(0) + 65)โ speak from the current line through the bottom of the screen โฌ๏ธBRLAPI_KEY_CMD_SAY_FASTER=(BRLAPI_KEY_CMD(0) + 67)โ increase speaking rate, zoom zoom ๐โโ๏ธBRLAPI_KEY_CMD_SAY_HIGHER=(BRLAPI_KEY_CMD(0) + 151)โ increase speaking pitch ๐ตBRLAPI_KEY_CMD_SAY_LINE=(BRLAPI_KEY_CMD(0) + 63)โ speak the current line ๐ฃ๏ธBRLAPI_KEY_CMD_SAY_LOUDER=(BRLAPI_KEY_CMD(0) + 69)โ increase speaking volume, as it should be ๐BRLAPI_KEY_CMD_SAY_LOWER=(BRLAPI_KEY_CMD(0) + 150)โ decrease speaking pitch ๐ถBRLAPI_KEY_CMD_SAY_SLOWER=(BRLAPI_KEY_CMD(0) + 66)โ decrease speaking rate, take your time bestie ๐ขBRLAPI_KEY_CMD_SAY_SOFTER=(BRLAPI_KEY_CMD(0) + 68)โ decrease speaking volume ๐คซBRLAPI_KEY_CMD_SCR_START=(BRLAPI_KEY_CMD(0) + 119)โ start the screen driver โถ๏ธBRLAPI_KEY_CMD_SCR_STOP=(BRLAPI_KEY_CMD(0) + 118)โ stop the screen driver โน๏ธBRLAPI_KEY_CMD_SELECTVT=BRLAPI_KEY_CMD(30)โ bind to a specific virtual terminal ๐ฅ๏ธBRLAPI_KEY_CMD_SELECTVT_NEXT=(BRLAPI_KEY_CMD(0) + 121)โ bind to the next virtual terminal โก๏ธBRLAPI_KEY_CMD_SELECTVT_PREV=(BRLAPI_KEY_CMD(0) + 120)โ bind to the previous virtual terminal โฌ ๏ธBRLAPI_KEY_CMD_SET_ATTRIBUTES_TABLE=BRLAPI_KEY_CMD(20)โ set the attributes table ๐จBRLAPI_KEY_CMD_SET_CONTRACTION_TABLE=BRLAPI_KEY_CMD(21)โ set the contraction table โ๏ธBRLAPI_KEY_CMD_SET_KEYBOARD_TABLE=BRLAPI_KEY_CMD(22)โ set the keyboard table โจ๏ธBRLAPI_KEY_CMD_SET_LANGUAGE_PROFILE=BRLAPI_KEY_CMD(23)โ set the language profile ๐BRLAPI_KEY_CMD_SET_TEXT_TABLE=BRLAPI_KEY_CMD(19)โ set the text table ๐BRLAPI_KEY_CMD_SETLEFT=BRLAPI_KEY_CMD(10)โ place the left end of the braille window at the character ๐BRLAPI_KEY_CMD_SETMARK=BRLAPI_KEY_CMD(11)โ remember the current braille window position ๐งBRLAPI_KEY_CMD_SHIFT=(BRLAPI_KEY_CMD(0) + 77)โ cycle the Shift sticky input modifier (next, on, off) ๐BRLAPI_KEY_CMD_SHOW_CURR_LOCN=(BRLAPI_KEY_CMD(0) + 106)โ set speech cursor visibility on/off ๐๏ธBRLAPI_KEY_CMD_SIXDOTS=(BRLAPI_KEY_CMD(0) + 34)โ set text style 6-dot/8-dot โซBRLAPI_KEY_CMD_SKPBLNKWINS=(BRLAPI_KEY_CMD(0) + 37)โ set skipping of blank braille windows on/off ๐BRLAPI_KEY_CMD_SKPIDLNS=(BRLAPI_KEY_CMD(0) + 36)โ set skipping of lines with identical content on/off ๐BRLAPI_KEY_CMD_SLIDEWIN=(BRLAPI_KEY_CMD(0) + 35)โ set the sliding braille window on/off ๐BRLAPI_KEY_CMD_SPEAK_CURR_CHAR=(BRLAPI_KEY_CMD(0) + 89)โ speak the current character ๐คBRLAPI_KEY_CMD_SPEAK_CURR_LINE=(BRLAPI_KEY_CMD(0) + 95)โ speak the current line ๐BRLAPI_KEY_CMD_SPEAK_CURR_LOCN=(BRLAPI_KEY_CMD(0) + 105)โ speak the speech cursor location ๐BRLAPI_KEY_CMD_SPEAK_CURR_WORD=(BRLAPI_KEY_CMD(0) + 92)โ speak the current word ๐ฌBRLAPI_KEY_CMD_SPEAK_FRST_CHAR=(BRLAPI_KEY_CMD(0) + 98)โ go to and speak the first non-blank character on the line ๐ฅBRLAPI_KEY_CMD_SPEAK_FRST_LINE=(BRLAPI_KEY_CMD(0) + 100)โ go to and speak the first non-blank line on the screen ๐BRLAPI_KEY_CMD_SPEAK_INDENT=(BRLAPI_KEY_CMD(0) + 125)โ speak the indent of the current line ๐BRLAPI_KEY_CMD_SPEAK_LAST_CHAR=(BRLAPI_KEY_CMD(0) + 99)โ go to and speak the last non-blank character on the line ๐ฏBRLAPI_KEY_CMD_SPEAK_LAST_LINE=(BRLAPI_KEY_CMD(0) + 101)โ go to and speak the last non-blank line on the screen ๐BRLAPI_KEY_CMD_SPEAK_NEXT_CHAR=(BRLAPI_KEY_CMD(0) + 91)โ go to and speak the next character โก๏ธBRLAPI_KEY_CMD_SPEAK_NEXT_LINE=(BRLAPI_KEY_CMD(0) + 97)โ go to and speak the next line โคต๏ธBRLAPI_KEY_CMD_SPEAK_NEXT_WORD=(BRLAPI_KEY_CMD(0) + 94)โ go to and speak the next word โญ๏ธBRLAPI_KEY_CMD_SPEAK_PREV_CHAR=(BRLAPI_KEY_CMD(0) + 90)โ go to and speak the previous character โฌ ๏ธBRLAPI_KEY_CMD_SPEAK_PREV_LINE=(BRLAPI_KEY_CMD(0) + 96)โ go to and speak the previous line โคด๏ธBRLAPI_KEY_CMD_SPEAK_PREV_WORD=(BRLAPI_KEY_CMD(0) + 93)โ go to and speak the previous word โฎ๏ธBRLAPI_KEY_CMD_SPELL_CURR_WORD=(BRLAPI_KEY_CMD(0) + 103)โ spell the current word ๐กBRLAPI_KEY_CMD_SPK_PUNCT_LEVEL=(BRLAPI_KEY_CMD(0) + 157)โ cycle the speech punctuation level โBRLAPI_KEY_CMD_SPK_START=(BRLAPI_KEY_CMD(0) + 117)โ start the speech driver โถ๏ธBRLAPI_KEY_CMD_SPK_STOP=(BRLAPI_KEY_CMD(0) + 116)โ stop the speech driver โน๏ธBRLAPI_KEY_CMD_SPKHOME=(BRLAPI_KEY_CMD(0) + 62)โ go to the current speaking position ๐BRLAPI_KEY_CMD_SWITCHVT=BRLAPI_KEY_CMD(6)โ switch to a specific virtual terminal ๐BRLAPI_KEY_CMD_SWITCHVT_NEXT=(BRLAPI_KEY_CMD(0) + 71)โ switch to the next virtual terminal โก๏ธBRLAPI_KEY_CMD_SWITCHVT_PREV=(BRLAPI_KEY_CMD(0) + 70)โ switch to the previous virtual terminal โฌ ๏ธBRLAPI_KEY_CMD_TIME=(BRLAPI_KEY_CMD(0) + 81)โ show the current date and time, literally โฐBRLAPI_KEY_CMD_TOP=(BRLAPI_KEY_CMD(0) + 9)โ go to the top line โฌ๏ธBRLAPI_KEY_CMD_TOP_LEFT=(BRLAPI_KEY_CMD(0) + 11)โ go to the beginning of the top line โ๏ธBRLAPI_KEY_CMD_TOUCH_AT=BRLAPI_KEY_CMD(39)โ current reading location, touchy touchy ๐BRLAPI_KEY_CMD_TOUCH_NAV=(BRLAPI_KEY_CMD(0) + 124)โ set touch navigation on/off ๐ฑBRLAPI_KEY_CMD_TUNES=(BRLAPI_KEY_CMD(0) + 46)โ set alert tunes on/off ๐ตBRLAPI_KEY_CMD_TXTSEL_ALL=(BRLAPI_KEY_CMD(0) + 130)โ select all of the text, ctrl+a energy ๐ฑ๏ธBRLAPI_KEY_CMD_TXTSEL_CLEAR=(BRLAPI_KEY_CMD(0) + 129)โ clear the text selection ๐งนBRLAPI_KEY_CMD_TXTSEL_SET=BRLAPI_KEY_CMD(27)โ set the text selection โ๏ธBRLAPI_KEY_CMD_TXTSEL_START=BRLAPI_KEY_CMD(26)โ start the text selection ๐ณ๏ธBRLAPI_KEY_CMD_UNSTICK=(BRLAPI_KEY_CMD(0) + 111)โ clear all sticky input modifiers, unstuck era ๐ซถBRLAPI_KEY_CMD_UPPER=(BRLAPI_KEY_CMD(0) + 78)โ cycle the Upper sticky input modifier (next, on, off) ๐BRLAPI_KEY_CMD_WINDN=(BRLAPI_KEY_CMD(0) + 4)โ go down several lines โฌ๏ธBRLAPI_KEY_CMD_WINUP=(BRLAPI_KEY_CMD(0) + 3)โ go up several lines โฌ๏ธ
Okay bestie, new cluster unlocked: the bit/flag maths of brlapi_keyCode_t ๐ These four are the scaffolding that says where the code lives and where the flags live inside that uint64_t vibe:
BRLAPI_KEY_CODE_MASK=UINT64_C(0X000000001FFFFFFF)โ mask for the code ofbrlapi_keyCode_t๐BRLAPI_KEY_CODE_SHIFT=0โ shift for the code ofbrlapi_keyCode_tโ๏ธBRLAPI_KEY_FLAGS_MASK=UINT64_C(0XFFFFFFFF00000000)โ mask for the flags ofbrlapi_keyCode_t๐ฉBRLAPI_KEY_FLAGS_SHIFT=32โ shift for the flags ofbrlapi_keyCode_tโ๏ธ
The last two are highkey doing the heavy lifting: the flags live up in the top 32 bits, the code chills down in the bottom bits. No guessing, that's just what the masks and shifts say ๐
Now the flag-makin' macro itself:
BRLAPI_KEY_FLG( v)โ value is((brlapi_keyCode_t)(v) << BRLAPI_KEY_FLAGS_SHIFT)โ it shoves your flag value up into the flags region, iconic ๐๏ธ
And all the flag constants it builds, in all their glory:
BRLAPI_KEY_FLG_ALTGR=BRLAPI_KEY_FLG(0X10)โ altgr (right alt) key pressed ๐นBRLAPI_KEY_FLG_CAPSLOCK=BRLAPI_KEY_FLG(0X80)โ capslock key pressed ๐BRLAPI_KEY_FLG_CONTROL=BRLAPI_KEY_FLG(0X04)โ control key pressed ๐๏ธBRLAPI_KEY_FLG_ESCAPED=BRLAPI_KEY_FLG(0X40)โ prefix with escape ๐ชBRLAPI_KEY_FLG_GUI=BRLAPI_KEY_FLG(0X20)โ gui (windows) key pressed ๐ชBRLAPI_KEY_FLG_KBD_EMUL0=BRLAPI_KEY_FLG(0X0200)โ it is an emulation 0 scan code ๐งชBRLAPI_KEY_FLG_KBD_EMUL1=BRLAPI_KEY_FLG(0X0400)โ it is an emulation 1 scan code ๐งชBRLAPI_KEY_FLG_KBD_RELEASE=BRLAPI_KEY_FLG(0X0100)โ it is a release scan code ๐BRLAPI_KEY_FLG_META=BRLAPI_KEY_FLG(0X08)โ meta (left alt) key pressed ๐นBRLAPI_KEY_FLG_MOD1=BRLAPI_KEY_FLG(0x00000008)โ Standard X modifiers Mod1 modifier (AKA meta) ๐ ฐ๏ธBRLAPI_KEY_FLG_MOD2=BRLAPI_KEY_FLG(0x00000010)โ Mod2 modifier (usually numlock) ๐ขBRLAPI_KEY_FLG_MOD3=BRLAPI_KEY_FLG(0x00000020)โ Mod3 modifier 3๏ธโฃBRLAPI_KEY_FLG_MOD4=BRLAPI_KEY_FLG(0x00000040)โ Mod4 modifier 4๏ธโฃBRLAPI_KEY_FLG_MOD5=BRLAPI_KEY_FLG(0x00000080)โ Mod5 modifier (usually Alt-Gr) 5๏ธโฃBRLAPI_KEY_FLG_MOTION_ROUTE=BRLAPI_KEY_FLG(0X0400)โ bring the screen cursor into the braille window after the function ๐BRLAPI_KEY_FLG_MOTION_SCALED=BRLAPI_KEY_FLG(0X0800)โ scalearg=0X00-0XFFto screen height ๐BRLAPI_KEY_FLG_MOTION_TOLEFT=BRLAPI_KEY_FLG(0X1000)โ go to the beginning of the line โฌ ๏ธBRLAPI_KEY_FLG_SHIFT=BRLAPI_KEY_FLG(0X01)โ shift key pressed โฌ๏ธBRLAPI_KEY_FLG_TOGGLE_MASK=(BRLAPI_KEY_FLG_TOGGLE_ON | BRLAPI_KEY_FLG_TOGGLE_OFF)โ mask for all toggle flags ๐๏ธBRLAPI_KEY_FLG_TOGGLE_OFF=BRLAPI_KEY_FLG(0X0200)โ disable feature โญBRLAPI_KEY_FLG_TOGGLE_ON=BRLAPI_KEY_FLG(0X0100)โ enable feature โBRLAPI_KEY_FLG_UPPER=BRLAPI_KEY_FLG(0X02)โ convert to uppercase ๐
And the big one, plus the start of the keysym family:
BRLAPI_KEY_MAX=UINT64_C(0XFFFFFFFFFFFFFFFF)โBrlapi_keyCode_t's biggest value. As defined in<stdint.h>๐๏ธBRLAPI_KEY_SYM_BACKSPACE=UINT64_C(0X0000FF08)โ Standard X keysyms โจ๏ธ
And we're still rolling, don't worry ๐ โ the keysym saga continues in the next bit ๐ฆ
and we're back with the rest of the macro fam ๐
these are the exact BRLAPI_KEY_SYM_* and type/print-format definitions, no cap:
#define BRLAPI_KEY_SYM_DELETE UINT64_C(0X0000FFFF)
#define BRLAPI_KEY_SYM_DOWN UINT64_C(0X0000FF54)
#define BRLAPI_KEY_SYM_END UINT64_C(0X0000FF57)
#define BRLAPI_KEY_SYM_ESCAPE UINT64_C(0X0000FF1B)
#define BRLAPI_KEY_SYM_FUNCTION UINT64_C(0X0000FFBE)
#define BRLAPI_KEY_SYM_HOME UINT64_C(0X0000FF50)
#define BRLAPI_KEY_SYM_INSERT UINT64_C(0X0000FF63)
#define BRLAPI_KEY_SYM_LEFT UINT64_C(0X0000FF51)
#define BRLAPI_KEY_SYM_LINEFEED UINT64_C(0X0000FF0D)
#define BRLAPI_KEY_SYM_PAGE_DOWN UINT64_C(0X0000FF56)
#define BRLAPI_KEY_SYM_PAGE_UP UINT64_C(0X0000FF55)
#define BRLAPI_KEY_SYM_RIGHT UINT64_C(0X0000FF53)
#define BRLAPI_KEY_SYM_TAB UINT64_C(0X0000FF09)
#define BRLAPI_KEY_SYM_UNICODE UINT64_C(0X01000000)
#define BRLAPI_KEY_SYM_UP UINT64_C(0X0000FF52)
#define BRLAPI_KEY_TYPE_CMD UINT64_C(0X0000000020000000)
#define BRLAPI_KEY_TYPE_MASK UINT64_C(0X00000000E0000000)
#define BRLAPI_KEY_TYPE_SHIFT 29
#define BRLAPI_KEY_TYPE_SYM UINT64_C(0X0000000000000000)
#define BRLAPI_KEYCODE_C( value)
#define BRLAPI_PRIuKEYCODE PRIu64
#define BRLAPI_PRIxKEYCODE PRIx64
okay so the ones with little descriptions attached, bestie:
BRLAPI_KEY_TYPE_CMDโUINT64_C(0X0000000020000000), described as Braille commandbrlapi_keyCode_t.BRLAPI_KEY_TYPE_MASKโUINT64_C(0X00000000E0000000), the mask for type ofbrlapi_keyCode_t.BRLAPI_KEY_TYPE_SHIFTโ29, the shift for type ofbrlapi_keyCode_t.BRLAPI_KEY_TYPE_SYMโUINT64_C(0X0000000000000000), described as X Keysymbrlapi_keyCode_t.BRLAPI_KEYCODE_C( value)โ the value isUINT64_C(value), and its whole job is to define abrlapi_keyCode_tconstant.BRLAPI_PRIuKEYCODEโPRIu64, the unsigned decimal print format forbrlapi_keyCode_t.BRLAPI_PRIxKEYCODEโPRIx64, the hexadecimal print format forbrlapi_keyCode_t.
๐ง Typedef Documentation ๐ง
the actual type under all this keycode chaos:
typedef uint64_t brlapi_keyCode_t
that's it, that's the typedef ๐
๐ Author ๐
Generated automatically by Doxygen for BrlAPI from the source code.
and that's a wrap on brlapi_keycodes(3), bestie ๐ซถ BrlAPI version 0.8, auto-generated by Doxygen from the source code โ footer vibes, but make it cute โจ
๐ฆ where this page comes from
- fedora 43: brlapi-devel 0.8.7-4.fc43 ยท LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later
- fedora 43: brlapi-devel 0.8.7-4.fc43 ยท LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later
- fedora 44: brlapi-devel 0.8.7-8.fc44 ยท LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later
- fedora 44: brlapi-devel 0.8.7-8.fc44 ยท LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later
- opensuse-leap 16.0: brlapi-devel 6.8-160000.2.2 ยท LGPL-2.1-or-later
- opensuse-leap 16.0: brlapi-devel 6.8-160000.2.2 ยท LGPL-2.1-or-later
- opensuse-leap 16.0: brlapi-devel 6.8-160000.2.2 ยท LGPL-2.1-or-later
- opensuse-leap 16.0: brlapi-devel 6.8-160000.2.2 ยท LGPL-2.1-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms