Есть ли простой способ создать событие удаления в запущенном приложении с графическим интерфейсом из оболочки?
Обычно я работаю в терминале в окне рабочего стола. Я общаюсь с коллегами из Slack, который является только графическим интерфейсом приложения. Я могу делиться файлами, перетаскивая их из Nautilus, но было бы неплохо, если бы мне вообще не пришлось открывать Nautilus.
Если у меня есть путь к файлу и PID приложения, которое может обрабатывать события удаления, есть ли команда, которая может отправить событие удаления в приложение? Я надеюсь на рабочий процесс, как:
find ~/Pictures -name lol.gif | xargs gnome-drop --pid 29058
1 ответ
Знание только PID недостаточно; даже если вы предполагаете, что X11 (без Wayland), программа может иметь несколько открытых окон. И даже окна не являются мишенью - отдельные виджеты.
(Хотя, AFAIK, сообщения X11 имеют дело только с координатами, только сама программа переводит их в определенный виджет внутри.)
Таким образом, такой инструмент может существовать, но вместо PID вы дадите ему имя окна и (как минимум) некоторые пиксельные координаты. Возможно, он мог бы использовать AT-SPI для определения правильного виджета.
Я еще не видел такой программы. Однако Dragbox может подойти для ваших целей - его достаточно легко запустить из терминала.
- Протокол перетаскивания для системы X Window (XDnD, текущий протокол)
- Руководство по программированию Motif: Глава 22 (Motif DnD, устаревший протокол)
- https://unix.stackexchange.com/questions/137905/can-i-drag-a-file-into-a-window-without-a-file-manager