Fortunately, Xfce does include a generic monitor panel plugin, which you can use for almost anything.
#!/usr/bin/python indicator="Num Lock" text = "" on_icon = "/usr/share/pixmaps/pidgin/status/16/available.png" off_icon = "/usr/share/pixmaps/pidgin/status/16/invisible.png" from ctypes import * def GetIndicatorState(name): state = c_bool(False) libX11 = CDLL("libX11.so") display = libX11.XOpenDisplay(0) atom = libX11.XInternAtom(display, name, c_bool(False)) libX11.XkbGetNamedIndicator(display, atom, 0, byref(state), 0, 0) libX11.XCloseDisplay(display) return state.value if GetIndicatorState(indicator): print("" + on_icon + "") else: print("" + off_icon + "")Adjust the four variables at the top to your taste, and set genmon to run it every second. The updates aren't instantaneous, and it's a little resource heavy, but it's better than nothing.