Finally, I created a function to create a different menu for each tag:
Change the line for binding the mouse and keyboard keys to call getTagMenu:
-- {{{ Mouse bindings: I USE PRIMARY BUTTON root.buttons(awful.util.table.join( awful.button({ }, 1, function () menutag = getTagMenu() menutag:show({keygrabber=true}) end), awful.button({ }, 4, awful.tag.viewnext), awful.button({ }, 5, awful.tag.viewprev)
)))
-- {{{ Key bindings: I use MENU KEY globalkeys = awful.util.table.join( awful.key({ }, "Menu", function () menutag = getTagMenu() menutag:show({keygrabber=true}) end))
And now the function:
function getTagMenu () tagID=awful.tag.getidx(awful.tag.selected(1)) screen[1]:add_signal("tag::history::update", function() tagName = awful.tag.selected(1).name end) if tagName == "main" then menutag = awful.menu({ items = { { "&gvim", "gvim" }, { "&firefox", "firefox" }, { "&software", "software-center" }, { "&config", "zsh -c -i 'awe'" }, { "sleep", "zsh -c -i 'gksu pm-suspend'" }, { "logout", awesome.quit }, { "restart", "zsh -c -i 'sudo shutdown -r now'" }, { "shut", "zsh -c -i 'sudo shutdown -h now'"}}}) end if tagName == "develop" then menutag = awful.menu({ items = { { "&gvim", "gvim" }, { "&sqlitestudio", "sqlitestudio" }, { "&tkcon", "tkcon" } } } ) end if tagName == "media" then menutag = awful.menu({ items = { { "vlc", "vlc" } } } ) end if tagName == "office" then menutag = awful.menu({ items = { { "&write", "libreoffice --writer" }, { "&calc", "libreoffice --calc" } } } ) end return menutag end