Is it possible to have different menus in Awesome WM, depending on which tag you are in?

In the Awesome Window Manager, you have a main menu that can be accessed by clicking on the launch bar in the upper left corner, right-clicking on the desktop or using keybinding Mod + w. What I would like to do is to have different menus depending on which tag I am on.

For example, currently in my awesome configuration I have 4 tags: home, development, video and office. Therefore, I would like to use the menu for every other tag:

main: terminal, pause, reboot, shutdown development: terminal, gvim, firefox, video: vlc, brasero office: writer calc draw impress

Is it really possible?

+4
source share
1 answer

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 
+3
source

All Articles