This adds sneaking and familiar movement with modifier keys, to match the behavior of other front ends (and as suggested in #181).
This also refactors the code to allow unit testing without having to fight mocking half the system. This requires introducing helper functions which can be mocked in order to test behavior on different platforms, but it works.
This adds sneaking and familiar movement with modifier keys, to match the behavior of other front ends (and as suggested in #181).
This also refactors the code to allow unit testing without having to fight mocking half the system. This requires introducing helper functions which can be mocked in order to test behavior on different platforms, but it works.