diff --git a/Program.cs b/Program.cs
index 457b63dd614c02b679462f142f7cda4d66e46d4f..9a9c897f3c3a4f4871d71f4f37b68609f372f973 100644
--- a/Program.cs
+++ b/Program.cs
@@ -124,7 +124,9 @@ enum MouseButton
 enum Modifiers
 {
 	Shift=1,
-	Ctrl=2
+	Control=2,
+	Super=4,
+	Alt=8
 }
 
 record ClickEvent(
@@ -491,10 +493,24 @@ class StatusBarI3: RootStatusBar
 			if(jsonButton == 2) button = MouseButton.Middle; else
 			if(jsonButton == 3) button = MouseButton.Left; else
 				break;
+			Modifiers mod = 0;
+			foreach(var i in json["modifiers"].AsArray())
+			{
+				var s = i.AsValue().GetValue<string>();
+				if(s=="Shift") mod |= Modifiers.Shift;
+				if(s=="Control") mod |= Modifiers.Control;
+				if(s=="Mod4") mod |= Modifiers.Super;
+				if(s=="Mod1") mod |= Modifiers.Alt;
+			}
+			Console.Error.WriteLine(mod);
+			Console.Error.Flush();
 			var ev = new ClickEvent(
 					Relative: new Coordinates(json["relative_x"].AsValue().GetValue<int>(), json["relative_y"].AsValue().GetValue<int>()),
+					Absolute: new Coordinates(json["x"].AsValue().GetValue<int>(), json["y"].AsValue().GetValue<int>()),
+					Output: new Coordinates(json["output_x"].AsValue().GetValue<int>(), json["output_x"].AsValue().GetValue<int>()),
 					Size: new Coordinates(json["height"].AsValue().GetValue<int>(), json["width"].AsValue().GetValue<int>()),
-					Button: button
+					Button: button,
+					Modifiers: mod
 					);
 			string name = json["name"].AsValue().GetValue<string>();
 			int outputId = int.Parse(name.Split(".")[0]);