Utilisateur:Sarcastic

De Disposition de clavier bépo

Je suis un utilisateur du bépo depuis la version 0.6.5.1, et j'utilise actuellement la 1.0-rc1.

Pas vraiment convaincu par le bépo pour tout ce qui est programmation et shell, je pense vaguement à essayer d'autres choses, au moins pour ces domaines (Dvoraj-fr ? DSK ?).

Matériel

J'utilise un clavier Logitech Ultra Flat que je compte remplacer par un TypeMatrix. Et un trackball au pouce, de chez Logitech aussi.

Emacs

Voir ici.

Shell

Alors, pour trouver comment modifier les raccourcis dans le shell, on peut dire que j'ai carrément pataugé. En fait, y a trois éléments sur lesquels on peut intervenir : le terminal (le vrai), le shell à proprement parler (sh, bash, zsh) et l'émulateur de terminal (rxvt, xterm, uxterm, et d'autres). Et chacun a ses limitations plus ou moins rigolottes.

rxvt-unicode

Lui permet de modifier le mapping au niveau des touches ctrl. Ça permet par exemple de retrouver C-c, C-z et C-d à leurs places habituelles (Surtout C-z, en fait). Voilà un rapide replacement de ces trois là :

! C-c
URxvt.keysym.C-x:	\003
! C-z
URxvt.keysym.C-0xe9:	\032
! C-d
URxvt.keysym.C-i:	\004

Les codes en \xxx ce sont des caractères en octal. Il s'avère que les caractères de \001 à \032 (01d à 26d, si vous comptez pas encore en octal) ne sont rien d'autre que l'alphabet avec control dessus. Ça tombe bien, hein !

Il faut caser ces lignes dans le fichier ~/.Xdefaults. Les ubunteros gens peu avertis peuvent redémarrer X, mais a priori, redémarrer vos terminaux devrait suffir. Et voilà C-c, C-z et C-d duppliqués à des emplacements moins moisis que ceux offerts gracieusement par le bépo. Mais juste pour rxvt-unicode, pas pour xterm et toute la compagnie.

zsh

On peut modifier les déplacements du curseurs et un tas de trucs avec la commande bindkey. Plus ou moins en cours, selon mon humeur.

stty

Alors, le petit problème de stty c'est qu'il modifie les touches pour tous les utilisateurs et pour tous les terminaux (graphiques ou non). Et plus grand inconvénient encore, il ne marche qu'en local. Ça veut dire que si vous vous connectez en ssh à un serveur, vous trouverez les raccourcis standards.

En plus de ça, seules les lettres simples ont l'air de marcher, donc exit les lettres accentuées (et vu que l'équivalent de C-z en bépo serait C-é…).

Cette méthode est particulièrement dégueulasse, mais elle a le — faible — mérite d'exister (personnellement, je la conseille pas, et je ne l'utilise pas), et comme je l'ai tapée avant d'avoir l'idée de chercher dans urxvt, je la laisse. Voilà comment modifier les raccourcis via stty :

$ stty -a # Liste les raccourcis et les touches auxquelles ils sont attribués
$ stty intr ^X # Déplacement du C-c en C-x
$ stty susp ^B # Déplacement du C-z en C-b

XMonad

Mon fichier de configuration est tellement chaotique, que j'ose pas trop le mettre ici. Si quelqu'un demande, peut-être que je trouverai le courage de le nettoyer.

Irssi

Petit script qui affiche les liens entre doubles crochets dans la fenêtre serveur

use strict;
use vars qw($VERSION %IRSSI);
use Irssi;

$VERSION = 0.1;
%IRSSI = (
    authors => "Sarcastic",
    name => "debepify script",
    description => "Print url between [[]] on #fr-dvorak-bepo",
    license => "WTFPL"
    );

sub uniq
{
    my %hash = map { $_, 1 } @_;
    return keys %hash;
}

sub urlencode
{
    my $url = shift;
    $url =~ y/ /_/;
    $url =~ s/([^A-Za-z0-9_\/:.-])/sprintf("%%%%%02X", ord($1))/seg;
    return $url;
}

sub debepify
{
    my $msg = shift;
    my @links;
    foreach my $link (split(/\]\]/, $msg))
    {
	push @links, $1 if ($link =~ /\[\[(.+)$/);
    }
    foreach (uniq @links)
    {
	print CRAP "debepify: http://www.clavier-dvorak.org/wiki/", urlencode($_);
    }
}


sub sig_message_public
{
    my ($server, $msg, $nick, $address, $target) = @_;
    if ($target eq '#fr-dvorak-bepo'
	&& $msg =~ /\[\[[^<>]+?\]\]/)
    {
	debepify $msg;
    }
    return;
}

Irssi::signal_add ('message public', \&sig_message_public);