-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent switching layout to us-extended.json
in terminal mode
#36
Conversation
Add new override for the getCurrentGroup() function in order to prevent the on-screen keyboard from switching to the ùs-extended.json` layout in terminal mode, as our layout is already extended now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! It seems to be working well in almost all of the cases, except one. It won't render the keyboard in the password dialog on lock screen.
Steps to reproduce:
- Log into the system.
- Click on the menu in the upper right corner of the screen.
- Click on the lock icon.
- Click anywhere on the screen to bring up password input, then click on it.
- OSK background panel will show up, but it won't have any buttons.
I've checked out the commit before I merged in my latest changes, and the issue was already present there. I'll see if I can trace down the reason for this.
Edit: Getting these errors in journalctl
:
JS ERROR: Exception in callback for signal: groups-changed: TypeError: this._keyboardController.getCurrentGroup is not a function
_updateKeys@resource:///org/gnome/shell/ui/keyboard.js:1811:59
_onGroupChanged@resource:///org/gnome/shell/ui/keyboard.js:1816:14
_onKeyboardGroupsChanged@resource:///org/gnome/shell/ui/keyboard.js:1830:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_onSourcesModified@resource:///org/gnome/shell/ui/keyboard.js:2194:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_inputSourcesChanged@resource:///org/gnome/shell/ui/status/keyboard.js:620:14
reload@resource:///org/gnome/shell/ui/status/keyboard.js:365:14
_ibusSetContentType@resource:///org/gnome/shell/ui/status/keyboard.js:700:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_setContentType@resource:///org/gnome/shell/misc/ibusManager.js:277:14
JS ERROR: Exception in callback for signal: active-group: TypeError: this._keyboardController.getCurrentGroup is not a function
_updateKeys@resource:///org/gnome/shell/ui/keyboard.js:1811:59
_onGroupChanged@resource:///org/gnome/shell/ui/keyboard.js:1816:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_onSourceChanged@resource:///org/gnome/shell/ui/keyboard.js:2200:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_currentInputSourceChanged@resource:///org/gnome/shell/ui/status/keyboard.js:452:14
activateInputSource@resource:///org/gnome/shell/ui/status/keyboard.js:492:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
activate@resource:///org/gnome/shell/ui/status/keyboard.js:60:14
_inputSourcesChanged@resource:///org/gnome/shell/ui/status/keyboard.js:625:33
reload@resource:///org/gnome/shell/ui/status/keyboard.js:365:14
_ibusSetContentType@resource:///org/gnome/shell/ui/status/keyboard.js:700:14
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_setContentType@resource:///org/gnome/shell/misc/ibusManager.js:277:14
Hi @nick-shmyrev, Thanks for your review and for your great work on this extension! I pulled all your recent commits and added mine. I'm unable to reproduce the lock screen issue you mentioned. On my device, a Core m3 Surface Go 2 running an up-to-date Arch Linux with Gnome 43.3 on Wayland, the Also, I do not get any With my commits, the default GNOME Console v43 doesn't switch to the |
@jlempen My bad, it looks like it's not the actual lock screen, but Gnome's screensaver(?). This happens in a VirtualBox VM running Fedora 37 with gnome-shell v43.3 under Wayland. This is what I'm seeing there: I've also found a workaround: once on the screensaver's login screen, click/tap on the password input to hide the empty OSK container, then click on "Switch users" icon in the lower right corner. This will bring up the actual login screen, where you'll have access to Gnome's default OSK. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While it would be great to fix this, I suppose I could merge these changes in, and add another section to FAQ mentioning this is a known issue and the workaround.
You'll need to change the merge target for this PR, since I've already merged the gnome_43_rewrite
branch into master
.
PR #39 seems to have solved the issue with OSK not properly rendering in screensaver login dialog. Thanks @PhilDevProg! |
This fixes the issue encountered here: #36 (review)
Add a new override for the
getCurrentGroup()
function in order to prevent the on-screen keyboard from switching to theus-extended.json
layout in terminal mode.Now we have our shiny new extended, localized keyboard layout, we don't want it to be replaced by the
us-extended.json
layout when using the terminal.