78 lines
1.5 KiB
Bash
78 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# =========================
|
|
# CONFIG
|
|
# =========================
|
|
|
|
DIR="$HOME/Pictures/Screenshots"
|
|
DEVICE_NAME="" # Optional
|
|
|
|
SOUND="/usr/share/sounds/freedesktop/stereo/screen-capture.oga"
|
|
|
|
# =========================
|
|
# SETUP
|
|
# =========================
|
|
|
|
mkdir -p "$DIR"
|
|
TIME=$(date +"%d-%m-%Y_%H-%M-%S")
|
|
FILE="$DIR/Screenshot_${TIME}.png"
|
|
|
|
# =========================
|
|
# SCREENSHOT
|
|
# =========================
|
|
|
|
if ! grim - | tee "$FILE" | wl-copy; then
|
|
notify-send "❌ Screenshot failed"
|
|
exit 1
|
|
fi
|
|
|
|
# =========================
|
|
# PLAY SOUND
|
|
# =========================
|
|
|
|
if [ -f "$SOUND" ]; then
|
|
paplay "$SOUND" &
|
|
fi
|
|
|
|
# =========================
|
|
# FILE READY CHECK
|
|
# =========================
|
|
|
|
for i in {1..10}; do
|
|
[ -f "$FILE" ] && break
|
|
sleep 0.2
|
|
done
|
|
|
|
# =========================
|
|
# KDE CONNECT READY
|
|
# =========================
|
|
|
|
if ! pgrep -x kdeconnectd >/dev/null; then
|
|
kdeconnectd &
|
|
sleep 2
|
|
fi
|
|
|
|
# =========================
|
|
# DEVICE DETECTION
|
|
# =========================
|
|
|
|
if [ -n "$DEVICE_NAME" ]; then
|
|
DEVICE_ID=$(kdeconnect-cli -a | grep "$DEVICE_NAME" | cut -d':' -f1)
|
|
else
|
|
DEVICE_ID=$(kdeconnect-cli -a --id-only | head -n 1)
|
|
fi
|
|
|
|
# =========================
|
|
# SEND FILE
|
|
# =========================
|
|
|
|
if [ -n "$DEVICE_ID" ]; then
|
|
if kdeconnect-cli -d "$DEVICE_ID" --share "$FILE"; then
|
|
notify-send "Sent to your phone" "$(basename "$FILE")"
|
|
else
|
|
notify-send "⚠️ Send failed" "Saved locally"
|
|
fi
|
|
else
|
|
notify-send "⚠️ No device found" "Saved locally"
|
|
fi
|