Trucs libres

CV
en

lundi 5 juillet 2010

Changer les tuiles dans NetHack (xnethack)

NetHack, un des meilleurs jeux qui soient.

Je trouve le thème des tuiles par défaut dans xnethack assez laid. Sous Debian / Ubuntu (paquet nethack-x11), le fichier des tuiles est obligatoirement au format XPM. Il est configuré dans le fichier /etc/X11/app-defaults/NetHack avec le xpm : /usr/share/pixmaps/nethack/x11tiles.

Le fichier doit être au format XPM, avoir une certaine taille, et pas trop de couleurs différentes, sinon le temps de chargement explose chez moi (plusieurs minutes).

Voici comment le modifier sous Debian / Ubuntu :

  1. Exemple : sur la page http://www.multifoliate.com/nh/, récupérez le fichier chozo32b.zip (lien NetHack 3.4.2 (32x32) (modified by me)). L’extraire pour obtenir chozo32b.bmp.
  2. L’ouvrir avec Gimp et le recouper à la taille 1280x864 (pour supprimer le noir inutile en bas). Vous pouvez indexer l’image en 256 couleurs puis l’enregistrer en XPM, ça fonctionne mais c’est moche.
  3. Pour avoir mieux, l’enregistrer au format PNG.
  4. Installer le paquet imagemagick, puis : convert -depth 5 chozo32b.png chozo5.png
  5. Ouvrir chozo5.png avec Gimp puis l’enregistrer au format XPM.
  6. Éditez /etc/X11/app-defaults/NetHack puis remplacez /usr/share/pixmaps/nethack/x11tiles par le chemin vers chozo5.xpm.
  7. Enfin, rechargez les ressources X : xrdb -merge /etc/X11/app-defaults/NetHack
  8. Lancez votre jeu favori : xnethack

Notes :

  • convert enregistre systématiquement les xpm en 256 couleurs, je ne sais pas pourquoi.
  • head image.xpm vous donne les première lignes du fichier XPM qui contiennent le nombre de couleurs différentes.
  • Les tuiles de Abigada sont celles par défaut dans la version IPhone de NetHack.

Liens :

lundi 24 mai 2010

Un courriel "fourre-tout" avec Exim (catch-all)

L’idée est d’avoir à disposition un ensemble d’adresses nimportequoi@pub.mondomaine.com qui redirigent toutes vers une seule boîte. Ainsi, je peux utiliser n’importe quelle adresse @pub.mondomaine.com comme alias vers ma boîte principale. De cette manière, je donne l’adresse ebay@pub.mondomaine.com chez Ebay, amazon@pub.mondomaine.com chez Amazon, et ainsi de suite.

L’avantage de cette solution est que je peux désactiver un alias si la désinscription sur le site ne suffit pas. Elle permet aussi de détecter les sites qui revendent votre adresse à d’autres sites.

En premier lieu, il faut qu’Exim écoute sur le réseau, et qu’il accepte les courriels à destination du domaine pub.mondomaine.com. Sous Debian, on place les directives suivantes dans /etc/exim4/update-exim4.conf.conf :

dc_local_interfaces='0.0.0.0'
dc_relay_domains='pub.mondomaine.com'

Note : sous Debian, à chaque démarrage d’Exim le fichier /etc/exim4/exim4.conf.template est rempli avec les variables définies dans /etc/exim4/update-exim4.conf.conf, pour produire le fichier /var/lib/exim4/config.autogenerated. Ceci afin de simplifier la configuration d’Exim dans les cas "standards".

Éditer ensuite le fichier /etc/exim4/exim4.conf.template pour ajouter un nouveau router, en tant que premier router juste en dessous de begin routers :

catchall_pub:
  driver = redirect
  domains = pub.mondomaine.com
  data = utilisateur@mondomaine.com

Le router sera appelé pour tout mail @pub.mondomaine.com. Il confie tous les mails au transport redirect qui les enverra vers l’adresse spécifiée dans data.

Enfin, on pourra ensuite utiliser un fichier /home/utilisateur/.forward pour désactiver les alias à l’aide d’un filtre Sieve ou Exim.

Références :

jeudi 20 mai 2010

Bug Brasero sous Ubuntu Lucid pour la copie de CD audio

La copie de CD audio n’est actuellement pas possible sous Ubuntu Lucid avec Brasero en raison d’un vilain bug.

Pour le contourner il faut installer cdrdao version 1.2.3, qui n’est pas encore sous forme de paquet.

Pour l’installer, on peut utiliser CheckInstall, pour faire un peu plus propre qu’un vieux make install :

tar -xjvf cdrdao-1.2.3.tar.bz2
cd cdrdao-1.2.3/
./configure
make
sudo checkinstall make install

Note : la commande make échouera peut-être à cause d’un paquet de développement manquant qu’il vous faudra installer.

CheckInstall vous crée et vous installe un beau paquet Debian.

On peut aussi utiliser cdrdao directement. Un ps axf nous donne la commande utilisée par Brasero :

cdrdao read-cd --device /dev/sr0 --read-raw --datafile /home/dooblem/brasero.toc.bin -v 2 /home/dooblem/brasero.toc

Et voila le travail !

Liens :

mardi 9 mars 2010

Clictap, ou comment transformer votre souris en télécommande

Voici un petit programme en C que j’ai écrit il y a maintenant quelques années, mais qui est bien pratique et que j’utilise encore pour regarder mes films : Clictap.

Le programme utilise les bibliothèques Xlib et Xtest pour remplacer vos boutons de souris par des touches clavier.

J’en ai créé un petit paquet Debian il y a quelques jours :

clictap_0.6-1_i386.deb

bientôt une inclusion dans les dépots officiels ?

Exemple de fichier de configuration contenant des profils pour totem, xmms, rhythmbox et mplayer :

# ClicTap configuration file
# You can copy this example to ~/.clictap.conf

# When this key is pressed, Clictap will ungrab your mouse and quit
# Examples :
# quit_key q
# quit_key ctrl+q
quit_key q

# Profile used by default
default_profile mplayer

# List of profiles
# For each profile, a set of buttons to keys translations is given,
# each translation on a separate line.
# For a translation, the first field is the set of buttons,
# the second is the set of keys.
# Buttons are specified by their numbers.
# Keys are specified by their KeySym (Key Symbols).
# To know the button numbers and KeySyms, use the xev program to test X events.
# Example :
#
# profile foo
# 	1   a
# 	2   b+c
# 	3+1 space
# 	3+2 Control_L+d

profile totem
	1 b
	2 p
	3 n
	4 Up
	5 Down

profile xmms
	1 w
	2 c
	3 b
	4 Up
	5 Down

profile rhythmbox
	1 Alt_L+Left
	2 Control_L+space
	3 Alt_L+Right
	4 Control_L+Up
	5 Control_L+Down

profile mplayer
	1 Left
	2 space
	3 Right
	4 asterisk
	5 KP_Divide

profile mplayersub
	1 x
	2 space
	3 z
	4 asterisk
	5 KP_Divide

profile test
	1 XF86AudioLowerVolume
	2 space
	3 z
	4 asterisk
	5 KP_Divide

mercredi 10 février 2010

Désactiver un service avec update-rc.d sous Debian (resiste aux mises à jour)

Sous Debian / Ubuntu, la méthode la plus connue pour supprimer un service du démarrage du système, sans désinstaller le paquet :

update-rc.d -f mysql remove

Cette commande supprime tous les liens symbolique /etc/rc*/*mysql*. Au prochain démarrage, le service ne sera pas lancé.

Problème : à la moindre mise à jour du paquet mysql (aptitude update), les liens sont créés de nouveau.

Solution : dans les dernière version, il existe les fonctions disable / enable pour la commande update-rc.d :

update-rc.d mysql disable

Utile si comme moi vous démarrez apache ou mysql seulement de temps en temps pour faire du développement Web. Utile aussi si vous faites du partage de fichiers Samba et que vous voulez lancer le démon occasionnellement.

Note : update-rc.d --help nous indique que l’API disable / enable changera peut-être à l’avenir.

Références :

mardi 7 juillet 2009

[Exim] Filtre système

Voici comment créer un filtre système dans Exim4, pour envoyer certains mails dans un script Bash.

Sous Debian, on ajoute les lignes suivantes dans /etc/exim4/exim4.conf.template :

system_filter = /etc/exim4/exim.filter
system_filter_pipe_transport = address_pipe
system_filter_user = Debian-exim

Et le filtre /etc/exim4/exim.filter contient par exemple :

if $h_subject: begins "[MyTest]" and
  $h_to: contains mytest@example.com
then
       unseen pipe /usr/local/bin/myscript.sh
endif 

Dans le script .sh, on pourra récupérer le mail complet par l’instruction :

MAIL=`cat`

Notes :

  • Le transport "address_pipe" est décrit un peu plus bas dans le fichier de configuration d’Exim.
  • Si on ne place pas la directive "system_filter_user", le script serait lancé en root, et Exim le refuse.

Lien : http://www.exim.org/exim-html-curre...

lundi 29 juin 2009

[Apache] Liste des virtualhosts sous Debian

Pour faire un test de configuration tout en listant les virtualhosts Apache, utiliser la commande :

apache2ctl -S

Ne pas utiliser la commande apache2 -S qui ne lira pas le contenu de /etc/apache2/envvars, et affichera donc l’erreur :

# apache2 -S
apache2: bad user name ${APACHE_RUN_USER}

Références :

mardi 10 mars 2009

Changer le terminal et le navigateur dans LXDE

Le fichier de configuration du panel se trouve dans ~/.config/lxpanel/LXDE/panels/panel

Les lanceurs sont dans /usr/share/applications/lxde*.desktop

Il faut changer les alternatives Debian. En root taper :

update-alternatives --config x-terminal-emulator
update-alternatives --config x-www-browser