screenshot2app: new package
This commit is contained in:
parent
b09e68119f
commit
76adb5cd3a
45
mason/packages/screenshot2app.scm
Normal file
45
mason/packages/screenshot2app.scm
Normal file
@ -0,0 +1,45 @@
|
||||
(define-module (mason packages screenshot2app)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image))
|
||||
|
||||
(define-public screenshot2app
|
||||
(package
|
||||
(name "screenshot2app")
|
||||
(version "0.0.1")
|
||||
(home-page "https://wiki.mobian-project.org/doku.php?id=tweaks#taking-screenshots-v3")
|
||||
(source
|
||||
(local-file "scripts/screenshot2app" #:recursive? #t))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
'(#:install-plan
|
||||
'(("screenshot2app" "bin/")
|
||||
("screenshot2app.desktop" "share/applications/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* (list "screenshot2app")
|
||||
(("@EXTRA_PATH@")
|
||||
(string-append (assoc-ref inputs "grim")
|
||||
"/bin:"
|
||||
(assoc-ref inputs "yad")
|
||||
"/bin")))
|
||||
(substitute* (list "screenshot2app.desktop")
|
||||
(("@EXEC@")
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/bin/screenshot2app")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("yad" ,yad)
|
||||
("grim" ,grim)))
|
||||
(synopsis "")
|
||||
(description
|
||||
"")
|
||||
(license license:gpl2+)))
|
||||
|
||||
screenshot2app
|
79
mason/packages/scripts/screenshot2app/screenshot2app
Normal file
79
mason/packages/scripts/screenshot2app/screenshot2app
Normal file
@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script make a screen shot
|
||||
#
|
||||
# Authors: Kyle Rankin & @mo2mo:matrix.org
|
||||
# https://puri.sm/posts/easy-librem-5-app-development-take-a-screenshot/
|
||||
# https://wiki.mobian-project.org/doku.php?id=tweaks#taking-screenshots-v3
|
||||
#
|
||||
# dependencies: grim libnotify-bin yad
|
||||
#
|
||||
# License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
# This is free software: you are free to change and redistribute it.
|
||||
# There is NO WARRANTY, to the extent permitted by law."
|
||||
|
||||
|
||||
# make the info
|
||||
LNG=$(echo $LANG | cut -d_ -f1)
|
||||
case $LNG in
|
||||
de) INFO="Ein Bildschirmfoto nach X Sekunden machen:\nName (auch mit Pfad)" ;;
|
||||
es) INFO="Tomar una captura de pantalla después de X segundos:\nnombre (también con la ruta)" ;;
|
||||
fr) INFO="Prendre une capture d'écran après X secondes:\nnom (également avec le chemin)" ;;
|
||||
it) INFO="Scatta lo screenshot dopo X secondi:\nnome (anche con percorso)" ;;
|
||||
ru) INFO="Снимок экрана через X секунд:\nимя (также с указанием пути)" ;;
|
||||
*) INFO="Take screenshot after X seconds:\nname (also with path)"
|
||||
esac
|
||||
|
||||
export PATH="$PATH:@EXTRA_PATH@"
|
||||
|
||||
# start with yad
|
||||
INPUT=`yad --title Screenshot --text="$INFO" --form --field=filename:SFL --field=seconds:NUM "Screenshot" "5" --focus-field=1`
|
||||
SCREENSHOT=`echo $INPUT | cut -d '|' -f1`
|
||||
SECONDS=`echo $INPUT | cut -d '|' -f2`
|
||||
[ "$SECONDS" -eq 0 ] && exit 1
|
||||
|
||||
# check & make a folder
|
||||
if [ -f "${HOME}/.config/user-dirs.dirs" ]
|
||||
then PICTURE_DIR=$(cat ${HOME}/.config/user-dirs.dirs | grep PICTURES | cut -d/ -f2 | cut -d\" -f1)
|
||||
else PICTURE_DIR="Pictures"
|
||||
fi
|
||||
if [ -d "${HOME}/$PICTURE_DIR" ]
|
||||
then FOLDER="$PICTURE_DIR/Screenshot"
|
||||
else FOLDER="Screenshot"
|
||||
fi
|
||||
[ ! -d "${HOME}/$FOLDER" ] && mkdir "${HOME}/$FOLDER"
|
||||
|
||||
# check the target
|
||||
if [ -d "$(echo ${SCREENSHOT%/*} | grep '/')" ]
|
||||
then INFO=${SCREENSHOT##*/}
|
||||
elif [ ! "$(echo "$SCREENSHOT" | grep "/home/")" ]
|
||||
then SCREENSHOT="${HOME}/$FOLDER/${SCREENSHOT##*/}"
|
||||
INFO="\n~/$FOLDER/${SCREENSHOT##*/}"
|
||||
else exit 2
|
||||
fi
|
||||
|
||||
# check the extensions
|
||||
EXT="${SCREENSHOT##*.}"
|
||||
case "$EXT" in
|
||||
png|ppm) SCREENSHOT="$SCREENSHOT" ;;
|
||||
*) EXT="png"
|
||||
SCREENSHOT="$SCREENSHOT.$EXT" ;;
|
||||
esac
|
||||
|
||||
# make a screenshot
|
||||
sleep $SECONDS
|
||||
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
||||
if [ -f "$SCREENSHOT" ]
|
||||
then SCREENSHOT="${SCREENSHOT%.*}_$TIMESTAMP.$EXT"
|
||||
INFO="${INFO%.*}_$TIMESTAMP"
|
||||
fi
|
||||
grim -t $EXT "$SCREENSHOT"
|
||||
case $LNG in
|
||||
de) info="Bildschirmfoto gespeichert unter:" ;;
|
||||
es) info="Captura de pantalla almacenada en:" ;;
|
||||
fr) info="Capture d'écran stockée à:" ;;
|
||||
it) info="Screenshot memorizzato su:" ;;
|
||||
ru) info="Скриншот, сохраненный в:" ;;
|
||||
*) info="Screenshot stored at:"
|
||||
esac
|
||||
notify-send screenshot "$info\n$INFO.$EXT"
|
14
mason/packages/scripts/screenshot2app/screenshot2app.desktop
Normal file
14
mason/packages/scripts/screenshot2app/screenshot2app.desktop
Normal file
@ -0,0 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Name=Screen Shot
|
||||
Name[de]=Bildschirmfoto
|
||||
Name[en_CA]=Screen Shot
|
||||
Name[en_GB]=Screen Shot
|
||||
Name[es]=Captura de pantalla
|
||||
Name[fr]=Capture d'écran
|
||||
Name[it]=Schermata
|
||||
Type=Application
|
||||
Icon=applets-screenshooter
|
||||
Exec=@EXEC@
|
||||
Terminal=false
|
||||
Keywords=screenshooter;Bildschirmfoto;screen;
|
||||
Categories=Utility;
|
Loading…
x
Reference in New Issue
Block a user