Страница 1 из 1
Эмуляция нажатия клавиш в скрипте
Добавлено: 16 янв 2018, 21:47
mint
Может кто то подскажет?
в общем нужно обновить окно вкладку nemo вне скрипта клавиши "ctrl+r" или "F5"
в скрипте пытаюсь так:
xdotool search --name "Домашняя папка" windowactivate key ctrl+r
окно nemo "Домашняя папка" вылазит на передний план но не обновляется
Эмуляция нажатия клавиш в скрипте
Добавлено: 17 янв 2018, 08:34
Chocobo
mint,
Код: Выделить всё
app='Домашняя папка'
window_id=`wmctrl -l | grep "$app" | cut -d' ' -f1`
wmctrl -i -R $window_id && xdotool key F5
Эмуляция нажатия клавиш в скрипте
Добавлено: 17 янв 2018, 17:13
mint
1 раз сработало потом перестало, попробовал запустить с терминала такая ошибка
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x7600003
Serial number of failed request: 16
Current serial number in output stream: 16
wmctrl: ключ должен использоваться с аргументом — «R»
Эмуляция нажатия клавиш в скрипте
Добавлено: 18 янв 2018, 18:10
mint
Chocobo,
обновляет не окно "Домашняя папка" а окно терминала из которого запущен скрипт появляется новая строка с символом "~"
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 01:25
Dja
mint, если нужно через время, то...
напишу свой вариант, пусть и кривой.
Итак, допустим, мы хотим обновлять окно ФМ каждую минуту.
При этом у нас есть папка скриптов.
~/.scripts
Теперь создадим скрипт
#!/bin/sh
xdotool key --window XXXXXXXXX "F5"
где, XXXXXXXXX - числовой идентификатор окна, который в свою очередь мы получаем из
$ хдемышь
X=1161
Y=473
SCREEN=0
WINDOW=92274689
Теперь нам осталось зациклить.
Делаем алиасы
Код: Выделить всё
alias хдемышь="xdotool getmouselocation --shell"
alias апнемо="watch --interval=60 ~/.scripts/upnemo.sh"
alias наноапнемо="nano ~/.scripts/upnemo.sh"
В итоге:
делаем раз: "хдемышь" - узнаем ID окна.
делаем два: "наноапнемо" - меняем ID окна, ставя нужный.
делаем три: "апнемо".
Цель достигнута.
Возможно кто напишет сценарий лучше.
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 21:22
mint
Dja, Попробовал ваш вариант, не работает
sleep 5 ; WIN=$(xdotool getmouselocation --shell | sed '/WINDOW/!d;s/^.*=//') ; xdotool key --window $WIN "F5"
У себя для теста использовал задержку в 5 секунд чтоб попробовать на разных окнах, id окна определяется, xdotool отрабатывает без ошибок, похоже он это вообще не умеет (передавать клавиши окнам) проверьте у себя пожалуйста
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 21:34
Dja
mint, у меня текст в HexChat, к примеру, передает. И ентером посылает. Уж обновлять окна не приходилось ))) Даже не знаю как проверить. Это ж надо чтоб какое-то изменение делалось. А так то смысл обновлять
Код: Выделить всё
xdotool type --window 111149059 "текст" && xdotool key --window 111149059 "Return"
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 21:42
mint
Dja, у меня скрипт вносит изменения и они видны только при обновлении окна клавишей F5
Код: Выделить всё
#!/bin/bash
DCLICK () {
xdg-open "$3/$4"
}
export -f DCLICK
GUI () {
for i in $(ls -1 "$1" | sed 's/ //g')
do
A=$(echo "$i" | sed 's// /g')
grep -wq "$A" "$1/.hidden" && echo -e "TRUE\nСкрыто\n$1"|| echo -e "FALSE\nВидимый\n$1"
echo "$A"
done | yad --list --checklist --title='' --window-icon='imagemagick' --width=400 --height=400\
--dclick-action='bash -c "DCLICK %s"' --tooltip-column=2 --no-rules-hint --print-all\
--column='' --column='подсказка:HD' --column='Директория:HD' --column='Скрытые элементы обозначены галкой'
}
REZ=$(GUI "$1")
[ $? -ne 0 ] && exit # если нажата кнопка "Ok" то продолжаем скрипт
REZULTAT=$(echo "$REZ" | awk -F "|" '/^TRUE/ {print $4}')
if [ -z "$REZULTAT" ]
then rm "$1/.hidden"
else echo "$REZULTAT" > "$1/.hidden"
fi
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 21:46
mint
Вот так выглядит gui
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 21:52
mint
Вот файл Action
Код: Выделить всё
[Nemo Action]
Name=Скрыть объекты
Comment=Позволяет скрыть файлы директории без добавления точки перед именем, по прямому запросу объекты доступны
Exec=hidden.sh '%P'
Icon-Name=imagemagick
Selection=none
Extensions=any;
Conditions=dbus org.Cinnamon;
EscapeSpaces=false
Эмуляция нажатия клавиш в скрипте
Добавлено: 26 мар 2018, 22:10
Dja
mint,