Re #4448
If the service "Touch Keyboard and Handwriting Service" is not available, a notice should be displayed with a link to a README or the open unresolved issue.
I鈥檓 not sure Terminal can really detect this unless it鈥檚 running as administrator 鈽癸笍
In Windows 10.0.19041.508, the security descriptor of TabletInputService grants INTERACTIVE (IU) these access rights on the service:
I imagine Windows Terminal would normally have INTERACTIVE in its token. SERVICE_QUERY_CONFIG lets QueryServiceConfig check whether the service is disabled. SERVICE_QUERY_STATUS lets QueryServiceStatus check whether the service is running. If Windows Terminal cannot open the service control manager or the service for some reason, then just write telemetry and don't warn the user.
C:\>sc.exe GetDisplayName TabletInputService
[SC] GetServiceDisplayName SUCCESS
Name = Touch Keyboard and Handwriting Panel Service
C:\>sc.exe sdshow TabletInputService
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RP;;;WD)
C:\>sc.exe qc TabletInputService
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: TabletInputService
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINDOWS\System32\svchost.exe -k LocalSystemNetworkRestricted -p
LOAD_ORDER_GROUP : PlugPlay
TAG : 0
DISPLAY_NAME : Touch Keyboard and Handwriting Panel Service
DEPENDENCIES : RpcSs
SERVICE_START_NAME : LocalSystem
C:\>sc.exe query TabletInputService
SERVICE_NAME: TabletInputService
TYPE : 30 WIN32
STATE : 4 RUNNING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
More docs
I'm usually against stuff like this, because we have no way of knowing all of the random conditions that _might_ result in an issue. If we try to detect them all and provide UI about it, we'll go mad.
This one, however. This one comes up routinely. This one comes up enough that we should use an InfoBar or something more obtrusive and smack the user with a warning that terminal won't work properly for them.
We can, by necessity, only do this in the Win32 builds (not the UWP builds)... but I'm betting that's the only place there's an issue :smile:
Thanks for the suggestion, and thanks @KalleOlaviNiemitalo for the research.
:tada:This issue was addressed in #8095, which has now been successfully released as Windows Terminal v1.4.3141.0.:tada:
Handy links:
:tada:This issue was addressed in #8095, which has now been successfully released as Windows Terminal Preview v1.5.3142.0.:tada:
Handy links:
Is there any way to turn off the warning? I'm aware of the issue, but it works fine for me with the service off and I don't want to have to click past the warning every time
Is there any way to turn off the warning?
Windows Terminal has no such setting. According to https://github.com/microsoft/terminal/pull/8095#issuecomment-718909607, you are expected to leave the service enabled.
Hypothetically, if Windows Terminal were not able to open the service for SERVICE_QUERY_STATUS access, then that would disable the warning. I can think of a few ways to achieve that but they seem likely to cause problems elsewhere.
Is there any way to turn off the warning? I'm aware of the issue, but it works fine for me with the service off and I don't want to have to click past the warning every time
I would really appreciate that too.
I have the service in question disabled for a reason: enabling it makes keyboard lag unbearable(*). And I don't use touch text input anyway, so there's no reason to leave it enabled.
(*): Unsurprising: the service causes ctfmon.exe to be started and stopped every time a key is pressed. Solving that would be even better than a no-warning flag...
Most helpful comment
Is there any way to turn off the warning? I'm aware of the issue, but it works fine for me with the service off and I don't want to have to click past the warning every time