From 7b04cd3f1828081b977377350e44c1eccbf086b4 Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 26 May 2022 16:06:17 +0800 Subject: [PATCH 1/2] add dvorak and colemak keyboard layout option --- chrome/os/ime/background.js | 6 ++++++ chrome/os/ime/pinyin/option.html | 15 +++++++++++++++ chrome/os/ime/pinyin/option.js | 16 ++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/chrome/os/ime/background.js b/chrome/os/ime/background.js index 17d761e..1046980 100755 --- a/chrome/os/ime/background.js +++ b/chrome/os/ime/background.js @@ -40,6 +40,11 @@ goog.ime.chrome.os.Background = function() { this.vk_enable = false; + let layout = window.localStorage.getItem("layout") || 'us'; + if (layout !== 'us'){ + chrome.inputMethodPrivate.setXkbLayout(`us(${layout})`); + } + /** * The local storage handler. * @@ -190,4 +195,5 @@ var imeBackground; (function() { imeBackground = new goog.ime.chrome.os.Background(); + }) (); diff --git a/chrome/os/ime/pinyin/option.html b/chrome/os/ime/pinyin/option.html index 387e77c..4cbb191 100755 --- a/chrome/os/ime/pinyin/option.html +++ b/chrome/os/ime/pinyin/option.html @@ -26,6 +26,21 @@
+ +

键盘布局

+
+ + +
+
+ + +
+
+ + +
+

设置单页候选词数量

diff --git a/chrome/os/ime/pinyin/option.js b/chrome/os/ime/pinyin/option.js index abf1824..caaf5d6 100644 --- a/chrome/os/ime/pinyin/option.js +++ b/chrome/os/ime/pinyin/option.js @@ -36,6 +36,21 @@ document.getElementsByName("schema").forEach(function (ele) { } }) +function setKeyboardLayout(layout) { + let xkbLayout = layout === 'us' ? 'us' : `us(${layout})`; + let savedLayout = window.localStorage.getItem("layout"); + if(layout !== savedLayout){ + chrome.inputMethodPrivate.setXkbLayout(xkbLayout); + } + document.getElementById(layout).checked = true; + window.localStorage.setItem("layout", layout); +} + +document.getElementsByName("layout").forEach(function (ele) { + ele.onclick = async function handleClick() { + await setKeyboardLayout(ele.value); + } +}) function updateFuzzyCheckBox(options) { document.getElementsByName("fuzzy").forEach(function (ele) { if (options.includes(ele.value)) { @@ -83,5 +98,6 @@ document.getElementsByName("fuzzy").forEach(function (ele) { document.getElementById("pageSize").value = window.localStorage.getItem("pageSize") || 8; +setKeyboardLayout(window.localStorage.getItem("layout") || 'us') setSchema(""); getFuzzy(); -- Gitee From f70e2b6f61c106f47c884a9f3f84d6fcc1ba5fb7 Mon Sep 17 00:00:00 2001 From: lee Date: Thu, 26 May 2022 17:17:17 +0800 Subject: [PATCH 2/2] fix typos --- chrome/os/ime/model.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chrome/os/ime/model.js b/chrome/os/ime/model.js index c6211fa..7eb4e8d 100755 --- a/chrome/os/ime/model.js +++ b/chrome/os/ime/model.js @@ -446,7 +446,7 @@ goog.ime.chrome.os.Model.prototype.revert = async function() { if (this.source == '') { this.notifyUpdates(); this.fetchCandidates_(); - this.clear()(); + this.clear(); } else { this.notifyUpdates(); if (deletedChar == '\'') { -- Gitee