背景
我目前一直使用flameshot在archlinux上进行截图操作。虽然flameshot功能强大,但在实际使用中有一不便。
因为我在电脑上不想安装即时聊天软件(如QQ、微信等)以破坏电脑端体验,通常在手机上与他人交流,如需将电脑端截图发送给他人,则必须先用flameshot保存,然后在文件管理器dolphin中用kdeconnect发送至手机,最后再在聊天软件中选中图片发送……
太麻烦了,既然都用linux了,这些冗余操作何不写个快捷脚本呢?说干就干。
原理
我们使用一个bash脚本完成以下步骤:调用flameshot截图、手动保存、检测新截图文件后使用kdeconnect发送至手机端。
我对bash语法不太熟(这语法实在是不合我胃口),因此让AI辅助我写了下,代码如下:
#!/bin/bash device="ANG-AN00" # 这是你的手机设备名,使用kdeconnect-cli -l img_path="/home/test/Pictures/pin" # 你的截图保存路径,flameshot中也可设置默认保存路径 # 记录截图前的时间戳 timestamp=$(date +%s) # 使用 flameshot 进行截图,你也可以用其他截屏软件 flameshot gui # 查找截图后生成的文件(假设截图保存在 Pictures/pin 目录下) new_file=$(find $img_path -type f -newermt "@$timestamp" | head -n 1) # 检查是否找到了新的截图文件 if [ -n "$new_file" ]; then filename=$(basename "$new_file") kdeconnect-cli --share $img_path/$filename -n $device # 发送截图至手机 fi
这个脚本有意思的是,如果你截图时中途退出、没有保存图片,该脚本也不会向手机发送图片。
我把该脚本命名为pin2mobile.sh
,添加执行权限,然后放到PATH路径下(我用的是~/bin
)中:
chmod 744 pin2mobile.sh mv pin2mobile.sh ~/bin
最后,在你的桌面环境设置中添加快捷键即可。我一般用PriSc
键来调用flameshot,现在我用Ctrl+PrinSc
调用上述脚本以作区别。
享受愉快人生,完工。