Giter Site home page Giter Site logo

clone-menu-cache-debian-build's Introduction

Libmenu-cache is a library creating and utilizing caches to speed up
the manipulation for freedesktop.org defined application menus.
It can be used as a replacement of libgnome-menu of gnome-menus.

Advantages:
1. Shorten time for loading menu entries.
2. Ease of use. (API is very similar to that of libgnome-menu)
3. Lightweight runtime library. (Parsing of the menu definition files 
   are done by menu-cache-gen when the menus are really changed.)
4. Less unnecessary and complicated file monitoring.
5. Heavily reduced disk I/O.

Spec:

Cached menus are localized and stored in ~/.cache/menus/file_name.
file_name is a md5 hash of the name of the original menu +
                                       some environment variable +
                                       locale name.

Since most data in a menu are plain text (names, description comments,
icon names,...etc.), the cached file is in plain text rather than binary
to prevent byte order problems.

Format of the cached menu file, line by line.
(Spaces before the lines are for easier demostration of hierarchy.
 There are no spaces in the real cached file.):

version number (major.minor)
menu name>
number of files to monitor
list of files/dirs which require monitor (prefix D or F indicate whether it
                                          is a dir or file)
list of DE names used in this menu other than the known DEs (LXDE, GNOME,
                                                             XFCE, KDE, ROX),
seperated by ;
+id of top menu dir (+ means dir entry, and - means an application entry)
  title
  comment
  icon name
  menu directory file basename
  dir in which menu directory file locates (use this number as index to get
                                            the string from array of preceding
                                            list of monitored files)
    -application desktop id (NOTE: desktop id is not necessarily the basename
                             of desktop file)
     title
     comment
     icon name
     app desktop file basename, empty means the same as desktop id.
     dir in which the desktop file localtes (use this number as index to get
                                             the string from array of
                                             preceding list of monitored files)
     generic name
     exec command line
     bitmask flags: (use terminal)|(use startup notification)
     show_in_flags: bitwise or of masks for various DEs.
    +sub dir id
     title
     comment
     icon name
     ...

clone-menu-cache-debian-build's People

Contributors

daniel-baumann avatar lstranger avatar gilir avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.