Bloquer la mise en veille de l'écran
Lors de la lecture d'une vidéo sous Firefox, il n'y a pas de mécanisme pour bloquer la mise en veille de l'écran. Pour ne pas être embêté durant un film, j'ai écrit une fonction inspirée de Note : astuce verrouillage Windows. Cette fonction me permet de lire une vidéo en boucle avec VLC.
Je ne voulais pas dépendre d'un fichier externe à la fonction donc j'ai décidé de tout inclure dans celle-ci.
Première version : avec la vidéo de la source mentionnée plus haut.
# Keep screen active when reading videos from Firefox function keep-screen-active { SUFFIX=.$FUNCNAME.mp4 find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete FILE=$(mktemp --suffix $SUFFIX) base64 --decode > $FILE <<-'EOF' AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAx LjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIg OTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBo dHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0z IGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5 X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlz PTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9v ZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBu cj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9p bnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5l Y3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNy Zj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03 NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBf cmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEA SZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4Ah 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 EOF vlc --loop $FILE }
Deuxième version : je trouvais que le fichier était un peu gros pour le travail réalisé, alors j'ai généré ma propre vidéo.
# Génération de l'image pour la vidéo magick -size 4x4 canvas:teal out.png
# Génération de la vidéo ffmpeg -loop 1 -i out.png -c:v libsvtav1 -preset 4 -crf 30 -tune 0 -t 1 -pix_fmt yuv420p10le out.mp4
# Keep screen active when reading videos from Firefox function keep-screen-active { SUFFIX=.$FUNCNAME.mp4 find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete FILE=$(mktemp --suffix $SUFFIX) base64 --decode > $FILE <<-'EOF' AAAAIGZ0eXBpc29tAAACAGlzb21hdjAxaXNvMm1wNDEAAAAIZnJlZQAAAgptZGF0CgwAAAAAj51f KgIEBAgyFBAAkoAAAAABAAA79223+sfhqz60MhEoEAAkkkk9OwAAAAADgACU6DIRKAgBBJIAPWIA AAEAAYAAlEgyESgEhASSYb1tAAABAAGAAJAgMhEoAogEkqw9cwAAAQABgACLwDIRMAMgCSWreuwA AAIAAwAAh4AaAegyEDAGoBl9WHrsAAACAAMAAIUaAdgyESgGKAuVY71zAAABAAGAAIeAMhAwCqAV e5h67AAAAgADAACCGgHoMhAwDqAa9MN67AAAAgADAAB+GgG4MhEoDCQHVhw9bQAAAQABgACLwDIQ KAooB5OivXMAAAEAAYAAhTIQMBKgDXeoeuwAAAIAAwAAfBoB6DIQMBagGfVFeuwAAAIAAwAAfBoB 2DIQKA4oC5ocPXMAAAEAAYAAgjIQMBqgFfWGeuwAAAIAAwAAdBoB6DIQMB6gGvYQeuwAAAIAAwAA eBoBiDIRKBgAQEAAPTsAAAAAA8AAkCAyESgUIgDQJL1iAAABAAGAAJAgMhEoEiQBWoY9bQAAAQAB gACHgDIQMCKQAeFheuYAAAIAAwAAfhoB2DIQMCaQFGsMeuYAAAIAAwAAfBoByDIQKBYkCUMkvW0A AAEAAYAAhTIQMCqQEGlNeuYAAAIAAwAAfBoB2DIQMC6QFmpJeuYAAAIAAwAAdBoBmAAAA21tb292 AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAD6AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA AAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACl3Ry YWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAABAAAAAQAAAAAACRlZHRzAAAAHGVsc3QAAAAA AAAAAQAAA+gAAAAAAAEAAAAAAg9tZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAADIAAAAyAFXEAAAA AAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAG6bWluZgAAABR2 bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABenN0 YmwAAACec3RzZAAAAAAAAAABAAAAjmF2MDEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABAAEAEgA AABIAAAAAAAAAAEXTGF2YzYyLjI4LjEwMSBsaWJzdnRhdjEAAAAAAAAAAAAY//8AAAAaYXYxQ4EA TAAKDAAAAACPgF8KAgQECAAAAApmaWVsAQAAAAAUYnRydAAAAAAAABAQAAAQEAAAABhzdHRzAAAA AAAAAAEAAAAZAAACAAAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAAZ AAAAAQAAAHhzdHN6AAAAAAAAAAAAAAAZAAAAJAAAAF8AAAADAAAAEgAAAAMAAAAlAAAAAwAAABIA AAADAAAANwAAAAMAAAASAAAAAwAAACQAAAADAAAAEgAAAAMAAABLAAAAAwAAABIAAAADAAAAJAAA AAMAAAASAAAAAwAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRs cgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAA AExhdmY2Mi4xMi4xMDE= EOF vlc --loop $FILE }
Troisième version : je me suis rendu compte que vlc peut lire une image, alors j'ai abandonné la vidéo.
# Génération de l'image magick -size 1x1 canvas:teal out.png
# Keep screen active when reading videos from Firefox function keep-screen-active { SUFFIX=.$FUNCNAME.png find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete FILE=$(mktemp --suffix $SUFFIX) base64 --decode > $FILE <<-'EOF' iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURQCAgP////lmmXQAAAABYktHRAH/Ai3eAAAAB3RJ TUUH6gUeCyAgoZLWEwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNS0zMFQxMTozMjozMiswMDow MNfjckkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDUtMzBUMTE6MzI6MzIrMDA6MDCmvsr1AAAA KHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI2LTA1LTMwVDExOjMyOjMyKzAwOjAw8avrKgAAAApJREFU CNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII= EOF vlc --loop $FILE }
Quatrième version : je me suis rendu compte que je n'avais plus besoin d'avoir le fichier dans la fonction, alors j'ai généré l'image dans celle-ci.
# Keep screen active when reading videos from Firefox function keep-screen-active { SUFFIX=.$FUNCNAME.png find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete FILE=$(mktemp --suffix $SUFFIX) magick -size 1x1 canvas:teal $FILE vlc --loop $FILE }
Cinquième version : je n'avais pas besoin d'avoir un nom de fichier aléatoire, alors j'ai forcé le nom de l'image.
# Keep screen active when reading videos from Firefox function keep-screen-active { FILE=/tmp/$FUNCNAME.png magick -size 1x1 canvas:teal $FILE vlc --loop $FILE }
