此屏幕截图命令在终端中运行良好,但如果我将其绑定到某个键,则不行

此屏幕截图命令在终端中运行良好,但如果我将其绑定到某个键,则不行

我正在尝试让 Gnome Screenshot 通过一次按键截取并保存屏幕截图,但遇到了问题。我使用的命令在终端中运行正常,但当我将其绑定到某个键时却不行。当我按下绑定的键(在本例中为 Print Screen)时,什么都没有发生。没有错误,什么都没有。

gnome-screenshot -f "$HOME/Pictures/Screenshots/Test $(date '+%F %T').png"

我目前正在尝试对命令进行不同的调整。目前,我已通过省略路径使其正常工作,但"$(date "+%F %T")"这样做时该部分无法正常工作,这使我回到了以前的状态。以前,它会将它们命名为我的主文件夹中的相同名称,导致它们被覆盖。

答案1

键绑定命令不会在 shell 上下文中执行。因此命令插值不起作用。

您可以创建一个脚本,$HOME/.local/bin/screenshot其中包含:

#!/usr/bin/env bash
gnome-screenshot -f "$HOME/Pictures/Screenshots/Test $(date '+%F %T').png"

chmod +x它,然后将您想要的密钥绑定到它。

您还可以使用scrot而不是gnome-screenshot,其默认文件名包含时间戳。

答案2

我从未使用过 chmod。它有什么用?我也从未制作过脚本或将其绑定到密钥。

chmod 更改文件的权限。此设置决定谁可以读取/写入/执行文件。chmod +x 允许直接执行文件。进一步阅读 chmod 的手册页和这篇文章解释了shebangs。

另外两件毫无价值的东西。

  1. 您是否尝试过绑定到其他键?具有焦点的应用程序通常能够决定如何处理输入事件。这意味着 steam 可以拦截 PrtSc,告诉操作系统它处理了按键,然后实际上不做任何事情。这可能适用于所有键,让您倒霉。

  2. 全屏应用程序的渲染方式通常与窗口应用程序不同。知道它们是全屏的,应用程序就可以跳过某些渲染步骤,从而提高性能。我不知道这是否真的如此,但认为您使用的工具的屏幕截图机制无法捕获全屏应用程序的屏幕并非不合理。您可以通过在窗口模式下运行游戏来测试这一点。听起来您可以截取游戏的屏幕截图,尽管有延迟,但这可能不是问题所在。

相关内容