PROJET AUTOBLOG


EauLand

Archivé

source: EauLand

⇐ retour index

Désactiver compiz pour lancer un jeu vidéo voir une vidéo

lundi 10 mai 2010 à 01:38
Désactiver compiz pour lancer un jeu vidéo voir une vidéo

Les pilotes poulsbo sont très mal pris en charge sur linux voir pas pris en charge pour les dernières versions de Xorg.
Il est comme même possible d'utiliser les effets 3D du bureau avec compiz néanmoins la lecture d'une vidéo voir certains "petits" jeux (et programmes comme Google Earth) peut se révéler chaotique. Il est possible d'utiliser une parade qui consiste à désactiver les effets du bureau au lancement des applications problématiques, bien sûr on pourrait utiliser fusion-icon et faire ça manuellement mais cela n'est vraiment pas pratique et encombre la zone de notification pour pas grand chose. L'astuce est la suivante:

En me basant sur le script Compiz fusion et les jeux 3D qui notons si on lance 2 fois une application réactive compiz..., mon script ne permet pas se genre de légèreté, même si c'est un peu barbare...

Installation manuelle
Créons un fichier dans /usr/bin


sudo nano /usr/bin/cponoff

 
Et copions le contenu de ce script:


#!/bin/bash
#Vérifier pour une utilisation avec les applications: vlc, totem ou un jeu.
#Vérifier pour une utilisation avec des fichiers: audios ou vidéos.

#set -xv

titre="Cponoff"
texte_off="Cponoff a désactivé compiz pour lire votre vidéo"
texte_on="Cponoff a réactivé compiz..."
erreur="Une instance est déjà ouverte.\nFermez les applications utilisant cponoff et recommencez."

application=$1
fichier=$2
nom=${fichier%.*}
ext=${fichier#$nom}
ext=`echo $ext | sed 's/\.//g'`
compiz=`ps -ef | grep 'compiz' | grep -v grep`

cponoff_()
{
if [ "$compiz" != "" ]; then
composite=`cat $HOME/.gconf/apps/metacity/general/%gconf.xml | \
grep compositing_manager | \
sed "s#^.*value=\"\(.*\)\"/>#\1#"`
if [ "$composite" == "true" ]; then
comp_act=on
gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager false
else
comp_act=off
fi
metacity --replace&
sleep 5
if [ "$icone" ]; then
notify-send -t 20000 -i "$icone" "$titre" "$texte_off"
fi
if [ "$fichier" ]; then
$application "$fichier"
else
$application
fi
if [ "$application" = "" ]; then
sleep 1
else
compiz --replace&
if [ "$comp_act" == "on" ]; then
gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager true
fi
sleep 10
if [ "$icone" ]; then
notify-send -t 20000 -i "$icone" "$titre" "$texte_on"
fi
fi
else
if [ "$fichier" ]; then
$application "$fichier"
else
$application
fi
compiz --replace&
if [ "$comp_act" == "on" ]; then
gconftool-2 --type=Boolean --set /apps/metacity/general/compositing_manager true
fi
fi
}

if [ "$2" ]; then

## lancement d'une musique (ou ajout à la playlist)
if [ "$ext" == "raw" ] || [ "$ext" == "wav" ] || [ "$ext" == "bwf" ] || [ "$ext" == "aiff" ] || [ "$ext" == "caf" ] || [ "$ext" == "cda" ] \
|| [ "$ext" == "atrac" ] || [ "$ext" == "flac" ] \
|| [ "$ext" == "mp3" ] || [ "$ext" == "ogg" ] || [ "$ext" == "wma" ] || [ "$ext" == "au" ] || [ "$ext" == "asf" ] || [ "$ext" == "aa" ] || [ "$ext" == "aac" ] \
|| [ "$ext" == "midi" ]
then
if [ "$application" == "totem" ]; then
$application --enqueue "$fichier"
else
$application "$fichier"
fi

elif [ "$compiz" != "" ]; then

## lancement d'une vidéo
if [ "$ext" == "avi" ] || [ "$ext" == "flv" ] || [ "$ext" == "mov" ] || [ "$ext" == "moov" ] || [ "$ext" == "mpg" ] || [ "$ext" == "mpeg" ] || [ "$ext" == "vob" ] || [ "$ext" == "wmv" ]
then
nom_theme=`grep icon_theme $HOME/.gconf/desktop/gnome/interface/%gconf.xml -A1 | \
tail -n1 | \
sed "s#^.*\(.*\)#\1#"` # le grep -A1 affiche une ligne de plus, le tail -n1 affiche 1 ligne à partir de la fin

if [ -d $HOME/.icons/$nom_theme ]; then
theme=$HOME/.icons/$nom_theme
else
theme=/usr/share/icons/$nom_theme
fi

chemin_icone=$theme/`cat $theme/index.theme | grep apps] | sed "s#^.*\[\(.*\)\]#\1#"`

if [ -f "$chemin_icone/$application.png" ]; then
icone="$chemin_icone/$application.png"
elif [ -f "$chemin_icone/$application.svg" ]; then
icone="$chemin_icone/$application.svg"
elif [ -f "$chemin_icone/$application.xpm" ]; then
icone="$chemin_icone/$application.xpm"
elif [ -f "/usr/share/pixmaps/$application.png" ]; then
icone="/usr/share/pixmaps/$application.png"
elif [ -f "/usr/share/pixmaps/$application.svg" ]; then
icone="/usr/share/pixmaps/$application.svg"
elif [ -f "/usr/share/pixmaps/$application.xpm" ]; then
icone="/usr/share/pixmaps/$application.xpm"
else
icone=""
fi

cponoff_ $application "$fichier" $icone
else
cponoff_ $application "$fichier"
fi
else
zenity --error --title="$titre" --text="$erreur"
fi

## lancement d'une application (en général un jeu)
else
if [ "$compiz" != "" ]; then
cponoff_ $application
else
zenity --error --title="$titre" --text="$erreur"
fi
fi

 
Comment ça marche ?

Éditer vos lanceurs du menu avec alacarte et remplacer pour totem la commande par:


cponoff totem %U

 
ou pour vlc:


cponoff vlc %U

 
Si vous lancez un jeu ou une application:


cponoff mon_application

 

Notons que si avec totem ou vlc vous lancez des mp3 via nautilus compiz ne se désactivera pas, par contre si vous lancer vlc ou totem tout seul compiz se désactivera afin de prévenir tous problèmes si vous allez ouvrir une vidéo.

Pour finir pas besoin de mettre l'argument ––enqueue à totem si vous lisez des mp3 il s’ajouteront automatiquement à votre playlist.

Convertir une image en Ascii

lundi 3 mai 2010 à 09:52

Après la lecture de ce post je me suis dis qu'il pouvait être sympa de convertir une image en Ascii néanmoins les multiples arguments empêchent de se mémoriser de la commande, c'est pourquoi j'ai décidé de rajouter une fonction dans mon ~/.bashrc


imgAscii(){
#set -xv

if [ $# -lt 3 ]; then

# récupération du nom complet de l'image (et son chemin si il existe) et de l'option (si elle existe)
if [ "$2" ]; then
if [ "$1" == --text ] || [ "$1" == --html ]; then
param="$1"
img="$2"
elif [ "$2" == --text ] || [ "$2" == --html ]; then
param="$2"
img="$1"
else
param=?
fi
else
param=0
img="$1"
fi

# vérification de la présence de l'image et de la bonne option
if [ $param == ? ]; then
echo "Paramètre de commande inconnu, vous pouvez utiliser (--text ou --html)"
elif [ ! -f "$img" ]; then
echo "L'image demandée pour la conversion est introuvable"
else

# récupération de l'extension
nom=${img#$PWD}
nom=${nom%.*}
ext=${img#$nom}

# conversion de l'image si elle n'est pas en jpg
if [ $ext != .jpg ]; then
conversion=true
convert "$img" $PWD/"$nom".jpg
img="$nom".jpg
else
conversion=false
fi

# conversions en ascii suivant les paramètres
if [ $param == --text ]; then
jp2a "$img" > "$nom".txt
elif [ $param == --html ]; then
jp2a "$img" --colors --chars=oO.: --html --fill --background=light > "$nom".html
else
jp2a --color "$img"
fi

# efface l'image convertie en jpg (si elle existe)
if [ $conversion == true ]; then
rm $img
fi

fi
else
echo "Il y a trop d'arguments..."
echo " - Si votre image comporte des espaces veuillez"
echo " entourer son chemin par des guillemets"
echo " - Vérifier vos paramètres (--html ou --text)"
fi
}

N'ayant pas trouvé quelque chose d'intéressant pour la conversion en .jpg je vous conseille de convertir votre image en html de faire une capture d'écran puis de la retoucher sur gimp.

Convertir une image en Ascii

lundi 3 mai 2010 à 08:52
Après la lecture de ce post je me suis dis qu'il pouvait être sympa de convertir une image en Ascii néanmoins les multiples arguments empêchent de se mémoriser de la commande, c'est pourquoi j'ai décidé de rajouter une fonction dans mon ~/.bashrc

[BASH linenumbers='false'] imgAscii(){ #set -xv if [ $# -lt 3 ]; then # récupération du nom complet de l'image (et son chemin si il existe) et de l'option (si elle existe)
if [ "$2" ]; then if [ "$1" == --text ] || [ "$1" == --html ]; then param="$1" img="$2" elif [ "$2" == --text ] || [ "$2" == --html ]; then param="$2" img="$1" else
param=? fi else param=0 img="$1" fi # vérification de la présence de l'image et de la bonne option
if [ $param == ? ]; then echo "Paramètre de commande inconnu, vous pouvez utiliser (--text ou --html)" elif [ ! -f "$img" ]; then echo "L'image demandée pour la conversion est introuvable" else # récupération de l'extension nom=${img#$PWD} nom=${nom%.*} ext=${img#$nom} # conversion de l'image si elle n'est pas en jpg if [ $ext != .jpg ]; then conversion=true convert "$img" $PWD/"$nom".jpg img="$nom".jpg else conversion=false fi # conversions en ascii suivant les paramètres if [ $param == --text ]; then jp2a "$img" > "$nom".txt elif [ $param == --html ]; then jp2a "$img" --colors --chars=oO.: --html --fill --background=light > "$nom".html else jp2a --color "$img" fi # efface l'image convertie en jpg (si elle existe) if [ $conversion == true ]; then rm $img fi fi else echo "Il y a trop d'arguments..." echo " - Si votre image comporte des espaces veuillez" echo " englober son chemin par des guillemets" echo " - Vérifier vos paramètres (--html ou --text)" fi } [/BASH]

Convertir une image en Ascii

lundi 3 mai 2010 à 08:52
Après la lecture de ce post je me suis dis qu'il pouvait être sympa de convertir une image en Ascii néanmoins les multiples arguments empêchent de se mémoriser de la commande, c'est pourquoi j'ai décidé de rajouter une fonction dans mon ~/.bashrc


imgAscii(){
#set -xv

if [ $# -lt 3 ]; then

# récupération du nom complet de l'image (et son chemin si il existe) et de l'option (si elle existe)
if [ "$2" ]; then
if [ "$1" == --text ] || [ "$1" == --html ]; then
param="$1"
img="$2"
elif [ "$2" == --text ] || [ "$2" == --html ]; then
param="$2"
img="$1"
else
param=?
fi
else
param=0
img="$1"
fi

# vérification de la présence de l'image et de la bonne option
if [ $param == ? ]; then
echo "Paramètre de commande inconnu, vous pouvez utiliser (--text ou --html)"
elif [ ! -f "$img" ]; then
echo "L'image demandée pour la conversion est introuvable"
else

# récupération de l'extension
nom=${img#$PWD}
nom=${nom%.*}
ext=${img#$nom}

# conversion de l'image si elle n'est pas en jpg
if [ $ext != .jpg ]; then
conversion=true
convert "$img" $PWD/"$nom".jpg
img="$nom".jpg
else
conversion=false
fi

# conversions en ascii suivant les paramètres
if [ $param == --text ]; then
jp2a "$img" > "$nom".txt
elif [ $param == --html ]; then
jp2a "$img" --colors --chars=oO.: --html --fill --background=light > "$nom".html
else
jp2a --color "$img"
fi

# efface l'image convertie en jpg (si elle existe)
if [ $conversion == true ]; then
rm $img
fi

fi
else
echo "Il y a trop d'arguments..."
echo " - Si votre image comporte des espaces veuillez"
echo " entourer son chemin par des guillemets"
echo " - Vérifier vos paramètres (--html ou --text)"
fi
}


N'ayant pas trouvé quelque chose d'intéressant pour la conversion en .jpg je vous conseille de convertir votre image en html de faire une capture d'écran puis de la retoucher sur gimp.

Créer son écran de veille avec son logo flottant

samedi 17 avril 2010 à 14:32

Pour créer son écran de veille avec son logo flottant rien de plus simple, il suffit simplement de créer un lanceur:


sudo nano /usr/share/applications/screensavers/mon_ecran_de_veille.desktop

Puis d'insérer les lignes suivantes (à adapter)


#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=mon_logo flottant
Comment=mon_logo flottant autour de l'écran
Exec=floaters /usr/share/pixmaps/mon_logo_screensaver.png
TryExec=floaters
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver
OnlyShowIn=GNOME

Il nous reste plus qu'à créer notre logo (c'est peut-être le plus compliqué)

Puis le déplacer dans le bon endroit:


sudo mv mon_logo_screensaver.png /usr/share/pixmaps/

Et mettre les bons droits sur l'image:


sudo chmod 644 /usr/share/pixmaps/mon_logo_screensaver.png