« Utilisateur:Sarcastic » : différence entre les versions

De Disposition de clavier bépo
mAucun résumé des modifications
Ligne 1 : Ligne 1 :
Je suis un utilisateur du bépo depuis la version 0.6.5.1, et j'utilise actuellement la 1.0-rc1.
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 ?).
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 ?).


__TOC__
__TOC__

Version du 16 août 2008 à 03:10

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

Pour avoir des raccourcis potables sur le shell (retrouver C-c et C-z à leur place, les touches de déplacement comme celles reconfigurée précedemment dans Emacs, etc.), il faut aller du côté de stty pour ce qui est des divers signaux envoyés aux precessus (Donc, C-c et C-z, par exemple) et du côté de votre shell pour ce qui est des touches de déplacement.

(Peut-être qu'il y a moyen de faire tout via le shell, ce qui serait génial, vu que stty c'est pas trop fait pour ça, mais j'ai pas trouvé)

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). 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

zsh

On peut modifier les déplacements du curseurs et un tas de trucs avec la commande bindkey. Dès que j'aurai trouvé un moyen correct de déplacer les touches qui envoient des signaux au processus, je m'y attellerai peut-être.

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 supprime les annonces de hopp pour le wiki, et qui affiche les liens annoncés avec la liste d'utilisateur sur la fenêtre serveur. (Ça peut être rempli de bug, j'ai pas encore testé intensivement)

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

$VERSION = 0.2.3;
%IRSSI = (
    authors => "Sarcastic",
    name => "dehopp script",
    description => "Print url from hopp announces on #fr-dvorak-bepo",
    license => "WTFPL"
    );

sub uniq
{
    my %hash = ();
    foreach (@_)
    {
	my ($url, $user) = split(/ \(/, $_);
	push @{$hash{$url}}, $user;
    }
    return %hash;
}

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

sub dehoppify
{
    my $msg = shift;
    $msg =~ s/^New news from bepomediawiki: (.*)\)$/$1/;
    my %values = uniq split (/\) \|\| /, $msg);
    foreach my $key (keys %values)
    {
	my $user_string = "[";
	while ($#{$values{$key}} > 1)
	{
	    $user_string .= pop(@{$values{$key}}) . ", ";
	}
	$user_string .= pop (@{$values{$key}}) . "]";
	print ("dehoppify: http://www.clavier-dvorak.org/wiki/",
		    urlencode("$key"), " $user_string");
    }
}

sub sig_message_public
{
    my ($server, $msg, $nick, $address, $target) = @_;
    if ($target eq '#fr-dvorak-bepo'
	&& $nick eq 'hopp'
	&& $msg =~ /^New news from bepomediawiki: [^<>]+? \(.+?\)$/)
    {
	dehoppify $msg;
	Irssi::signal_stop();
    }
    return;
}

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