« Utilisateur:Sarcastic » : différence entre les versions
m (→rxvt-unicode) |
m (→Shell) |
||
Ligne 12 : | Ligne 12 : | ||
==Shell== | ==Shell== | ||
Alors, 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 | Alors, 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 rigolotte. | ||
===rxvt-unicode=== | ===rxvt-unicode=== |
Version du 16 août 2008 à 04:29
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, 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 rigolotte.
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 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);