ChatGPT解决这个技术问题 Extra ChatGPT

Managing keyboard shortcut conflicts between IDE and OS (Ubuntu)

I'm using IntelliJ IDEA, but I think this applies to any IDE.

In IDEA, some very useful keyboard shortcuts conflict with Ubuntu keyboard shortcuts. Some examples:

Ctrl+Alt+L : formats the source code (mapped to "Lock Screen" in Ubuntu)

Ctrl+Alt+Left : navigates backward (mapped to "switch to workspace on the left of the current workspace" in Ubuntu)

...

I've been using Ubuntu for a long time, and I'm used to these shortcuts. I use them all the time to switch between workspaces, lock my session... At the same time, I know how useful the IntelliJ shortcuts can be, and I want to avoid using the mouse as much as possible.

Currently, my workaround for "format source code" is Alt+D (opens the "Code" menu), followed by "R" ("Reformat Code"). It works okay, since I don't format code that often, but it could be better. There is no real alternative for Ctrl+Alt+Left, though.

How do you manage these conflicts in your IDE?

Do you simply remap all the conflicting IDE keyboard shortcuts to something else (and then get lost when you are pair programming with a colleague with different shortcuts...)?

Do you remap the Linux keyboard shortcuts (even though you are "used" to them)?

Is there a way to make keyboard shortcuts "contextual"? By this, I mean: hit a key to go into "IDEA mode" when coding (all conflicting Ubuntu shortcuts are temporarily deactivated), hit the key again to go back to "Standard mode" (Ubuntu shortcuts are reactived).

Do you have any other ideas / tips on how to manage this problem?


J
Jasper

I use Ubuntu as well and I disabled the native (Ubuntu) command Ctrl + Alt + L because I prefer IntelliJ's format code than this native Ubuntu command. However, in the 2nd case I prefered Ubuntu's shortcut so I didn't change anything.

So basically, you can choose which option you need more and then act accordingly.

Of course, until IDEA becomes Ubuntu friendly.

In the end, Ubuntu will always prefer its shortcuts and so far I haven't found any tool that can disable native shortcuts on request.


CrazyCoder / askmo : I upvoted both of you. Your answers are pragmatic. I was secretly hoping there was a trick to manage keymaps without remapping everything, but I guess I'll just have to accept it. I'm still going to wait a few days before accepting your answers, in case somebody knows a trick to avoid doing that.
Unfortunatelly, there is not a better solution than the one I told you. Until IDEA makes changes, you cannot do much but change what you can - and at the moment you can only change Ubuntu's shortcuts. PS. I'd suggest you dig the net to find Ubuntu utility that can enable/disable all shortcuts. If you find such tool, please post it here, because I was unable to find it myself. Thanks!
I might have found something, going to try it tonight: askubuntu.com/questions/17315/… . I can create a bash script that enables / disables a list of shortcuts using the gconftool-2 command, and trigger it using a specific keyboard shortcut :)
You don't have to remap anymore. Settings -> Keyboard -> Shortcuts will let you modify most inherent keyboard shortcuts in Ubuntu 16.04. Additionally, compizconfig-settings-manager will allow you to modify any other hotkeys not covered in the Ubuntu native settings to your liking.
f
fantom

I changed ubuntu shortcuts to

ctrl+win+L

ctrl+win+Left

similar to original. Works fine for me.


how did you change it?
I changed the Ubuntu "Lock Screen" shortcut to simply be Win-L. @Jas, if you are having trouble remapping shortcuts with the "Win" (aka "Super") key, perhaps my answer to another keymapping question will help: askubuntu.com/a/349614/54675
p
postfuturist

In Ubuntu, the way to disable the ctrl+alt+left keybinding is to open System Settings -> Keyboard -> Shorcuts(tab) -> Navigation . Scroll to "Switch to workspace left", click on it and hit Backspace. It is silly that this is even enabled for stock Ubuntu 14.04 where there is only one desktop by default.


For some reason, these settings reset themselves recently (maybe after some package updates) on my desktop. I don't know why.
C
CrazyCoder

There is a feature request to provide Ubuntu friendly keymap.

What to remap, IDEA or Linux keys? Decide yourself depending on what you are using more often. I guess you reformat code more often than lock screen? So remap Linux and leave IDEA default keyboard shortcut.


A
Agilanbu

You can just use the super (aka Windows Key) in combination with your intellijidea shortcut, in order to leave the default shortcuts for Ubuntu.

So, you can just

Ctrl + Alt + WinKey + L to format the code and

Ctrl + Alt + WinKey + Left for navigating backward

Hope this helps


I ended up here for a somewhat different but related problem and using super+(my shortcut) worked for me. Is this a standard way of escaping system shortcuts or just a relatively common way?
l
luboskrnac

This works for me in Ubuntu Studio 14.04 (XFCE):

Open Windows Manager: xfwm4-settings

Go to Keyboard tab

Scroll down to conflicting Action

Hit Clear button or change action to different shortcut


W
Whenever

In order to disable XUbuntu's (xfce) keymap for Alt + F8 and Ctrl + Alt + Left/Right Arrow I used Settings -> Window Manager -> tab "Keyboard".

Here I was able to clear these mappings.


M
Mixaz

From the link to feature request provided by CrazyCoder:

Actually, there are several bundled schemes: "Default for GNOME", "Default for KDE" created exactly for that purpose. I have not checked now particular shortcuts like Ctrl+Alt+L, but these schemes were created to avoid conflicts with GNOME and KDE respectively.

"Default for Gnome" did the trick for me (I'm on ArchLinux, Gnome3, AndroidStudio/InteliJ), it remapped Navigate/Back to Shift+Alt+Left (was Ctrl+Alt+Left from "Default for XWin" and it didn't work).

But now it switches may keyboard layout as well (Shift+Alt), another problem )) Probably I'll remap keypad switcher to something else, it is still simpler then reassigning all the conflicting keys in IDE/OS.


R
RiRomain

In 'Settings' section 'Keymap' you can choose the keymaps template from XWin, Gnome, Visual Studio, Eclipse, etc... This solve any problem in Ubuntu by choosing Gnome.


Down voted because because ubuntu short keys still conflicts with gnome. Refer to jetbrains.com/idea/help/reformatting-source-code.html
A
A. Kurchak

In order to have working intellij hotkeys I've disabled next configuration in settings:

keyboard shortcuts (part 1)

keyboard shortcuts (part 1)

It helped me to have working combinations with F1-F12 buttons. But I still had to change some hotkeys.

Ctrl + Alt + Left/Right -> Shift + Alt + Left/Right

Ctrl + Alt + F7 -> Alt + F7

Link to my hotkeys for ubuntu.

https://github.com/AnatoliiKurchak/intellij-ubuntu-hotkeys