![如何通过 scrot 在 awesome wm 中截取屏幕截图(使用选择)](https://linux22.com/image/1404246/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20scrot%20%E5%9C%A8%20awesome%20wm%20%E4%B8%AD%E6%88%AA%E5%8F%96%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%EF%BC%88%E4%BD%BF%E7%94%A8%E9%80%89%E6%8B%A9%EF%BC%89.png)
尝试过:
awful.util.spawn("scrot -s")
awful.util.spawn("urxvt -e \"scrot -s\"")
os.execute("scrot -s")
以及所有可能的组合,甚至包括sleep
。
还尝试了守护进程。
什么都不起作用 =( PS 所有命令都在键绑定中,如果我scrot -s
用替换scrot
,则除了选择区域外,所有命令都有效。
答案1
由于命令行中有参数,因此应该使用 awesome.util.spawn_with_shell()。这
awful.util.spawn_with_shell("sleep 0.5 && scrot -s")
对我来说很好用。
答案2
我也一直在为此苦苦挣扎。spawn_with_shell 不是让我工作的解决方案。当我按下相应的热键时,屏幕会闪烁,因此配置正确,当我按 Win+r(运行)并输入 path/to/screenshot.sh 时,它也能正常工作。这是 shebang 之后的脚本
scrot -s '%Y-%m-%d_$wx$h_scrot.png' -e 'mv $f /home/sam/Pictures/Screenshots'
这是我尝试过的事情:
screenshot = "/home/sam/run/screenshot.sh"
awful.spawn.with_shell(screenshot)
真正起作用的是使用终端执行 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"}),
不幸的是,后者还会打开一个终端窗口,这不是一个理想的行为(但至少有些东西正在起作用