diff --git a/BetterJoy/App.config b/BetterJoy/App.config
index 916536c..75d017c 100644
--- a/BetterJoy/App.config
+++ b/BetterJoy/App.config
@@ -38,6 +38,9 @@
+
+
+
diff --git a/BetterJoy/Config/ControllerConfig.cs b/BetterJoy/Config/ControllerConfig.cs
index d82c5d5..8d2acd2 100644
--- a/BetterJoy/Config/ControllerConfig.cs
+++ b/BetterJoy/Config/ControllerConfig.cs
@@ -37,6 +37,7 @@ public class ControllerConfig : Config
public long PowerOffInactivityMins = -1;
public bool SwapAB = false;
public bool SwapXY = false;
+ public bool MinusToShare = false;
public bool UseFilteredMotion = true;
public DebugType DebugType = DebugType.None;
public Orientation DoNotRejoin = Orientation.None;
@@ -78,6 +79,7 @@ public ControllerConfig(ControllerConfig config) : base(config._logger)
PowerOffInactivityMins = config.PowerOffInactivityMins;
SwapAB = config.SwapAB;
SwapXY = config.SwapXY;
+ MinusToShare = config.MinusToShare;
UseFilteredMotion = config.UseFilteredMotion;
DebugType = config.DebugType;
DoNotRejoin = config.DoNotRejoin;
@@ -118,6 +120,7 @@ public override void Update()
TryUpdateSetting("PowerOffInactivity", ref PowerOffInactivityMins);
TryUpdateSetting("SwapAB", ref SwapAB);
TryUpdateSetting("SwapXY", ref SwapXY);
+ TryUpdateSetting("MinusToShare", ref MinusToShare);
TryUpdateSetting("UseFilteredIMU", ref UseFilteredMotion);
TryUpdateSetting("DebugType", ref DebugType);
TryUpdateSetting("DoNotRejoinJoycons", ref DoNotRejoin);
diff --git a/BetterJoy/Controller/Joycon.cs b/BetterJoy/Controller/Joycon.cs
index d6885ad..cc006c2 100644
--- a/BetterJoy/Controller/Joycon.cs
+++ b/BetterJoy/Controller/Joycon.cs
@@ -3137,6 +3137,7 @@ public OutputControllerDualShock4InputState MapToDualShock4Input()
var gyroAnalogSliders = UseGyroAnalogSliders();
var swapAB = Config.SwapAB;
var swapXY = Config.SwapXY;
+ var minusToShare = Config.MinusToShare;
if (other != null && !isLeft)
{
@@ -3161,10 +3162,10 @@ public OutputControllerDualShock4InputState MapToDualShock4Input()
buttons[(int)(isLeft ? Button.DpadRight : Button.A)]
);
- output.Share = buttons[(int)Button.Capture];
+ output.Share = minusToShare ? buttons[(int)Button.Minus] : buttons[(int)Button.Capture];
output.Options = buttons[(int)Button.Plus];
output.Ps = buttons[(int)Button.Home];
- output.Touchpad = buttons[(int)Button.Minus];
+ output.Touchpad = minusToShare ? buttons[(int)Button.Capture] : buttons[(int)Button.Minus];
output.ShoulderLeft = buttons[(int)(isLeft ? Button.Shoulder1 : Button.Shoulder21)];
output.ShoulderRight = buttons[(int)(isLeft ? Button.Shoulder21 : Button.Shoulder1)];
@@ -3222,10 +3223,10 @@ public OutputControllerDualShock4InputState MapToDualShock4Input()
buttons[(int)Button.DpadRight]
);
- output.Share = buttons[(int)Button.Capture];
+ output.Share = minusToShare ? buttons[(int)Button.Minus] : buttons[(int)Button.Capture];
output.Options = buttons[(int)Button.Plus];
output.Ps = buttons[(int)Button.Home];
- output.Touchpad = buttons[(int)Button.Minus];
+ output.Touchpad = minusToShare ? buttons[(int)Button.Capture] : buttons[(int)Button.Minus];
output.ShoulderLeft = buttons[(int)Button.Shoulder1];
output.ShoulderRight = buttons[(int)Button.Shoulder21];