Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

N'oubliez pas de cocher la case « Ajustement pour l'heure d'été » dans votre profil.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 14/04/2018, à 11:19

ROYALnb

[Résolu] Récupérer nom d'une fenêtre active

Bonjour,
Maintenant que je joue moins à des jeux vidéos, je songe à revenir à Ubuntu. Il y a cependant un petit script que je me suis fait en utilisant Autohotkey (sur windows uniquement donc) qui risque de me manquer.
Il se lance au démarrage de Windows, récupère en continu le titre des vidéos que je regarde avec VLC et les ajoute à un fichier texte avec la date et l'heure. Ainsi, si je veux reprendre une série plusieurs mois après je peux rapidement retrouver à quel épisode je m'étais arrêté.

Je me tourne donc vers vous aujourd'hui pour savoir comment pourrais-je faire sur Ubuntu pour arriver au même résultat ?

Voilà le script en question si besoin :

SetTitleMatchMode, RegEx

TitreAncien = Pas de titre ancien
TitreActuel = Pas de titre actuel

Loop
{
WinWaitActive, Lecteur multimédia VLC, ; Attend que VLC soit en fenêtre active
	{	
	WinGetTitle, TitreActuel, Lecteur multimédia VLC ; Récupère le nom de la fenêtre
	if (TitreActuel = TitreAncien) ; Si c'est un un nouveau nom de fenêtre l'ajoute au fichier log des vidéos avec la date et l'heure
		{
		}
	else
		{
		if (TitreActuel = "Lecteur multimédia VLC")
			{
			}
		else
			{
			TitreAncien = %TitreActuel%
			FormatTime, CurrentDateTime,, dd-MM-yy HH:mm
			FileAppend,%CurrentDateTime%	%TitreActuel%`n, D:\Documents\Log des vidéos.txt
			}
		}
	}
WinWaitNotActive, Lecteur multimédia VLC,
}

Return

Merci d'avance,

Dernière modification par ROYALnb (Le 16/04/2018, à 20:12)

Hors ligne

#2 Le 14/04/2018, à 22:54

Compte anonymisé

Re : [Résolu] Récupérer nom d'une fenêtre active

avec wmctrl ?

quelque chose comme ça ?

wmctrl -l|grep VLC

#3 Le 15/04/2018, à 16:57

ROYALnb

Re : [Résolu] Récupérer nom d'une fenêtre active

Merci de votre aide !
ps affiche tous les processus, je vois bien qu'on peut filtrer la ligne contenant VLC mais je ne pense pas qu'on puisse savoir avec cela quand VLC est en fenêtre active ou non (concernant le type de fichier ce n'est pas grave).
Avec wmctrl -l|grep VLC je peux récupérer le titre de la fenêtre de VLC mais n'arrive pas à trouver comment savoir si elle est fenêtre active ou non.
Je vois bien comment cibler la fenêtre active ou comment la fermer mais ne trouve pas comment récupérer son titre c'est frustrant !

Edit : J'ai réussi à récupérer le nom de la fenêtre active grâce à xdotool !
Me reste plus qu'à voir si j'arrive à refaire tout le reste en bash.

#!/bin/bash
if [[ "`xdotool getactivewindow getwindowname`" == *pc* ]]
	then
		echo "Bingo !"
	else
		echo "Zut !"
fi

Dernière modification par ROYALnb (Le 15/04/2018, à 20:11)

Hors ligne

#4 Le 16/04/2018, à 09:30

kholo

Re : [Résolu] Récupérer nom d'une fenêtre active

salut,
si je ne me trompe pas...
mettre le focus sur VLC

wmctrl -R VLC

si VLC n'est pas ouvert, lancer VLC

wmctrl -a vlc || vlc &

si VLC est ouvert, prendre le focus sinon lancer VLC

wmctrl -a vlc && wmctrl -R VLC || vlc &

...

En ligne

#5 Le 16/04/2018, à 20:12

ROYALnb

Re : [Résolu] Récupérer nom d'une fenêtre active

Merci kholo mais ce n'est pas vraiment ça que je voulais faire.
En tout cas c'est fait ! J'ai mon petit script de log des vidéos merci pour votre aide :3

#!/bin/bash
TitreAncien="TitreAncien"
TitreActuel="TitreActuel"
Date="Date"
log="/mon/chemin/Log des vidéos.txt"
for (( ; ; ))
do
	if [[ "`xdotool getactivewindow getwindowname`" == *VLC* ]]
		then
			TitreActuel="`xdotool getactivewindow getwindowname`"
			if [[ $TitreAncien != $TitreActuel ]]
				then
					if [[ $TitreActuel != "Lecteur multimédia VLC" ]]
						then
							TitreAncien=$TitreActuel
							Date=$(date +"%Y-%m-%d %H:%M")
							echo $Date $TitreActuel >> "$log"
						else
							echo "Tu regardes un plot"
					fi
			fi
		else
			echo "Tu ne regardes rien"
	fi
sleep 2m
done

Hors ligne