summaryrefslogtreecommitdiff
path: root/lulua/optimize.py
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2019-09-29 08:27:31 +0200
committerLars-Dominik Braun <lars@6xq.net>2019-09-29 08:27:31 +0200
commit190937bd2f5660ae8db71456ddbf5de22e9bc608 (patch)
tree67793f2dc5c8cca3bb2b2fcd0abd2503440b2c92 /lulua/optimize.py
parentbc0bd6a2f4a10516e89d3af1ea38e8203219fdff (diff)
downloadlulua-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.py11
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):