时间戳键盘快捷键

时间戳键盘快捷键

在联想 T450 笔记本上的 Ubuntu Mate 20.10 上,我一直在尝试创建时间戳键盘快捷键。目的是能够将时间戳插入任何类型的文件,就像我输入的一样,无论是文本文件、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它们似乎不起作用。我错过了什么?

为了实现这一目标,所有用户都可以根据需要在任何应用程序中插入时间戳。

答案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 秒的睡眠时间。

相关内容