Alt shift vscode linux

Как заставить работать shift и alt вместе в сочетаниях клавиш vscode на linux?

Столкнулся с проблемой, что при вводе шорткатов в vscode alt не дружит с shift. То есть когда я по факту зажимаю ctrl + alt+ shift + r vscode видит ctrl + shift + r(определяю по вводу сочетания в настройках шорткатов). В то же время ctrl + alt + r работает корректно.
Возможно это связано со сменой раскладки на shift+alt, однако ctrl + alt+ shift + r не меняет раскладку.
Подскажите, как пофиксить

А это не та самая беда из-за обработки линуксом не отпускания, а нажатия спец клавиш? Поймал такое в эклипсе, когда перестали работать шоркаты на cntrl-shift т.к. этим переключался язык. Т.е. нажимаешь, язык переключается, нажатие как бы обработалось, уходит. Доп клавиша обрабатывается уже как самостоятельное нажатие. Вроде похоже.
Победилось установкой патча в иксах. Под рукой нет ссылок, но ищется в инете на ура со всеми инструкциями по установке

Спасибо большое, что откликнулись. К сожалению я не очень дружу с линуксом, поэтому не могли бы более формально сформулировать что нужно сделать?(что такое иксы и какой именно патч(«патч иксы» сейчас выдает патч на игру))

Ну придётся таки чуток подружиться для решения подобных проблем. Попробуйте начать с этого.
https://qna.habr.com/q/209436
Там и других ссылок достаточно

Ага, это оно. Чем постоянно патчить, проще перевесить смену раскладки на CapsLock, тем более что это даёт свои плюсы — мизинец и так рядом с этой клавишей, так что чтобы менять раскладку не надо левую руку переносить на alt+shift и потом возвращать обратно на буквы. Да еще и видно по лампочке, какая раскладка включена 😉

Источник

Решение проблемы с переключением по alt+shift в Linux, в приложениях на Electron

Хочу поделиться поделиться своим решением проблемы, которая указана в заголовке. Написанием статьи вдохновился от коллеги brnovk, который не поленился и предложил частичное (для меня) решение проблемы. Я сделал свой «костыль», который помог мне. Делюсь с вами.

Описание проблемы

Использовал Ubuntu 18.04 для работы и в последнее время заметил, что при переключении раскладки по alt+shift в таких приложениях, как Visual Studio Code, Skype, Slack и прочих, которые созданы с помощью Electron возникает следующая проблема: фокус с поля ввода, переходит к верхней панели окна (меню). По иным причинам переехал в Fedora + KDE и понял, что проблема никуда не делась. В поисках решения нашёл замечательную статью Чиним Skype своими руками. Огромное спасибо товарищу brnovk, что подробно рассказал о проблеме и поделился своим способом её решения. Но указанный в статье способ закрывал вопрос лишь с одним приложением, а именно Skype. Для меня ещё было критичным разобраться с Visual Studio Code, потому как писать сообщения с прыгающей менюшкой хоть и раздражает, но не так сильно если занимаешься разработкой. Плюс ко всему, коллега предложил решение, при котором меню приложения пропадает полностью, а мне бы не очень хотелось потерять меню в VS Code.

Читайте также:  Pdf for linux mint

Пытался понять в чём дело

Итак, я решил выделить время и разобраться в чём дело. Сейчас кратко опишу каким путём я шёл, может быть кто-то более подкованный в данном вопросе поможет разъяснить те трудности, с которыми я столкнулся.

Я открыл Visual Studio Code и начал нажимать на разные сочетания Alt+, смотря на реакцию приложения. Практически во всех случаях все комбианции, кроме Alt+Shift отрабатывали без потери фокуса. Складывалось впечатление, что кто-то съедает нажатый Shift, который следовал после зажатия и удержания Alt и приложение думает что я нажал Alt, потом не нажал ничего, отпустил Alt и оно радостно бросало мой фокус в своё меню, что ему казалось вполне логичным.

Я открыл настройки переключения раскладки клавиатуры (ну знаете вот этот вот длинный список с чекбоксами и всевозможными настройками для клавиш) и установил переключение раскладки по кнопке Alt, без каких-либо дополнительных нажатий.

image

После этого перестал работать Alt+Tab для переключения окон. Работал только Tab, то есть кто-то снова «съедал» мой Alt. Кто этот «кто-то» вопросов уже не оставалось, а вот что с ним можно сделать я понятия не имею.

Но так как проблему решать было нужно хоть как-то, тогда в голову и пришло решение:

  1. В настройках отключить хоткей для переключения раскладки клавиатуры (снять все чекбоксы в разделе Switch to another layout);
  2. Создать свой хоткей, который бы переключал мне раскладку

Описание решения

Для начала установим программу, позволяющую назначать команды клавишам Xbindkeys. К сожалению, штатные средства не позволили мне через красивый интерфейс создать хоткей для сочетания типа Alt+Shift. Можно сделать для Alt+S, Alt+1, Alt+shift+Y и т.д. и т.п., но для нашей задачи это не подходит.

sudo dnf install xbindkeysrc

Более подробно про неё есть на ArchWiki
Далее создадим образец файла настроек для программы. Образец довольно короткий, с несколькими командами как раз то, что нужно чтобы разобраться как с ним работать:

Читайте также:  Red hat linux compatibility

Как видно из примера, который находится в файле, нам нужно указать хоткей, который мы хотим использовать и комманду, которая должна исполнится. Выглядит просто.

 # Examples of commands: "xbindkeys_show" control+shift + q # set directly keycode (here control + f with my keyboard) "xterm" c:41 + m:0x4 

В качестве хоткея можно использовать человекопонятное написание или использовать коды клавиш. У меня сработало только с кодами, но никто не запрещает Вам немного поэксперементировать.

Чтобы получить коды нужно использовать команду:

Откроется маленькое «Иксовое» окно. Нажимать клавишы нужно только при фокусе на это окно! Только в этом случае Вы увидите в терминале что-то такое:

 [podkmax@localhost ~]$ xbindkeys -k Press combination of keys or/and click under the window. You can use one of the two lines after "NoCommand" in $HOME/.xbindkeysrc to bind a key. "(Scheme function)" m:0x4 + c:39 Control + s 

В моём случае комбинация для клавиш Alt+Shift выглядит вот так:

Теперь нужно сделать так, чтобы при нажатии на эту комбаницию, происходило именно переключение раскладки. Я нашёл только одну рабочую комманду для указания раскладки:

 setxkbmap ru setxkbmap us 

Как видно из примера она умеет только включать ту или иную раскладку, поэтому ничего кроме написания скрипта мне в голову не пришло.

 vim ~/layout.sh #!/bin/bash LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ ') if [ "$LAYOUT" == "ru" ] then `/usr/bin/setxkbmap us` else `/usr/bin/setxkbmap ru` fi 

Теперь если файлы .xbindkeysrc и layout.sh лежат в одной директории, то конечный вид файла .xbindkeysrc выглядит так:

 # Examples of commands: "xbindkeys_show" control+shift + q # set directly keycode (here control + f with my keyboard) "xterm" c:41 + m:0x4 # specify a mouse button "xterm" control + b:2 #А вот то, что добавил я "./layout.sh" m:0x8 + c:50 

После этого применяем изменения:

И можно проверять. Не забудьте отключить любые опции по переключению раскладки в штатных настройках.

Итог

Коллеги, надеюсь что данная статья сможет помочь быстро кому-то избавиться от назойливой проблемы. Лично я потратил весь свой выходной на то, чтобы разобраться и решить проблему хоть как-то, чтобы больше не отвлекаться на это в рабочее время. Написал данную статью с целью сэкономить кому-то время и нервы. Многие из Вас используют альтернативный способ переключения раскладки и не понимают в чем же проблема. Мне лично нравится переключаться по Alt+Shift. И я хочу чтобы работало именно так. Если Вы разделяете моё мнение и столкнулись с данной проблемой, эта статья должна Вам помочь.

Читайте также:  Окно поверх всех окон linux

Источник

Override to toggle menu bar on VS CODE

On Ubuntu I needed this two settings in settings.json :

"window.titleBarStyle": "custom", "window.customMenuBarAltFocus": false 

(VS Code restart might be required)

enter image description here

My only solution is to set menu always hidden to prevent interfering with alt-hotkeys. But enabling mnemonics still allows you to reveal it by pressing Alt+F for example.

This can also be achieved with «window.menuBarVisibility»: «hidden», «window.enableMenuBarMnemonics»: true in settings.json. The enableMenuBarMnemonics seem to be the default and hence unnecssary. To access menu, press Alt-F or Alt-E, or Alt-whatever

Unset checkbox for «Enable Menu Bar Mnemonics» and add your own hotkey to toggle menu — for example, ctrl+q. This disables showing menu on alt click completely.

@budden73 could you turn that into an answer? It is the only correct one I found here i.e. which actually works. Thanks!

I have tried this on Win10, and adding these 3 lines to settings.json will work for me, while the latest upvoted answer will make the Menu bar hidden, which is not what we want.

"window.titleBarStyle": "custom", "window.customMenuBarAltFocus": false, "window.enableMenuBarMnemonics": false, 

I’m using v1.25.1 and the setting to disable ALT menu selection is «window.enableMenuBarMnemonics»: false . You can keep the menu visible.

This fixed it for me (I’m using Linux)

 "window.titleBarStyle": "custom" 

The solution is to set menu always hidden to prevent interfering with alt-hotkeys. But enabling mnemonics still allows you to reveal it by pressing Alt+F for example.

This can be achieved with «window.menuBarVisibility»: «hidden», «window.enableMenuBarMnemonics»: true in settings.json. The enableMenuBarMnemonics seem to be the default and hence unnecssary.

To access menu, press Alt-F or Alt-E, or Alt-whatever

This answer originates from Dmitriy Botov’s answer

As in Dmitriy Botov answer, adding those lines

"window.customMenuBarAltFocus": false, "window.enableMenuBarMnemonics": false, "window.menuBarVisibility": "hidden", 

to the config works, but when I toggle the menu bar with e.g. alt+f the menu stays open. If I use the toggle menu bar command/keybind the setting of «window.menuBarVisibility»: «hidden» will be changed to «window.menuBarVisibility»: «classic» and then to «window.menuBarVisibility»: «toggle» which enables showing the menu bar on alt key again.

However, I’m using the Settings Cycler extension and build a command with it that does the job for me:

1. in settings.json add:

2. Set a keybind for the new command:

This shows the menu bar and removes the «toggle on alt key» functionality when hidden.

Tested on vscode 1.60.0

Источник

Оцените статью
Adblock
detector