Запуск графического интерфейса пользователя из события acpi

Начиная с

for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done

, сортировка вывода включает другое использование sort , чтобы отсортировать общий вывод в числовом порядке в обратном порядке:

for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done \
| sort -n -r

Чтобы отобразить имя (исходного) пакета вместе с номером ошибки, самый простой вариант - добавить $ {source} (исходный пакет) в нужное место, обрабатывая bts ' s выводит каждый раз при запуске:

for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u)
do bts select source:${source} tag:patch | sed "s/^/${source} /g"
done

Это выводит строки формы

linux 845422

, поэтому нам нужно изменить окончательную sort для сортировки во втором поле:

for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u)
do bts select source:${source} tag:patch | sed "s/^/${source} /g"
done | sort -k2,2n -r

В единственной строке, которая

for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch | sed "s/^/${source} /g"; done | sort -k2,2n -r
]
2
26.10.2016, 19:59
1 ответ

Похоже, у этой проблемы должно быть простое решение. Я сам пытался сделать что-то подобное :запустить программу захвата экрана (пламенный снимок )при нажатии кнопки на клавиатуре.

В конце концов, решение, которое сработало для меня, состояло в том, чтобы создать FIFO (именованный канал )в моем домашнем каталоге с именем .acpi_execute.pipe. Затем я использую следующий скрипт под названием .acpi_execute.

#!/usr/bin/bash

while true ; do
    while IFS='' read command ; do
        $command
    done < ~/.acpi_execute.pipe
done

Я предпочитаю i3 GNOME, KDE и т. д. из-за его производительности (, очень легкого )и мозаичного характера. Внизу моего файла конфигурации i3 ~/.config/i3/configу меня есть:

exec ~/.acpi_execute

Это позволяет запускать сценарий всякий раз, когда запускается моя среда рабочего стола (либо непосредственно на компьютере, либо через удаленное соединение VNC ).

Имейте в виду, что вышеперечисленное влияет на безопасность. Например, если кто-то может писать в указанный выше канал, он может выполнять произвольные команды , как и вы . Это явно будет плохо. Предоставление разрешений FIFO 600, принадлежащих вам, снижает этот риск. Вы также можете ограничить количество возможных команд. То есть не выполняйте $command, а конкретную команду, которую вы хотите (, например,flameshot gui).

0
27.01.2020, 22:10

Теги

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