Caps Lock key does not work with Orca in laptop mode
(This issue was noticed when debugging issue #71 (closed) )
Operating system: Ubuntu 18.04
Orca version: observed on master and 3.28.0 (shipped with OS)
Hardware: Lenovo IdeaPad S145-15AST
Steps to reproduce:
- Start Orca
- Bring up Orca settings by pressing Insert+space
- Switch to laptop mode (this makes Caps Lock the Orca modifier key)
- Open gedit
- Press Caps Lock twice. Orca announces "Caps Lock On"
- Start typing
Expected behavior: Pressing Caps Lock twice should have indicated to the system that I am not trying to use Orca, but actually want Caps Lock to turn on. Light on Caps Lock key should be illuminated. Typed letters should be in capital case.
Observed behavior: Light on Caps Lock is is not illuminated. Typed letters are in lowercase.
Note: to assist in debugging, I generated X.org keymaps using xkbcomp :0 -
- with a fresh X session without Orca running (before_orca.txt)
- after starting Orca (with_orca.txt).
The two files are attached, and the difference between the two files is given below
mike@mike-Lenovo-IdeaPad-S145-15AST:~$ diff -u before_orca.txt with_orca.txt
--- before_orca.txt 2019-11-22 23:28:23.702629149 -0500
+++ with_orca.txt 2019-11-22 23:29:15.635737503 -0500
@@ -1,5 +1,5 @@
xkb_keymap {
-xkb_keycodes "evdev+aliases(qwerty)" {
+xkb_keycodes "evdev_aliases(qwerty)" {
minimum = 8;
maximum = 255;
<ESC> = 9;
@@ -389,7 +389,6 @@
};
type "LOCAL_EIGHT_LEVEL" {
modifiers= Shift+Lock+Control+LevelThree;
- map[Shift+Lock]= Level1;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
@@ -619,7 +618,6 @@
};
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
- map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;
@@ -698,7 +696,7 @@
action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
};
interpret Shift_Lock+AnyOf(Shift+Lock) {
- action= LockMods(modifiers=Shift);
+ action= NoAction();
};
interpret Num_Lock+AnyOf(all) {
virtualModifier= NumLock;
@@ -1138,7 +1136,7 @@
action= LockMods(modifiers=LevelFive);
};
interpret Caps_Lock+AnyOfOrNone(all) {
- action= LockMods(modifiers=Lock);
+ action= NoAction();
};
interpret Any+Exactly(Lock) {
action= LockMods(modifiers=Lock);
@@ -1178,7 +1176,7 @@
};
};
-xkb_symbols "pc+us+us:2+inet(evdev)" {
+xkb_symbols "pc_us_us_2_inet(evdev)" {
name[group1]="English (US)";
name[group2]="English (US)";
Edited by Mike Zhukovskiy