XKB 시프트 레벨이 0, 1, 2, 4 대신 1(None), 2(Shift), 3(AltGr), 5인 이유는 무엇입니까?

XKB 시프트 레벨이 0, 1, 2, 4 대신 1(None), 2(Shift), 3(AltGr), 5인 이유는 무엇입니까?

XKB는 교대 수준에 대해 다음 구성표를 사용합니다( /usr/share/X11/xkb/다양한 문서에서 볼 수 있음).

  • level_name[레벨1] = "기본";
  • level_name[레벨2] = "교대";
  • level_name[레벨3] = "대체 기지";
  • level_name[레벨4] = "Shift Alt";
  • level_name[레벨5] = "X";
  • level_name[레벨6] = "X 번역";
  • level_name[Level7] = "X Alt 기본 사항";
  • level_name[Level8] = "X Shift Alt";

이는 1 기반 숫자입니다(이 특정 목록은 사용자 정의됨 /usr/share/X11/xkb/types/level5). 그러나 0부터 시작하는 번호 매기기가 더 의미가 있는 것 같습니다. 예를 들면 다음과 같습니다.

  • level_name[레벨0] = "기본";
  • level_name[레벨1] = "교대";
  • level_name[레벨2] = "대체 기지";
  • level_name[레벨3] = "Shift Alt"(예: 1+2)
  • level_name[레벨4] = "X";
  • level_name[레벨5] = "X 번역" (1 + 4)
  • level_name[레벨6] = "X Alt 기본"; (2 + 4)
  • level_name[레벨7] = "X Shift Alt" (1 + 2 + 4)

즉, 비트 필드와 같습니다. 대신 1부터 시작하는 번호 매기기를 사용합니다. 선택의 이유는 무엇입니까? 0부터 시작하는 번호 매기기는 Linux 세계에서 일반적인 것으로 보이며, 이 특별한 경우에는 합리적이고 직관적입니다.

관련 정보