Для Ubuntu 18.04.
Я боролся с этой проблемой в течение двух дней. Я перепробовал все методы, перечисленные здесь ранее. И, похоже, я нашел решение. Но это очень нестабильно и имеет ошибки.
Основная идея такова: в системных настройках вы можете указать команду, которая запускается комбинацией клавиш Ctrl+ Shift+ U.
Примечание: если вы укажете falseв качестве команды, комбинация не будет работать вообще.
Однако мы можем указать путь к сценарию в качестве команды, в которой мы будем имитировать нажатие той же комбинации клавиш.
Чтобы имитировать нажатия клавиш, я пробовал xdotool( apt install xdotool) и xte( apt install xautomation). Оба варианта были нестабильны. Тем не менее, xteоказалось более гибким для меня.
Пример с xte
- Создать файл
/home/username/shortcut.sh - Добавьте разрешение на выполнение:
chmod u+x /home/username/shortcut.sh - Укажите путь к скрипту в качестве команды для комбинации клавиш Ctrl+ Shift+ Uв настройках клавиатуры
Вот пример сценария:
#!/bin/sh # Make a small delay in order to have time to release the keys. sleep 0.2 # Simulate the release of just pressed keys, if they are still pressed. xte 'keyup u' 'keyup Shift_L' 'keyup Control_L' # Hack: Caps_Lock is used so that the system does not intercept this combination. # You can try to remove it if it hinders you. xte 'key Caps_Lock' # Simulate pressing a key combination xte 'keydown Shift_L' 'keydown Control_L' 'key u' # Simulate releasing a key combination xte 'keyup Shift_L' 'keyup Control_L' # Restore Caps_Lock to the previous state. xte 'key Caps_Lock'
Я проверил это в PhpStorm 2018.2 EAP Build # PS-182.3458.35 и могу сказать, что это работает, но с некоторыми оговорками:
- это работает медленно (на моем довольно старом ПК)
- во время выполнения скрипта лучше не нажимать какие-либо клавиши
- иногда это может не сработать
- иногда он может войти в бесконечный цикл. Поэтому лучше добавить в скрипт проверку, что скрипт уже запущен.
В общем, если вы не часто используете эту комбинацию, то это решение может подойти вам.
Но, возможно, кто-то найдет лучшее и более стабильное решение.
Надеюсь, эта идея кому-нибудь поможет.
Просто выйти из системы и вернуться к ней у меня работает.