menu Chancel's blog
rss_feed
Chancel's blog
秋雨一何碧,山色倚晴空。

Linux Gnome 截图脚本(自动复制到粘贴版)

类型:Linux
创建时间:2021-12-06 16:37:52
更新时间:2021-12-06 16:37:52
类型:Linux
更新时间:2021-12-06 16:37:52

最近更新到Gnome41版本,结果截图插件再次崩溃了,不得不说第三方插件虽然功能丰富但稳定性真是堪忧

Gnome自带截图程序 gonme-screenshot 简单强悍,非常好用,而且通常不会因为Gnome版本更新崩掉

缺点是只能保存为文件,虽然命令行中有 -c Send the grab directly to the clipboard 参数可选,但我加了-c剪贴板粘贴完全无效..

只有文件的话截图之后分享不是很方便,就考虑写一个bash脚本,利用xlicp将截图之后的照片直接发送到粘贴版

于是有了以下这个脚本

#!/bin/bash
# author:chancel
# url:https://chancel.me

show_help() {
    echo "$0 [-h|-?|--help] [--temp /tmp/_backup] [--target /opt/backup/] [--dbuser root] [--dbpasswd passwd] [--extra /opt]"
    echo "-h|-?|--help    显示帮助"
    echo "-folder   截图保存文件夹"
    echo "-select default area 截图方式(area/window/full)"
}
select=area

while [[ $# -gt 0 ]]; do
    case $1 in
    -h | -\? | --help)
        show_help
        exit 0
        ;;
    -folder)
        folder="${2}"
        shift
        ;;
    -select)
        select="${2}"
        shift
        ;;
    --)
        shift
        break
        ;;
    *)
        echo -e "错误: $0 无效操作 '$1'\n可输入命令 '$0 --help' 获取更多帮助.\n" >&2
        exit -1
        ;;
    esac
    shift
done

filename=$folder/$(date +%Y%m%d)_$(date +%H%M%S).png
if [ $select == "area" ]
then
    gnome-screenshot -a --file=$filename
elif [ $select == "window" ]
then
    gnome-screenshot -w --file=$filename
else
    gnome-screenshot --file=$filename
fi
xclip -selection clipboard -t image/png -i $filename

使用方法1:用鼠标截取想截图的部分

bash screenshot.sh -folder /tmp -select area

使用方法2:截图当前活动Window

bash screenshot.sh -folder /tmp -select window

参数说明

  • folder:截图文件存放位置
  • select:截图方式(area/window/full)

截图后会按时间在指定文件夹生成截图文件并复制到粘贴版

[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]