75 lines
1.4 KiB
Bash
75 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
# =========================
|
|
# CONFIG
|
|
# =========================
|
|
|
|
DIR="$HOME/Pictures/Screenshots"
|
|
DEVICE_NAME=""
|
|
SOUND="/usr/share/sounds/freedesktop/stereo/screen-capture.oga"
|
|
|
|
mkdir -p "$DIR"
|
|
TIME=$(date +"%d-%m-%Y_%H-%M-%S")
|
|
FILE="$DIR/Screenshot_${TIME}.png"
|
|
|
|
# =========================
|
|
# WAYLAND CHECK
|
|
# =========================
|
|
|
|
if [ -z "$WAYLAND_DISPLAY" ]; then
|
|
notify-send "❌ Not running in Wayland"
|
|
exit 1
|
|
fi
|
|
|
|
# =========================
|
|
# AREA SELECT
|
|
# =========================
|
|
|
|
GEOM=$(slurp 2>/dev/null)
|
|
|
|
# cancel case
|
|
if [ -z "$GEOM" ]; then
|
|
notify-send "❌ Screenshot cancelled"
|
|
exit 0
|
|
fi
|
|
|
|
# =========================
|
|
# SCREENSHOT
|
|
# =========================
|
|
|
|
if ! grim -g "$GEOM" "$FILE"; then
|
|
notify-send "❌ Screenshot failed (grim error)"
|
|
exit 1
|
|
fi
|
|
|
|
# copy to clipboard
|
|
wl-copy < "$FILE"
|
|
|
|
# =========================
|
|
# SOUND
|
|
# =========================
|
|
|
|
[ -f "$SOUND" ] && paplay "$SOUND" &
|
|
|
|
# =========================
|
|
# KDE CONNECT
|
|
# =========================
|
|
|
|
if ! pgrep -x kdeconnectd >/dev/null; then
|
|
kdeconnectd &
|
|
sleep 2
|
|
fi
|
|
|
|
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
|
|
|
|
if [ -n "$DEVICE_ID" ]; then
|
|
kdeconnect-cli -d "$DEVICE_ID" --share "$FILE" && \
|
|
notify-send "Sent to your phone" "$(basename "$FILE")"
|
|
else
|
|
notify-send "⚠️ No device found" "Saved locally"
|
|
fi
|