I believe the reason why the bindings aren't set, when the pages are first displayed, is because the pages were originally created without those bindings. You subsequently configure the pages ($nb->pageconfigure) and, when the pages are subsequently raised, those bindings are available. Compare -createcmd and -raisecmd in Tk::NoteBook.