Временная метка клавиатуры

В Ubuntu Mate 20.10 на ноутбуке Lenovo T450 я довольно долго пытался создать сочетание клавиш с меткой времени. Цель состоит в том, чтобы иметь возможность вставлять отметку времени в любой файл, как если бы я его напечатал, будь то текстовый файл, LibreOffice Write, Calc, draw или любой другой тип документа.
Два ближайших вопроса, похожих на этот:

Следуя предложениям в первой ссылке, я создал следующий файл bash-скрипта Timestamp. sh:

 #!/bin/bash
 sleep 0.3s && date +%Y.%m.%d' : '%H.%M.%S

который при выполнении выдает временную метку, отформатированную под мои нужды, и выглядит так:

2021.07.11 : 21.10.26

Теперь, используя приложение сочетаний клавиш в Mate mate-keybinding-properties, и привязав вышеуказанный скрипт к F9 для тестирования, я попробовал следующее:

/home/xak/scripts/Timestamp.sh

xdotool keyup exec /home/xak/scripts/Timestamp.sh

xdotool keyup sleep 0.3s type `date +%Y.%m.%d' : '%H.%M.%S`

xdotool type "$(printf 'date\n\e ')"

bash -c 'xdotool type "`date +"%Y-%m-%d_%T`"'

bash -c 'xdotool type --clearmodifiers -delay 0 "`date +"%Y-%m-%d_%T`"'

Ничего из этого не работает. Неважно, как долго я над этим корпел (в старом положительном смысле слова "корпеть") или как много я искал, я не могу найти, как заставить эту относительно простую вещь работать.

Некоторые из вышеперечисленных вещей, которые я пробовал, были предложены людьми с гораздо большим опытом, чем я, но когда вы вводите их для выполнения в качестве сочетания клавиш с помощью mate-keybinding-properties, они, похоже, не работают. Что я упускаю?

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

0
задан 12 July 2021 в 06:58

1 ответ

Это то, что я использую для вставки штампа даты:

#!/bin/sh
xdotool keyup ctrl+shift+d sleep 0.4 type $(date +"%Y-%m-%d")

Оператор "keyup" сначала освобождает горячую клавишу, которую я назначил этому сценарию, чтобы избежать взаимодействия этих нажатых клавиш с нажатиями клавиш отправки. Мне все еще нужна задержка в основном для работы в Firefox и Thunderbird. Для других приложений задержка может быть меньше.

Это та версия, которую я использовал ранее (и к которой я могу вернуться снова): вместо этого используется буфер обмена и предотвращается возможность отбрасывания некоторых нажатий клавиш.

#!/bin/sh
OLDSELECT=$(xsel --clipboard --input)
CURRENTDATE=$(date +"%Y-%m-%d")
echo -n $CURRENTDATE | xsel -b -i
sleep 0.3
xdotool keyup ctrl+shift+d key Control_L+v
sleep 0.3s
echo -n $OLDSELECT | xsel  --clipboard --input

Это сохраняет текущую (текстовую) клавиатуру и восстанавливает ее в конце. Между тем, дата помещается в буфер обмена и вставляется в активное приложение с помощью Ctrl + v . Опять же, к сожалению, для его работы требуется sleep - Linux очень старается отбросить нажатия клавиш, если вы набираете слишком быстро. Опять же, для Firefox и Thunderbird мне требуется 0,3 секунды сна, прежде чем буфер обмена будет правильно восстановлен.

0
ответ дан 28 July 2021 в 11:20

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

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