Service to automatically convert .webms generated by spectacle into .mp4
sudo dnf install inotify-tools ffmpeg -ymkdir -p ~/bin
sudo nano ~/bin/webm-to-mp4-watcher.sh#!/usr/bin/bash
WATCH_DIR="home/<user>/Videos/Screencasts"
/usr/bin/inotifywait -m -e close_write --format '%w%f' "$WATCH_DIR" |
while read file; do
[[ "$file" != *.webm ]] && continue
sleep 1
/usr/bin/ffmpeg -i "$file" \
-c:v libx264 \
-preset fast \
-crf 28 \
-vf scale=1280:-2 \
-c:a aac \
-b:a 96k "${file%.webm}.mp4"
donechmod +x ~/bin/webm-to-mp4-watcher.shsudo nano ~/.config/systemd/user/webm-to-mp4.service[Unit]
Description=WebM to MP4 watcher
[Service]
ExecStart=/home/<user>/bin/webm-to-mp4-watcher.sh
Restart=always
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable webm-to-mp4.service
systemctl --user start webm-to-mp4.servicesudo dnf install inotify-tools img2pdf -ymkdir -p ~/bin
sudo nano ~/bin/brscan-tif-to-pdf.sh#!/usr/bin/bash
WATCH_DIR="home/<user>/brscan"
mkdir -p "$WATCH_DIR"
/usr/bin/inotifywait -m -e close_write "$WATCH_DIR" |
while read path action file; do
case "$file" in
*.tif|*.tiff)
INPUT="$path$file"
OUTPUT="${INPUT%.*}.pdf"
/usr/bin/img2pdf "$INPUT" -o "$OUTPUT"
if [ $? -eq 0 ]; then
rm -f "$INPUT"
echo "Converted and removed: $INPUT"
else
echo "Conversion failed: $INPUT"
fi
;;
esac
donechmod +x ~/bin/brscan-tif-to-pdf.shsudo nano ~/.config/systemd/user/brscan-tif-to-pdf.service[Unit]
Description=Brother Scan TIFF to PDF Converter
[Service]
ExecStart=%h/bin/brscan-tif-to-pdf.sh
Restart=always
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable brscan-tif-to-pdf.service
systemctl --user start brscan-tif-to-pdf.servicesudo nano ~/.config/systemd/user/brscan-autostart.service[Unit]
Description=Auto start brother brscan-skey service
After=graphical-session.target
[Service]
ExecStart=/usr/bin/brscan-skey
Restart=always
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable brscan-autostart.service
systemctl --user start brscan-autostart.servicesudo nano /etc/systemd/system/pkcon-refresh.service[Unit]
Description=Force PackageKit metadata refresh
[Service]
Type=oneshot
ExecStart=/usr/bin/pkcon refresh forcesudo nano /etc/systemd/system/pkcon-refresh.timer[Unit]
Description=Run PackageKit refresh periodically
[Timer]
OnBootSec=10min
OnUnitActiveSec=6h
Persistent=true
[Install]
WantedBy=timers.targetsystemctl daemon-reload
systemctl enable pkcon-refresh.timer
systemctl start pkcon-refresh.timer