Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added src/assets/Uchen/Uchen-Regular.ttf
Binary file not shown.
14 changes: 13 additions & 1 deletion src/keyboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const ORIGINAL_LAYOUT: string[][] = [
];

// https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
export type LanguageCode = "TH" | "TR" | "VI" | "LO" | "IT" | "DE" | "KR";
export type LanguageCode = "TH" | "TR" | "VI" | "LO" | "IT" | "DE" | "KR" | "BO";
export type LayoutKey = LanguageCode | `${LanguageCode}_`;

export const KEYBOARD_LAYOUTS: Record<LayoutKey, string[][]> = {
Expand Down Expand Up @@ -104,4 +104,16 @@ export const KEYBOARD_LAYOUTS: Record<LayoutKey, string[][]> = {
[NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, ":", '"', ENTER],
[SHIFT, "|", NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, "<", ">", "?", SPACE],
],
BO: [
["༡", "༢", "༣", "༤", "༥", "༦", "༧", "༨", "༩", "༠", "ཧ", "ཝ", BACKSPACE],
["ཅ", "ཆ", "ེ", "ར", "ཏ", "ཡ", "ུ", "ི", "ོ", "ཕ", "ཙ", "ཚ", "ཛ"],
["འ", "ས", "ད", "བ", "ང", "མ", "་", "ག", "ལ", "ཞ", "།", ENTER],
[SHIFT, "ཛ", "ཟ", "ཤ", "ཀ", "ཁ", "པ", "ན", "m", "ཐ", "ཇ", "ཉ", SPACE], // m is a jump shift to 3rd layout for other marks
],
BO_: [
["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "*", "-", BACKSPACE],
["q", "w", "e", "r", "t", "y", "u", "ı", "o", "p", "ğ", "ü", ","],
["a", "s", "d", "f", "g", "h", "j", "k", "l", "ş", "i", ENTER],
[SHIFT, ",", "z", "x", "c", "v", "b", "n", "M", "ö", "ç", ".", SPACE], // M is a jump shift to 4th layou for other marks
],
};
28 changes: 14 additions & 14 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -412,13 +412,27 @@ document.addEventListener("DOMContentLoaded", async () => {
app.setLanguage("IT");
},
}),
await MenuItem.new({
id: "korean",
text: "Select Korean",
action: () => {
app.setLanguage("KR");
},
}),
await MenuItem.new({
id: "lao",
text: "Select Lao",
action: () => {
app.setLanguage("LO");
},
}),
await MenuItem.new({
id: "tibetan",
text: "Select Tibetan",
action: () => {
app.setLanguage("BO");
},
}),
await MenuItem.new({
id: "thai",
text: "Select Thai",
Expand All @@ -440,20 +454,6 @@ document.addEventListener("DOMContentLoaded", async () => {
app.setLanguage("VI");
},
}),
await MenuItem.new({
id: "lao",
text: "Select Lao",
action: () => {
app.setLanguage("LO");
},
}),
await MenuItem.new({
id: "korean",
text: "Select Korean",
action: () => {
app.setLanguage("KR");
},
}),
],
});

Expand Down
12 changes: 12 additions & 0 deletions src/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@
font-display: swap;
}

@font-face {
font-family: "Uchen";
src: url("/src/assets/Uchen/Uchen-Regular.ttf") format("truetype");
font-weight: normal;
font-style: normal;
font-display: swap;
}

/* Language-specific font variables */
.font-TH {
--font-stack: "Sarabun", "Noto Sans Thai", "Leelawadee UI", Inter, Avenir, Helvetica, Arial, sans-serif;
Expand All @@ -23,6 +31,10 @@
--font-stack: "Phetsarath", "Noto Sans Lao", "Lao UI", Inter, Avenir, Helvetica, Arial, sans-serif;
}

.font-BO {
--font-stack: "Uchen", "Noto Serif Tibetan", "Jomolhari", Inter, Avenir, Helvetica, Arial, serif;
}

.key-mapped {
font-family: var(--font-stack);
}
Expand Down