3

Пытался:

awful.util.spawn("scrot -s")
awful.util.spawn("urxvt -e \"scrot -s\"")
os.execute("scrot -s")

и все возможные комбинации даже со sleep .
Также попробовал daemonize.
Ничего не работает =(PS Все команды в привязках клавиш, если я заменю scrot -s на scrot , все работает, кроме выбора области.

2 ответа2

6

Поскольку у вас есть аргументы в командной строке, следует использовать awful.util.spawn_with_shell(). это

awful.util.spawn_with_shell("sleep 0.5 && scrot -s")

отлично работает для меня

0

Я тоже боролся с этим. spawn_with_shell не является решением, которое заставляет его работать на меня. Экран мерцает, когда я нажимаю соответствующую горячую клавишу, поэтому она настроена правильно, и когда я нажимаю Win+r (запустить) и набираю path/to/screenshot.sh, это тоже работает. Это сценарий после Шебанга

scrot -s '%Y-%m-%d_$wx$h_scrot.png' -e 'mv $f /home/sam/Pictures/Screenshots'

Вот что я попробовал: screenshot = "/home/sam/run/screenshot.sh" scrot -s '% Y-% m-% d_ $ wx $ h_scrot.png' -e 'mv $ f /home /sam / Картинки / Скриншоты 'awful.spawn.with_shell(скриншот)

Что работает, так это выполнение сценариев bash с терминалом: это мои определения переменных в верхней части страницы

screenshot = "/home/sam/run/screenshot.sh"
screenshot_cmd = terminal .. " -e " .. screenshot

А потом еще больше вниз по файлу, у меня есть эти (оба работают)

awful.key({ modkey  ,         }, "#107", function () awful.spawn.with_shell(screenshot_cmd) end,
          {description = "take screenshot", group = "launcher"}),
awful.key({ modkey  , "Shift" }, "p", function () awful.spawn(screenshot_cmd) end,
          {description = "take screenshot", group = "launcher"}),

К сожалению, последний также открывает окно терминала, что не является желательным поведением (но, по крайней мере, что-то работает

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .