Here is a list of stuff that needs to be done to improve this.
- Detect screens with offsets. - DONE
- Detect touch devices. - DONE
- Record state. - DONE
- Notice new screen. - DONE
- Notice new touch device. - DONE
- Automatically associate new touch device with recent unassociated screen. - DONE
- Calibrate each touch device with its associated screen. - DONE
- Remove hard-coded path to persistent state. - DONE
- Documentation - DONE
- Unit tests.
- Make installation easy.
pip install
? - DONE - Any bug fixes.
I've ordered them roughly in my order of preference, but feel free to take what ever interests you. If you see anything nissing, you're welcomme to add it.
- Add more/better exception handeling.
- Better handle state when a screen has been connected, but not configured yet. Eg
HDMI-1 connected
. For clues, start here.
- Better handle state when a screen has been connected, but not configured yet. Eg
- Graceful failure.
- Better identification of the touch panel. At the moment the whole thing will break if it gets a different ID in the future, which is a very real possibility, especially if devices are plugged in in a different order. Name by itself isn't a viable solution, because it won't tolerate duplicates.
- Abstract functionality functionality better.
- Improve the code that harvests data about the screens and touch panels. See TODOs inline in the code.
- Better commandline interaction.
- Make able to run as a service.
- DBUS integration.
- New Screen.
- New Touchpannel.
- Change resolution.
- Change layout.
- Change orientation. - Assumptions may need to be changed at this point.
- Add polling as another option as well?
- DBUS integration.
- Install as KDE service.
- Intrgrations with other desktop managers.
- Documentation.
- How to fix it when niceTouch gets it wrong.
- Make code more pythonic.
- Make optional to guess in ambiguous situations (Eg multiple touch interfaces permanently attached.)
- Improve guessing.
- Default associations with brands/models.
- Prioritise device order?
- Other clues?