From c1ec7b2ffa5b4e5f8b6a31d9cb3eaed0712bd03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 16 Nov 2019 13:48:35 +0100 Subject: [PATCH] keyboard: Try harder to find a matching layout While we support a reasonable list of layouts nowadays, we don't include many variants like `fr+oss`. Instead of directly falling back to the `us` layout, try stripping the variant first, as the base layout is likely closer to the expectation than `us`. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1907 --- js/ui/keyboard.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 8e1f34bac..c6984cc36 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -478,10 +478,17 @@ var Key = GObject.registerClass({ var KeyboardModel = class { constructor(groupName) { - try { - this._model = this._loadModel(groupName); - } catch (e) { - this._model = this._loadModel('us'); + let names = [groupName]; + if (names.includes('+')) + names.push(groupName.replace(/\+.*/, '')); + names.push('us'); + + for (let i = 0; i < names.length; i++) { + try { + this._model = this._loadModel(names[i]); + break; + } catch (e) { + } } }