linuxmint / linuxmint/cinnamon

Cinnamon keyboard layout switch steals shortcut combinations

Open
#7,859 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
5.6k
Forks
915
Avg merge
5d 22h
Merged PRs (30d)
3

Description

 * Cinnamon 3.8.9
 * Mint 19
 * 64 bit

Issue
Setting a keyboard shortcut for switching between keyboard layouts makes them unusable in any other keyboard shortcut. For example, setting the switching shortcut to "Ctrl+Shift" makes you unable to switch to "previous tab" in Firefox (Ctrl+Shift+Tab). This happens because the keyboard switcher "steals" the Ctrl+Shift combination and the target application then receives the Ctrl+Tab event.

Steps to reproduce
Set at least 2 keyboard layouts. Set the "Switching to another layout" shortcut to Ctrl+Shift.
Then open Firefox with multiple tabs and try to use the "Switch to previous tab" shortcut - Ctrl+Shift+Tab. You will see it behaves just like the "Switch to next tab" shortcut - Ctrl+Tab.

Expected behaviour
Cinnamon should not steal the shortcut as soon as it registers the correct keypress. Instead, it should wait for the key release to decide whether to switch the keyboard layout, or to forward the event to an application.

Other information
Note: This applies to any shortcuts collision, e.g.: setting Alt+Shift as keyboard switching shortcut and trying to use Alft+Shift+F as an autoformat shortcut in Intellij Idea.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue on Cinnamon 3.8.9 with two keyboard layouts, a Ctrl+Shift layout-switch shortcut, and Firefox tab navigation. Trace Cinnamon's keyboard layout shortcut handling and event forwarding; done means longer shortcuts such as Ctrl+Shift+Tab and Alt+Shift+F still reach the application while the layout switch remains usable.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.