xkb 第5章 鍵事件處理概述

X server 中的每一個鍵事件處理有三個步驟,client 中至少有三個。 本章簡要介紹了每一個步驟; 以後的章節更詳細地描述了每一個步驟。服務器

  1. 首先,server 應用全局鍵盤 controls 來肯定是否應當即、延遲或忽略鍵事件。例如,SlowKeys control 能夠致使鍵事件被延遲,直到 slow keys delay 已通過去,而 RepeatKeys control 可讓單個物理鍵按下並按住延長一段時間致使多個X事件。code

  2. 接下來,server 應用每一個鍵的 behavior。每一個鍵 behavior 可用於模擬或指示某些特殊類型的鍵 behavior。好比,能夠用鍵 behavior 實現鍵盤 overlays,在某些狀況下鍵生成備用 keycode。 每一個鍵都有單個 behavior,所以鍵 behavior 的效果不依賴於鍵盤 modifier 或 group state, 儘管它可能依賴於全局鍵盤 controls。server

  3. 最後,server 應用鍵 actions。從邏輯上講,鍵盤上的每一個keysym都有一些與之相關的動做。鍵 action 告訴 server 在生成相應 keysym 的事件時要作什麼。鍵action可能會更改或抑制事件,生成其餘事件或更改服務器的某些方面。事件

若是全局 controls、每一個鍵的 behavior 和鍵 action 組合起來致使了鍵事件,則接受事件的 client 將分幾步處理它。字符串

  1. 首先,客戶端從事件的 state 字段中提取有效的鍵盤 group 和一組 modifiers。
  2. client 使用 modifiers 和有效鍵盤 group 從綁定到鍵的 keysyms 列表中選擇一個符號。
  3. 若有必要,client 使用從查找符號的過程當中「遺留」的任何 modifier 來轉換符號和結果字符串。 例如,若是保留 Lock modifier,則根據系統指定的大寫規則獲得 keysym 的大寫體。
  4. 最後,client 以特定於應用程序的方式使用 keysym 和剩餘 modifier。 例如,基於 X toolkit 的應用程序可能會根據前三個步驟報告的符號和 modifier 應用 translations。
相關文章
相關標籤/搜索