Showkey с меткой времени

В прошлой среде Linux у меня была команда resolve , которая стандартизировала пути, включая превращение относительного пути в абсолютный. Я не могу его сейчас найти, так что, возможно, это было написано кем-то в этой организации.

Вы можете создать свой собственный сценарий, используя функции стандартных библиотек Python или Perl (и, возможно, других языков тоже).

resolve.py :

#!/bin/env python

import sys
import os.path

for path in sys.argv:
    print os.path.abspath(path)

resolve.pl :

#!/bin/env perl

use warnings;
use Cwd qw ( abs_path );

foreach (@ARGV) {
    print abs_path($_), "\n";
}

Затем вы должны решить свою проблему с помощью:

resolve.py * > listOfFiles.list

С помощью этой команды вы также можете делать такие вещи, как

cd /root/dir1/dir2/dir3
resolve.py ../../dir4/foo.txt
# prints /root/dir1/dir4/foo.txt
0
24.02.2019, 21:41
2 ответа
sudo showkey | awk -v date="$(date +%s)" '{print $1 date}'

Это не сработает, так как вы запускаете dateодин раз до запуска awk, поэтому во всех строках будет напечатано одно и то же значение.

С помощью GNU awk вы можете использовать функцию systime(), чтобы получить текущее время (в секундах с начала Эпохи ). Например. это работает для меня:

$ stdbuf -o0 showkey -a | awk '{ print $0, systime(); }'
 1551031085
Press any keys - Ctrl-D will terminate this program 1551031085
 1551031085
a        97 0141 0x61 1551031086
d       100 0144 0x64 1551031087
^D        4 0004 0x04 1551031088

(Сейчас я не могу протестировать showkeyс необработанными кодами клавиш.)

1
28.01.2020, 02:40

Я отказался от showkeyи переключился на xev.

xev -id $(xdotool search -name "Stardew Valley") -event keyboard >> /home/reedbear/user_scripts/output.txt

Это дает мне журналы, которые выглядят как:

KeyRelease event, serial 18, synthetic NO, window 0x260000a,
    root 0x1b0, subw 0x0, time 18101865, (893,683), root:(893,683),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyPress event, serial 18, synthetic NO, window 0x260000a,
    root 0x1b0, subw 0x0, time 18101865, (893,683), root:(893,683),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 21, synthetic NO, window 0x260000a,
    root 0x1b0, subw 0x0, time 18102365, (893,683), root:(893,683),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

Затем я использую php, потому что у меня есть опыт работы с php, чтобы получить метку времени, нажатие клавиши и KeyReleaseили KeyPress.

Затем я использую xdotoolдля отправки нажатий клавиш, но это отдельная вещь.

Наверное, я могу обойтись и без xdotool, но... не стал.

1
28.01.2020, 02:40

Теги

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