Sublime Forum

Multiple caret shortcut cannot be changed in Ubuntu 22

#1

To insert a caret below, the documentation states that ctrl+alt+down is the default shortcut on Linux, but I got shift+alt+down instead of ctrl+alt+down. On Windows in Sublime Text and VS Code, I use ctrl+alt+down, and I want the same in Linux in Sublime Text and VS Code, so I tried to config Sublime Text so that it uses ctrl+alt+down, this did not work which is the main problem and appears to be a bug, so there are 2 issues:

  1. Docs say shortcut on Windows and Linux are the same, but it’s not.
  2. It’s not possible to customize the shortcut.
0 Likes

#2

In what way did changing the shortcut not work?

0 Likes

#3

The command did not execute, the only thing that happens is the caret blinks, this behavior happens with and without my user definition.

The definition is correct:

{ "keys": ["ctrl+alt+up"],   "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true } },

I tried swapping ctrl+alt with alt+ctrl, neither works. The dev is probably aware of the problem, that’s why the linux and windows defaults are different.

I would like to mention that besides sublime and VS Code, I also use VS where it also works correctly.

Next will be trying if I can get it working with VS Code on Linux.

0 Likes

#4

I enabled setting syncing in VS Code and found my custom shortcuts on Linux, it has the same issue, nothing happens except in the main menu on certain characters an underscore gets shown. And VS Code also uses shift as default instead of ctrl. Then I tried to change it to ctrl+alt+down using the UI and there the down key was rejected, then I tried to define it in keybindings.json and that didn’t succeed either, nothing happens except underscores shown in the main menu.

So sublime and vs code have the same issue, which probably means it’s either difficult or not possible on Linux.

I might request VS Code support, something maybe related I found is here:

0 Likes

#5

In Sublime, View > Show Console, enter sublime.log_input(True) in the field, then press the key. Do you see it logged?

My guess is that the answer to that is No, and the reason is that the window manager is using that key for for something and consumes the input before Sublime (or VSC) gets to see it.

In which case the reason the key is different on Linux is because it’s in use on that OS in ways that it’s not in use on others.

Depending on your window manager, you can most likely change the global binding to not use that key.

0 Likes

#6

Do you see it logged?

It’s not logged.

Depending on your window manager, you can most likely change the global binding to not use that key.

Thanks for the tip, would be interesting to know how to do. I think I migrate to use ctrl+shift which works everywhere and is also used as default by some editors.

0 Likes

#7
  • The definition is correct:
    { “keys”: [“ctrl+alt+up”], “command”: “select_lines”, “args”: {“forward”: false} },
    { “keys”: [“ctrl+alt+down”], “command”: “select_lines”, “args”: {“forward”: true} }

  • Check sublime.log_input(True) in the Sublime console (open with ctrl+`), then press the key and see what gets logged.
    If nothing is logged, Sublime can’t see that key or something external is stealing it. If something is logged, whatever it shows there is how Sublime sees the key and is what you should use in the binding. Related to the Custom keybinding doesn't work

  • Settings / Keyboard / View and Customize Shortcuts: Custom shortcuts -> Try to assign Ctrl+Alt+Up and Ctrl+Alt+Down

0 Likes