This file is indexed.

/usr/share/X11/xkb/symbols/lk is in xkb-data 2.23.1-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
// X Keyboard Extension file for Sinhala (Sri Lanka) (2004-04-22)
// Maintainer  : Harshula Jayasuriya <harshula@gmail.com>
// Last Updated: 2011-05-25
// This is a phonetic static mapping for a standard US-English keyboard
// (QWERTY)
// http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html

// Repaya, Rakaransaya and Yansaya aren't inserted with A-r, R and Y,
// respectively. The problem lies with the XKB infrastructure which
// only allows a one-to-one mapping of keycodes to Unicode codepoints.
// Unfortunately, the 3 mentioned glyphs actually consists of 3
// Unicode codepoints each. The result is that the user must
// manually construct the glyph by typing each of the 3 codepoints.
// ALT-, represents the 'JOIN' key, it requires
// two codepoints, hence it also has to be manually constructed.
// Similarly, ALT-/ representing the 'TOUCH' key requires
// two codepoints.

// Repaya = rayanna,AL,ZWJ
// Rakaransaya = AL,ZWJ,rayanna
// Yansaya = AL,ZWJ,yayanna
// JOIN = AL,ZWJ
// TOUCH = ZWJ,AL

// Where,
// AL = Al Lakuna = ALT-a
// ZWJ = Zero Width Joiner = ALT-/
// rayanna = r
// yayanna = y

default  partial alphanumeric_keys
xkb_symbols "sin_phonetic" {

  include "us"
  name[Group1] = "Sinhala (phonetic)";
  key.type[Group1] = "FOUR_LEVEL";

  // q - p
  key <AD01> { [ Sinh_ri, Sinh_rii, Sinh_ru2, Sinh_ruu2 ] };
  key <AD02> { [ Sinh_ae, Sinh_aee, Sinh_ae2, Sinh_aee2 ] };
  key <AD03> { [ Sinh_e, Sinh_ee, Sinh_e2, Sinh_ee2 ] };
  key <AD04> { [ Sinh_ra, Sinh_al, Sinh_ra, NoSymbol ] };
  key <AD05> { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] };
  key <AD06> { [ Sinh_ya, Sinh_al, NoSymbol, NoSymbol ] };
  key <AD07> { [ Sinh_u, Sinh_uu, Sinh_u2, Sinh_uu2 ] };
  key <AD08> { [ Sinh_i, Sinh_ii, Sinh_i2, Sinh_ii2 ] };
  key <AD09> { [ Sinh_o, Sinh_oo, Sinh_o2, Sinh_oo2 ] };
  key <AD10> { [ Sinh_pa, Sinh_pha, NoSymbol, NoSymbol ] };

  // a - l
  key <AC01> { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] };
  key <AC02> { [ Sinh_sa, Sinh_sha, Sinh_ssha, NoSymbol ] };
  key <AC03> { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] };
  key <AC04> { [ Sinh_fa, NoSymbol, Sinh_ai2, Sinh_ai ] };
  key <AC05> { [ Sinh_ga, Sinh_gha, Sinh_nga, NoSymbol ] };
  key <AC06> { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] };
  key <AC07> { [ Sinh_ja, Sinh_jha, Sinh_nja, NoSymbol ] };
  key <AC08> { [ Sinh_ka, Sinh_kha, Sinh_lu, Sinh_luu ] };
  key <AC09> { [ Sinh_la, Sinh_lla, Sinh_lu2, Sinh_luu2 ] };

  // z - ?
  key <AB01> { [ Sinh_nya, Sinh_jnya, NoSymbol, NoSymbol ] };
  key <AB02> { [ Sinh_ndha, Sinh_ndda, NoSymbol, NoSymbol ] };
  key <AB03> { [ Sinh_ca, Sinh_cha, NoSymbol, NoSymbol ] };
  key <AB04> { [ Sinh_va, NoSymbol, NoSymbol, NoSymbol ] };
  key <AB05> { [ Sinh_ba, Sinh_bha, NoSymbol, NoSymbol ] };
  key <AB06> { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] };
  key <AB07> { [ Sinh_ma, Sinh_mba, NoSymbol, NoSymbol ] };
  key <AB08> { [ any, any, Sinh_al, NoSymbol ] };
  key <AB09> { [ any, any, Sinh_kunddaliya, NoSymbol ] };
  key <AB10> { [ any, any, 0x100200d, NoSymbol ] };

  // Space
  include "nbsp(nb2zwnj3s)"

  include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "tam_unicode" {
    include "in(tam_unicode)"
    name[Group1]= "Tamil (Sri Lanka, Unicode)";
};

partial alphanumeric_keys
xkb_symbols "tam_TAB" {
    include "in(tam_TAB)"
    name[Group1]= "Tamil (Sri Lanka, TAB Typewriter)";
};

// SINHALA - US, SUBSTITUTES SOME AND ADDS SOME
// =============================================
//
// This started as an upgrade to the first romanized version of
// Sinhala called PTS Pali created in the 1860s. PTS requires
// dots and bars on letters that are rare in fonts, and impossible
// to type. Its singular purpose was to print Tripitaka, the
// collection of Buddhist discourses.
//
// This version covers the entire newer Sinhala phoneme chart
// (Hodiya) that became standard just before the end of the 19th
// century. All the phonemes map to the SBCS. It is easy and
// faster than English to type. It overcomes the setback of
// Unicode Sinhala that it is not compatible with Pali and
// Sanskrit because it encodes two ligatures as base letters and
// the SLS1134 specification matching shape and morpheme sets
// violating Sanskrit orthography.
//
// Most importantly, this romanized version of Sinhala has a
// companion orthographic font that displays the text in the
// native script and a JavaScript converts it to Unicode Sinhala
// and back dramatically increasing Sinhala seen on the web due
// to its ease of use
//
// Dedication:
// Thomas William Rhys Davids, Ven. Udagama Sumangala
// Rev. Fr. A. M. Gunasekara, Rev. Fr. Theodore G. Perera
// Ven. Mettavihari
//
// Maintainer:
// JC Ahangama - sing@ahangama.com
//
partial alphanumeric_keys modifier_keys
xkb_symbols "us" {
  include "us(basic)"
  name[Group1]= "Sinhala (US, with Sinhala letters)";
//
//                   UNSHIFTED,         SHIFT,           ALT
//                   --------------------------------------------
//
  key <AB01> { [             z,    VoidSymbol,    VoidSymbol ] };
  key <AB02> { [             x,    VoidSymbol,    VoidSymbol ] };
  key <AB03> { [             c,      ccedilla,    VoidSymbol ] };
  key <AB04> { [             v,    VoidSymbol,    VoidSymbol ] };
  key <AB05> { [             b,             B,    VoidSymbol ] };
  key <AB06> { [             n,             N,        ntilde ] };
  key <AB07> { [             m,    VoidSymbol,    VoidSymbol ] };
  key <AB08> { [         comma,          less,           UAB ] };
  key <AB09> { [        period,       greater,           UBB ] };
  key <AB10> { [         slash,      question,         U200C ] };

  key <AC01> { [             a,        aacute,    adiaeresis ] };
  key <AC02> { [             s,    VoidSymbol,    VoidSymbol ] };
  key <AC03> { [           eth,           ETH,    VoidSymbol ] };
  key <AC04> { [         thorn,             f,    VoidSymbol ] };
  key <AC05> { [             g,             G,    VoidSymbol ] };
  key <AC06> { [             h,    VoidSymbol,    VoidSymbol ] };
  key <AC07> { [             j,      ccedilla,    VoidSymbol ] };
  key <AC08> { [             k,    VoidSymbol,    VoidSymbol ] };
  key <AC09> { [             l,             L,   ocircumflex ] };
  key <AC10> { [     semicolon,         colon,    VoidSymbol ] };
  key <AC11> { [    apostrophe,      quotedbl,    VoidSymbol ] };

  key <AD01> { [             d,             D,             q ] };
  key <AD02> { [            ae,         acute,    VoidSymbol ] };
  key <AD03> { [             e,        eacute,    ediaeresis ] };
  key <AD04> { [             r,   ucircumflex,    VoidSymbol ] };
  key <AD05> { [             t,    VoidSymbol,    VoidSymbol ] };
  key <AD06> { [             y,    VoidSymbol,    VoidSymbol ] };
  key <AD07> { [             u,        uacute,    udiaeresis ] };
  key <AD08> { [             i,        iacute,    idiaeresis ] };
  key <AD09> { [             o,        oacute,    odiaeresis ] };
  key <AD10> { [             p,    VoidSymbol,    VoidSymbol ] };
  key <AD11> { [   bracketleft,     braceleft,    VoidSymbol ] };
  key <AD12> { [  bracketright,    braceright,    VoidSymbol ] };

  key <AE01> { [             1,        exclam,   dead_macron ] };
  key <AE02> { [             2,            at, dead_belowdot ] };
  key <AE03> { [             3,    numbersign, dead_abovedot ] };
  key <AE04> { [             4,        dollar,      currency ] };
  key <AE05> { [             5,       percent,           UB0 ] };
  key <AE06> { [             6,   asciicircum,    onequarter ] };
  key <AE07> { [             7,     ampersand,       onehalf ] };
  key <AE08> { [             8,      asterisk, threequarters ] };
  key <AE09> { [             9,     parenleft,    VoidSymbol ] };
  key <AE10> { [             0,    parenright,    VoidSymbol ] };
  key <AE11> { [         minus,    underscore,         U2014 ] };
  key <AE12> { [         equal,          plus,    VoidSymbol ] };

  key <BKSL> { [     backslash,           bar,    VoidSymbol ] };
  key <SPCE> { [         space,  nobreakspace,    VoidSymbol ] };
  key <TLDE> { [         grave,    asciitilde,    VoidSymbol ] };
  include "level3(alt_switch)"
};