Возможно ли в Awesome WM иметь разные меню в зависимости от того, в каком теге вы находитесь?

В Awesome Window Manager у вас есть главное меню, которое можно вызвать, щелкнув панель запуска в верхнем левом углу, щелкнув правой кнопкой мыши на рабочем столе или используя сочетание клавиш Mod+w. Что я хотел бы сделать, так это иметь разные меню в зависимости от того, на каком теге я нахожусь.

Например, на данный момент в моей конфигурации Awesome у меня 4 тега: основной, разработка, видео и офис. Поэтому я хотел бы меню для каждого отдельного тега, например:

главная: терминал, приостановка, перезагрузка, завершение работы разработка: терминал, gvim, firefox, видео: vlc, brasero офис: писатель calc draw impress

Это действительно возможно?


person milarepa    schedule 11.02.2013    source источник


Ответы (1)


Наконец-то я создал функцию для создания отдельного меню для каждого тега:

Измените строку для привязки клавиш мыши и клавиатуры, чтобы вызвать 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))

А теперь функция:

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
person milarepa    schedule 26.02.2013