2009-03-10

Screenshot от Scrot в Awesome

У меня возникла проблема со снятием скриншотов экрана в менеджере окон awesome. Дело в том, что мне хотелось это делать через заранее созданный пункт меню, т.к. набирать каждый раз, когда мне нужен скриншот, эту "рулетку":
scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

у меня не было никакого желания :)
Сначала я попробовал, как обычно, создать пункт меню с вышеуказанной строкой. Но это не дало эффекта. Тогда я вспомнил, что можно запускать эту программу в терминале:
xterm -e scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

Но при этом окно терминала также висело открытым. В принципе все окна терминала открываются у меня с тэгом, но что делать, если нужно снять скриншот с другого окна терминала? Опция -iconic упорно не желала сворачивать окно терминала в значок, как и указание & в конце команды. Тогда я внимательно присмотрелся к опции -geometry терминала:
xterm -geometry 0x0 -e scrot 'scrot_%Y-%m-%d_$wx$h.png' -s -b -e 'mv $f ~/screenshots/'

что в итоге решило мою проблему, если не считать маленький прямоугольник в левом верхнем углу тэга (и то только тэга терминалов), не особенно бросающийся в глаза. Хоть какое-то решение проблемы :)
В OpenBox у меня такой проблемы нет...

4 комментария:

Denis Evsyukov комментирует...

Хмм... Интересные у тебя проблемы...
Я вызываю scrot не через меню, а через горячую клавишу, повесил как обычно на принтскрин.

keybinding( { }, "F14", function() awful.spawn( 'scrot -q 10' ) end):add()
keybinding( { "Mod1" }, "F14", function() awful.spawn( 'scrot -q 10 -s' ) end):add()

Так как на моей клаве принтскрина нет, повесил на F14... и все... ;)

mao(tm) комментирует...

По-моему, я так тоже пробовал... Но все же еще раз попробую через spawn, может, что-то не та сделал или упустил. А Mod1 что такое? Почему 2 варианта написания?
А F14 откуда??? У меня только 12 функциональных клавиш...

mao(tm) комментирует...

Хм, понял. Два варианта на два случая: с -s и без этого ключа...

mao(tm) комментирует...

Juev
Попробовал твои рекомендации... Но они неприменимы к моей системе. У меня девелоперская версия (вроде 3.2, точно не помню, не дома сейчас), и для привязки клавиш используются конструкции вида:

key({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end),

Кстати, spawn в awful.util.spawn ...

Попробовал соответствующим образом переделать инструкции, но не срабатывает...