IDE Settings Sync not synchronizing keymap
I have the "IDE Settings Sync" plugin installed on two machines and my PhpStorm copy is connected to my JetBrains Account. My "slave" installation managed to import all the settings from my "master" installation, except for one of the most vitals: Keymaps.
I use a custom keymap (based on Default) on my main installation, but none of my keymap changes are showing up on my secondary install. I tried changing IDE themes and other things, and those are synced moments after I close the IDE on one machine and open on another, but no matter what I do, keymaps are not being synced.
Help?
Please sign in to leave a comment.
Hi there,
Is OS is the same on both computers? Keymaps sync only per OS (as per answer from the plugin page below)
Maybe better ask in https://plugins.jetbrains.com/plugin/9922-ide-settings-sync
Windows on one, Linux on the other. PhpStorm calls the keymap (Default Windows/Linux) on the docs, so I assumed they were the same thing for both systems.
Well .. as per that comment on plugin page the keymap is synced between the same OS only -- that's how I understood it.
> Well .. as per that comment on plugin page the keymap is synced between the same OS only -- that's how I understood it.
Absolutely awful... why is this?
Because macOS and Linux/Windows machines have different keyboard layouts and different system shortcuts.
Absolutely awful.
OK I manually copied my key settings to my Linux machine.
Then I installed a Linux copy of IDEA on another machine.
I now have 2 Windows IDEAs (they sync keymaps successfully).
But the two Linux IDEAs are not syncing their keymaps.
Why is this? You said IDEA keymaps sync across the same OS?
Ayqazi , try this:
On one of your Linux IDEA, duplicate your current keymap and re-name it to something like 'Ayqazi - Linux'. Now, wait for the sync and open your IDEA on your second Linux box, go to the keymaps and select 'Ayqazi - Linux' and you should be set.
Unlike Windows, which has only one pre-set, Linux has one for KDE and another for Gnome, so modifiying the base keymap can lead to some confusion, Making sure you are working with a named copy will fix this (at least it fixed for me on my two linux installs).
> On one of your Linux IDEA, duplicate your current keymap and re-name it to something like 'Ayqazi - Linux'. Now, wait for the sync and open your IDEA on your second Linux box, go to the keymaps and select 'Ayqazi - Linux' and you should be set.
Naming the Linux and Windows ones differently worked, thanks!
Glad I found this and finally understand what's going on. I thought settings sync was just completely broken for a long time!
It would be great if the "only sync between the same OS" behavior was user controllable. I'll explain my use case since it's complicated. I'll bet others are in the same boat though, and also frustrated with the current behavior.
I'm always switching between a macbook (work) and ubuntu (home). Most of the time I'm using a PC keyboard no matter which device I'm on. However, I want to be able to switch to the Macbook's keyboard when necessary. I don't want to confuse myself about which keyboard layout I'm currently using, or what the PyCharm keyboard shortcuts are, as I switch between these multiple OSes and keyboard layouts.
The way I accomplish this without going crazy and making constant typos, is to consider the Mac layout to be my official layout. I set up Ubuntu to do that by setting "Ctrl is mapped to Alt; Alt is mapped to Win" in GNOME tweak tools. Then I set PyCharm to use the MacOS keymap everywhere.
It works well, except for that you can't customize the keymap and have it sync to all machines, because they are split across two OSes.
There are few ways of syncing (using 2 plugins) : via JBA (JetBrains Account) and your own repo. Plus manually via File | Export/Import Settings
One of those cases when work was done and it made life of users worse... I bet the person who took the decision does not actually use that feature... :(
I find that keymap settings don't sync among Jetbrains apps on the same machine so of course they have the same OS.
Do I have to export keymaps from IntelliJ and import into each of PyCharm, WebStorm, GoLand, CLion, AppCode, and DataGrip ?
Jim, that is correct, keymaps are not synced between products and OSes.
https://youtrack.jetbrains.com/issue/IDEA-214658
By the way, instead of this variety of products, you could use IDEA Ultimate + AppCode only, you can install language-specific plugins into IDEA to replace everything else.
Well I'm glad that I finally found the root cause. Like many of you I thought I was going crazy and the plugin just wasn't working. 5 years ago I used to just keep a master settings .jar file that I combined both macos and windows shortcuts together. That worked fine but took a lot of time to manually sync.
The fact that jetbrains IDEs can have both shortcuts of the form CTRL+W and Command+W active at the same time really leaves me wondering why we would have this silent per OS restriction wtf
I have find workaround for moving keymap from WebStorm to Intellij IDEA on macOS.
I tried online sync and manual import/export. The xml files were located into Intellij IDEA keymaps folder, which is incorrect. I created new custom keymap via IDE and named it "test". It creates test.xml file located in jba_config/mac.keymaps. So i copy there my .xml file from keymaps folder to this new folder, restart IDE and everything works correctly.
For me a plain old restart was enough. Note that some hotkey changes (such as file renaming) do not take effect until after a restart.
Copy the XML file from Windows to Linux.
Windows: C:\Users\{your_username}\AppData\Roaming\JetBrains\IntelliJIdea2022.2\keymaps\Windows-my.xml
Linux: /home/{your_username}/.config/JetBrains/IntelliJIdea2022.2/jba_config/linux.keymaps/Windows-my.xml
For years, the same issue still remains. keymap syncing did never work properly! WTF
Hxpax, a new settings sync solution is coming in 2022.3: https://blog.jetbrains.com/idea/2022/10/intellij-idea-2022-3-eap-3/#New_Settings_Sync_solution
Hopefully, it will solve the issue once and for all.