As the last topic with the same name has been closed, I post that here for the records.
Here a way to add a hotkey to execute a python function.
Basically you bind and register your hotkey to the main window (title == “Pcbnew”)
Context : using the nice plugin WireIt : https://github.com/xesscorp/WireIt
KiCad 5.1.10
def findPcbnewWindow():
"""Find the window for the PCBNEW application."""
windows = wx.GetTopLevelWindows()
pcbnew = [w for w in windows if "Pcbnew" in w.GetTitle()]
if len(pcbnew) != 1:
raise Exception("Cannot find pcbnew window from title matching!")
return pcbnew[0]
// In your ActionPlugin
def Run(self):
mainFrame = findPcbnewWindow()
wire_it_button = wx.NewId() // use as toolbar button as well
....
accel_tbl = wx.AcceleratorTable([(wx.ACCEL_SHIFT, ord('<'), wire_it_button )])
mainFrame.Bind(wx.EVT_TOOL, wire_it_callback, id=wire_it_button)
mainFrame.SetAcceleratorTable(accel_tbl)