Contenu | Rechercher | Menus

Annonce

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.

À propos de l'équipe du forum.

#1 Le 23/03/2010, à 15:08

IfZen_c

Boot intelligent en fonction du contexte

Bonjour à tous smile

Je ne sais pas trop si je poste au bon endroit dans le forum car c'est à la fois du hardware, de la personnalisation et des trucs et astuces...

Je voudrai pouvoir définir au démarrage d'ubuntu l'exécution de certaines actions (démarrage de certains programmes, services, ou script...) en fonction du contexte dans le quel je me trouve.

Par exemple, lorsque je suis chez moi, j'ai un deuxième écran de branché, ainsi que des disques usb. Je voudrais par exemple ne lancer les programmes de sauvegarde automatiques (au démarrage du pc) uniquement si les disques en question sont branchés, ou encore changer le xorg.conf si mon deuxième est branché ou non. Un autre exemple serait: est-ce que le portable est sur secteur ou non et fonction de ça charger certains programme ou pas, ou encore suis-je relié à un réseau (lancement de pidgin, thunderbird...)

Ma question est donc la suivante : comment fait-on pour savoir si un périphérique est connecté (par exemple le disque dur, l'écran sur la prise VGA...) ? Quels sont les fichiers/variables qui gèrent ça ?
Peut-être existe-t-il déjà des logiciels pour faire ça ?

Par exemple, j'ai trouvé le paramètre qui permet de savoir si l'on est sur secteur ou batterie. L'idée serait d'étendre les "détecteurs" pour pouvoir déterminer avec plus de précision le contexte.

Merci pour vos réponses wink

Hors ligne

#2 Le 23/03/2010, à 21:11

pops

Re : Boot intelligent en fonction du contexte

salut,
j'ai ça dans mon script de sauvegarde (trouvé sur internet):

#!/bin/bash
if [ ! -e "/media/externe/backup/" ]
then
echo "Attention, le disque de sauvegarde n'est pas présent"
exit
fi

ca detecte si le dossier existe et du coup si le disque de sauvegarde est monté.
pour le reste, aucune idée.

Hors ligne

#3 Le 24/03/2010, à 10:47

IfZen_c

Re : Boot intelligent en fonction du contexte

Merci pour ta réponse.

L'idée est bonne mais moi, certains des dossiers dans /media sont permanents.

J'en profite pour donner l'info pour savoir si l'ordi est sur secteur : /sys/class/power_supply/AC/online
Si la valeur dans le fichier est de 1, alors on est sur secteur.
Pour ce qui est de la carte wifi, un petit iwconfig <interface> donne des infos dont le power (off) donc avec du traitement de chaîne de caractères ça devrait se faire... Le tx-power est aussi dispo dans un fichier dans /sys/class/net/<interface>/device/tx-power

il reste l'écran et les disques (peut être un lsusb, mais ₵a me semble pas terrible)

Si vous avez des pistes, n'hésitez pas wink

Dernière modification par IfZen_c (Le 24/03/2010, à 11:12)

Hors ligne

#4 Le 24/03/2010, à 12:00

Rvay

Re : Boot intelligent en fonction du contexte

Pourquoi changer ton xorg pour le deuxième écran ? ça existe encore le xorg sur ubuntu ? (je suis sur arch, mais j'ai l'impression que ça fait un bail qu'ils n'utilisent plus ça ...)

xrandr --output VGA1 --right LVDS1 --mode 1280x960

Tu peux faire en faire un script et puis ajouter un raccourci clavier avec compiz ou xbindkey.

Après si tu veux que ça soit automatique, modifie un peu le script, si besoin est, demande ça dans la section "console et terminal" pour les commandes nécessaires et édite ça comme une vraie astuce..

Hors ligne

#5 Le 24/03/2010, à 12:45

Tomzz

Re : Boot intelligent en fonction du contexte

Bonjour,
Pour le ou les disques j'ai peut-être une piste dans un script que j'ai fais il y a longtemps maintenant.
Je ne me souviens plus comment ça marche (fgrep?) et je n'ai pas le temps de regarder.
Alors je te livre la portion de script en l'état en espérant que ça t'aidera roll

aa="0" 
while [ "$aa" != "4" ] do
	rm /tmp/disk.txt
	fgrep "/media/Disque" /etc/mtab>/tmp/disk.txt
	if [ -s /tmp/disk.txt ]; then
		{
			df -h /media/Disque>/tmp/disk.txt
			zenity --width="450" --height="100" --text-info \
			--title="Capacités de Disque" \
			--timeout=10 \
			--filename=/tmp/disk.txt break
		}
	else
		{
			echo -e "Attention le disque /media/Disque n'est pas monté.\nVeuillez le monter maintenant, si vous ne pouvez pas\nréexecutez la sauvegarde lorsque vous pourrez,\nou créez un nouveau script avec vos nouveaux paramètres">/tmp/disk.txt
			zenity --width="450" --height="300" --text-info \
			--title="État de " \
			--filename=/tmp/disk.txt
			let "aa = $aa + 1"
			if [ "$aa" = "4" ]; then 
				{
					killall zenity
					exit 0
				} 
				fi
		}
	fi
done

Il y a des truc à simplifier, corriger ... mais ce n'est pas le propos, c'est juste pour peut-être te donner une piste.

Hors ligne

#6 Le 24/03/2010, à 13:06

Tomzz

Re : Boot intelligent en fonction du contexte

Une autre, pour l'écran.
J'ai utilisé le script ci-dessous pour redimensionner une fenêtre nautilus en fonction de la résolution écran.
Mais xdpyinfo renvoi tout un tas d'informations, alors après en jouant avec grep tout est possible...

echo $(DISPLAY=:0 xdpyinfo | grep "dimensions:")>/tmp/dimension
perl -0777ne 'print for /dimensions:(.*?)pixels/sg' /tmp/dimension>/tmp/dimensions
displ=$(cat /tmp/dimensions)
displa=$(echo "${displ}" | sed 's/ //g')

nautilus --browser --geometry="${displa}" /home/$USER/Images

Dernière modification par Tomzz (Le 24/03/2010, à 13:57)

Hors ligne

#7 Le 25/03/2010, à 10:30

IfZen_c

Re : Boot intelligent en fonction du contexte

Merci à tous pour vos réponses. Je pense qu'avec tout ça je devrais pouvoir arriver à ce que je veux. Quand j'aurai finis (ça risque de prendre un peu de temps) je posterai le résultat.

Rvay a écrit :

Pourquoi changer ton xorg pour le deuxième écran ? ça existe encore le xorg sur ubuntu ? (je suis sur arch, mais j'ai l'impression que ça fait un bail qu'ils n'utilisent plus ça ...)

Oui ça existe encore... Ben en fait depuis 9.10, X ne détecte plus dynamiquement les écrans (j'ai du rater quelquechose lors de la configuration) du coup j'ai une version pour 1 écran et une pour 2. Et le but serait qu'il change tout seul. En plus, je peux utiliser la présence de l'écran pour savoir si je suis chez moi ou non et donc charger certains programmes au démarrage ou non.

Arch m'attire pas mal comm distribution, mais bon pour l'instant j'ai pas le temps de changer... Est-ce qu'elle ne demande pas plus de temps qu'une ubuntu pour l'administration ?

Hors ligne

#8 Le 25/03/2010, à 14:27

Rvay

Re : Boot intelligent en fonction du contexte

Oui ça existe encore... Ben en fait depuis 9.10, X ne détecte plus dynamiquement les écrans (j'ai du rater quelquechose lors de la configuration) du coup j'ai une version pour 1 écran et une pour 2. Et le but serait qu'il change tout seul. En plus, je peux utiliser la présence de l'écran pour savoir si je suis chez moi ou non et donc charger certains programmes au démarrage ou non.

Autant pour moi ;-)

Arch m'attire pas mal comm distribution, mais bon pour l'instant j'ai pas le temps de changer... Est-ce qu'elle ne demande pas plus de temps qu'une ubuntu pour l'administration ?

ça prend en effet du temps à mettre en place, spécialement si tu veux une configuration personnalisée, disons une journée (je tourne avec compiz uniquement et utilise tint2, guake, ... ). Maintenant si t'installes un bureau complet gnome- kde - xfce, c'est relativement plus rapide.

Pour ce qui est de l'administration, c'est assez facile et pas très différent d'ubuntu. La seule grosse différence est le gestionnaire de paquets pacman.

Hors ligne

#9 Le 26/03/2010, à 16:12

IfZen_c

Re : Boot intelligent en fonction du contexte

smile il faudra que j'essaie donc. Et au niveau nombre de logiciels disponibles, c'est aussi fourni qu'ubuntu ?

Sinon j'ai un peu regardé xdpyinfo permet d'avoir des info sur un server X. Le but étant de changer le xorg.conf avant le lancement de X, ça ne va pas me servir.

J'ai trouvé d'autres commandes pour obtenir des infos sur le matériel: Je les poste ici en vrac, car je n'ai pas eu le temps de les essayer en détail :
lshw
lsusb
contenu de /proc (cat /proc/scsi/scsi)
dmidecode

je pense qu'avec tout ça et du grep, on devrait pouvoir savoir ce qui est branché sur l'ordi à un instant t... smile

Hors ligne