elementary / switchboard-plug-keyboard

Switchboard Keyboard Plug
GNU General Public License v2.0
28 stars 22 forks source link

Language switch using Win/Super+Space #456

Closed OssNass closed 1 year ago

OssNass commented 1 year ago

Problem

I am using IntelliJ IDEA on Elementary OS machine.

Many shortcuts require Alt+Shift keys to function. If I keep Alt+Shift as a layout switcher, the shortcuts are lost due to switching language.

For example Alt + Shift + T formats the code, When I press it, no matter how fast I am, the layout switches to Arabic and the shortcut is not registered,

Proposal

My proposal is 2 folds: 1- Make switching layout usingWin/Super + Space like GNOME and KDE 2- Trigger the shortcuts upon key release or key press but in both cases make sure the entire set of pressed keys matches the shortcut not just a part of it, in other words pressing Alt + Shift + T doesn't trigger the System's Alt+Shift shortcut.

Prior Art (Optional)

No response

jeremypw commented 1 year ago

There are a number of alternative options given in System Settings/Keyboard for switching layouts - are none of these suitable? "Both Shift Keys together" is unlikely to conflict with shortcuts. I suspect that Window/Super based shortcuts are preferred to be used for window based operations.

jeremypw commented 1 year ago

Switching layouts on release is probably worth a separate issue.

lenemter commented 1 year ago

Make switching layout using Win/Super + Space like GNOME and KDE

This is already possible, but not yet exposed in the System Settings. You need to set value to org.pantheon.desktop.gala.keybindings switch-input-source.

gsettings set org.pantheon.desktop.gala.keybindings switch-input-source "['<Super>Space']"

in other words pressing Alt + Shift + T doesn't trigger the System's Alt+Shift shortcut.

Unfortunately this is not possible because of the bugs in libmutter which is developed by Gnome.

OssNass commented 1 year ago

I did try the

gsettings set org.pantheon.desktop.gala.keybindings switch-input-source "['<Super>Space']"

But for some reason, it didn't work.

I did try it today, and it decided to work.