diff --git a/README.asciidoc b/README.asciidoc index 80628fd8f..383967da2 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -141,12 +141,12 @@ Contributors, sorted by the number of commits in descending order: * Brian Jackson * Patric Schmitz * Johannes Altmanninger +* Samir Benmendil * Regina Hug * Mathias Fussenegger * Larry Hynes * Thorsten Wißmann * Thiago Barroso Perrotta -* Samir Benmendil * Matthias Lisin * Helen Sherwood-Taylor * HalosGhost diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 36534a53e..36088137a 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -145,6 +145,7 @@ |<>|Opacity for hints. |<>|Mode to use for hints. |<>|Chars used for hint strings. +|<>|Mininum number of chars used for hint strings. |<>|Make chars in hint strings uppercase. |<>|Whether to auto-follow a hint if there's only one left. |<>|A comma-separated list of regexes to use for 'next' links. @@ -1191,6 +1192,12 @@ Chars used for hint strings. Default: +pass:[asdfghjkl]+ +[[hints-min-chars]] +=== min-chars +Mininum number of chars used for hint strings. + +Default: +pass:[1]+ + [[hints-uppercase]] === uppercase Make chars in hint strings uppercase. diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 6ecbf5dc5..6e6e0f932 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -187,14 +187,20 @@ class HintManager(QObject): chars = '0123456789' else: chars = config.get('hints', 'chars') + + min_chars = config.get('hints', 'min-chars') # Determine how many digits the link hints will require in the worst # case. Usually we do not need all of these digits for every link # single hint, so we can show shorter hints for a few of the links. - needed = math.ceil(math.log(len(elems), len(chars))) + needed = max(min_chars, math.ceil(math.log(len(elems), len(chars)))) # Short hints are the number of hints we can possibly show which are # (needed - 1) digits in length. - short_count = math.floor((len(chars) ** needed - len(elems)) / - len(chars)) + if needed > min_chars: + short_count = math.floor((len(chars) ** needed - len(elems)) / + len(chars)) + else: + short_count = 0 + long_count = len(elems) - short_count strings = [] diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 230187a91..787b6b040 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -606,6 +606,10 @@ DATA = collections.OrderedDict([ SettingValue(typ.String(minlen=2), 'asdfghjkl'), "Chars used for hint strings."), + ('min-chars', + SettingValue(typ.Int(minval=1), '1'), + "Mininum number of chars used for hint strings."), + ('uppercase', SettingValue(typ.Bool(), 'false'), "Make chars in hint strings uppercase."),