Outils pour utilisateurs

Outils du site


informatique:projets:bloquer_la_mise_en_veille_de_l_ecran

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.

  1. # Keep screen active when reading videos from Firefox
  2. function keep-screen-active {
  3. SUFFIX=.$FUNCNAME.mp4
  4. find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete
  5. FILE=$(mktemp --suffix $SUFFIX)
  6. base64 --decode > $FILE <<-'EOF'
  7. AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAx
  8. LjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIg
  9. OTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBo
  10. dHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0z
  11. IGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5
  12. X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlz
  13. PTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9v
  14. ZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBu
  15. cj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9p
  16. bnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5l
  17. Y3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNy
  18. Zj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03
  19. NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBf
  20. cmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXX
  21. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEA
  22. SZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4Ah
  23. AEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAA
  24. AAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEA
  25. SZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJ
  26. kAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAG
  27. QZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQ
  28. AhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZAC
  29. GQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGa
  30. YC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZ
  31. ACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkA
  32. I4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0Av
  33. wMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAj
  34. gCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AA
  35. AAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAA
  36. AAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  37. AwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAA
  38. AAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxl
  39. bHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAA
  40. dU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21p
  41. bmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAA
  42. AQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
  43. ALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAA
  44. LWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRP
  45. xbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAAB
  46. AAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsA
  47. AAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAA
  48. AAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAA
  49. iHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARB
  50. AAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMA
  51. AAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAA
  52. BDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAA
  53. AAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhk
  54. AAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABT
  55. b3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAA
  56. AAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAA
  57. AAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoF
  58. gICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAA
  59. AAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAA
  60. AAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAA
  61. CwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAAB
  62. AAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEA
  63. AAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAA
  64. AAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAA
  65. AAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJ
  66. AAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkA
  67. AAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAA
  68. AAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAA
  69. LAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASW
  70. AAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegA
  71. AAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAA
  72. AAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw
  73. EOF
  74. vlc --loop $FILE
  75. }

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
  1. # Keep screen active when reading videos from Firefox
  2. function keep-screen-active {
  3. SUFFIX=.$FUNCNAME.mp4
  4. find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete
  5. FILE=$(mktemp --suffix $SUFFIX)
  6. base64 --decode > $FILE <<-'EOF'
  7. AAAAIGZ0eXBpc29tAAACAGlzb21hdjAxaXNvMm1wNDEAAAAIZnJlZQAAAgptZGF0CgwAAAAAj51f
  8. KgIEBAgyFBAAkoAAAAABAAA79223+sfhqz60MhEoEAAkkkk9OwAAAAADgACU6DIRKAgBBJIAPWIA
  9. AAEAAYAAlEgyESgEhASSYb1tAAABAAGAAJAgMhEoAogEkqw9cwAAAQABgACLwDIRMAMgCSWreuwA
  10. AAIAAwAAh4AaAegyEDAGoBl9WHrsAAACAAMAAIUaAdgyESgGKAuVY71zAAABAAGAAIeAMhAwCqAV
  11. e5h67AAAAgADAACCGgHoMhAwDqAa9MN67AAAAgADAAB+GgG4MhEoDCQHVhw9bQAAAQABgACLwDIQ
  12. KAooB5OivXMAAAEAAYAAhTIQMBKgDXeoeuwAAAIAAwAAfBoB6DIQMBagGfVFeuwAAAIAAwAAfBoB
  13. 2DIQKA4oC5ocPXMAAAEAAYAAgjIQMBqgFfWGeuwAAAIAAwAAdBoB6DIQMB6gGvYQeuwAAAIAAwAA
  14. eBoBiDIRKBgAQEAAPTsAAAAAA8AAkCAyESgUIgDQJL1iAAABAAGAAJAgMhEoEiQBWoY9bQAAAQAB
  15. gACHgDIQMCKQAeFheuYAAAIAAwAAfhoB2DIQMCaQFGsMeuYAAAIAAwAAfBoByDIQKBYkCUMkvW0A
  16. AAEAAYAAhTIQMCqQEGlNeuYAAAIAAwAAfBoB2DIQMC6QFmpJeuYAAAIAAwAAdBoBmAAAA21tb292
  17. AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAD6AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA
  18. AAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACl3Ry
  19. YWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA
  20. AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAABAAAAAQAAAAAACRlZHRzAAAAHGVsc3QAAAAA
  21. AAAAAQAAA+gAAAAAAAEAAAAAAg9tZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAADIAAAAyAFXEAAAA
  22. AAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAG6bWluZgAAABR2
  23. bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABenN0
  24. YmwAAACec3RzZAAAAAAAAAABAAAAjmF2MDEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABAAEAEgA
  25. AABIAAAAAAAAAAEXTGF2YzYyLjI4LjEwMSBsaWJzdnRhdjEAAAAAAAAAAAAY//8AAAAaYXYxQ4EA
  26. TAAKDAAAAACPgF8KAgQECAAAAApmaWVsAQAAAAAUYnRydAAAAAAAABAQAAAQEAAAABhzdHRzAAAA
  27. AAAAAAEAAAAZAAACAAAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAAZ
  28. AAAAAQAAAHhzdHN6AAAAAAAAAAAAAAAZAAAAJAAAAF8AAAADAAAAEgAAAAMAAAAlAAAAAwAAABIA
  29. AAADAAAANwAAAAMAAAASAAAAAwAAACQAAAADAAAAEgAAAAMAAABLAAAAAwAAABIAAAADAAAAJAAA
  30. AAMAAAASAAAAAwAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRs
  31. cgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAA
  32. AExhdmY2Mi4xMi4xMDE=
  33. EOF
  34. vlc --loop $FILE
  35. }

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
  1. # Keep screen active when reading videos from Firefox
  2. function keep-screen-active {
  3. SUFFIX=.$FUNCNAME.png
  4. find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete
  5. FILE=$(mktemp --suffix $SUFFIX)
  6. base64 --decode > $FILE <<-'EOF'
  7. iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
  8. AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURQCAgP////lmmXQAAAABYktHRAH/Ai3eAAAAB3RJ
  9. TUUH6gUeCyAgoZLWEwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNS0zMFQxMTozMjozMiswMDow
  10. MNfjckkAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDUtMzBUMTE6MzI6MzIrMDA6MDCmvsr1AAAA
  11. KHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI2LTA1LTMwVDExOjMyOjMyKzAwOjAw8avrKgAAAApJREFU
  12. CNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=
  13. EOF
  14. vlc --loop $FILE
  15. }

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.

  1. # Keep screen active when reading videos from Firefox
  2. function keep-screen-active {
  3. SUFFIX=.$FUNCNAME.png
  4. find /tmp -maxdepth 1 -type f -iname \*$SUFFIX -delete
  5. FILE=$(mktemp --suffix $SUFFIX)
  6. magick -size 1x1 canvas:teal $FILE
  7. vlc --loop $FILE
  8. }

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.

  1. # Keep screen active when reading videos from Firefox
  2. function keep-screen-active {
  3. FILE=/tmp/$FUNCNAME.png
  4. magick -size 1x1 canvas:teal $FILE
  5. vlc --loop $FILE
  6. }
informatique/projets/bloquer_la_mise_en_veille_de_l_ecran.txt · Dernière modification : de alexis