You have a hidden folder called .nuke inside wich there is a 'menu.py' file (create it if doesn't exist)
you have to write some python lines to get your macro into a menu, don't worry nothing to complicated
you may need to specify the path of your macro folder inside a 'init.py'
exemple of init :
nuke.pluginAppendPath( "/usr/people/oliv/.nuke/PythonScripts/" )
nuke.pluginAppendPath( "/usr/people/oliv/.nuke/Gizmos/" )
nuke.pluginAppendPath( "/usr/people/oliv/.nuke/icons/" )
so each time nuke starts, it will check what is in these path
exemple of menu.py:
import reordering_1v1
import Collector_1v3
import thumbnail
import changeAll_1v2
olivtools=nuke.toolbar('Nodes')
olivtools.addMenu("Oliv", icon="oliv.xpm")
olivtools.addCommand("Oliv/Reordering", "reordering_1v1.main()")
olivtools.addCommand("Oliv/Collector", "Collector_1v3.createUI()")
olivtools.addCommand("Oliv/changeAll", "changeAll_1v2.createUI()")
olivtools.addCommand("Oliv/Thumbnail", "thumbnail.thumb()")
these are python scripts so if i am not mistaken for a simple gizmo the line should be something like :
olivtools.addCommand("Oliv/myGizmo", "myGizmo")
the best is to wach the foundry video about it on there website (free) or i am pretty sure it is also in the doc
Be careful, any mistake in menu.py or init.py and nuke will not start anymore (fix the mistake or remove what you added and it will start again)
cheers