Forum Linux.général Terminal avec nombre de colonnes fixe, police variable

Posté par  (site web personnel) .
0
5
mai
2012

Je cherche un terminal et/ou un éditeur qui adapte la taille de sa police au nombre de colonnes, au lieu du contraire. En effet, j'utilise un gestionnaire de fenêtre pavant (tiling) donc la taille de mes fenêtres dépend de combien sont ouvertes, et je préfère avoir une plus grosse police qu'un nombre de colonnes absurde.

En attendant mieux, j'ai bricolé un truc vite fait en utilisant le fait que rxvt est scriptable en perl: à chaque redimensionnement, on choisit une taille de police adaptée. Je suis loin d'être un pro en fontes, donc la technique est probablement pas idéale. Il y a aussi des problèmes de "clignotements", probablement la nouvelle fonte qui cause un redimensionnement, etc. C'est un moche mais au moins ça part pas en boucle infinie.

# Use with
#   rxvt --perl-lib <directory> -pe <file>

# Pre-computation of font sizes for "mono $i" with $i in 8..29
my %size = (
  8 => 6.62,
  9 => 7.22,
  10 => 7.83,
  11 => 9.03,
  12 => 9.63,
  13 => 10.24,
  14 => 11.44,
  15 => 12.04,
  16 => 12.64,
  17 => 13.85,
  18 => 14.45,
  19 => 15.05,
  20 => 16.26,
  21 => 16.86,
  22 => 17.46,
  23 => 18.66,
  24 => 19.27,
  25 => 19.87,
  26 => 21.07,
  27 => 21.67,
  28 => 22.28,
  29 => 23.48 ) ;

sub optimal_size {
  my $width = $_[0] ;
  for (sort { $b <=> $a } (keys %size)) {
    return $_ if $width >= 80*$size{$_} ;
  }
  return 8 ;
}

sub on_resize_all_windows {

  my ($self,$width,$height) = @_ ;
  my $term = $self->{term} ;

  return () if $width == 0 ;

  my $size = optimal_size($width) ;
  my $font = "xft:mono-$size" ;

  if ($font ne $term->resource("font")) {
    # warn "Font size changed to $size for width $width..." ;
    # Updating the resource does not change the used font:
    #   $term->resource("font",$font);
    # Use new font (man 7 urxvt, thanks https://github.com/noah/urxvt-font)
    $term->cmd_parse("\e]710;" . $font . "\007");
  }

  ()
}

Dans vim, on peut bricoler des choses dans ce style. Mais on n'a pas accès à la taille de fenêtre, du coup j'ai essayé d'adapter progressivement la taille de la police pour voir le nombre de colonnes résultant, mais j'ai trop de problèmes de "clignotements".

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.