diff --git a/src/Artemis.Core/Artemis.Core.csproj b/src/Artemis.Core/Artemis.Core.csproj index 8b5c4bc83..17b364307 100644 --- a/src/Artemis.Core/Artemis.Core.csproj +++ b/src/Artemis.Core/Artemis.Core.csproj @@ -80,4 +80,10 @@ PreserveNewest + + + + PreserveNewest + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml new file mode 100644 index 000000000..bc0ebc8ef --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml @@ -0,0 +1,25 @@ + + + 1 LEDs headset + The default layout for headsets with 1 LED + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 1 LED headset + 242 + 233 + 1 + 1 + + + M0.073,0.002 L0.073,0.015 L0.293,0.937 L0.3,0.946 L0.275,0.969 L0.048,0.025z M0.925,0.001 L0.925,0.012 L0.706,0.938 L0.697,0.941 L0.729,0.97 L0.95,0.021z + 15 + 125 + 212 + 108 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml new file mode 100644 index 000000000..00a153c9b --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml @@ -0,0 +1,32 @@ + + + 2 LEDs headset + The default layout for headsets with 2 LEDs + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 2 LEDs headset + 242 + 233 + 1 + 1 + + + M0.246,0 L0.24,0.02 L0.974,0.938 L0.999,0.941 L0.916,0.965 L0.17,0.023z + 15 + 125 + 64 + 108 + + + M0.741,-0.003 L0.755,0.012 L0.026,0.937 L0.003,0.939 L0.084,0.965 L0.833,0.027z + 163 + ~ + 64 + 108 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml new file mode 100644 index 000000000..7764b9abc --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml @@ -0,0 +1,46 @@ + + + 4 LEDs headset + The default layout for headsets with 4 LEDs + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 4 LEDs headset + 242 + 233 + 1 + 1 + + + M0.241,0.001 L0.231,0.021 L0.62,1 L0.523,1 L0.153,0.056z + 15 + 125 + 64 + 54 + + + M0.62,0 L0.968,0.87 L0.992,0.886 L0.903,0.943 L0.523,0z + ~ + + + 64 + 54 + + + M0.748,0 L0.752,0.027 L0.377,1 L0.468,1 L0.837,0.053z + 163 + 125 + 64 + 54 + + + M0.377,0 L0.468,0 L0.09,0.935 L0,0.88 L0.032,0.863z + ~ + + + 64 + 54 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png new file mode 100644 index 000000000..2925ef002 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml new file mode 100644 index 000000000..8c61a0f4d --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml @@ -0,0 +1,956 @@ + + + Artemis large keyboard layout + The default layout for full sized keyboards + SpoinkyNL + Keyboard + Artemis + Artemis L keyboard + 441 + 144 + + + 7 + 18 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + +67 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 2 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 2 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 361 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + L.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml new file mode 100644 index 000000000..fe5f59f05 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml @@ -0,0 +1,964 @@ + + + Artemis large keyboard layout + The default layout for full sized keyboards + SpoinkyNL + Keyboard + Artemis + Artemis L keyboard + 441 + 144 + + + 7 + 18 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + +90.75 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 2 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 2 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 361 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + L.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml new file mode 100644 index 000000000..fd0683ee6 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml @@ -0,0 +1,800 @@ + + + Artemis tenkeyless keyboard layout + The default layout for tenkeyless keyboards + SpoinkyNL + Keyboard + Artemis + Artemis TKL keyboard + 360 + 144 + + + 7 + 19 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + 7 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 9 + 0 + 1 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 9 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 221 + 7 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + TKL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml new file mode 100644 index 000000000..ef4f1d732 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml @@ -0,0 +1,808 @@ + + + Artemis tenkeyless keyboard layout + The default layout for tenkeyless keyboards + SpoinkyNL + Keyboard + Artemis + Artemis TKL keyboard + 360 + 144 + + + 7 + 19 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + 7 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 9 + 0 + 1 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 9 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 221 + 7 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + TKL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml new file mode 100644 index 000000000..21e0f8bfb --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml @@ -0,0 +1,1016 @@ + + + Artemis XL keyboard layout + The default layout for keyboards with programmable keys + SpoinkyNL + Keyboard + Artemis + Artemis XL keyboard + 464 + 144 + + + 30 + 16 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 30 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + +67 + + + + + + + + + + + + + + + + + + + + + + 30 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 7 + 16 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 5 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 5 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 384 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + XL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml new file mode 100644 index 000000000..4da97caa7 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml @@ -0,0 +1,1024 @@ + + + Artemis XL keyboard layout + The default layout for keyboards with programmable keys + SpoinkyNL + Keyboard + Artemis + Artemis XL keyboard + 464 + 144 + + + 30 + 16 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 30 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + +90.75 + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 7 + 16 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 5 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 5 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 384 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + XL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png new file mode 100644 index 000000000..48a040795 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png new file mode 100644 index 000000000..b9d6c96ec Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png new file mode 100644 index 000000000..c00bfbe80 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/3_Hash.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/3_Hash.png new file mode 100644 index 000000000..e0bb1468e Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/3_Hash.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png new file mode 100644 index 000000000..a65a4071d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/5_Percent.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/5_Percent.png new file mode 100644 index 000000000..3065eb11d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/5_Percent.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png new file mode 100644 index 000000000..3a9b2bb3a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png new file mode 100644 index 000000000..137f74aa7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png new file mode 100644 index 000000000..f8b6b2331 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png new file mode 100644 index 000000000..b97abfbf7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png new file mode 100644 index 000000000..7ecd4d362 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/AccentGrave_Tilde.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/AccentGrave_Tilde.png new file mode 100644 index 000000000..83f3d7dfb Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/AccentGrave_Tilde.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png new file mode 100644 index 000000000..bbc50eda3 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Apostrophe_QuotationMark.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Apostrophe_QuotationMark.png new file mode 100644 index 000000000..c3e77a855 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Apostrophe_QuotationMark.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png new file mode 100644 index 000000000..df3c69164 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png new file mode 100644 index 000000000..e9fb32356 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Backspace.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Backspace.png new file mode 100644 index 000000000..8b5c8f6ec Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Backspace.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/BlackslashIso.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/BlackslashIso.png new file mode 100644 index 000000000..7d0af6756 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/BlackslashIso.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png new file mode 100644 index 000000000..9759ff65f Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/C.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/C.png new file mode 100644 index 000000000..38d4e98fc Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/C.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png new file mode 100644 index 000000000..cf2bc9435 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png new file mode 100644 index 000000000..1b340b639 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretLeft.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretLeft.png new file mode 100644 index 000000000..63cdba35f Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretLeft.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png new file mode 100644 index 000000000..e0b8b4574 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png new file mode 100644 index 000000000..d1852b4b0 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Ctrl.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Ctrl.png new file mode 100644 index 000000000..3e41272b4 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Ctrl.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/D.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/D.png new file mode 100644 index 000000000..fe58c8e9a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/D.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Delete.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Delete.png new file mode 100644 index 000000000..588db4ad9 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Delete.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png new file mode 100644 index 000000000..a0f8191b7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png new file mode 100644 index 000000000..b5eb03c71 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png new file mode 100644 index 000000000..cb970aa04 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterAnsi.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterAnsi.png new file mode 100644 index 000000000..84ecded86 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterAnsi.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png new file mode 100644 index 000000000..4b7b9da00 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png new file mode 100644 index 000000000..586c04aef Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Escape.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Escape.png new file mode 100644 index 000000000..1af00b8d2 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Escape.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F.png new file mode 100644 index 000000000..eb1919efb Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png new file mode 100644 index 000000000..4baea9a7a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F10.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F10.png new file mode 100644 index 000000000..6026250c7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F10.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F11.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F11.png new file mode 100644 index 000000000..f6a01502d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F11.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F12.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F12.png new file mode 100644 index 000000000..4c85ebb0b Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F12.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png new file mode 100644 index 000000000..d3ad5e562 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png new file mode 100644 index 000000000..d34d22ec3 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F4.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F4.png new file mode 100644 index 000000000..bcbfb1814 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F4.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png new file mode 100644 index 000000000..80ad70b92 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png new file mode 100644 index 000000000..92636fca7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png new file mode 100644 index 000000000..a154bad30 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F8.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F8.png new file mode 100644 index 000000000..69538a0ee Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F8.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png new file mode 100644 index 000000000..f0724beef Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png new file mode 100644 index 000000000..7fcd7312f Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/GreaterThan_Dot.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/GreaterThan_Dot.png new file mode 100644 index 000000000..6857bf6c0 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/GreaterThan_Dot.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png new file mode 100644 index 000000000..03129b609 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png new file mode 100644 index 000000000..142fc4e58 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Home.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Home.png new file mode 100644 index 000000000..f13d87472 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Home.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Hyphen_Underscore.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Hyphen_Underscore.png new file mode 100644 index 000000000..9e0d04aa6 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Hyphen_Underscore.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png new file mode 100644 index 000000000..1ffd1a1ce Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png new file mode 100644 index 000000000..74d2da7d9 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png new file mode 100644 index 000000000..e2cd8f150 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png new file mode 100644 index 000000000..6052850df Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png new file mode 100644 index 000000000..fe858d869 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png new file mode 100644 index 000000000..3c2cd0146 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M.png new file mode 100644 index 000000000..e446ae051 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M1.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M1.png new file mode 100644 index 000000000..8b48a5f1e Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M1.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png new file mode 100644 index 000000000..3fd6ec16a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png new file mode 100644 index 000000000..3a7e68434 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png new file mode 100644 index 000000000..ea1c7989d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M5.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M5.png new file mode 100644 index 000000000..a626b0c6a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M5.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png new file mode 100644 index 000000000..7bf0dd173 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Menu.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Menu.png new file mode 100644 index 000000000..e7277d409 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Menu.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png new file mode 100644 index 000000000..86cc37aea Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png new file mode 100644 index 000000000..34bf833f1 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num0_Ins.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num0_Ins.png new file mode 100644 index 000000000..4e97d7d7e Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num0_Ins.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png new file mode 100644 index 000000000..c14017561 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png new file mode 100644 index 000000000..29043d8d5 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png new file mode 100644 index 000000000..e0e2a4c3b Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num4.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num4.png new file mode 100644 index 000000000..99ea9a204 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num4.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num5.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num5.png new file mode 100644 index 000000000..d01b5d948 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num5.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num6.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num6.png new file mode 100644 index 000000000..eee9cab3d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num6.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png new file mode 100644 index 000000000..ba2ef84e1 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png new file mode 100644 index 000000000..2d3cbb3bf Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num9.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num9.png new file mode 100644 index 000000000..6c108c649 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num9.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png new file mode 100644 index 000000000..505aa6275 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumLock.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumLock.png new file mode 100644 index 000000000..70f7543f7 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumLock.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png new file mode 100644 index 000000000..268410cf2 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png new file mode 100644 index 000000000..31cdb61d0 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png new file mode 100644 index 000000000..b8549ee86 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageDown.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageDown.png new file mode 100644 index 000000000..38d3473f1 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageDown.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png new file mode 100644 index 000000000..7165692b8 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png new file mode 100644 index 000000000..012678088 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png new file mode 100644 index 000000000..172ff12c9 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Q.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Q.png new file mode 100644 index 000000000..cacff5049 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Q.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png new file mode 100644 index 000000000..96bfa9058 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/R.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/R.png new file mode 100644 index 000000000..d7eb69e4d Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/R.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/S.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/S.png new file mode 100644 index 000000000..54cf3b8c0 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/S.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png new file mode 100644 index 000000000..0bb90635b Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Semicolon_Colon.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Semicolon_Colon.png new file mode 100644 index 000000000..2c478d313 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Semicolon_Colon.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Shift.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Shift.png new file mode 100644 index 000000000..a36a93b0c Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Shift.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ShiftBig.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ShiftBig.png new file mode 100644 index 000000000..66b8e0231 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ShiftBig.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png new file mode 100644 index 000000000..93a46e6c2 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png new file mode 100644 index 000000000..3c5fab49a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png new file mode 100644 index 000000000..f242b6896 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketRight_CurlyBracketRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketRight_CurlyBracketRight.png new file mode 100644 index 000000000..2dd2e6053 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketRight_CurlyBracketRight.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png new file mode 100644 index 000000000..bf3abb57b Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png new file mode 100644 index 000000000..deb103414 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/U.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/U.png new file mode 100644 index 000000000..ebc2814c9 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/U.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png new file mode 100644 index 000000000..c4aded6a2 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/W.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/W.png new file mode 100644 index 000000000..cb22657c6 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/W.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png new file mode 100644 index 000000000..d457eeb80 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png new file mode 100644 index 000000000..f12dd786c Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Z.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Z.png new file mode 100644 index 000000000..4fff012f6 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Z.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/L.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/L.png new file mode 100644 index 000000000..c6287290a Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/L.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/TKL.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/TKL.png new file mode 100644 index 000000000..64797cd07 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/TKL.png differ diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png new file mode 100644 index 000000000..9f999d407 Binary files /dev/null and b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png differ diff --git a/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs b/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs index 41f59e4f9..b51e68547 100644 --- a/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs +++ b/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs @@ -48,7 +48,7 @@ namespace Artemis.Core public void Apply(Layer layer, List devices) { IEnumerable matches = devices - .Where(d => DeviceType == RGBDeviceType.All || d.RgbDevice.DeviceInfo.DeviceType == DeviceType) + .Where(d => DeviceType == RGBDeviceType.All || d.DeviceType == DeviceType) .OrderBy(d => d.Rectangle.Top) .ThenBy(d => d.Rectangle.Left) .Skip(Skip); diff --git a/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs b/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs index e8c6f09ba..2a68be352 100644 --- a/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs +++ b/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs @@ -38,7 +38,7 @@ namespace Artemis.Core public void Apply(Layer layer, List devices) { // Only keyboards should have the LEDs we care about - foreach (ArtemisDevice keyboard in devices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard)) + foreach (ArtemisDevice keyboard in devices.Where(d => d.DeviceType == RGBDeviceType.Keyboard)) { List ledIds = RegionLedIds[Section]; layer.AddLeds(keyboard.Leds.Where(l => ledIds.Contains(l.RgbLed.Id))); diff --git a/src/Artemis.Core/Models/Profile/Layer.cs b/src/Artemis.Core/Models/Profile/Layer.cs index 5e910dfe9..01754e172 100644 --- a/src/Artemis.Core/Models/Profile/Layer.cs +++ b/src/Artemis.Core/Models/Profile/Layer.cs @@ -272,7 +272,7 @@ namespace Artemis.Core { DeviceIdentifier = artemisLed.Device.Identifier, LedName = artemisLed.RgbLed.Id.ToString(), - PhysicalLayout = artemisLed.Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard ? (int) artemisLed.Device.PhysicalLayout : null + PhysicalLayout = artemisLed.Device.DeviceType == RGBDeviceType.Keyboard ? (int) artemisLed.Device.PhysicalLayout : null }; LayerEntity.Leds.Add(ledEntity); } diff --git a/src/Artemis.Core/Models/Profile/LayerAdapter.cs b/src/Artemis.Core/Models/Profile/LayerAdapter.cs index 77717340f..b60d901f9 100644 --- a/src/Artemis.Core/Models/Profile/LayerAdapter.cs +++ b/src/Artemis.Core/Models/Profile/LayerAdapter.cs @@ -83,11 +83,11 @@ namespace Artemis.Core { ArtemisDevice device = deviceLeds.Key; // If there is already an adaption hint for this type, don't add another - if (AdaptionHints.Any(h => h is DeviceAdaptionHint d && d.DeviceType == device.RgbDevice.DeviceInfo.DeviceType)) + if (AdaptionHints.Any(h => h is DeviceAdaptionHint d && d.DeviceType == device.DeviceType)) continue; if (DoesLayerCoverDevice(device)) { - DeviceAdaptionHint hint = new() {DeviceType = device.RgbDevice.DeviceInfo.DeviceType}; + DeviceAdaptionHint hint = new() {DeviceType = device.DeviceType}; AdaptionHints.Add(hint); newHints.Add(hint); } diff --git a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs index 488efdd8c..7f4e8dc3d 100644 --- a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs +++ b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs @@ -6,7 +6,6 @@ using Artemis.Core.DeviceProviders; using Artemis.Core.Services; using Artemis.Storage.Entities.Surface; using RGB.NET.Core; -using RGB.NET.Layout; using SkiaSharp; namespace Artemis.Core @@ -91,6 +90,11 @@ namespace Artemis.Core /// public IRGBDevice RgbDevice { get; } + /// + /// Gets the device type of the ArtemisDevice + /// + public RGBDeviceType DeviceType => RgbDevice.DeviceInfo.DeviceType; + /// /// Gets the device provider that provided this device /// @@ -351,6 +355,46 @@ namespace Artemis.Core /// public event EventHandler? DeviceUpdated; + /// + /// Applies the default categories for this device to the list + /// + public void ApplyDefaultCategories() + { + switch (RgbDevice.DeviceInfo.DeviceType) + { + case RGBDeviceType.Keyboard: + case RGBDeviceType.Mouse: + case RGBDeviceType.Headset: + case RGBDeviceType.Mousepad: + case RGBDeviceType.HeadsetStand: + case RGBDeviceType.Keypad: + if (!Categories.Contains(DeviceCategory.Peripherals)) + Categories.Add(DeviceCategory.Peripherals); + break; + case RGBDeviceType.Mainboard: + case RGBDeviceType.GraphicsCard: + case RGBDeviceType.DRAM: + case RGBDeviceType.Fan: + case RGBDeviceType.LedStripe: + case RGBDeviceType.Cooler: + if (!Categories.Contains(DeviceCategory.Case)) + Categories.Add(DeviceCategory.Case); + break; + case RGBDeviceType.Speaker: + if (!Categories.Contains(DeviceCategory.Desk)) + Categories.Add(DeviceCategory.Desk); + break; + case RGBDeviceType.Monitor: + if (!Categories.Contains(DeviceCategory.Monitor)) + Categories.Add(DeviceCategory.Monitor); + break; + case RGBDeviceType.LedMatrix: + if (!Categories.Contains(DeviceCategory.Room)) + Categories.Add(DeviceCategory.Room); + break; + } + } + /// /// Invokes the event /// @@ -392,46 +436,6 @@ namespace Artemis.Core OnDeviceUpdated(); } - /// - /// Applies the default categories for this device to the list - /// - public void ApplyDefaultCategories() - { - switch (RgbDevice.DeviceInfo.DeviceType) - { - case RGBDeviceType.Keyboard: - case RGBDeviceType.Mouse: - case RGBDeviceType.Headset: - case RGBDeviceType.Mousepad: - case RGBDeviceType.HeadsetStand: - case RGBDeviceType.Keypad: - if (!Categories.Contains(DeviceCategory.Peripherals)) - Categories.Add(DeviceCategory.Peripherals); - break; - case RGBDeviceType.Mainboard: - case RGBDeviceType.GraphicsCard: - case RGBDeviceType.DRAM: - case RGBDeviceType.Fan: - case RGBDeviceType.LedStripe: - case RGBDeviceType.Cooler: - if (!Categories.Contains(DeviceCategory.Case)) - Categories.Add(DeviceCategory.Case); - break; - case RGBDeviceType.Speaker: - if (!Categories.Contains(DeviceCategory.Desk)) - Categories.Add(DeviceCategory.Desk); - break; - case RGBDeviceType.Monitor: - if (!Categories.Contains(DeviceCategory.Monitor)) - Categories.Add(DeviceCategory.Monitor); - break; - case RGBDeviceType.LedMatrix: - if (!Categories.Contains(DeviceCategory.Room)) - Categories.Add(DeviceCategory.Room); - break; - } - } - internal void ApplyToEntity() { // Other properties are computed @@ -439,13 +443,11 @@ namespace Artemis.Core DeviceEntity.InputIdentifiers.Clear(); foreach (ArtemisDeviceInputIdentifier identifier in InputIdentifiers) - { DeviceEntity.InputIdentifiers.Add(new DeviceInputIdentifierEntity { InputProvider = identifier.InputProvider, Identifier = identifier.Identifier }); - } DeviceEntity.InputMappings.Clear(); foreach (var (original, mapped) in InputMappings) @@ -472,9 +474,9 @@ namespace Artemis.Core if (!RgbDevice.ColorCorrections.Any()) RgbDevice.ColorCorrections.Add(new ScaleColorCorrection(this)); - + Categories.Clear(); - foreach (int deviceEntityCategory in DeviceEntity.Categories) + foreach (int deviceEntityCategory in DeviceEntity.Categories) Categories.Add((DeviceCategory) deviceEntityCategory); if (!Categories.Any()) ApplyDefaultCategories(); @@ -532,12 +534,34 @@ namespace Artemis.Core } } + /// + /// Represents a device category + /// public enum DeviceCategory { + /// + /// A device used to light up (part of) the desk + /// Desk, + + /// + /// A device attached or embedded into the monitor + /// Monitor, + + /// + /// A device placed or embedded into the case + /// Case, + + /// + /// A device used to light up (part of) the room + /// Room, + + /// + /// A peripheral + /// Peripherals } } \ No newline at end of file diff --git a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs index 130b8cba7..2df270e5b 100644 --- a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs +++ b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs @@ -146,6 +146,58 @@ namespace Artemis.Core else Image = null; } + + internal static ArtemisLayout? GetDefaultLayout(ArtemisDevice device) + { + string layoutFolder = Path.Combine(Constants.ApplicationFolder, "DefaultLayouts\\Artemis"); + if (device.DeviceType == RGBDeviceType.Keyboard) + { + // XL layout is defined by its programmable macro keys + if (device.Leds.Any(l => l.RgbLed.Id >= LedId.Keyboard_Programmable1 && l.RgbLed.Id <= LedId.Keyboard_Programmable32)) + { + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis XL keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis XL keyboard-ISO.xml", LayoutSource.Default); + } + + // L layout is defined by its numpad + if (device.Leds.Any(l => l.RgbLed.Id >= LedId.Keyboard_NumLock && l.RgbLed.Id <= LedId.Keyboard_NumPeriodAndDelete)) + { + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis L keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis L keyboard-ISO.xml", LayoutSource.Default); + } + + // No numpad will result in TKL + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis TKL keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis TKL keyboard-ISO.xml", LayoutSource.Default); + } + + // if (device.DeviceType == RGBDeviceType.Mouse) + // { + // if (device.Leds.Count == 1) + // { + // if (device.Leds.Any(l => l.RgbLed.Id == LedId.Logo)) + // return new ArtemisLayout(layoutFolder + "\\Mouse\\1 LED mouse logo.xml", LayoutSource.Default); + // return new ArtemisLayout(layoutFolder + "\\Mouse\\1 LED mouse.xml", LayoutSource.Default); + // } + // if (device.Leds.Any(l => l.RgbLed.Id == LedId.Logo)) + // return new ArtemisLayout(layoutFolder + "\\Mouse\\4 LED mouse logo.xml", LayoutSource.Default); + // return new ArtemisLayout(layoutFolder + "\\Mouse\\4 LED mouse.xml", LayoutSource.Default); + // } + + if (device.DeviceType == RGBDeviceType.Headset) + { + if (device.Leds.Count == 1) + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 1 LED headset.xml", LayoutSource.Default); + if (device.Leds.Count == 2) + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 2 LED headset.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 4 LED headset.xml", LayoutSource.Default); + } + + return null; + } } /// diff --git a/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs b/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs index f41e9c145..fc540ff96 100644 --- a/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs +++ b/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs @@ -74,7 +74,7 @@ namespace Artemis.Core.DeviceProviders string filePath = Path.Combine( layoutDir, device.RgbDevice.DeviceInfo.Manufacturer, - device.RgbDevice.DeviceInfo.DeviceType.ToString(), + device.DeviceType.ToString(), device.GetLayoutFileName() ); return new ArtemisLayout(filePath, LayoutSource.Plugin); @@ -91,7 +91,7 @@ namespace Artemis.Core.DeviceProviders string filePath = Path.Combine( layoutDir, device.RgbDevice.DeviceInfo.Manufacturer, - device.RgbDevice.DeviceInfo.DeviceType.ToString(), + device.DeviceType.ToString(), device.GetLayoutFileName() ); return new ArtemisLayout(filePath, LayoutSource.User); diff --git a/src/Artemis.Core/Services/Input/InputService.cs b/src/Artemis.Core/Services/Input/InputService.cs index bed2d47de..abb7ef643 100644 --- a/src/Artemis.Core/Services/Input/InputService.cs +++ b/src/Artemis.Core/Services/Input/InputService.cs @@ -76,8 +76,8 @@ namespace Artemis.Core.Services public void IdentifyDevice(ArtemisDevice device) { - if (device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Keyboard && device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Mouse) - throw new ArtemisCoreException($"Cannot initialize input-identification for a device of type {device.RgbDevice.DeviceInfo.DeviceType}. \r\n" + + if (device.DeviceType != RGBDeviceType.Keyboard && device.DeviceType != RGBDeviceType.Mouse) + throw new ArtemisCoreException($"Cannot initialize input-identification for a device of type {device.DeviceType}. \r\n" + "Only keyboard and mouse is supported."); _identifyingDevice = device; @@ -121,7 +121,7 @@ namespace Artemis.Core.Services { if (_cachedFallbackKeyboard != null) return _cachedFallbackKeyboard; - _cachedFallbackKeyboard = _rgbService.EnabledDevices.FirstOrDefault(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard); + _cachedFallbackKeyboard = _rgbService.EnabledDevices.FirstOrDefault(d => d.DeviceType == RGBDeviceType.Keyboard); return _cachedFallbackKeyboard; } @@ -129,7 +129,7 @@ namespace Artemis.Core.Services { if (_cachedFallbackMouse != null) return _cachedFallbackMouse; - _cachedFallbackMouse = _rgbService.EnabledDevices.FirstOrDefault(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse); + _cachedFallbackMouse = _rgbService.EnabledDevices.FirstOrDefault(d => d.DeviceType == RGBDeviceType.Mouse); return _cachedFallbackMouse; } @@ -165,8 +165,8 @@ namespace Artemis.Core.Services { // Don't match if there is no device or if the device type differs from the event device type if (_identifyingDevice == null || - _identifyingDevice.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard && e.DeviceType == InputDeviceType.Mouse || - _identifyingDevice.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse && e.DeviceType == InputDeviceType.Keyboard) + _identifyingDevice.DeviceType == RGBDeviceType.Keyboard && e.DeviceType == InputDeviceType.Mouse || + _identifyingDevice.DeviceType == RGBDeviceType.Mouse && e.DeviceType == InputDeviceType.Keyboard) return; if (!(sender is InputProvider inputProvider)) return; diff --git a/src/Artemis.Core/Services/Interfaces/IRgbService.cs b/src/Artemis.Core/Services/Interfaces/IRgbService.cs index cfcb5ffb0..10ec9fa1b 100644 --- a/src/Artemis.Core/Services/Interfaces/IRgbService.cs +++ b/src/Artemis.Core/Services/Interfaces/IRgbService.cs @@ -83,7 +83,7 @@ namespace Artemis.Core.Services /// /// The device to apply the best available layout to /// The layout that was applied to the device - ArtemisLayout ApplyBestDeviceLayout(ArtemisDevice device); + ArtemisLayout? ApplyBestDeviceLayout(ArtemisDevice device); /// /// Apples the provided to the provided diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index f5bb3fb5b..ae1ea1fc9 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using Artemis.Core.DeviceProviders; using Artemis.Core.Services.Models; @@ -149,6 +150,7 @@ namespace Artemis.Core.Services RemoveDevice(device); List providerExceptions = new(); + void DeviceProviderOnException(object? sender, ExceptionEventArgs e) { if (e.IsCritical) @@ -314,15 +316,15 @@ namespace Artemis.Core.Services { SurfaceArrangement surfaceArrangement = SurfaceArrangement.GetDefaultArrangement(); surfaceArrangement.Arrange(_devices); - foreach (ArtemisDevice artemisDevice in _devices) + foreach (ArtemisDevice artemisDevice in _devices) artemisDevice.ApplyDefaultCategories(); SaveDevices(); } - public ArtemisLayout ApplyBestDeviceLayout(ArtemisDevice device) + public ArtemisLayout? ApplyBestDeviceLayout(ArtemisDevice device) { - ArtemisLayout layout; + ArtemisLayout? layout; // Configured layout path takes precedence over all other options if (device.CustomLayoutPath != null) @@ -352,19 +354,19 @@ namespace Artemis.Core.Services } // Finally fall back to a default layout - layout = LoadDefaultLayout(device); - ApplyDeviceLayout(device, layout); + layout = ArtemisLayout.GetDefaultLayout(device); + if (layout != null) + ApplyDeviceLayout(device, layout); return layout; } - private ArtemisLayout LoadDefaultLayout(ArtemisDevice device) - { - return new("NYI", LayoutSource.Default); - } - public void ApplyDeviceLayout(ArtemisDevice device, ArtemisLayout layout) { - device.ApplyLayout(layout, device.DeviceProvider.CreateMissingLedsSupported, device.DeviceProvider.RemoveExcessiveLedsSupported); + if (layout.Source == LayoutSource.Default) + device.ApplyLayout(layout, false, false); + else + device.ApplyLayout(layout, device.DeviceProvider.CreateMissingLedsSupported, device.DeviceProvider.RemoveExcessiveLedsSupported); + UpdateLedGroup(); } diff --git a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs index 5f25fe5f2..146f89bc1 100644 --- a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs +++ b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs @@ -23,12 +23,12 @@ namespace Artemis.Core.Services.Models public bool HasDevices(List devices) { - return devices.Any(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType); + return devices.Any(d => d.DeviceType == DeviceType); } public void Arrange(List devices) { - devices = devices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType).ToList(); + devices = devices.Where(d => d.DeviceType == DeviceType).ToList(); if (!devices.Any()) return; @@ -58,7 +58,7 @@ namespace Artemis.Core.Services.Models public Point GetEdge(HorizontalArrangementPosition horizontalPosition, VerticalArrangementPosition verticalPosition) { - List devices = SurfaceArrangement.ArrangedDevices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType || DeviceType == RGBDeviceType.All).ToList(); + List devices = SurfaceArrangement.ArrangedDevices.Where(d => d.DeviceType == DeviceType || DeviceType == RGBDeviceType.All).ToList(); if (!devices.Any()) return new Point(); diff --git a/src/Artemis.Core/Services/Storage/ProfileService.cs b/src/Artemis.Core/Services/Storage/ProfileService.cs index e405cdfed..95b612d99 100644 --- a/src/Artemis.Core/Services/Storage/ProfileService.cs +++ b/src/Artemis.Core/Services/Storage/ProfileService.cs @@ -152,7 +152,7 @@ namespace Artemis.Core.Services Profile profile = new(profileDescriptor.ProfileModule, profileEntity); InstantiateProfile(profile); - + void ActivatingRgbServiceOnLedsChanged(object? sender, EventArgs e) { profile.PopulateLeds(_rgbService.EnabledDevices); @@ -220,12 +220,8 @@ namespace Artemis.Core.Services public void UpdateProfile(Profile profile, bool includeChildren) { - _logger.Debug("Updating profile " + profile); string memento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); - profile.RedoStack.Clear(); - profile.UndoStack.Push(memento); - profile.IsFreshImport = false; profile.Save(); if (includeChildren) { @@ -235,6 +231,22 @@ namespace Artemis.Core.Services layer.Save(); } + // If there are no changes, don't bother saving + string updatedMemento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); + if (memento.Equals(updatedMemento)) + { + _logger.Debug("Updating profile - Skipping save, no changes"); + return; + } + + _logger.Debug("Updating profile - Saving " + profile); + profile.RedoStack.Clear(); + profile.UndoStack.Push(memento); + + // At this point the user made actual changes, save that + profile.IsFreshImport = false; + profile.ProfileEntity.IsFreshImport = false; + _profileRepository.Save(profile.ProfileEntity); } @@ -321,9 +333,24 @@ namespace Artemis.Core.Services /// public void AdaptProfile(Profile profile) { + string memento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); + List devices = _rgbService.EnabledDevices.ToList(); foreach (Layer layer in profile.GetAllLayers()) layer.Adapter.Adapt(devices); + + profile.Save(); + + foreach (Folder folder in profile.GetAllFolders()) + folder.Save(); + foreach (Layer layer in profile.GetAllLayers()) + layer.Save(); + + _logger.Debug("Adapt profile - Saving " + profile); + profile.RedoStack.Clear(); + profile.UndoStack.Push(memento); + + _profileRepository.Save(profile.ProfileEntity); } #region Event handlers diff --git a/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs index 7e9662b5e..af4afaba1 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs @@ -216,7 +216,7 @@ namespace Artemis.UI.Screens.ProfileEditor if (!await DialogService.ShowConfirmDialog( "Adapt profile", "Are you sure you want to adapt the profile to your current surface? Layer assignments may change." - )) + )) return; _profileService.AdaptProfile(_profileEditorService.SelectedProfile); diff --git a/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs index 62ec00072..0cd156be7 100644 --- a/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs @@ -46,7 +46,7 @@ namespace Artemis.UI.Screens.Settings.Device SelectedLeds = new BindableCollection(); Items.Add(factory.DevicePropertiesTabViewModel(device)); - if (device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard) + if (device.DeviceType == RGBDeviceType.Keyboard) Items.Add(factory.InputMappingsTabViewModel(device)); Items.Add(factory.DeviceInfoTabViewModel(device)); Items.Add(factory.DeviceLedsTabViewModel(device)); @@ -178,7 +178,7 @@ namespace Artemis.UI.Screens.Settings.Device string directory = Path.Combine( dialog.SelectedPath, Device.RgbDevice.DeviceInfo.Manufacturer, - Device.RgbDevice.DeviceInfo.DeviceType.ToString() + Device.DeviceType.ToString() ); string filePath = Path.Combine(directory, Device.GetLayoutFileName()); Core.Utilities.CreateAccessibleDirectory(directory); diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml index 3f5047fb9..18362412e 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml @@ -40,7 +40,7 @@ + Text="{Binding Device.DeviceType}" /> diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs index bf97b4e21..1305a1d24 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs @@ -15,7 +15,7 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs DisplayName = "INFO"; } - public bool IsKeyboard => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard; + public bool IsKeyboard => Device.DeviceType == RGBDeviceType.Keyboard; public ArtemisDevice Device { get; } public string DefaultLayoutPath diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs index 9ffbe769b..2935bcfe6 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs @@ -17,7 +17,7 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs public InputMappingsTabViewModel(ArtemisDevice device, IRgbService rgbService, IInputService inputService) { - if (device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Keyboard) + if (device.DeviceType != RGBDeviceType.Keyboard) throw new ArtemisUIException("The input mappings tab only supports keyboards"); _rgbService = rgbService; _inputService = inputService; diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml index e3f3676bf..018ed9f28 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml +++ b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml @@ -50,7 +50,7 @@ - - + diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs index 2005b6753..3b6616a35 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs @@ -35,7 +35,7 @@ namespace Artemis.UI.Screens.Settings.Tabs.Devices _rgbService = rgbService; Device = device; - Type = Device.RgbDevice.DeviceInfo.DeviceType.ToString().Humanize(); + Type = Device.DeviceType.ToString().Humanize(); Name = Device.RgbDevice.DeviceInfo.Model; Manufacturer = Device.RgbDevice.DeviceInfo.Manufacturer; } @@ -46,8 +46,8 @@ namespace Artemis.UI.Screens.Settings.Tabs.Devices public string Name { get; } public string Manufacturer { get; } - public bool CanDetectInput => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || - Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + public bool CanDetectInput => Device.DeviceType == RGBDeviceType.Keyboard || + Device.DeviceType == RGBDeviceType.Mouse; public bool IsDeviceEnabled { diff --git a/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs index cd35e79f1..13e02d9b9 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs @@ -19,7 +19,7 @@ namespace Artemis.UI.Screens.SurfaceEditor.Dialogs { Device = device; Title = $"{Device.RgbDevice.DeviceInfo.DeviceName} - Detect input"; - IsMouse = Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + IsMouse = Device.DeviceType == RGBDeviceType.Mouse; _inputService = inputService; _messageService = messageService; diff --git a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs index a1c31e961..50b3bcec1 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs @@ -33,8 +33,8 @@ namespace Artemis.UI.Screens.SurfaceEditor.Visualization set => SetAndNotify(ref _selectionStatus, value); } - public bool CanDetectInput => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || - Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + public bool CanDetectInput => Device.DeviceType == RGBDeviceType.Keyboard || + Device.DeviceType == RGBDeviceType.Mouse; public Cursor Cursor { diff --git a/src/Artemis.UI/Services/DeviceLayoutService.cs b/src/Artemis.UI/Services/DeviceLayoutService.cs index d224ae36b..536763729 100644 --- a/src/Artemis.UI/Services/DeviceLayoutService.cs +++ b/src/Artemis.UI/Services/DeviceLayoutService.cs @@ -52,7 +52,7 @@ namespace Artemis.UI.Services private bool DeviceNeedsLayout(ArtemisDevice d) { - return d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard && + return d.DeviceType == RGBDeviceType.Keyboard && (d.LogicalLayout == null || d.PhysicalLayout == KeyboardLayoutType.Unknown) && (!d.DeviceProvider.CanDetectLogicalLayout || !d.DeviceProvider.CanDetectPhysicalLayout); }