xdotool: вставка юникода «вручную»: т.е. не «клавиша U», а «ctrl + shift + u»

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

Я могу сделать это вручную:

После символа, например, и:

ctrl + shift + u 301 пробел -> и́

I ' Я пытаюсь использовать xdotool, чтобы создать ярлык для вставки этого ударения:

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

Итак, я хочу, чтобы xdotool напечатал для меня всю последовательность ctrl+shift+u 301 space, которую я печатаю вручную.

То, что я сделал сейчас, это:

sleep 0.2 && xdotool key --delay 15 'ctrl+shift+u' && sleep 0.2 && xdotool type 301 && xdotool key space"

Но при этом xdotool останавливается на «U», ожидая, пока я заполню число

0
задан 13 April 2017 в 15:23

2 ответа

U+301 объединение акут (то есть, это добавляется на предыдущий символ). Вы хотите необъединение акут, U+B4:

xdotool key UB4

существует также субоптимальное решение, которое должно иметь xdotool, отправляют объединяющийся акут и пространство, но это только представляет правильно в некоторых программах:

xdotool key U301 space

кроме того, не по существу, но Ваш код, работавший превосходный на моей машине. Я не уверен, почему это не сделало на Вашем.

2
ответ дан 23 June 2019 в 06:28
  • 1
    Я замечаю, что Microsoft Updates имеет наибольшее число пакетов. Это означает, что Ваша программа Linux работает в виртуальном поле в рамках Windows и может контролировать, сколько используют Приложения Windows интернет-трафика? I' m, только спрашивая, потому что я хотел бы vnstat контролировать интернет-пропускную способность, использованную когда I' ve, двойной загруженный в Windows 8.1. – WinEunuuchs2Unix 3 September 2017 в 12:16

Это старые вопросы, но я обменяюсь своим опытом в случае, если он помогает кому-то.

я нашел, что xdotool решения были ненадежны, и потому что его управление библиотекой C, которая является ASCII только, было ограниченными опциями для решения проблемы.

В конце я использовал способность Linux отобразить и сохранить unicode символы для хранения их на буфере обмена. Xdotool используется для вставки их в активное окно. Таким образом, код:

echo 'λ' | xclip -selection clipboard;  # save unicode char(s) on clipboard
sleep 0.5; 
xdotool key 'ctrl+shift+v';  # paste to active window
sleep 0.3;  
xdotool key ctrl+h  # backspace because I was getting an extra linefeed

я сверился с xsel - буфер обмена, и он также работал.

0
ответ дан 29 September 2019 в 08:15

Другие вопросы по тегам:

Похожие вопросы: