J'ai réinstallé récemment l'ordinateur qui me sert de télé/media center. J'ai un certain nombre de fichiers avi, que je regarde de temps en temps. Avant, je faisais ça avec, au choix, vlc, mplayer ou xine. Je me suis décidé à passer à Totem.

Pourquoi Totem ?

Bin simplement parce que c'est le logiciel par défaut de chez Gnome en fait, et donc le truc a priori le mieux intégré à mon environnement. Il est installé par défaut, il ne pause plus de problèmes de codecs comme j'ai toujours eu avant (et qui faisaient que je préférais l'éviter justement). Bref, pourquoi pas...
Autre avantage, il est plus rapide à se lancer que vlc, plus convivial que xine et... bon, ok, rien ne sera jamais mieux que mplayer. :)

Les codecs

Oui, tiens, précisons-le : il suffit d'installer le paquet ubuntu-restricted-extras, et il fait tout le reste... C'est pourtant simple, non ?

Problème : le lancement en plein écran

Moi ce que je veux, c'est juste d'ouvrir de façon systématique mes fichiers en double-cliquant dessus et que ça s'ouvre en plein écran. Je suis flemmard et je ne veux pas appuyer sur F après avoir ouvert le fichier. Avec tous les autres lecteurs, c'est une préférence à régler (dans un menu ou éventuellement un fichier de configuration).

Et là, on tombe sur un os. Impossible de trouver aucune configuration particulière, à part un .gconf/apps/totem/%gconf.xml inutilisable et un .gnome2/Totem/state.ini minimaliste. Le tout est visiblement mal documenté, ou du moins après avoir longtemps cherché je n'ai rien trouvé. Le menu des préférences bien sûr ne sert à rien.

Le man nous dit qu'il existe une option --fullscreen, mais uniquement pour Passer en plein écran une instance existante de Totem. Bon... Mal barrée cette histoire.

Et là, l'idée : créer un fichier /usr/local/bin/totem, qui sera systématiquement lancé à la place de l'original /usr/bin/totem, et y mettre ce qui va bien :

#!/bin/bash
 
[ "$TERM" != xterm ] && /usr/bin/totem $* || /usr/bin/totem "$*" &
sleep 1
/usr/bin/totem --fullscreen

Explications :

  1. On lance /usr/bin/totem avec tous les arguments qu'on lui passe (en particulier, les noms de fichiers). Il faut échapper les noms si on lance totem en console, c'est pour ça que c'est un poil compliqué.
  2. On attend une seconde, le temps que totem ait démarré. Sur une machine qui met un peu plus de temps, il faut rallonger...
  3. On passe en plein écran.

C'est améliorable, je prends toute idée utile...

Edit 10 jours plus tard : J'avais oublié qu'il y a deux façon de prendre tous les arguments d'un script : "$*" concatène tout le monde entre des guillemets, on ne voit plus qu'un «mot»; "$@" met chaque argument entre des guillemets et les sépare par une espace, on voit le bon nombre de «mots». Il suffit donc de faire :

#!/bin/bash
 
/usr/bin/totem "$@" &
sleep 1
/usr/bin/totem --fullscreen