From eca7e353f9669db56e2f003880c1e32a19ff4bb8 Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Wed, 29 Dec 2021 21:43:53 -0500 Subject: [PATCH] Rewrite lookup rule man section in pythonesque pseudo code. --- keyd.1.gz | Bin 4334 -> 4322 bytes man.md | 20 ++++++++++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyd.1.gz b/keyd.1.gz index fa11c39e271e538bce8e5c1ba55cc8050d6e7ae8..5ebfeb735f2383487b44fc1d21bb9f811ab32151 100644 GIT binary patch literal 4322 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 Q)%t<@KjhulC><&Q03R@c^#A|> literal 4334 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 diff --git a/man.md b/man.md index 4cfad16..c9a6b53 100644 --- a/man.md +++ b/man.md @@ -214,16 +214,16 @@ will cause capslock to behave as meta and alt when held. In order to achieve this (un)holy union, the following lookup rules are used: - - If one or more layers is active then: - - If an explicit mapping exists within the most recently active layer: - - Use the defined mapping. - - Else: - - If the layer has one or more modifiers: - Apply the corresponding modifiers to the layout. - - Else: - Do nothing. - - Else: - Use the layout mapping. + if len(active_layers) > 0: + if key in most_recent_layer: + action = most_recent_layer[key] + else if has_modifiers(most_recent_layer): + for layer in active_layers: + activate_modifiers(layer) + + action = layout[key] + else: + action = layout[key] The upshot of all this is that things should mostly just work™. The majority of users needn't be explicitly conscious of the lookup rules