Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как отследить появление определенного окна?  (Прочитано 1018 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
В чем задача:
нужно, чтобы при открытии окна с заголовком, содержащим "LibreOffice Writer", запускался некий скрипт.

Есть известная программа Devilspie, которая работает именно по такому принципу, но вот функции запуска сторонних команд в ней, к сожалению, нет. Может подскажете что-то?

ТС не появлялся на Форуме более трех месяцев по состоянию на 12/02/2020 (последняя явка: 08/04/2019). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 12 Февраля 2020, 23:39:57 от zg_nico »
недостаточно дружелюбен к старичкам

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
нужно, чтобы при открытии окна с заголовком, содержащим "LibreOffice Writer", запускался некий скрипт.

Самое простое это запуск самой программы "LibreOffice Writer" дописать в "некий скрипт".
Соответственно запуская "некий скрипт" будет происходить ожидаемый запуск "LibreOffice Writer".
Ну и системное меню соответственно настроить, если в этом есть необходимость.

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Не вариант. Файлы открываются из Гугл Хрома, автоматом, скачанные.
недостаточно дружелюбен к старичкам

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Я предложил решение исходя из "задачи", сформулированной в первом сообщении.
Если задача другая, тогда потрудись её сформулировать более конкретно.

Оффлайн garek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
тогда потрудись её сформулировать более конкретно.
чтобы при открытии окна с заголовком, содержащим "LibreOffice Writer", запускался некий скрипт.

Пользователь добавил сообщение 14 Ноября 2018, 17:08:46:
И как соотносится это:
Я предложил решение исходя из "задачи",
с таким "пониманием" прочитанного:
Цитировать
запуск самой программы "LibreOffice Writer" дописать в "некий скрипт".
??
Полагаю, потрудиться нужно в чем-то Вам. (А тыкать не надо мне, под одним кустом не срали)
« Последнее редактирование: 14 Ноября 2018, 17:08:46 от garek »
недостаточно дружелюбен к старичкам

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
чтобы при открытии окна с заголовком, содержащим "LibreOffice Writer", запускался некий скрипт.

Я понял, агрессивный чайник детектед...

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Не вариант.
Вроде как вариант.
Кастомный .desktop файл это и будет делать
Типа прописать туда типа
Exec=скрипт;libreoffice

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Есть известная программа Devilspie, которая работает именно по такому принципу, но вот функции запуска сторонних команд в ней, к сожалению, нет.
Так вроде есть
https://linux.die.net/man/1/devilspie
смотри
spawn_async
spawn_sync

А если devilspie2, то возьми сорсы и добавь нужный функционал...хотя может и не надо, там Lua используется, изучи
Извините, я все еще учусь

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7835
  • We were here
    • Просмотр профиля
а макросами самой либры не сделать?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
В xdotool есть опция получения списка текущих окон (читать man).
Скрипт мониторинга и запуска будет примерно такой:
Код: (bash) [Выделить]
#!/bin/bash

while :
do
    if xdotool --опция | grep -q 'Текст заголовка окна'
    then
        код или скрипт
    fi
    sleep 2
done

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
ReNzRv, так есть же wmctrl
Извините, я все еще учусь

zse

  • Гость
ReNzRv, так есть же wmctrl
    — Ну да…
Код: (bash) [Выделить]
wmctrl -l
0x03800002  0 fjf-ThinkCentre-M57 XdndCollectionWindowImp
0x03800005  0 fjf-ThinkCentre-M57 unity-launcher
0x03800008  0 fjf-ThinkCentre-M57 unity-panel
0x0380000b  0 fjf-ThinkCentre-M57 unity-dash
0x0380000c  0 fjf-ThinkCentre-M57 Hud
0x02a0000a  0 fjf-ThinkCentre-M57 Desktop
0x03000008  0 fjf-ThinkCentre-M57 cairo-dock
0x01e00002 -1 fjf-ThinkCentre-M57 Conky (fjf-ThinkCentre-M57)
0x04400002 -1 fjf-ThinkCentre-M57 Conky (fjf-ThinkCentre-M57)
0x02a00233  0 fjf-ThinkCentre-M57 Home
0x04c0000b  0 fjf-ThinkCentre-M57 Terminal
0x05000015  0 fjf-ThinkCentre-M57 Как отследить появление определенного окна? - Ubuntu.ru - Mozilla Firefox
0x05800011  0 fjf-ThinkCentre-M57 AllZim16Nov15 - Zim
0x04000064  0 fjf-ThinkCentre-M57 Untitled 1 - LibreOffice Writer
     — Нужно теперь думать как использовать вывод команды… 2018 Nov 14; 05:25 PM

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
zse,
Подставить вместо
Код: (bash) [Выделить]
xdotool --опцияи добавить нужный код / скрипт после then.

 

Страница сгенерирована за 0.018 секунд. Запросов: 20.