Commit Graph

303 Commits

Author SHA1 Message Date
jonasBoss
419d80dceb
AbsToAbsHandler (#440) 2022-07-25 10:55:26 +02:00
jonasBoss
3637204bff
Frontend Refactor (#375)
* Tests for the GuiEventHandler

* Implement GuiEventHandler

* tests for data manager

* Implemented data_manager

* Remove Ellipsis from type hint

* workaround for old pydantic version

* workaround for old pydantic version

* some more tests for data_manager

* Updated Data Manager

* move DeviceSelection to its own class

* Data Manager no longer listens for events

* Moved PresetSelection to its own class

* MappingListBox and SelectionLable Listen to the EventHandler

* DataManager no longer creates its own data objects in the init

* removed global reader object

* Changed UI startup

* created backend Interface

* event_handler debug logs show function which emit a event

* some cleanup

* added target selector to components

* created code editor component

* adapted autocompletion & some cleanup

* black

* connected some buttons to the event_handler

* tests for data_manager newest_preset and group

* cleanup presets and test_presets

* migrated confirm delete dialog

* backend tests

* controller tests

* add python3-gi to ci

* more dependencies

* and more ...

* Github-Actions workaround

remove this commit

* not so many permission denyed errors in test.yml

* Fix #404 (hopefully)

* revert Github-Actions workaround

* More tests

* event_handler allows for event supression

* more tests

* WIP Implement Key recording

* Start and Stop Injection

* context no longer stores preset

* restructured the RelToBtnHandler

* Simplified read_loop

* Implement async iterator for ipc.pipe

* multiple event actions

* helper now implements mapping handlers to read inputs all with async

* updated and simplified reader 

the helper uses the mapping handlers, so the reader now can be much simpler

* Fixed race condition in tests

* implemented DataBus

* Fixed a UIMapping bug where the last_error would not be deleted

* added a immutable variant of the UIMapping

* updated data_manager to use data_bus

* Uptdated tests to use the DataBus

* Gui uses DataBus

* removed EventHandler

* Renamed controller methods

* Implemented recording toggle

* implemented StatusBar

* Sending validation errors to status bar

* sending injection status to status bar

* proper preset renaming

* implemented copy preset in the data manager

* implemented copy_preset in controller

* fixed a bug where a wron selection lable would update

* no longer send invalid data over the bus, if the preset or group changes

* Implement create and delete mapping

* Allow for frontend specific mapping defaults

* implemented autoload toggle

* cleanup user_interface

* removed editor

* Docstings renaming and ordering of methods

* more simplifications to user_interface

* integrated backend into data_manager

* removed active preset

* transformation tests

* controller tests

* fix missing uinputs in gui

* moved some tests and implemented basic tests for mapping handlers

* docstring reformatting

Co-authored-by: Tobi <proxima@sezanzeb.de>

* allow for empty groups

* docstring

* fixed TestGroupFromHelper

* some work on integration tests

* test for annoying import error in tests

* testing if test_user_interface works

* I feel lucky

* not so lucky

* some more tests

* fixed but where the group_key was used as folder name

* Fixed a bug where state=NO_GRAB would never be read from the injector

* allow to stop the recorder

* working on integration tests

* integration tests

* fixed more integration tests

* updated coveragerc

* no longer attempt to record keys when injecting

* event_reader cleans up not finished tasks

* More integration tests

* All tests pass

* renamed data_bus

* WIP fixing typing issues

* more typing fixes

* added keyboard+mouse device to tests

* cleanup imports

* new read loop because the evdev async read loop can not be cancelled

* Added field to modify mapping name

* created tests for components

* even more component tests

* do component tests need a screen?

* apparently they do :_(

* created release_input switch

* Don't record relative axis when movement is slow

* show delete dialog above main window

* wip basic dialog to edit combination

* some gui changes to the combination-editor

* Simple implementation of CombinationListbox

* renamed attach_to_events method and mark as private

* shorter str() for UInputsData

* moved logic to generate readable event string from combination to event

* new mapping parameter force release timeout

this helps with the helper when recording multiple relative axis at once

* make it possible to rearange the event_combination

* more work on the combination editor

* tests for DataManager.load_event

* simplyfied test_controller

* more controller tests

* Implement input threshold in gui

* greater range for time dependent unit test

* implemented a output-axis selector

* data_manager now provides injector state

* black

* mypy

* Updated confirm cancel dialog

* created release timeout input

* implemented transformation graph

* Added sliders for gain, expo and deadzone

* fix bug where the system_mapping was overridden in each injector thread

* updated slider settings

* removed debug statement

* explicitly checking output code against None (0 is a valid code)

* usage

* Allow for multiple axis to be activated by same button

* readme

* only warn about not implemented mapping-handler

don't fail to create event-pipelines

* More accurate event names

* Allow removal of single events from the input-combination

* rename callback to notify_callback

* rename event message to selected_event

* made read_continuisly private

* typing for autocompletion

* docstrings for message_broker messages

* make components methods and propreties private

* gui spacings

* removed eval

* make some controller functions private

* move status message generation from data_manager to controller

* parse mapping errors in controller for more helpful messages

* remove system_mapping from code editor

* More component tests

* more tests

* mypy

* make grab_devices less greedy (partial mitigation for #435)

only grab one device if there are multiple which can satisfy the same mapping

* accumulate more values in test

* docstrings

* Updated status messages

* comments, docstrings, imports

Co-authored-by: Tobi <proxima@sezanzeb.de>
2022-07-23 10:53:41 +02:00
jonasBoss
88e4f0e5ba
Merge main into beta (#421) 2022-06-25 12:23:56 +02:00
jonasBoss
f955290b04
Merge branch 'main' into beta (#399) 2022-05-11 23:17:42 +02:00
sezanzeb
5d425c4caf fixed specs 2022-05-08 11:03:04 +02:00
Tobi
d13b38ee1e
Some formatting (#371)
* docstrings format

* trailing commas, comment positions

* trailing comma, unused imports
2022-04-18 13:52:59 +02:00
jonasBoss
1a2b2d7076
Refactored injection (#263) 2022-04-17 12:19:23 +02:00
Tobi
4f03a7b484
More robust log file trimming (#366) 2022-04-15 13:32:54 +02:00
Tobi
b6f26e1dfa
Asking for a python-evdev upgrade if outdated (#346) 2022-03-18 20:03:38 +01:00
Tobi
f4de4d9026
Fixed input_props unknown in UInput constructor (#344) 2022-03-18 12:16:44 +01:00
sezanzeb
6afa92b814 Removed obsolete destructor for test UInput 2022-03-17 10:44:35 +01:00
Tobi
96d36cc896
Lazy-Loading global uinputs (#339) 2022-03-17 10:32:22 +01:00
Tobi
0cac61149c
Added hold_keys, rearranged test imports, removed deprecated macro capability tracking (#320) 2022-03-03 23:42:37 +01:00
Tobi
02a17d51bd
Copy props to the forwarded UInput (#319) 2022-02-27 16:11:07 +01:00
Tobi
2badf2c5d3
Mapping media keys (#318) 2022-02-27 15:43:01 +01:00
Tobi
8f8800498c
Fixed false positive if plus-syntax in comment (#316) 2022-02-26 14:13:22 +01:00
Tobi
fcfc58287c
parse understands that strings are not macros (#315) 2022-02-26 13:44:38 +01:00
Tobi
216b9d730d
Mapping to " " caused problems, general test improvements (#314) 2022-02-26 13:26:53 +01:00
Tobi
7fcd8fb59f
Greying out the key recording toggle (#298) 2022-02-12 11:51:42 +01:00
Tobi
55227e0b5a
Changed "otherwise" to "else" in macros, added migration (#291) 2022-02-08 15:53:59 +01:00
Luna Nova
ee6b48ac32
Add github actions workflows (#267)
* Run linters and unit tests with github actions

* Reformat with black, 22.1.0 (compiled: yes)

* Remove native deps as should no longer be needed

* Remove pylint from workflows

* Remove unused Gtk dependency in test_daemon.py

* Install subset of python deps with apt-get for ci
2022-02-07 17:52:41 +01:00
sezanzeb
162e7fcbf7 Avoiding GObject dependencies for unit tests 2022-02-06 23:52:27 +01:00
jonasBoss
3732d9e1e6
#278 Fix compatability with python 3.8 (#280) 2022-02-02 12:30:09 +01:00
jonasBoss
b3e1e4ca19
Refactorings (#275) 2022-01-31 20:58:37 +01:00
sezanzeb
3fe52d9c99 Moved numlock test to integration folder, black 2022-01-31 14:02:03 +01:00
sezanzeb
1f92ac086b Avoiding some redundant calls in the GUI, improved test lags 2022-01-31 13:42:42 +01:00
sezanzeb
753ce5319f Logging process name and coloring logs based on file path 2022-01-18 21:20:42 +01:00
sezanzeb
dda3bd2d81 Removed unused imports, updated badges, updated test instructions 2022-01-18 01:08:38 +01:00
sezanzeb
271c250337 Split tests into unit and integration 2022-01-18 00:55:01 +01:00
Luna Nova
e316c6f36c
Use non-zero exit code if tests fail (#265) 2022-01-18 00:35:31 +01:00
Luna Nova
43731875ad
Use tempfiles instead of hardcoded /tmp (#264) 2022-01-18 00:32:13 +01:00
jonasBoss
5588cbf3c5
the ui no longer records keycodes if the preset is active (#257)
* the ui no longer records keycodes if the preset is active

since there can be multiple evdev devices in the same grup it was possible to record keycodes even if the injection was active. This was confusing behaviour.

* updated docstring

* fixed test_can_modify_mapping
2022-01-16 11:03:07 +01:00
sezanzeb
d6de1bbd3d One more check for invalid cwd setups 2022-01-15 15:08:05 +01:00
sezanzeb
60960aa095 Made tests in PyCharm work 2022-01-15 15:03:21 +01:00
sezanzeb
334d73b437 increased timeout for TestDBusDaemon 2022-01-14 18:55:11 +01:00
jonasBoss
3cd30c4bf3
Independent uinput (#228) 2022-01-14 18:50:57 +01:00
sezanzeb
47bcefa7f3 #109 New mapping editor with multiline input and improved autocompletion 2022-01-10 20:37:22 +01:00
sezanzeb
063e4bc8b4 Updated copyright year 2022-01-01 13:52:33 +01:00
Tobi
a2ed3696ca
Renamed to Input Remapper 2022-01-01 13:00:49 +01:00
sezanzeb
d3d1d9124f #247 Fixed autoload after rename 2021-12-31 11:59:06 +01:00
jonasBoss
4713511035
Refactored Migrations (#232)
* refactored migrations

moved migration functions to a common migrations file

* moved migration tests to test_migrations.py

* Simplify all_presets() in keymapper/migrations.py

Co-authored-by: Tobi <to.213692@protonmail.ch>

* simplifications/style improvements in migrations.py

Co-authored-by: Tobi <to.213692@protonmail.ch>

* migrations now use version number

and we have some new tests for migrations

* Added docstrings and updated migrations()

* badges, 1.2.2

Co-authored-by: Tobi <to.213692@protonmail.ch>
Co-authored-by: sezanzeb <proxima@sezanzeb.de>
2021-12-15 15:06:23 +01:00
sezanzeb
716b4bb921 #222 Showing the keycode instead of "unknown" 2021-12-02 22:43:14 +01:00
sezanzeb
ef3970f33e #197 Not attempting to autoload if no user is logged in yet 2021-11-22 23:19:59 +01:00
sezanzeb
0017531b22 #197 Lazy loading groups and system_mapping 2021-11-21 21:45:02 +01:00
sezanzeb
d3c955fe04 Renamed EventProducer to JoystickToMouse 2021-11-21 14:58:16 +01:00
sezanzeb
e13780a208 #197 Not running the SharedDict for macros in key-mapper-control 2021-11-20 13:41:34 +01:00
sezanzeb
320fd37ca7 #197 Improved logs 2021-11-20 13:20:46 +01:00
sezanzeb
a150b06748 #197 timeouts, service Requires, added key-mapper-control debug log file 2021-11-14 14:32:22 +01:00
sezanzeb
10700d8ece #200 Fix wheel macro timeout 2021-11-07 10:38:06 +01:00
sezanzeb
1d79ad369b #197 Using timeouts for calls to the daemon in key-mapper-control 2021-11-04 11:41:13 +01:00