tracky-mouse 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/images/head-not-found.svg +135 -0
  2. package/images/manual-takeback.svg +127 -0
  3. package/locales/ar/translation.json +197 -202
  4. package/locales/ar-EG/translation.json +199 -0
  5. package/locales/bg/translation.json +199 -0
  6. package/locales/bn/translation.json +197 -202
  7. package/locales/ca/translation.json +199 -0
  8. package/locales/ce/translation.json +199 -0
  9. package/locales/ceb/translation.json +199 -0
  10. package/locales/cs/translation.json +199 -0
  11. package/locales/da/translation.json +199 -0
  12. package/locales/de/translation.json +197 -202
  13. package/locales/el/translation.json +199 -0
  14. package/locales/emoji/emoji-translation-notes.md +147 -0
  15. package/locales/emoji/translation.json +199 -0
  16. package/locales/en/translation.json +197 -202
  17. package/locales/eo/translation.json +199 -0
  18. package/locales/es/translation.json +197 -202
  19. package/locales/eu/translation.json +199 -0
  20. package/locales/fa/translation.json +199 -0
  21. package/locales/fi/translation.json +199 -0
  22. package/locales/fr/translation.json +197 -202
  23. package/locales/gu/translation.json +199 -0
  24. package/locales/ha/translation.json +199 -0
  25. package/locales/he/translation.json +199 -0
  26. package/locales/hi/translation.json +197 -202
  27. package/locales/hr/translation.json +199 -0
  28. package/locales/hu/translation.json +199 -0
  29. package/locales/hy/translation.json +199 -0
  30. package/locales/id/translation.json +199 -0
  31. package/locales/it/translation.json +197 -202
  32. package/locales/ja/translation.json +197 -202
  33. package/locales/jv/translation.json +199 -0
  34. package/locales/ko/translation.json +197 -202
  35. package/locales/mr/translation.json +199 -0
  36. package/locales/ms/translation.json +199 -0
  37. package/locales/nan/translation.json +199 -0
  38. package/locales/nb/translation.json +199 -0
  39. package/locales/nl/translation.json +197 -202
  40. package/locales/pa/translation.json +199 -0
  41. package/locales/pl/translation.json +199 -0
  42. package/locales/pt/translation.json +199 -0
  43. package/locales/pt-BR/translation.json +199 -0
  44. package/locales/ro/translation.json +199 -0
  45. package/locales/ru/translation.json +199 -0
  46. package/locales/sk/translation.json +199 -0
  47. package/locales/sl/translation.json +199 -0
  48. package/locales/sr/translation.json +199 -0
  49. package/locales/sv/translation.json +199 -0
  50. package/locales/sw/translation.json +199 -0
  51. package/locales/ta/translation.json +199 -0
  52. package/locales/te/translation.json +199 -0
  53. package/locales/th/translation.json +199 -0
  54. package/locales/tl/translation.json +199 -0
  55. package/locales/tr/translation.json +199 -0
  56. package/locales/tt/translation.json +199 -0
  57. package/locales/uk/translation.json +199 -0
  58. package/locales/ur/translation.json +199 -0
  59. package/locales/uz/translation.json +199 -0
  60. package/locales/vi/translation.json +199 -0
  61. package/locales/war/translation.json +199 -0
  62. package/locales/zh/translation.json +197 -202
  63. package/locales/zh-simplified/translation.json +199 -0
  64. package/package.json +2 -1
  65. package/tracky-mouse.css +72 -6
  66. package/tracky-mouse.js +327 -217
@@ -0,0 +1,199 @@
1
+ {
2
+ "api.errors.clickRequired": "必须提供 config.click",
3
+ "api.errors.configRequired": "initDwellClicking 需要配置对象",
4
+ "api.errors.functionRequired": "%0 必须是一个函数",
5
+ "api.errors.numberRequired": "%0 必须是数字",
6
+ "api.errors.retargetFromInvalidSelector": "config.retarget[%0].from 不是有效的 CSS 选择器",
7
+ "api.errors.retargetFromInvalidType": "config.retarget[%0].from 必须是 CSS 选择器字符串、Element 或函数",
8
+ "api.errors.retargetFromRequired": "必须提供 config.retarget[%0].from",
9
+ "api.errors.retargetMustBeArray": "config.retarget 必须是一个对象数组",
10
+ "api.errors.retargetToInvalidSelector": "config.retarget[%0].to 不是有效的 CSS 选择器",
11
+ "api.errors.retargetToInvalidType": "config.retarget[%0].to 必须是 CSS 选择器字符串、Element、函数或 null",
12
+ "api.errors.retargetToRequired": "必须提供 config.retarget[%0].to(也可以为 null 以忽略该元素)",
13
+ "api.errors.targetsInvalidSelector": "config.targets 不是有效的 CSS 选择器",
14
+ "api.errors.targetsMustBeSelectorString": "config.targets 必须是字符串(CSS 选择器)",
15
+ "api.errors.targetsRequired": "必须提供 config.targets(必须是 CSS 选择器)",
16
+ "cli.args.adjust.description": "按相对当前值的变化量调整某个选项。(同时输出新值,新值可能会被限制在一定范围内。)",
17
+ "cli.args.cli-lang.description": "指定 CLI 使用的语言。",
18
+ "cli.args.get.description": "输出某个选项的当前值。",
19
+ "cli.args.profile.description": "要使用的设置配置。",
20
+ "cli.args.set.description": "将某个选项设置为指定的值。(同时输出新值,新值可能会被限制在一定范围内。)",
21
+ "cli.args.start.description": "开始头部跟踪。",
22
+ "cli.args.stop.description": "停止头部跟踪。",
23
+ "cli.args.version.description": "显示版本号。",
24
+ "cli.description": "无需用手即可控制鼠标。此命令行工具用于控制正在运行的 Tracky Mouse 应用,供语音指令系统等外部程序切换 Tracky Mouse 状态并实时调整设置。",
25
+ "common.close": "关闭",
26
+ "common.fileTypeJson": "JSON",
27
+ "common.notApplicable": "N/A",
28
+ "common.warningIcon": "⚠️",
29
+ "debug.faceConvergenceScore": "面部收敛评分:",
30
+ "debug.faceTrackingScore": "面部跟踪评分:",
31
+ "debug.headTilt.pitch": "俯仰:",
32
+ "debug.headTilt.roll": "滚转:",
33
+ "debug.headTilt.yaw": "偏航:",
34
+ "debug.pointsBasedOnScore": "基于评分的点数:",
35
+ "desktop.about.description": "用摄像头控制你的电脑。",
36
+ "desktop.about.title": "关于 Tracky Mouse",
37
+ "desktop.importSettings.title": "导入设置",
38
+ "desktop.menu.edit": "编辑",
39
+ "desktop.menu.export": "导出",
40
+ "desktop.menu.exportSettings": "导出设置",
41
+ "desktop.menu.exportSettingsError": "导出设置失败。",
42
+ "desktop.menu.file": "文件",
43
+ "desktop.menu.githubRepository": "GitHub 仓库",
44
+ "desktop.menu.homePage": "主页",
45
+ "desktop.menu.import": "导入",
46
+ "desktop.menu.importBackupError": "在导入前备份当前设置失败。",
47
+ "desktop.menu.importError": "导入设置失败。",
48
+ "desktop.menu.importReadError": "读取所选文件失败。",
49
+ "desktop.menu.importSettings": "导入设置",
50
+ "desktop.menu.speech": "语音",
51
+ "desktop.menu.toggleScreenOverlayDevtools": "切换开发者工具(屏幕叠加层)",
52
+ "desktop.menu.view": "查看",
53
+ "desktop.menu.window": "窗口",
54
+ "desktop.updater.action.doNotRestartYet": "稍后",
55
+ "desktop.updater.action.download": "下载",
56
+ "desktop.updater.action.openDownloadPage": "打开下载页面",
57
+ "desktop.updater.action.remindMeLater": "稍后提醒我",
58
+ "desktop.updater.action.restartNow": "立即重启",
59
+ "desktop.updater.action.skipThisVersion": "跳过此版本",
60
+ "desktop.updater.action.updateFromGit": "从 Git 更新",
61
+ "desktop.updater.errors.checkout": "无法在本地 git 仓库中检出最新版本。可能存在未提交的更改。",
62
+ "desktop.updater.errors.fetch": "无法从 git 获取更新。",
63
+ "desktop.updater.errors.generic": "从 git 更新时发生错误。",
64
+ "desktop.updater.errors.install": "从 git 检出新版本后,安装依赖失败。",
65
+ "desktop.updater.updateAvailable.gitRepoNote": "由于这是一个 git 仓库,可以直接拉取更新。",
66
+ "desktop.updater.updateAvailable.message": "Tracky Mouse 有新版本可用:%0\n\n当前正在使用版本 %1。",
67
+ "desktop.updater.updateAvailable.title": "有可用更新",
68
+ "desktop.updater.updateFailed.title": "更新失败",
69
+ "desktop.updater.updateSuccessful.message": "已检出 %0。重启应用以使用更新后的版本。",
70
+ "desktop.updater.updateSuccessful.title": "更新成功",
71
+ "hud.pressToDisable": "按 %0 可禁用 Tracky Mouse。",
72
+ "hud.pressToEnable": "按 %0 可启用 Tracky Mouse。",
73
+ "hud.pressToToggle": "按 %0 可切换 Tracky Mouse 的启用状态。",
74
+ "hud.willResumeAfterMouseStops": "在鼠标停止移动后将恢复。",
75
+ "openCameraSettings.errors.parseKnownCameras": "无法从 localStorage 解析已知摄像头:",
76
+ "openCameraSettings.errors.sharedHeading": "无法打开摄像头设置:",
77
+ "settings.cameraSource.defaultCamera": "默认",
78
+ "settings.cameraSource.description": "选择用于头部跟踪的摄像头。",
79
+ "settings.cameraSource.description.alt1": "选择用于头部跟踪的摄像头。",
80
+ "settings.cameraSource.label": "摄像头来源",
81
+ "settings.cameraSource.numberedCamera": "摄像头 %0",
82
+ "settings.cameraSource.unavailableCamera": "摄像头不可用",
83
+ "settings.cameraSource.unavailableCameraAdjective": "不可用",
84
+ "settings.checkForUpdates.description": "启用后,Tracky Mouse 启动时会自动检查更新。",
85
+ "settings.checkForUpdates.description.alt1": "在有新的 Tracky Mouse 版本时提醒你。",
86
+ "settings.checkForUpdates.description.alt2": "在有新的 Tracky Mouse 版本可用时通知你。",
87
+ "settings.checkForUpdates.label": "检查更新",
88
+ "settings.clickingMode.description": "选择如何执行鼠标点击。",
89
+ "settings.clickingMode.dwell.description": "将光标保持在原位一小段时间以执行点击。",
90
+ "settings.clickingMode.dwell.label": "悬停点击",
91
+ "settings.clickingMode.label": "点击模式:",
92
+ "settings.clickingMode.off.description": "禁用点击。可与外部开关或自带悬停点击功能的程序配合使用。",
93
+ "settings.clickingMode.off.label": "关闭",
94
+ "settings.clickingMode.openMouthIgnoringEyes.description": "大张嘴来点击,完全忽略眼睛状态。",
95
+ "settings.clickingMode.openMouthIgnoringEyes.label": "张嘴点击(忽略眼睛)",
96
+ "settings.clickingMode.openMouthSimple.description": "大张嘴来点击。至少有一只眼睛是睁开的才能触发点击。",
97
+ "settings.clickingMode.openMouthSimple.label": "张嘴点击(简化)",
98
+ "settings.clickingMode.openMouthWithEyeModifiers.description": "大张嘴来点击。如果左眼闭合,则为右键单击;如果右眼闭合,则为中键单击。",
99
+ "settings.clickingMode.openMouthWithEyeModifiers.label": "张嘴点击(带眼睛修饰)",
100
+ "settings.clickingMode.wink.description": "闭上一只眼来点击。左眼闭合为左键点击,右眼闭合为右键点击。",
101
+ "settings.clickingMode.wink.label": "眨眼点击",
102
+ "settings.closeEyesToToggle.description": "启用后,你可以闭上双眼几秒钟来开始或停止鼠标控制。",
103
+ "settings.closeEyesToToggle.label": "闭眼开始/停止(<span style=\"border-bottom: 1px dotted;\" title=\"• 目前没有可见或可听的反馈。\n• 暂时没有可配置的长短时间来切换开启/关闭。\n• 容易受到误判眨眼的影响,尤其是向下看时。\">实验性功能</span>)",
104
+ "settings.delayBeforeDragging.description": "在开始点击时,在设定的时长内锁定鼠标移动。\n如果你在画布上绘图,可能希望关闭该功能;如果经常在点击时不小心拖动,可以适当增加该时长。",
105
+ "settings.delayBeforeDragging.description.alt1": "在开始点击时暂时锁定鼠标移动,以防止误拖动。",
106
+ "settings.delayBeforeDragging.label": "开始拖动前的延迟",
107
+ "settings.delayBeforeDragging.sliderMax": "易于点击",
108
+ "settings.delayBeforeDragging.sliderMin": "易于拖动",
109
+ "settings.dropdownDescriptionOptionsListHeading": "选项:",
110
+ "settings.headTilt.horizontalOffset.description": "当摄像头看到你的头部正对前方时,调整鼠标指针所在的位置。\n⚠️ 不推荐使用水平偏移,如有可能,请改为移动摄像头。📷",
111
+ "settings.headTilt.horizontalOffset.description.alt1": "调整水平头部倾斜的中心位置。不推荐使用;如有可能,请改为移动摄像头。",
112
+ "settings.headTilt.horizontalOffset.description.alt2": "调整水平头部倾斜的中心位置。此水平偏移不推荐使用,如有可能,请改为移动摄像头。",
113
+ "settings.headTilt.horizontalOffset.label": "水平光标偏移",
114
+ "settings.headTilt.horizontalRange.description": "控制你需要将头向左或向右倾斜多少才能移动到屏幕边缘。",
115
+ "settings.headTilt.horizontalRange.description.alt1": "使光标从屏幕一侧移动到另一侧所需的水平头部倾斜范围。",
116
+ "settings.headTilt.horizontalRange.description.alt2": "你需要将头向左、向右倾斜多少才能移动到屏幕两侧边缘。",
117
+ "settings.headTilt.horizontalRange.description.alt3": "你需要将头向左或向右倾斜多少才能移动到屏幕边缘。",
118
+ "settings.headTilt.horizontalRange.label": "水平倾斜范围",
119
+ "settings.headTilt.range.sliderMaxLargeNeckMovement": "大量颈部动作",
120
+ "settings.headTilt.range.sliderMinLittleNeckMovement": "少量颈部动作",
121
+ "settings.headTilt.verticalOffset.description": "当摄像头看到你的头部正对前方时,调整鼠标指针所在的位置。",
122
+ "settings.headTilt.verticalOffset.description.alt1": "调整垂直头部倾斜的中心位置。",
123
+ "settings.headTilt.verticalOffset.label": "垂直光标偏移",
124
+ "settings.headTilt.verticalRange.description": "控制你需要将头向上或向下倾斜多少才能移动到屏幕边缘。",
125
+ "settings.headTilt.verticalRange.description.alt1": "使光标从屏幕顶部移动到底部所需的垂直头部倾斜范围。",
126
+ "settings.headTilt.verticalRange.description.alt2": "你需要将头向上、向下倾斜多少才能移动到屏幕上下边缘。",
127
+ "settings.headTilt.verticalRange.description.alt3": "你需要将头向上或向下倾斜多少才能移动到屏幕边缘。",
128
+ "settings.headTilt.verticalRange.label": "垂直倾斜范围",
129
+ "settings.language.description": "选择 Tracky Mouse 界面使用的语言。",
130
+ "settings.language.description.alt1": "更改 Tracky Mouse 显示使用的语言。",
131
+ "settings.language.label": "语言",
132
+ "settings.mirror.description": "水平镜像摄像头画面。",
133
+ "settings.mirror.label": "镜像",
134
+ "settings.motionThreshold.description": "每帧光标需要移动的最小距离(像素)。有助于让光标彻底停下。",
135
+ "settings.motionThreshold.description.alt1": "低于此像素距离的移动将被忽略。",
136
+ "settings.motionThreshold.description.alt2": "需要移动光标的速度(像素/帧)。",
137
+ "settings.motionThreshold.label": "运动阈值",
138
+ "settings.motionThreshold.sliderMax": "稳定",
139
+ "settings.motionThreshold.sliderMin": "自由",
140
+ "settings.openCameraSettings.description": "打开所选摄像头的系统设置对话框,以调整自动对焦、自动曝光等属性。",
141
+ "settings.openCameraSettings.description.alt1": "打开摄像头的系统设置窗口,以调整亮度、对比度等属性。",
142
+ "settings.openCameraSettings.description.alt2": "打开摄像头的系统设置窗口,以调整自动对焦、自动曝光等属性。",
143
+ "settings.openCameraSettings.label": "打开摄像头设置",
144
+ "settings.pointTracking.acceleration.description": "让头部快速移动时光标相对更快,头部缓慢移动时光标相对更慢。\n有助于稳定光标。不过,当点跟踪与头部倾斜结合使用时,较低的数值可能效果更好,因为头部倾斜是线性的,你希望点跟踪与头部跟踪大致匹配,从而起到无缝自动校准的作用。",
145
+ "settings.pointTracking.acceleration.description.alt1": "较高的加速度会让头部快速移动时鼠标更快移动,头部缓慢移动时鼠标更慢移动。",
146
+ "settings.pointTracking.acceleration.description.alt2": "让头部快速移动时光标额外加速,头部缓慢移动时光标额外减速,有助于稳定光标。",
147
+ "settings.pointTracking.acceleration.label": "加速度",
148
+ "settings.pointTracking.horizontalSensitivity.description": "针对水平头部运动时光标移动的速度。",
149
+ "settings.pointTracking.horizontalSensitivity.label": "水平灵敏度",
150
+ "settings.pointTracking.smoothing.label": "平滑度",
151
+ "settings.pointTracking.verticalSensitivity.description": "针对垂直头部运动时光标移动的速度。",
152
+ "settings.pointTracking.verticalSensitivity.label": "垂直灵敏度",
153
+ "settings.runAtLogin.description": "启用后,你登录电脑时会自动启动 Tracky Mouse。",
154
+ "settings.runAtLogin.description.alt1": "使 Tracky Mouse 在你登录电脑时自动启动。",
155
+ "settings.runAtLogin.label": "登录时运行",
156
+ "settings.sections.clicking.label": "点击",
157
+ "settings.sections.cursorMovement.label": "光标移动",
158
+ "settings.sections.general.label": "常规",
159
+ "settings.sections.headTiltCalibration.label": "头部倾斜校准",
160
+ "settings.sections.pointTracking.label": "点跟踪",
161
+ "settings.sections.video.label": "视频",
162
+ "settings.shared.directionDown": "下",
163
+ "settings.shared.directionLeft": "左",
164
+ "settings.shared.directionRight": "右",
165
+ "settings.shared.directionUp": "上",
166
+ "settings.shared.sliderMaxFast": "快",
167
+ "settings.shared.sliderMaxSmooth": "平滑",
168
+ "settings.shared.sliderMinLinear": "线性",
169
+ "settings.shared.sliderMinSlow": "慢",
170
+ "settings.startEnabled.description": "启用后,Tracky Mouse 启动时会立刻开始控制光标。",
171
+ "settings.startEnabled.description.alt1": "使 Tracky Mouse 在启动时即处于启用状态。否则,你可以在准备好时手动启动。",
172
+ "settings.startEnabled.description.alt2": "使 Tracky Mouse 在启动后立即处于启用状态。",
173
+ "settings.startEnabled.description.alt3": "在启动 Tracky Mouse 后自动立即开始工作。",
174
+ "settings.startEnabled.label": "启动时启用",
175
+ "settings.swapMouseButtons.description": "交换鼠标左右键。\n如果你的系统已经交换了鼠标左右键,这会很有用。\n在需要时也可用悬停点击器来实现右键点击。",
176
+ "settings.swapMouseButtons.label": "交换鼠标按钮",
177
+ "settings.tiltInfluence.description": "在点跟踪(2D)和检测到的头部倾斜(3D)之间进行融合。\n- 设为 0% 时,仅使用点跟踪。鼠标根据摄像头视野中你脸部 2D 特征点的可见位移来移动,因此会对头部的旋转和平移都有响应。\n- 设为 100% 时,仅使用头部倾斜。它使用你面部在三维空间中的朝向估计,忽略头部的平移。注意这里进行了平滑处理,所以响应不会像点跟踪那样迅速。在此模式下,你无需通过把鼠标推到屏幕边缘来重新归中。\n- 介于两者之间时,它会像自动校准一样工作,轻微调整点跟踪以匹配头部倾斜。对于偏离根据头部倾斜所预期位置的鼠标移动,会减慢其速度,并且(只有当滑块超过 80% 时)会主动向预期位置移动。",
178
+ "settings.tiltInfluence.description.alt1": "决定光标移动是基于三维头部倾斜,还是基于摄像头画面中脸部的二维运动。",
179
+ "settings.tiltInfluence.label": "倾斜影响程度",
180
+ "settings.tiltInfluence.sliderMax": "头部倾斜(3D)",
181
+ "settings.tiltInfluence.sliderMax.alt1": "头部倾斜",
182
+ "settings.tiltInfluence.sliderMin": "点跟踪(2D)",
183
+ "settings.tiltInfluence.sliderMin.alt1": "光流",
184
+ "settings.tiltInfluence.sliderMin.alt2": "点跟踪",
185
+ "ui.camera.allowAccess": "允许访问摄像头",
186
+ "ui.camera.useDemoFootage": "使用示例视频",
187
+ "ui.camera.useMyCamera": "使用我的摄像头",
188
+ "ui.desktopAppPromo.message": "你可以使用 <a href=\"https://trackymouse.js.org/\">TrackyMouse</a> 桌面应用来控制整台电脑。",
189
+ "ui.startStopButton.start": "开始",
190
+ "ui.startStopButton.stop": "停止",
191
+ "video.errors.accessFailed": "访问摄像头时出现问题。",
192
+ "video.errors.accessFailedRetry": "访问摄像头时出现问题。请重试。",
193
+ "video.errors.cameraInUse": "网络摄像头已被占用。请确认没有其他程序正在使用摄像头。",
194
+ "video.errors.noCameraFound": "未找到摄像头。请确认已连接并启用了摄像头。",
195
+ "video.errors.permissionDenied": "权限被拒绝。请启用对摄像头的访问。",
196
+ "video.errors.previouslySelectedUnavailable": "之前选择的摄像头不可用。请在“视频 > 摄像头来源”中先选择“默认”,如有需要再选择具体的摄像头。",
197
+ "video.errors.retryAfterClosingOtherPrograms": "请确认没有其他程序正在使用摄像头,然后重试。",
198
+ "video.errors.unsupportedResolution": "网络摄像头不支持所需的分辨率。请更改设置。"
199
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tracky-mouse",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "Add facial mouse accessibility to JavaScript applications",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -49,6 +49,7 @@
49
49
  "tracky-mouse.js",
50
50
  "tracky-mouse.css",
51
51
  "locales/",
52
+ "images/",
52
53
  "lib/"
53
54
  ],
54
55
  "devDependencies": {
package/tracky-mouse.css CHANGED
@@ -1,12 +1,36 @@
1
1
  .tracky-mouse-pointer {
2
2
  z-index: 900000;
3
3
  pointer-events: none;
4
- border-radius: 50%;
5
- background-color: red;
6
- width: 20px;
7
- height: 20px;
4
+ /* background-image: url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath style='opacity:1;fill:%23ff0;stroke:%23000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:%23000' d='M5 1v29l6-6 5 7 6-3-4-6h10z'/%3E%3Cpath style='opacity:1;fill:none;stroke:%23000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:%23000' d='M5 18.978C13.157 22.5 17 16 17 16'/%3E%3Ccircle style='opacity:1;fill:%23000;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:%23000' cx='8.356' cy='13.886' r='1.726'/%3E%3Ccircle style='fill:%23000;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:%23000' cx='12.984' cy='13.836' r='1.872'/%3E%3C/svg%3E"); */
5
+ background-color: #000000;
6
+ clip-path: path('M4.5957 0.0859A1.0001 1.0001 0 0 0 4 1v29a1.0001 1.0001 0 0 0 1.707 0.707l5.1641 -5.1641l4.3145 6.0391a1.0001 1.0001 0 0 0 1.2617 0.3125l6 -3a1.0001 1.0001 0 0 0 0.3848 -1.4492L19.8691 23H28a1.0001 1.0001 0 0 0 0.6738 -1.7383L5.6738 0.2617A1.0001 1.0001 0 0 0 4.5957 0.0859Z');
7
+ width: 32px;
8
+ height: 32px;
8
9
  position: fixed;
9
- transform: translate(-50%, -50%);
10
+ transform: translate(-12.5%, -0%);
11
+ }
12
+
13
+ .tracky-mouse-pointer::after {
14
+ content: "";
15
+ position: absolute;
16
+ inset: 0;
17
+ /* mouth */
18
+ background-color: #000000;
19
+ clip-path: path('M17.5098 15.1387a1 1 0 0 0 -1.3711 0.3516c0 0 -0.8368 1.4099 -2.5937 2.4609c-1.7569 1.0511 -4.328 1.759 -8.1484 0.1094a1 1 0 0 0 -1.3145 0.5215a1 1 0 0 0 0.5215 1.3145c4.3365 1.8724 7.7649 1.0899 9.9688 -0.2285c2.2038 -1.3184 3.2891 -3.1582 3.2891 -3.1582a1 1 0 0 0 -0.3516 -1.3711z');
20
+ }
21
+
22
+ .tracky-mouse-pointer::before {
23
+ content: "";
24
+ position: absolute;
25
+ inset: 0;
26
+ /* reverse border (fill as defined by border) */
27
+ background-color: #ffff00;
28
+ clip-path: path('M6 3.2656L25.4219 21H18a1.0001 1.0001 0 0 0 -0.832 1.5547l3.3711 5.0566l-4.2227 2.1113l-4.502 -6.3047a1.0001 1.0001 0 0 0 -1.5215 -0.125L6 27.5859Z');
29
+ /* eyes */
30
+ background-image:
31
+ radial-gradient(ellipse 5.849111875% 5.849111875% at 40.576240625% 43.238415625%, #000000 80%, transparent 100%),
32
+ radial-gradient(ellipse 5.3928859375% 5.3928859375% at 26.113536874999998% 43.3944%, #000000 80%, transparent 100%);
33
+ background-repeat: no-repeat;
10
34
  }
11
35
 
12
36
  .tracky-mouse-dwell-indicator {
@@ -109,6 +133,7 @@
109
133
  .tracky-mouse-ui .tracky-mouse-label-text {
110
134
  display: inline-block;
111
135
  min-width: 150px;
136
+ margin-inline-end: 10px;
112
137
  }
113
138
 
114
139
  .tracky-mouse-ui .tracky-mouse-labeled-slider {
@@ -188,10 +213,51 @@
188
213
  text-align: center;
189
214
  color: white;
190
215
  padding: 5px;
216
+ animation: tracky-mouse-jello-vertical 1s ease 0s 1 normal none;
217
+ }
218
+
219
+ @keyframes tracky-mouse-jello-vertical {
220
+ 0% {
221
+ transform: scale3d(calc(calc(3 + 1) / 4), calc(calc(3 + 1) / 4), 1);
222
+ }
223
+
224
+ 30% {
225
+ transform: scale3d(calc(calc(3 + 0.75) / 4), calc(calc(3 + 1.25) / 4), 1);
226
+ }
227
+
228
+ 40% {
229
+ transform: scale3d(calc(calc(3 + 1.25) / 4), calc(calc(3 + 0.75) / 4), 1);
230
+ }
231
+
232
+ 50% {
233
+ transform: scale3d(calc(calc(3 + 0.85) / 4), calc(calc(3 + 1.15) / 4), 1);
234
+ }
235
+
236
+ 65% {
237
+ transform: scale3d(calc(calc(3 + 1.05) / 4), calc(calc(3 + 0.95) / 4), 1);
238
+ }
239
+
240
+ 75% {
241
+ transform: scale3d(calc(calc(3 + 0.95) / 4), calc(calc(3 + 1.05) / 4), 1);
242
+ }
243
+
244
+ 100% {
245
+ transform: scale3d(calc(calc(3 + 1) / 4), calc(calc(3 + 1) / 4), 1);
246
+ }
191
247
  }
192
248
 
193
249
  /* Screen overlay in electron app */
194
250
 
251
+ .tracky-mouse-hide-near-cursor {
252
+ position: fixed;
253
+ top: 0;
254
+ left: 0;
255
+ width: 100%;
256
+ height: 100%;
257
+ pointer-events: none;
258
+ user-select: none;
259
+ }
260
+
195
261
  #tracky-mouse-screen-overlay-message {
196
262
  color: yellow;
197
263
  position: absolute;
@@ -234,7 +300,7 @@
234
300
  right: calc(var(--height) * -1);
235
301
  }
236
302
 
237
- @keyframes tracky-mouse-screen-overlay-message-fade-out {
303
+ @keyframes tracky-mouse-fade-out {
238
304
  0% {
239
305
  opacity: 1;
240
306
  }