mardi 8 décembre 2015

trouver des paquets sous debian dans un script

On a parfois besoin dans un script shell de trouver le nom exact d'un paquet disponible, ou en tout cas tous ceux qui pourraient convenir. Par exemple si on veut trouver les forth disponibles on peut utiliser :

aptitude search 'forth' -F '%p'

On peut trouver la liste des directives de format dont %p est un exemple.

Si aptitude n'est pas installé, on peut utiliser dpkg, mais il faut plus de travail autour pour avoir un résultat similaire :

dpkg -l '*forth*' | tail -n +6 | awk '{ print $2; }'

Si on n'est intéressé que par les paquets installés, on peut utiliser dpkg-query :

dpkg-query -f '${binary:Package}\n' -l '*forth*'

Exemple concret : trouver le nom du paquet à installer pour installer libmagickwand et y procéder.

lmw=$(aptitude search '~n^libmagickwand[0-9]' -F '%p' | head -1)
sudo aptitude install $lmw

vendredi 4 décembre 2015

un peu d'historique et de tenue

À la suite de la lecture de cet article, j'ai été amené à modifier mes fichiers .bashrc et .vimrc pour les rendre plus sympas. J'ai regardé un peu d'autres ressources et voilà finalement ce que j'ai ajouté à mon .bashrc

# no duplicate in history
export HISTCONTROL=ignoreboth:erasedups

# do not make noise. Also visible can cause delays.
set bell-style none

# Don't echo ^C etc (new in bash 4.1)
# Note this only works for the command line itself,
# not if already running a command.
set echo-control-characters off

# Enable coloring for tab completions with bash >= 4.3
set colored-stats on

# Note this must be done before the settings below
# Caveats:
#   Broken on bash 3.2 (can't move cursor to EOL).
#   ^L only works in command mode and when line is empty
set editing-mode vi
set -o vi

# By default up/down are bound to previous-history
# and next-history respectively. The following does the
# same but gives the extra functionality where if you
# type any text (or more accurately, if there is any text
# between the start of the line and the cursor),
# the subset of the history starting with that text
# is searched (like 4dos for e.g.).
# Note to get rid of a line just Ctrl-C
bind '"\e[B": history-search-forward'
bind '"\e[A": history-search-backward'

Et voici les ajoûts de mon .vimrc :

set bs=2
let g:is_posix=1
set listchars=tab:>-,trail:.,extends:> 

Les autres suggestions ne m'ont pas intéressé finalement. Pour vim, je n'ai pas vu grande différence pour l'instant, mais pour bash, c'est nettement mieux !

Mais pour vim j'ai aussi installé deux extensions assez chouettes :

  1. syntastic pour la coloration syntaxique ;
  2. vim-airline pour une belle ligne d'état (vim et gvim).

lundi 15 juin 2015

clavier Kensington keyfolio pro 2 pour IPad avec linux

Je viens d'acheter un tel clavier d'occasion, quasimment neuf. C'est le modèle pour iPad 10" mais il fonctionne très bien avec Android ou linux. L'image ci-dessous est en QWERTY (elle provient de the-gadgeeteer.com).

C'est un AZERTY de type Mac. Ceda signifie que l'équivalent dans le monde PC est un clavier belge. C'est presque pareil, la seule différence notable étant dans l'affectation de la touche à côté du chiffre 1 en haut. En belge, c'est le 2 et 3 en exposant. Très inutile pour presque tout le monde. En Mac, c'est <, > et \ qui sert tout le temps.

Sur un clavier belge à 105 touche, cette touche existe aussi : c'est celle à gauche du W en bas. Sauf qu'elle n'existe pas physiquement dans mon clavier Kensington ! Il faut y remédier !

La solution est de remettre la touche du haut déjà évoquée dans son usage Mac. Cela me donnera les symboles, en accord avec la gravure du clavier qui plus est !

Pour cela, il faut éditer le fichier /usr/share/X11/xkbd/symbols/be et voici la tranformation à y faire :

avant :
 key  { [twosuperior, threesuperior,  notsign,      notsign ] };

après :
  // key  { [twosuperior, threesuperior,  notsign,      notsign ] };
  key     { [less,        greater,        backslash,    backslash ] };

(j'ai recopiée la ligne de un peu plus bas et changé LSGT en TLDE).

Bon, il faut ensuite mettre le clavier belge dans les claviers supportés. On peut changer de clavier à la souris, mais c'est pas mal aussi au clavier. Je me suis donc créé deux raccourcis dans les préférences claviers :

clavier azerty
setxkbmap be
maj-F2
clavier bépo
setxkbmap fr bepo
maj-F1

Attention ! Le passage auclavier correspondant au clavier physique se fait toujours en tappant shift-F1 sur le clavier bépo ou le clavier Mac. C'est bizarre que ce ne soit pas identique. Attention encore, pour enregistrer la séquence de transition bépo vers azerty belge, il faut être en bépo et taper shift-F1 sur le clavier Mac. Et pour la séquence inverse azerty belge vers bépo il faut être en azerty et appuyer sur shift-F1 sur le clavier bépo (un typematrix 2030 dans mon cas). À noter que sur ce clavier typematrix, je peux faire shift-F2 pour passer en azerty quand je suis déjà en bépo. Je ne peux pas faire ça sur le clavier Kensington, assez logiquement (ce qui y serait la touche logique F1 est la touche escape donc pas de touche de code F1 sur ce clavier).