diff --git a/images/icons/kbd__system_power_down.svg b/images/icons/kbd__system_power_down.svg
new file mode 100755
index 00000000..8ac0928b
--- /dev/null
+++ b/images/icons/kbd__system_power_down.svg
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/images/icons/kbd__fn--sleep.svg b/images/icons/kbd__system_sleep.svg
similarity index 100%
rename from images/icons/kbd__fn--sleep.svg
rename to images/icons/kbd__system_sleep.svg
diff --git a/images/icons/kbd__system_wake_up.svg b/images/icons/kbd__system_wake_up.svg
new file mode 100755
index 00000000..b6eb4d5a
--- /dev/null
+++ b/images/icons/kbd__system_wake_up.svg
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/shared/src/components/popover/tab/keypress/keypress-tab.component.ts b/shared/src/components/popover/tab/keypress/keypress-tab.component.ts
index c3cd947d..1c14710c 100644
--- a/shared/src/components/popover/tab/keypress/keypress-tab.component.ts
+++ b/shared/src/components/popover/tab/keypress/keypress-tab.component.ts
@@ -195,7 +195,8 @@ export class KeypressTabComponent extends Tab implements OnChanges {
}
private findScancodeOptionByScancode(scancode: number, type: KeystrokeType): Select2OptionData {
- const typeToFind: string = type === KeystrokeType.shortMedia || KeystrokeType.longMedia ? 'media' : KeystrokeType[type];
+ const typeToFind: string =
+ (type === KeystrokeType.shortMedia || type === KeystrokeType.longMedia) ? 'media' : KeystrokeType[type];
return this.findScancodeOptionBy((option: Select2OptionData) => {
const additional = option.additional;
if (additional && additional.scancode === scancode && additional.type === typeToFind) {
diff --git a/shared/src/components/popover/tab/keypress/scancodes.json b/shared/src/components/popover/tab/keypress/scancodes.json
index 73659785..cafcdb70 100644
--- a/shared/src/components/popover/tab/keypress/scancodes.json
+++ b/shared/src/components/popover/tab/keypress/scancodes.json
@@ -654,5 +654,34 @@
}
}
]
+ },
+ {
+ "text": "System Keys",
+ "children": [
+ {
+ "id": "139",
+ "text": "Power Down",
+ "additional": {
+ "type": "system",
+ "scancode": 129
+ }
+ },
+ {
+ "id": "140",
+ "text": "Sleep",
+ "additional": {
+ "type": "system",
+ "scancode": 130
+ }
+ },
+ {
+ "id": "141",
+ "text": "Wake Up",
+ "additional": {
+ "type": "system",
+ "scancode": 131
+ }
+ }
+ ]
}
]
diff --git a/shared/src/services/mapper.service.ts b/shared/src/services/mapper.service.ts
index 52473c2b..28c16cd0 100644
--- a/shared/src/services/mapper.service.ts
+++ b/shared/src/services/mapper.service.ts
@@ -10,9 +10,11 @@ export class MapperService {
private basicScanCodeTextMap: Map;
private mediaScanCodeTextMap: Map;
+ private sytemScanCodeTextMap: Map;
private basicScancodeIcons: Map;
private mediaScancodeIcons: Map;
+ private systemScancodeIcons: Map;
private nameToFileName: Map;
constructor() {
@@ -28,6 +30,9 @@ export class MapperService {
case KeystrokeType.longMedia:
map = this.mediaScanCodeTextMap;
break;
+ case KeystrokeType.system:
+ map = this.sytemScanCodeTextMap;
+ break;
default:
map = this.basicScanCodeTextMap;
break;
@@ -45,6 +50,9 @@ export class MapperService {
case KeystrokeType.longMedia:
map = this.mediaScancodeIcons;
break;
+ case KeystrokeType.system:
+ map = this.systemScancodeIcons;
+ break;
default:
map = new Map();
}
@@ -61,6 +69,9 @@ export class MapperService {
case KeystrokeType.longMedia:
map = this.mediaScancodeIcons;
break;
+ case KeystrokeType.system:
+ map = this.systemScancodeIcons;
+ break;
default:
return undefined;
}
@@ -207,6 +218,11 @@ export class MapperService {
this.mediaScanCodeTextMap.set(226, ['Mute']);
this.mediaScanCodeTextMap.set(233, ['Vol +']);
this.mediaScanCodeTextMap.set(234, ['Vol -']);
+
+ this.sytemScanCodeTextMap = new Map();
+ this.sytemScanCodeTextMap.set(129, ['Power Down']);
+ this.sytemScanCodeTextMap.set(130, ['Sleep']);
+ this.sytemScanCodeTextMap.set(131, ['Wake Up']);
}
private initScancodeIcons(): void {
@@ -227,6 +243,11 @@ export class MapperService {
this.mediaScancodeIcons.set(226, 'icon-kbd__media--mute');
this.mediaScancodeIcons.set(233, 'icon-kbd__media--vol-up');
this.mediaScancodeIcons.set(234, 'icon-kbd__media--vol-down');
+
+ this.systemScancodeIcons = new Map();
+ this.systemScancodeIcons.set(129, 'icon-kbd__system_power_down');
+ this.systemScancodeIcons.set(130, 'icon-kbd__system_sleep');
+ this.systemScancodeIcons.set(131, 'icon-kbd__system_wake_up');
}
private initNameToFileNames(): void {