diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2019-09-29 08:27:31 +0200 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2019-09-29 08:27:31 +0200 |
commit | 190937bd2f5660ae8db71456ddbf5de22e9bc608 (patch) | |
tree | 67793f2dc5c8cca3bb2b2fcd0abd2503440b2c92 /lulua/optimize.py | |
parent | bc0bd6a2f4a10516e89d3af1ea38e8203219fdff (diff) | |
download | lulua-190937bd2f5660ae8db71456ddbf5de22e9bc608.tar.gz lulua-190937bd2f5660ae8db71456ddbf5de22e9bc608.tar.bz2 lulua-190937bd2f5660ae8db71456ddbf5de22e9bc608.zip |
carpalx: Add model by Salvo et al.
Diffstat (limited to 'lulua/optimize.py')
-rw-r--r-- | lulua/optimize.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lulua/optimize.py b/lulua/optimize.py index 879f531..281f0ab 100644 --- a/lulua/optimize.py +++ b/lulua/optimize.py @@ -32,8 +32,7 @@ tqdm.get_lock().locks = [] import yaml from .layout import defaultLayouts, ButtonCombination, Layer, KeyboardLayout, GenericLayout -from .carpalx import Carpalx -from .carpalx import model01 as cmodel01 +from .carpalx import Carpalx, models, ModelParams from .writer import Writer from .util import first from .keyboard import defaultKeyboards, LetterButton @@ -147,8 +146,9 @@ class LayoutOptimizer (Annealer): triads: List[Tuple[ButtonCombination]], layout: KeyboardLayout, pins: FrozenSet[Tuple[int, Optional[Text]]], - writer: Writer): - carpalx = Carpalx (cmodel01, writer) + writer: Writer, + model: ModelParams): + carpalx = Carpalx (model, writer) super ().__init__ (LayoutOptimizerState (carpalx, buttonMap)) self.triads = triads @@ -256,6 +256,7 @@ def optimize (): parser.add_argument('-n', '--steps', type=int, default=10000, help='Number of iterations') parser.add_argument('-r', '--randomize', action='store_true', help='Randomize layout before optimizing') parser.add_argument('-p', '--pin', type=parsePin, help='Pin these layers/buttons') + parser.add_argument('-m', '--model', choices=list (models.keys()), default='mod01', help='Carpalx model') args = parser.parse_args() @@ -296,7 +297,7 @@ def optimize (): pins = [(x, keyboard[y] if y else None) for x, y in args.pin] - opt = LayoutOptimizer (buttonMap, triads, layout, pins, writer) + opt = LayoutOptimizer (buttonMap, triads, layout, pins, writer, model=models[args.model]) if args.randomize: logging.info ('randomizing initial layout') for i in range (len (buttonMap)*2): |