Awesome, will try it out. I also thought that menubar's code can be
reused for this. This will actually implicitly declare awesome
compatible with the following 
http://standards.freedesktop.org/menu-spec/latest/ or am I mistaken.

Of course if it is included out of the box.


-- 
Nikola


On Wed, Oct 01, 2014 at 02:04:47PM -0400, Harvey wrote:
> Hello,
> 
> I just finished this replacement for the older awesome-freedesktop..
> It runs allot faster and uses all the code from menubar(v3.5.5) to
> generate a start menu in awesome. I think this would be a nice
> integrated feature for new users..
> 
> tested and built on v3.5.5
> 
> If you use XDG start menus then please give it a try
> 
> Here is the lua attached to my feature request
> 
> https://awesome.naquadah.org/bugs/index.php?getfile=697

> ---------------------------------------------------------------------------
> -- @author Harvey Mittens
> -- @copyright 2014 Harvey Mittens
> -- @email teknocratdefu...@riseup.net
> -- @release v3.5.5
> ---------------------------------------------------------------------------
> 
> local menu_gen = require("menubar.menu_gen")
> local menu_utils = require("menubar.utils")
> local pairs = pairs
> local ipairs = ipairs
> local table = table
> local string = string
> local next = next
> 
> module("menugen")
> 
> --Built in menubar should be checking local applications directory
> menu_gen.all_menu_dirs = { '/usr/share/applications/', 
> '/usr/local/share/applications/', '~/.local/share/applications' }
> 
> --Expecting an wm_name of awesome omits too many applications and tools
> menu_utils.wm_name = ""
> 
> -- Use MenuBar Parsing Utils to build StartMenu for Awesome
> -- @return awful.menu compliant menu items tree
> function build_menu()
>       local result = {}
>       local menulist = menu_gen.generate()
> 
>       for k,v in pairs(menu_gen.all_categories) do
>               table.insert(result, {k, {}, v["icon"] } )
>       end
>       
>       for k, v in ipairs(menulist) do
>               for _, cat in ipairs(result) do
>                       if cat[1] == v["category"] then
>                               table.insert( cat[2] , { v["name"], 
> v["cmdline"], v["icon"] } )
>                               break
>                       end
>               end
>       end
>       
>       -- Cleanup Things a Bit
>       for k,v in ipairs(result) do
>               -- Remove Unused Categories
>               if not next(v[2]) then
>                       table.remove(result, k)
>               else
>                       --Sort entries Alphabetically (by Name)
>                       table.sort(v[2], function (a,b) return 
> string.byte(a[1]) < string.byte(b[1]) end)
>                       -- Replace Catagory Name with nice name
>                       v[1] = menu_gen.all_categories[v[1]].name
>               end
>       end
> 
>       --Sort Categories Alphabetically Also
>       table.sort(result, function(a,b) return string.byte(a[1]) < 
> string.byte(b[1]) end)
> 
>       return result
> end
> 
> 


-- 
To unsubscribe, send mail to awesome-unsubscr...@naquadah.org.

Reply via email to