jeudi 28 mai 2009

Obtenir les accents avec un clavier QWERTY

Si comme moi vous utilisez un clavier dvorak ou bien qwerty, vous avez déjà dû être confronté au problème des accents français. Une solution consiste à remapper une des touches que vous n'utilisez pas en touche de composition. Pour ceux qui connaissent, c'est la solution employée sous Sun ou avec le mapping JLG sous Windows.
En gros, on tape Touche_De_Composition puis ' puis e et on obtient é !

Cette astuce a été trouvée sur le blog de Pierre. Un grand merci à lui pour la solution.

Il faut donc tout d'abord décider quelle touche remapper. Personnellement, j'ai choisi la touche 'End', car je ne l'utilise jamais, et qu'elle est placée pratiquement sur mon clavier. Vous pouvez cependant choisir une autre touche, comme le Shift de droite.
Il faut ensuite déterminer quel est le code de la touche que vous aurez choisi.
Pour cela lancez le petit utilitaire xev dans votre terminal préféré, puis placez votre souris sur la fenêtre qui vient de s'ouvrir, et pressez la touche de votre choix.
Vous devriez obtenir quelque chose comme:
KeyRelease event, serial 24, synthetic NO, window 0x1800001,
root 0x78, subw 0x0, time 287563212, (508,160), root:(509,843),
state 0x0, keycode 103 (keysym 0xff20, End), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Je viens d'appuyer sur la touche 'End'. Notez le keycode (103 dans mon cas), et créez un fichier .Xmodmap à votre racine (~/.Xmodmap).
Mettez-y la ligne suivante:
keycode 103 = Multi_key
Puis sauvez, et redémarrez X.

Relancez alors xev, pressez la touche, et vous devriez maintenant obtenir:
KeyRelease event, serial 24, synthetic NO, window 0x1800001,
root 0x78, subw 0x0, time 287563212, (508,160), root:(509,843),
state 0x0, keycode 103 (keysym 0xff20, Multi_key), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Vous pouvez maintenant taper vos accents:
Multi_key puis ' puis e donne é
Multi_key puis ` puis a donne à
Multi_key puis , puis c donne ç !

Easy peasy !!!

jeudi 9 avril 2009

Loi HADOPI

Grande nouvelle du jour: la loi HADOPI, censee nous proteger des gros vilains 'pirates informatiques' (revoyons tout de meme la definition d'un hacker) n'est pas passee. Le dessinateur Martin Vidberg tente de nous expliquer par un magnifique dessin sur son blog pourquoi les deputes de la majorites etaient absents lors de ce vote pourtant crucial, on s'en delecte.

vendredi 3 avril 2009

perl: est-il possible de faire une liste de descripteurs de fichiers ?

Oui, mais ca demande un petit "truc" avant d'etre utilise.

Pour une raison que j'ignore encore, on ne peut pas utiliser directement un descripteur de fichier stocke dans une liste. Il est necessaire de d'abord copier cet element de liste dans une variable temporaire, avant de l'utiliser pour les acces fichier (print entre autres).

Comme un petit dessin vaut mieux qu'un grand discours, voici un exemple de code:

use strict;
my (@liste, $liste, $tmp);

open(FILE, "> toto");
$liste[0] = \*FILE;

$tmp = $liste[0];
print($tmp "tutu\n");

close($tmp);
Voila, j'espere que ca pourra aider certains.

vendredi 20 février 2009

Ouvrir un fichier a distance avec emacs

J'aime bien travailler a distance. Rien ne vaut le confort de son fauteuil prefere pour travailler ! Le labo nous permet de passer a travers le firewall, et d'acceder a nos fichiers persos.

C'est parfait, j'ouvre mon tunnel ssh, je lance mon emacs en mode terminal, et le tour est joue... Oui, mais quel gaspillage de faire passer tout emacs a travers le tunnel pour editer un malheureux petit fichier. Pourquoi ne pas lancer emacs confortablement chez soit, et ouvrir le fichier distant ?

Et bien si, c'est possible ! La solution s'appelle TRAMP, pour Transparent Remote (file) Access, Multiple Protocol. Il s'agit d'un projet GNU, dont voici le site web: http://www.gnu.org/software/tramp/

C'est tout simplement magique.

Pour l'installer, il suffit de telecharger la tarball sur le site web (version courant en 02/2009: 2.1.15), puis:

$ cd ~/.emacs.d

$ tar -xvf tramp-2.1.15.tar.gz

$ cd tramp-2.1.15

$ ./configure --with-contrib

$ make

$ su

# make install

Il faut ensuite editer son fichier de configuration .emacs, et y ajouter les lignes suivantes:

(add-to-list 'load-path "~/.emacs.d/tramp/lisp/")
(require 'tramp)

Une fois emacs lance, il suffit d'ouvrir le fichier via:

C-x C-f /user@your.host.com:/path/to/file

Et si jamais vous avez besoin de passer a travers un port particulier, il suffira de faire:

/usr@host#port_nb:/path/to/file

Magique je vous dis !