Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Avalonia #2772

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Migrate to Avalonia #2772

wants to merge 3 commits into from

Conversation

X9VoiD
Copy link
Member

@X9VoiD X9VoiD commented Jun 5, 2023

Don't mind the messy git history and weird build script changes, I'll clean it up before removing PR's draft status.

Changes

Merge all three UX projects and rename to OpenTabletDriver.UI

UX is a misnomer. It should have been UI from the very beginning.

Migrate from Eto to Avalonia

Sneak peek

image

The transparency is configurable.

image

Don't mind "Random Stuff". It was used for debugging during the very early stages.

Dark mode by default

Light mode not in scope of this PR

Tablets Overview

2023-06-06.01-36-42.mp4

While writing this PR I accidentally triggered a "tablet duplication" bug from #2601 but it just so happened that that bug helps present the new tablet overview lol.

This overview paves the way for adding custom graphics for different tablets (not that we should implement it now) and even differentiate from display tablets. It will also be used for notifying users when a tablet is "known to be there but has problems" where pre-PR it would drop it and say "No tablet detected" but here they will remain but in a disabled state. See this toggle here.

image

Due to changes coming from #2601 it is now possible to get tablets with problems to remain "detected" but in a disabled state. Also allows for disabling input processing for certain tablets if the user wanted to.

Auto-start on boot

Yep. It's finally happening. This option is only for windows for now and probably in the future as well.

Daemon will no longer launch with UI

The plan is to use another means to launch the daemon. For example, we can use Task Scheduler on Windows to launch OTD.Daemon. This is to avoid situations where accidental closing or a crash of UI also closes Daemon.

Remaining core features to implement

No merging without these.

  • Bindings
  • Filters
  • Tools

There are no plans of bringing back Configuration Editor, we're better off just improving the docs around creation of configs and parsers.

Stretch goals

Things that can be done on a future PR

  • Plugin Manager
  • Diagnostics

@gonX
Copy link
Member

gonX commented Jun 5, 2023

First

(OP propositions sound amazing, no complaints)

@jamesbt365 jamesbt365 mentioned this pull request Jun 6, 2023
@X9VoiD
Copy link
Member Author

X9VoiD commented Jul 6, 2023

Is now perfectly usable! Haven't implemented filters or tools yet, but all basic features for a usable tablet driver is already in.

(discard functionality still has some bugs)

@jamesbt365
Copy link
Member

Have not yet checked but is the device string reader present?

@X9VoiD
Copy link
Member Author

X9VoiD commented Jul 14, 2023

Only tablet configuration is present right now.

@gonX gonX added the breaking Introduces a breaking change label Aug 26, 2023
@jamesbt365 jamesbt365 added this to the v0.7.0 milestone Aug 26, 2023
@jamesbt365 jamesbt365 added enhancement New feature or request gui Affects driver GUI daemon Affects the driver itself desktop OpenTabletDriver.Desktop library, UX and Daemon use this as the core implementation. labels Aug 26, 2023
@gonX gonX added enhancement New feature or request and removed enhancement New feature or request labels Aug 26, 2023
@X9VoiD X9VoiD mentioned this pull request Sep 12, 2023
@X9VoiD
Copy link
Member Author

X9VoiD commented Oct 29, 2023

Until HidSharpCore releases a new nuget, will need to clone HidSharpCore first to the same directory as this repo then run UseLocalHidSharp script.

@gonX
Copy link
Member

gonX commented Nov 21, 2023

Assuming this will eventually match the ui-revamp-2 branch (which I've tested it on), the following issues will be fixed with this:

(checked with the GitHub filter is:open is:issue -label:configuration -label:"support request")

Fixes #3018
Fixes #2816 (superseding #2818)
Fixes #2595
Fixes #2594
Fixes #2573
Fixes #2544
Fixes #2543
Fixes #2541
Fixes #2484
Fixes #2441
Fixes #2409
Fixes #2408
Fixes #2326
Fixes #2123
Fixes #1796 since I believe the plan is to retire config editor anyway

Also likely fixes:
#2174, but I can't test from Linux
#2059
#2964 but it's a 0.6.x issue
#2406
#2407
#2591
#2592

Partially fixes #1821 as only US keycodes will be shown in the GUI, even with another keyboard input method used.

Worth revisiting with the new UI:
#2593
#2478 (scale slider, 100% = max possible with current settings)
#2438
#2434
#2413
#2405
#2404
#2361
#2285
#2257
#1965
#1955
#1947
#1763 and #1762
#1566
#830

Of course, there a bunch of other issues that will need to be opened if merging this

- Revamp tablet handling (device list changes are now handled individually rather than rebuilding from scratch)
- Migrate from Eto to Avalonia
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking Introduces a breaking change daemon Affects the driver itself desktop OpenTabletDriver.Desktop library, UX and Daemon use this as the core implementation. enhancement New feature or request gui Affects driver GUI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants