diff --git a/packages/uhk-common/src/config-serializer/config-items/index.ts b/packages/uhk-common/src/config-serializer/config-items/index.ts
index 62e04aed..d553c3ba 100644
--- a/packages/uhk-common/src/config-serializer/config-items/index.ts
+++ b/packages/uhk-common/src/config-serializer/config-items/index.ts
@@ -8,6 +8,7 @@ export * from './secondary-role-action';
export * from './macro';
export * from './module';
export * from './module-configuration';
+export * from './mouse-speed-configuration';
export * from './user-configuration';
export const SCANCODES = require('./scancodes.json');
diff --git a/packages/uhk-common/src/config-serializer/config-items/mouse-speed-configuration.ts b/packages/uhk-common/src/config-serializer/config-items/mouse-speed-configuration.ts
new file mode 100644
index 00000000..48d96e99
--- /dev/null
+++ b/packages/uhk-common/src/config-serializer/config-items/mouse-speed-configuration.ts
@@ -0,0 +1,12 @@
+export interface MouseSpeedConfiguration {
+ mouseMoveInitialSpeed: number;
+ mouseMoveAcceleration: number;
+ mouseMoveDeceleratedSpeed: number;
+ mouseMoveBaseSpeed: number;
+ mouseMoveAcceleratedSpeed: number;
+ mouseScrollInitialSpeed: number;
+ mouseScrollAcceleration: number;
+ mouseScrollDeceleratedSpeed: number;
+ mouseScrollBaseSpeed: number;
+ mouseScrollAcceleratedSpeed: number;
+}
diff --git a/packages/uhk-common/src/config-serializer/config-items/user-configuration.ts b/packages/uhk-common/src/config-serializer/config-items/user-configuration.ts
index 46e416a4..691e9661 100644
--- a/packages/uhk-common/src/config-serializer/config-items/user-configuration.ts
+++ b/packages/uhk-common/src/config-serializer/config-items/user-configuration.ts
@@ -7,8 +7,9 @@ import { ConfigSerializer } from '../config-serializer';
import { KeystrokeAction, NoneAction } from './key-action';
import { SecondaryRoleAction } from './secondary-role-action';
import { isScancodeExists } from './scancode-checker';
+import { MouseSpeedConfiguration } from './mouse-speed-configuration';
-export class UserConfiguration {
+export class UserConfiguration implements MouseSpeedConfiguration {
@assertUInt16
userConfigMajorVersion: number;
diff --git a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.html b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.html
index 93860a4c..cbc7f5c6 100644
--- a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.html
+++ b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.html
@@ -2,6 +2,23 @@
Mouse speed
+
+
+
Mouse pointer speed
@@ -32,11 +49,5 @@
(ngModelChange)="onSetPropertyValue(prop.prop, $event)">
-
\ No newline at end of file
+
+
diff --git a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.scss b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.scss
index 4d2ff84b..6a3d3c26 100644
--- a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.scss
+++ b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.scss
@@ -14,8 +14,8 @@
}
.mouse-speed-reset-button {
- display: block;
- margin-bottom: 4rem;
+ margin-bottom: 2rem;
+ margin-right: 1em;
}
.mouse-speed-setting {
@@ -25,4 +25,9 @@
margin-top: 2rem;
}
}
+
+ .placeholder {
+ height: 3rem;
+ }
+
}
diff --git a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.ts b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.ts
index fefb2658..705b0b57 100644
--- a/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.ts
+++ b/packages/uhk-web/src/app/components/device/mouse-speed/mouse-speed.component.ts
@@ -5,7 +5,7 @@ import { SetUserConfigurationValueAction } from '../../../store/actions/user-con
import { SliderPips, SliderProps } from '../../slider-wrapper/slider-wrapper.component';
import { Observable, Subscription } from 'rxjs';
import { UserConfiguration } from 'uhk-common';
-import { ResetMouseSpeedSettingsAction } from '../../../store/actions/device';
+import { ResetPcMouseSpeedSettingsAction, ResetMacMouseSpeedSettingsAction } from '../../../store/actions/device';
const MOUSE_MOVE_VALUE_MULTIPLIER = 25;
@@ -144,7 +144,11 @@ export class MouseSpeedComponent implements OnInit, OnDestroy {
}));
}
- resetToDefault() {
- this.store.dispatch(new ResetMouseSpeedSettingsAction());
+ resetToPcDefault() {
+ this.store.dispatch(new ResetPcMouseSpeedSettingsAction());
+ }
+
+ resetToMacDefault() {
+ this.store.dispatch(new ResetMacMouseSpeedSettingsAction());
}
}
diff --git a/packages/uhk-web/src/app/services/default-mouse-speeds.ts b/packages/uhk-web/src/app/services/default-mouse-speeds.ts
new file mode 100644
index 00000000..366f5268
--- /dev/null
+++ b/packages/uhk-web/src/app/services/default-mouse-speeds.ts
@@ -0,0 +1,31 @@
+import { MouseSpeedConfiguration } from 'uhk-common';
+
+export function getDefaultPcMouseSpeeds(): MouseSpeedConfiguration {
+ return {
+ mouseMoveInitialSpeed: 4,
+ mouseMoveAcceleration: 68,
+ mouseMoveDeceleratedSpeed: 8,
+ mouseMoveBaseSpeed: 32,
+ mouseMoveAcceleratedSpeed: 64,
+ mouseScrollInitialSpeed: 20,
+ mouseScrollAcceleration: 20,
+ mouseScrollDeceleratedSpeed: 10,
+ mouseScrollBaseSpeed: 20,
+ mouseScrollAcceleratedSpeed: 50
+ };
+}
+
+export function getDefaultMacMouseSpeeds(): MouseSpeedConfiguration {
+ return {
+ mouseMoveInitialSpeed: 8,
+ mouseMoveAcceleration: 180,
+ mouseMoveDeceleratedSpeed: 80,
+ mouseMoveBaseSpeed: 112,
+ mouseMoveAcceleratedSpeed: 160,
+ mouseScrollInitialSpeed: 10,
+ mouseScrollAcceleration: 10,
+ mouseScrollDeceleratedSpeed: 7,
+ mouseScrollBaseSpeed: 10,
+ mouseScrollAcceleratedSpeed: 12
+ };
+}
diff --git a/packages/uhk-web/src/app/store/actions/device.ts b/packages/uhk-web/src/app/store/actions/device.ts
index 160057d4..4df90c47 100644
--- a/packages/uhk-web/src/app/store/actions/device.ts
+++ b/packages/uhk-web/src/app/store/actions/device.ts
@@ -14,7 +14,8 @@ export enum ActionTypes {
SaveToKeyboardFailed = '[device] save to keyboard failed',
HideSaveToKeyboardButton = '[device] hide save to keyboard button',
ResetUserConfiguration = '[device] reset user configuration',
- ResetMouseSpeedSettings = '[device] reset mouse speed settings',
+ ResetPcMouseSpeedSettings = '[device] reset PC mouse speed settings',
+ ResetMacMouseSpeedSettings = '[device] reset Mac mouse speed settings',
UpdateFirmware = '[device] update firmware',
UpdateFirmwareWith = '[device] update firmware with',
UpdateFirmwareReply = '[device] update firmware reply',
@@ -113,8 +114,12 @@ export class UpdateFirmwareFailedAction implements Action {
}
}
-export class ResetMouseSpeedSettingsAction implements Action {
- type = ActionTypes.ResetMouseSpeedSettings;
+export class ResetPcMouseSpeedSettingsAction implements Action {
+ type = ActionTypes.ResetPcMouseSpeedSettings;
+}
+
+export class ResetMacMouseSpeedSettingsAction implements Action {
+ type = ActionTypes.ResetMacMouseSpeedSettings;
}
export class HardwareModulesLoadedAction implements Action {
@@ -161,7 +166,8 @@ export type Actions
| SaveToKeyboardSuccessAction
| SaveToKeyboardSuccessFailed
| HideSaveToKeyboardButton
- | ResetMouseSpeedSettingsAction
+ | ResetPcMouseSpeedSettingsAction
+ | ResetMacMouseSpeedSettingsAction
| ResetUserConfigurationAction
| UpdateFirmwareAction
| UpdateFirmwareWithAction
diff --git a/packages/uhk-web/src/app/store/effects/device.ts b/packages/uhk-web/src/app/store/effects/device.ts
index f924da31..8cc38729 100644
--- a/packages/uhk-web/src/app/store/effects/device.ts
+++ b/packages/uhk-web/src/app/store/effects/device.ts
@@ -34,7 +34,7 @@ import {
import { AppRendererService } from '../../services/app-renderer.service';
import { DeviceRendererService } from '../../services/device-renderer.service';
import { SetupPermissionErrorAction, ShowNotificationAction } from '../actions/app';
-import { AppState, deviceConnected, getRouterState } from '../index';
+import { AppState, deviceConnected, getRouterState, getUserConfiguration } from '../index';
import {
ActionTypes as UserConfigActions,
ApplyUserConfigurationFromFileAction,
@@ -169,27 +169,12 @@ export class DeviceEffects {
@Effect()
resetMouseSpeedSettings$: Observable = this.actions$
.pipe(
- ofType(ActionTypes.ResetMouseSpeedSettings),
- switchMap(() => {
- const config = this.defaultUserConfigurationService.getDefault();
- const mouseSpeedDefaultSettings = {};
- const mouseSpeedProps = [
- 'mouseMoveInitialSpeed',
- 'mouseMoveAcceleration',
- 'mouseMoveDeceleratedSpeed',
- 'mouseMoveBaseSpeed',
- 'mouseMoveAcceleratedSpeed',
- 'mouseScrollInitialSpeed',
- 'mouseScrollAcceleration',
- 'mouseScrollDeceleratedSpeed',
- 'mouseScrollBaseSpeed',
- 'mouseScrollAcceleratedSpeed'
- ];
- mouseSpeedProps.forEach(prop => {
- mouseSpeedDefaultSettings[prop] = config[prop];
- });
- return of(new LoadResetUserConfigurationAction(mouseSpeedDefaultSettings));
- })
+ ofType(
+ ActionTypes.ResetPcMouseSpeedSettings,
+ ActionTypes.ResetMacMouseSpeedSettings
+ ),
+ withLatestFrom(this.store.select(getUserConfiguration)),
+ map(([action, config]) => new LoadResetUserConfigurationAction(config))
);
@Effect() resetUserConfiguration$: Observable = this.actions$
diff --git a/packages/uhk-web/src/app/store/reducers/user-configuration.ts b/packages/uhk-web/src/app/store/reducers/user-configuration.ts
index 03f1b68f..e3c9de1e 100644
--- a/packages/uhk-web/src/app/store/reducers/user-configuration.ts
+++ b/packages/uhk-web/src/app/store/reducers/user-configuration.ts
@@ -14,8 +14,10 @@ import {
import * as KeymapActions from '../actions/keymap';
import * as MacroActions from '../actions/macro';
import * as UserConfig from '../actions/user-config';
+import * as DeviceActions from '../actions/device';
import { isValidName } from '../../util';
import { defaultLastEditKey, LastEditedKey } from '../../models';
+import { getDefaultMacMouseSpeeds, getDefaultPcMouseSpeeds } from '../../services/default-mouse-speeds';
export interface State {
userConfiguration: UserConfiguration;
@@ -31,7 +33,7 @@ export const initialState: State = {
export function reducer(
state = initialState,
- action: KeymapActions.Actions | MacroActions.Actions | UserConfig.Actions
+ action: KeymapActions.Actions | MacroActions.Actions | UserConfig.Actions | DeviceActions.Actions
): State {
switch (action.type) {
case UserConfig.ActionTypes.ApplyUserConfigurationFromFile:
@@ -52,6 +54,30 @@ export function reducer(
};
}
+ case DeviceActions.ActionTypes.ResetPcMouseSpeedSettings:
+ return {
+ ...state,
+ userConfiguration: Object.assign(
+ new UserConfiguration(),
+ {
+ ...state.userConfiguration,
+ ...getDefaultPcMouseSpeeds()
+ }
+ )
+ };
+
+ case DeviceActions.ActionTypes.ResetMacMouseSpeedSettings:
+ return {
+ ...state,
+ userConfiguration: Object.assign(
+ new UserConfiguration(),
+ {
+ ...state.userConfiguration,
+ ...getDefaultMacMouseSpeeds()
+ }
+ )
+ };
+
case KeymapActions.ActionTypes.Add:
case KeymapActions.ActionTypes.Duplicate: {
const newKeymap: Keymap = new Keymap((action as KeymapActions.AddKeymapAction).payload);