MyGtkMenu dinamic menu generator (auto-updated)

I switched from lxpanel to bmpanel2 about a week or 10 days ago. With lxpanel I used the menu it provides, but bmpanel2 doesn't cames with a menu widget. One of the solutions suggested is use myGtkMenu, called from a launcher. I use Openbox with obmenugen, which auto-updates the menu every time I call it (right click on desktop), so, I want the same approach with myGtkMenu. This means that if I install a new application and it puts a .desktop file (which is the most common behavior), when I right-click in the desktop, and the menu is shown, the application is already under the category it belongs.
The first version of obmenugen I wrote, was in python. obmenugen has evolved a lot since that, but the original python script, still having the main code needed to get the information from .desktop files, so, I tweaked the script and quickly have a usable version which generates a dinamic menu using the information present in .desktop files (/usr/share/applications/*.desktop).
By now, the script still not adding icons to the menu, so, you end having a menu that looks similar to the Openbox menu. The layout of the menu is quite fixed (I don't know the term in english to describe "rígido"). To configure it, you must tweak the script itself, but it's easy if you don't need so much.
In the future (I hope soon) I will be writing a modified version of obmenugen, also in the D programming language, with the same flexibility as obmenugen, but generating in myGtkMenu format.
Edit it as needed (CONFIG, MY_GTK_MENU_BINARY, MENUPOS), and simply run it directly (save the code to a file, give it execution permissions, and call it).
This is the script:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__license__ = """
Copyright 2010 Pável Varela Rodríguez <[email protected]>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
__author__ = "Pável Varela Rodríguez <[email protected]>"
__version__ = "0.1"
### EDIT THIS TO YOUR NEEDS ###
CONFIG = {
"Terminal": "sakura",
"Editor" : "gedit",
"FileManager" : "thunar",
"RunCommand" : "gmrun",
"ExitCommand" : "oblogout"
MY_GTK_MENU_BINARY="~/bin/myGtkMenu"
MY_GTK_MENU_FILE="/tmp/myGtkMenu.txt"
ICONSIZE=-1 # Set to -1 to ignore icon
MENUPOS=(1, 30) # Set both to -1 to ignore position
### DO NOT EDIT FROM HERE ###
import os, re
OB_CFG_HOME = os.path.expanduser("~/.config/openbox")
DEFAULT_CFG = {
"Terminal": "xterm",
"Editor" : "gedit",
"FileManager" : "thunar",
"RunCommand" : "gmrun"
LANG = {}
LANG["Long"] = os.environ["LANG"].split(".")[0]
LANG["Short"] = LANG["Long"].split("_")[0]
DOT_DESKTOP_LOCATIONS = [
"/usr/share/applications",
"/usr/share/applications/kde4"
FILTERS = {
"dotDesktop": re.compile('.+\.desktop'),
"Categories": re.compile('Categories=.+'),
"Name": re.compile('Name(\[(en_US|en)\]|)=.+'),
"Exec": re.compile('Exec=.+'),
"Icon": re.compile('Icon=.+'),
CATEGORIES_PRIORITY = ["01System", "02Settings", "03Development", "04Education",
"05AudioVideo", "06Audio", "07Video", "08Office",
"09Graphics", "10Network", "11Utility", "12Viewer",
"13Game"]
MENU_TEMPLATE = """
MENU_TOP
SEPARATOR
MENU_ACCESORIES
MENU_GRAPHICS
MENU_EDUCATION
MENU_AUDIOVIDEO
MENU_OFFICE
MENU_GAMES
MENU_NETWORK
MENU_DEVEL
MENU_SETTINGS
MENU_SYSTEM
SEPARATOR
#submenu = Openbox Settings
#\ticon = NULL
#\tMENU_OPENBOX
EXIT
MENU_TOP = """item=Terminal\ncmd="%s"\nicon=NULL\n
item=Editor\ncmd="%s"\nicon=NULL\n
item=FileManager\ncmd="%s"\nicon=NULL\n
item=Run\ncmd="%s"\nicon=NULL\n"""
MENU_CATEGORY = """submenu = %s\n\ticon = NULL\n%s\n\n"""
ITEM_ACTION = """\titem=%s\n\tcmd="%s"\n\ticon=%s\n\n"""
MENU = ""
LISTS = {
"accesories": {"categories": ["utility"], "label": "Accesories", "files": []},
"graphics": {"categories": ["graphics"], "label": "Graphics", "files": []},
"education": {"categories": ["education"], "label": "Education", "files": []},
"audiovideo": {"categories": ["audiovideo", "audio", "video"], "label": "Audio & Video", "files": []},
"office": {"categories": ["office"], "label": "Office", "files": []},
"games": {"categories": ["game"], "label": "Games", "files": []},
"network": {"categories": ["network"], "label": "Network", "files": []},
"devel": {"categories": ["development"], "label": "Development", "files": []},
"settings": {"categories": ["settings"], "label": "Settings", "files": []},
"system": {"categories": ["system"], "label": "System Tools", "files": []}
def getDotDesktopFiles():
filelist = []
for directory in DOT_DESKTOP_LOCATIONS:
utf8_dir = directory.decode('utf8')
filelist += [os.path.join(utf8_dir, item.decode('utf8'))
for item in os.listdir(directory)
if FILTERS["dotDesktop"].match(item)]
return filelist
def __cleanValue(value):
for to_clean in ["%U", "%u", "%F", "%f", "\n"]:
value = value.replace(to_clean, "")
value = value.replace("&", "&")
value = value.strip()
return value
def getName(content):
for line in content:
if FILTERS["Name"].match(line):
return __cleanValue(line.split("=")[1])
return None
def getCategory(content):
for line in content:
if FILTERS["Categories"].match(line):
categories = [item.replace("\n", "") for item in line.split("=")[1].split(";")]
for cat in CATEGORIES_PRIORITY:
if cat[2:] in categories:
return __cleanValue(cat[2:])
return None
def getExecCmd(content):
for line in content:
if FILTERS["Exec"].match(line):
return __cleanValue(line.split("=")[1])
return None
def getIcon(content):
if ICONSIZE > 0:
for line in content:
if FILTERS["Icon"].match(line):
return __cleanValue(line.split("=")[1])
return "NULL"
def parseDotDesktopFile(filepath):
content = open(filepath, "r").readlines()
name = getName(content)
category = getCategory(content)
exec_cmd = getExecCmd(content)
icon = getIcon(content)
if None in [name, category, exec_cmd]:
return None
else:
return {"Name": name,
"Category": category,
"Exec": exec_cmd,
"Icon": icon}
def fillLists():
files = getDotDesktopFiles()
for currentFile in getDotDesktopFiles():
info = parseDotDesktopFile(currentFile)
if info:
for category_list in LISTS.keys():
if info["Category"].lower() in LISTS[category_list]["categories"]:
LISTS[category_list]["files"].append(info)
def __genMenuTop():
for key in CONFIG.keys():
if CONFIG[key]: DEFAULT_CFG[key] = CONFIG[key]
return MENU_TOP % (DEFAULT_CFG["Terminal"],
DEFAULT_CFG["Editor"],
DEFAULT_CFG["FileManager"],
DEFAULT_CFG["RunCommand"])
def __genCategoryMenu(category):
items = ""
LISTS[category]["files"].sort()
for item in LISTS[category]["files"]:
items += ITEM_ACTION % (item["Name"], item["Exec"], item["Icon"])
if not items:
return ""
menu_label = LISTS[category]["label"]
return MENU_CATEGORY % (menu_label, items)
def __genMenuOpenbox():
items = ""
AUTOSTARTSH = os.path.join(OB_CFG_HOME, "autostart.sh")
if not os.path.exists(AUTOSTARTSH):
f = open(AUTOSTARTSH, "w")
f.close()
os.chmod(AUTOSTARTSH, 0744)
items += ITEM_ACTION[8:] % ("Configure Autostarted Applications", "%s %s" % (DEFAULT_CFG["Editor"], AUTOSTARTSH))
for item in LISTS["settings"]["files"]:
if item["Exec"] in ["obconf"]:
items += ITEM_ACTION[:-1] % (item["Name"], item["Exec"], item["Icon"])
return items
def __genMenu():
fillLists()
MENU = MENU_TEMPLATE.replace("MENU_TOP", __genMenuTop())
for category in LISTS.keys():
MENU = MENU.replace("MENU_%s" % category.upper(), __genCategoryMenu(category))
#MENU = MENU.replace("MENU_OPENBOX", __genMenuOpenbox())
MENU = MENU.replace("EXIT", "\nitem=Exit\ncmd=%s\nicon=NULL\n" % CONFIG["ExitCommand"])
if ICONSIZE > 0:
MENU = "iconsize = %d\n%s" % (ICONSIZE, MENU)
if MENUPOS[0] > 0 and MENUPOS[1] > 0:
MENU = "MenuPosition = %d %d\n%s" % (MENUPOS[0], MENUPOS[1], MENU)
return MENU
def __writeMenuFile(content):
filePath = os.path.join("/tmp", MY_GTK_MENU_FILE)
menuFile = open(filePath, "w")
menuFile.write(content)
menuFile.close()
if __name__ == "__main__":
if len(os.sys.argv) > 2:
print("Bad arguments length!!")
elif "--help" in os.sys.argv or "-h" in os.sys.argv:
print "La ayuda"
elif len(os.sys.argv) == 1:
menu = __genMenu()
#print(menu)
__writeMenuFile(menu)
os.system("%s %s" % (MY_GTK_MENU_BINARY, MY_GTK_MENU_FILE))
else:
print("Argument error: %s" % " ".join(os.sys.argv[1:]))
The only things you need to edit are those present in the first section of the script. If you know wath you do, can also change the order of the categories, editing MENU_TEMPLATE.
The most important are settings are:
- MY_GTK_MENU_BINARY: Which you must set up to the myGtkMenu binary (the full path or simply myGtkMenu if it is in $PATH)
- CONFIG: Put there the tools you use
- MENUPOS: If you will use the generated menu the way Openbox show it's own menu (ie. with compiz+emerald standalone), set this to (-1, -1), the menu will appear just under the mouse pointer. I setted it to (1, 30), because I have my bmpanel2 at screen's top, and the launcher is at the begining (the left).
Sorry about the ugly code, but this was written to do the job, quick and dirty.
I hope you enjoy it, and wait for next versions, which will be really flexible and fast, as obmenugen.
See you
Last edited by NeOnsKuLL (2010-01-05 05:32:48)

I used this script and it as the icon names generated by it are the ones in the .desktop files, myGtkMenu was not able to show icons. So i inserted a piece of code from cbpanel to get the absolute path into the mygtkmenu file.
Here is the relevant piece of code:
#copied from the cbpanel code
def find_icon(icon):
foundiconfile=None
if icon == '':
return foundiconfile
if icon[0] == '/':
return icon
iconbase=('','Faenza','elementary','gnome','hicolor','locolor')
iconpath='/usr/share/icons'
sizelist =('', 'scalable', '256x256', '128x128', '64x64', '48x48', '32x32', '24x24')
categorylist=('actions', 'apps','devices', 'categories','filesystems', 'places', 'status', 'stock', '')
extensionlist = ('png', 'svg', 'xpm')
iconimagelist=[]
for extension in extensionlist:
if (icon.find('.'+extension) != -1):
icon = icon.replace('.'+extension,'')
for size in sizelist:
for extension in extensionlist:
for category in categorylist:
for iconbasecat in iconbase:
iconfile = iconpath+"/"+iconbasecat+'/'+size+'/'+category+'/'+icon+'.'+extension
iconimagelist.append(iconfile)
for extension in extensionlist:
iconfile = '/usr/share/pixmaps/'+icon+'.'+extension
iconimagelist.append(iconfile)
for extension in extensionlist:
iconfile = '/usr/share/app-install/icons/'+icon+'.'+extension
iconimagelist.append(iconfile)
# Seek if the files in pre-generated list exists.. first match is the best
# return it
for iconimage in iconimagelist:
if os.path.exists(iconimage):
return iconimage
return foundiconfile
#end of copy from cbpanel code
And the relevant modification in NeOnsKuLL's script:
def getIcon(content):
if ICONSIZE > 0:
for line in content:
if FILTERS["Icon"].match(line):
#return __cleanValue(line.split("=")[1])
return find_icon(__cleanValue(line.split("=")[1]))
return "NULL"
This is my first attempt at doing anything with Python, so somebody with  any skills will do much better  than this copy-paste job
I have no idea why the icons were not displayed in the first place though.
Hope somebody finds it useful as I found NeOnsKull's script.

Similar Messages

  • Start Menu Not Auto Updating After Installation of New Applications

    // Also reported via Windows Feedback Tool //
    After the installation of several applications, the new Start Menu does not necessarily automatically update to reflect the added programs. 
    The application’s folder is properly installed under C:\ProgramData\Microsoft\Windows\Start Menu\Programs, but it will not show under the Start Menu until the user logs out and logs in.
    Interestingly enough, this behavior is not consistent.  Some applications installations are immediately reflected while others are not.
    In this particular example, LibreOffice 4.3 was installed.

    Hi @Senttu 
    Thank you for your reply.
    You can try running the file checker to look for and try to repair corrupted files.
    Go to the command prompt.
    Right click and run as administrator.
    Type sfc /scannow and press enter.
    You can also try  using the Windows troubleshooter.  Diagnose and repair Windows File and Folder Problems automatically.
    If the issue should still remain, I suggest contacting  MIcrosoft for assistance.
    Microsoft Corporation Customer Service 1 800 642 7676 or Microsoft Contac Us website.
    Good Luck!
    Sparkles1
    I work on behalf of HP
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos, Thumbs Up" on the bottom right to say “Thanks” for helping!

  • Auto Updation of Views

    Hi Techies,
    I have a quick question in working with views..
    I have a view inserted in my universe, and  we have added 4 new columns to that view at DB level.
    and before to the addition of these columns 2 reports were generated from the universe which is built on the view...
    now in My universe designer in universe pane, the objects are automatically updated for all the new columns which are added to the view, how to avoid this automatic updation of objects in universe pane for the columns added to the view.

    Hi..
    I think there is no auto updation of tables/Views, in the Data Foundation Editor, select Refresh Structure from the Detect menu.
    Then only refreshing the structure of a data foundation compares the existing tables in the data foundation with those in data source and proposes updates to the data foundation tables: deletes obsolete tables and columns, inserts missing columns, and updates changed columns.
    Thanks
    Sreeni

  • How do I disable linked smart-object auto-update/refresh?

    Working in the CC3D features, I am constantly making changes to my bump map. Every time I step-backwards, or make a significant change to the bump texture (smart object?), CC auto-saves the layer. This specific file is a very very large document (3 gigs in the bump texture layer alone), and the 3D layer has lots of lights and is very complex. This auto-refresh/update really bogs down the time that it would take me to make my changes. I have a very fast machine (I know it's fast, I dont need to list my specs), and I have all shadows disabled.
    How do I disable linked smart-object auto-update/refresh?

    If you do not like a feature like smart objects there is nothing forcing you to use it. Use some other features to do what you want. Please don't ask Adobe to introduce bug into smart object support.
    You could work on your bump maps textures in external files. When your done some time in the future you could edit your project with the smart object layer and use replace smart object. Only then will all smart filters be applied to the smart layer with the replaced smart object.
    Or if by CC Auto save Layer you referring to CC Generate feature you can disable that feature.
    I have no idea what your referring to when you write "CC auto-saves the layer" being a feature. I know CC Generate will write layers out as web files but that more a Web feature then a 3d feature.  Where do you see your layer being saved?

  • Go from manually update to auto-update without losing songs?

    I was trying to delete some podcasts from my ipod, and was following the directions on the help menu which told me to go to preferences and choose manual update, then delete. I tried it, and it didn't work. When I decided to go back to auto update, I received a message that everything on my ipod would be deleted and the update would be just what is on the itunes on that machine. I have more than one computer, and have itunes on each one. There are different songs on each computer. If I go to manually update on this computer, it will erase the songs I've put on from other computers. All this and I still have the unwanted podcasts. Can anyone help me to go back to auto-update without losing songs? If worse comes to worst I guess I'll have to update, lose the songs, and then re-update at my other computers. thanks.

    Afraid that's not possible. If you go to auto-update, the iPod gets cleared and replaced with the current contents of the iTunes library.

  • Auto-update of date and time on Lumia 800

    I've recently had my Lumia 800 in for "repair" as the auto-update switch did not appear on the menu. 
    The phone has come back (from carphone warehouse) with OS version 7.10.8858.136 and Firmware 1750.0823.8858.12460, both of which seem more up-to-date than the versions currently listed as the most recent. 
    [How can that happen?]
    The auto-update switch is still not available to me, and I am told that the "newer software does not support this function"
    REALLY? Or are they just fobbing me off?

    What network are you on ?

  • Auto-update of figure/images in Pages

    Dear all,
    I'm just wondering whether Pages has a feature allowing it to auto-update images you import into it, i.e., if I insert an image in pages and then decide I need to edit it some-more in Photoshop, can you make it update by itself in Pages? I know this feature is available in Microsoft Word for mac.
    Any help much appreciated.
    Neil

    Neil,
    Yet again, Pages is no clone of Word. Pages' graphics are embedded, not linked, and that might be why there's no auto-update. I can see where auto update would be nice if many documents use the same graphic and you want it updated in all of them.
    Whatever your reasons, it wouldn't hurt to Provide Feedback to Apple from the Pages menu.
    Jerry

  • IF Auto Update Statistics ENABLED in Database Design, Why we need to Update Statistics as a maintenance plan

    Hi Experts,
    IF Auto Update Statistics ENABLED in Database Design, Why we need to Update Statistics as a maintenance plan for Daily/weekly??
    Vinai Kumar Gandla

    Hi Vikki,
    Many systems rely solely on SQL Server to update statistics automatically(AUTO UPDATE STATISTICS enabled), however, based on my research, large tables, tables with uneven data distributions, tables with ever-increasing keys and tables that have significant
    changes in distribution often require manual statistics updates as the following explanation.
    1.If a table is very big, then waiting for 20% of rows to change before SQL Server automatically updates the statistics could mean that millions of rows are modified, added or removed before it happens. Depending on the workload patterns and the data,
    this could mean the optimizer is choosing a substandard execution plans long before SQL Server reaches the threshold where it invalidates statistics for a table and starts to update them automatically. In such cases, you might consider updating statistics
    manually for those tables on a defined schedule (while leaving AUTO UPDATE STATISTICS enabled so that SQL Server continues to maintain statistics for other tables).
    2.In cases where you know data distribution in a column is "skewed", it may be necessary to update statistics manually with a full sample, or create a set of filtered statistics in order to generate query plans of good quality. Remember,
    however, that sampling with FULLSCAN can be costly for larger tables, and must be done so as not to affect production performance.
    3.It is quite common to see an ascending key, such as an IDENTITY or date/time data types, used as the leading column in an index. In such cases, the statistic for the key rarely matches the actual data, unless we update the Statistic manually after
    every insert.
    So in the case above, we could perform manual statistics updates by
    creating a maintenance plan that will run the UPDATE STATISTICS command, and update statistics on a regular schedule. For more information about the process, please refer to the article:
    https://www.simple-talk.com/sql/performance/managing-sql-server-statistics/
    Regards,
    Michelle Li

  • How do I auto-update the date (in a footer)  in Pages 5.2.2 ?

    I have inserted the date into the footer of my document. I am running Pages 5.2.2 on Mavericks.
    I would like the date to auto-update to today's date.  I found a post from 2013 ( How to auto-update Time and Date?), but my version of pages doesn't work as described.  The only choice is update to today's date as a button I can manually click, but there doesn't seem to be an auto-update check box anymore.  Is there a new way to do it or has the feature been removed?

    Hi Cindy,
    Click once in the Footer.
    Menu > Insert > Date & Time.
    Double click to select the Date & Time in the Footer and choose a Date & Time format
    And there is also the Set to Today button.
    Waiting several minutes (just enough time for a cup of coffee) and then clicking the Set to Today button, the time changes from 9:53 pm to 9:59 pm.
    I can't wait until tomorrow to see if the date changes, but I think it will .
    Another way (clunky) is to insert a single-cell table somewhere in your document and type =now and format to your liking.
    As far as I know, Date & Time will update after you Save and then Open your document. Please call back after you test.
    Regards,
    Ian.

  • How to auto update a section on all pages.

    Hi,
    I have a section on the right hand side of a website I'm developing containing txt and it's controlled by CSS which also appears on all the other pages, so what I want to be able to do is when I add a new bit of text to it on one page it will auto update with the new txt on all the other pages to save me copying and pasting the same bit of txt on all the pages.
    Hope that made sense and hope someone can help.
    Thanks

    You can use Dreamweaver Templates or use serverside include.   (SSI)
    Using the template function within Dreamweaver is a good way to go if it's a small site . .
    For larger sites then serverside includes would be more practical and earlier for maintenance purposes.
    Templates:
    You create a master template page, you declare which areas will be the same for every page, (non-editable regions)  and then declare an area that will change on every page (the content area) , these are editable regions.
    Once you create the template and save it, you are then able to create 'child' pages from this template  - as many as you like  :-)  If you every need to make a change to the menu or the footer or the header, change it in the master template, save it and the changes will flow through to the child pages created from the template.
    Using DW Templates:
    http://www.adobe.com/devnet/dreamweaver/templates.html
    http://www.adobe.com/devnet/dreamweaver/articles/dw_templates.html
    The other option is to use Server Side Includes (SSI)
    A bit more about SSIs here:
    http://help.adobe.com/en_US/Dreamweaver/10.0_Using/WSc78c5058ca073340dcda9110b1f 693f21-7b6ca.html
    http://bignosebird.com/ssi.shtml
    One major difference between using Templates and SSI?
    When you make a change to a template page, you will need to re-upload all the pages to the server that were changed - may become very tedious if it is a very large site.
    With using SSI, you make a change to one file and only have to upload the one file and all pages on the server will be update accordingly.
    When to use Templates, Library Items & SSIs -
    http://www.adobe.com/devnet/dreamweaver/articles/ssi_lbi_template.html
    Nadia
    Adobe® Community Expert : Dreamweaver
    Unique CSS Templates | Tutorials | SEO Articles
    http://www.DreamweaverResources.com
    Web Design & Development
    http://www.perrelink.com.au
    http://twitter.com/nadiap

  • Air Auto Update Error -- Flash Builder Burrito.

    This is my first attempt at this, so I may be missing something simple.
    I'm not having any luck getting an Air app to automatically update.
    If I manually go to  http://localhost/air1/air1.air and redownload the file I will get a popup that asks if I want to update the app, but when I say ok I get this error.
    "There was an error checking for updates. Error# 16816"
    I haven't found a reason yet,
    Any ideas?
    update.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5">
      <version>2.0</version>
      <url>http://localhost/air1/air1.air</url>
      <description>1.0 - First version</description>
    </update>
    file -- air1.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                           xmlns:s="library://ns.adobe.com/flex/spark"
                           xmlns:mx="library://ns.adobe.com/flex/mx"
                           applicationComplete="init()">
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <fx:Script>
            <![CDATA[
                import air.update.events.UpdateEvent;
                import air.update.ApplicationUpdaterUI;
                import mx.controls.Alert;
                protected var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); // Used for auto-update
                protected function init():void
                    // Check for update
                    this.checkUpdate();
                    Alert.show("checking update");
                // This function is triggered when the application finished loading.
                // Initialize appUpdater and set some properties
                protected function checkUpdate():void
                    // set the URL for the update.xml file
                    appUpdater.updateURL = "http://localhost/air1/update.xml";
                    appUpdater.addEventListener(UpdateEvent.INITIALIZED, onUpdate);
                    appUpdater.addEventListener(ErrorEvent.ERROR, onUpdaterError);
                    // Hide the dialog asking for permission for checking for a new update.
                    // If you want to see it just leave the default value (or set true).
                    appUpdater.isCheckForUpdateVisible = true;
                    appUpdater.initialize();
                // Handler function triggered by the ApplicationUpdater.initialize.
                // The updater was initialized and it is ready to take commands.
                protected function onUpdate(event:UpdateEvent):void
                    // start the process of checking for a new update and to install
                    appUpdater.checkNow();
                // Handler function for error events triggered by the ApplicationUpdater.initialize
                protected function onUpdaterError(event:ErrorEvent):void
                    Alert.show(event.toString());
            ]]>
        </fx:Script>
        <s:Button x="47" y="55" label="Button"/>
        <mx:ColorPicker x="61" y="119"/>
        <s:ComboBox x="77" y="216"/>
        <s:ComboBox x="77" y="185"/>
        <s:ComboBox x="77" y="154"/>
    </s:WindowedApplication>
    file  -- air1-app.xml
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <application xmlns="http://ns.adobe.com/air/application/2.5">
    <!-- Adobe AIR Application Descriptor File Template.
        Specifies parameters for identifying, installing, and launching AIR applications.
        xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.5
                The last segment of the namespace specifies the version
                of the AIR runtime required for this application to run.
        minimumPatchLevel - The minimum patch level of the AIR runtime required to run
                the application. Optional.
    -->
        <!-- A universally unique application identifier. Must be unique across all AIR applications.
        Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
        <id>air1</id>
        <!-- Used as the filename for the application. Required. -->
        <filename>air1</filename>
        <!-- The name that is displayed in the AIR application installer.
        May have multiple values for each language. See samples or xsd schema file. Optional. -->
        <name>air1</name>
        <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
        Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
        An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
        <versionNumber>2.0.0</versionNumber>
        <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
        <!-- <versionLabel></versionLabel> -->
        <!-- Description, displayed in the AIR application installer.
        May have multiple values for each language. See samples or xsd schema file. Optional. -->
        <!-- <description></description> -->
        <!-- Copyright information. Optional -->
        <!-- <copyright></copyright> -->
        <!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
        <!-- <publisherID></publisherID> -->
        <!-- Settings for the application's initial window. Required. -->
        <initialWindow>
            <!-- The main SWF or HTML file of the application. Required. -->
            <!-- Note: In Flash Builder, the SWF reference is set automatically. -->
            <content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
            <!-- The title of the main window. Optional. -->
            <!-- <title></title> -->
            <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
            <!-- <systemChrome></systemChrome> -->
            <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
            <!-- <transparent></transparent> -->
            <!-- Whether the window is initially visible. Optional. Default false. -->
            <!-- <visible></visible> -->
            <!-- Whether the user can minimize the window. Optional. Default true. -->
            <!-- <minimizable></minimizable> -->
            <!-- Whether the user can maximize the window. Optional. Default true. -->
            <!-- <maximizable></maximizable> -->
            <!-- Whether the user can resize the window. Optional. Default true. -->
            <!-- <resizable></resizable> -->
            <!-- The window's initial width in pixels. Optional. -->
            <!-- <width></width> -->
            <!-- The window's initial height in pixels. Optional. -->
            <!-- <height></height> -->
            <!-- The window's initial x position. Optional. -->
            <!-- <x></x> -->
            <!-- The window's initial y position. Optional. -->
            <!-- <y></y> -->
            <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
            <!-- <minSize></minSize> -->
            <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
            <!-- <maxSize></maxSize> -->
        <autoOrients>false</autoOrients>
        <fullScreen>false</fullScreen>
        <visible>false</visible>
      </initialWindow>
        <!-- We recommend omitting the supportedProfiles element, -->
        <!-- which in turn permits your application to be deployed to all -->
        <!-- devices supported by AIR. If you wish to restrict deployment -->
        <!-- (i.e., to only mobile devices) then add this element and list -->
        <!-- only the profiles which your application does support. -->
        <!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
        <!-- The subpath of the standard default installation location to use. Optional. -->
        <!-- <installFolder></installFolder> -->
        <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
        <!-- <programMenuFolder></programMenuFolder> -->
        <!-- The icon the system uses for the application. For at least one resolution,
        specify the path to a PNG file included in the AIR package. Optional. -->
        <!-- <icon>
            <image16x16></image16x16>
            <image32x32></image32x32>
            <image36x36></image36x36>
            <image48x48></image48x48>
            <image72x72></image72x72>
            <image128x128></image128x128>
        </icon> -->
        <!-- Whether the application handles the update when a user double-clicks an update version
        of the AIR file (true), or the default AIR application installer handles the update (false).
        Optional. Default false. -->
        <!-- <customUpdateUI></customUpdateUI> -->
        <!-- Whether the application can be launched when the user clicks a link in a web browser.
        Optional. Default false. -->
        <!-- <allowBrowserInvocation></allowBrowserInvocation> -->
        <!-- Listing of file types for which the application can register. Optional. -->
        <!-- <fileTypes> -->
            <!-- Defines one file type. Optional. -->
            <!-- <fileType> -->
                <!-- The name that the system displays for the registered file type. Required. -->
                <!-- <name></name> -->
                <!-- The extension to register. Required. -->
                <!-- <extension></extension> -->
                <!-- The description of the file type. Optional. -->
                <!-- <description></description> -->
                <!-- The MIME content type. -->
                <!-- <contentType></contentType> -->
                <!-- The icon to display for the file type. Optional. -->
                <!-- <icon>
                    <image16x16></image16x16>
                    <image32x32></image32x32>
                    <image48x48></image48x48>
                    <image128x128></image128x128>
                </icon> -->
            <!-- </fileType> -->
        <!-- </fileTypes> -->
        <!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
        <!--<android>
            <manifestAdditions>
            <![CDATA[
                <manifest android:installLocation="auto">
                    <uses-permission android:name="android.permission.INTERNET"/>
                    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
                    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
                    <uses-configuration android:reqFiveWayNav="true"/>
                    <supports-screens android:normalScreens="true"/>
                    <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
                    <application android:enabled="true">
                        <activity android:excludeFromRecents="false">
                            <intent-filter>
                                <action android:name="android.intent.action.MAIN"/>
                                <category android:name="android.intent.category.LAUNCHER"/>
                            </intent-filter>
                        </activity>
                    </application>
                </manifest>
            ]]>
            </manifestAdditions>
        </android> -->
        <!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->
    </application>

    This appears to be a Flex question. Please try posting to the Flex forums here http://forums.adobe.com/community/flex/flex_general_discussion for better response.

  • Why does turning off auto updates turn them on?

    I have been trying to stop the auto update of Flash player for months - even went so far as to totally uninstall, remove all traces, then install fresh with the "do not auto update" setting. It still gives me pop-ups. Browsing the 'net I saw an article that made me think it might be related to Shockwave. Shockwave has NEVER asked me to update but, silly me, I unchecked it anyway.
    And now it is on and attempting to auto update.
    So, I'm left with two products that will not obey their settings.
    Please advise.

    i MonH,
    Unless someone deleted the file, it should exist on your system.  If you're on a 32-bit OS, the file will be in C:\Windows\System32\Macromed\Flash.  If you're on a 64-bit OS, the file will be in C:\Windows\SysWOW64\Macromed\Flash.  You can edit the file manually, or edit the update settings in the Flash Player Settings Manager, which may be easier. 
    To launch the Settings Manager, either navigate to the Control Panel and select the Flash Player icon, or launch a non-Chrome browser and view Flash content, then right-click on the content to display the Flash Player context menu.  Select Global Settings.
    When the Settings Manager displays, navigate to the Advanced tab.
    Click the Change Update Settings button
    Select the Never check for updates (not recommended) radio button
    Your update option has been set
    Viewing the mms.cfg file after making the updates, it should contain the following:
         AutoUpdateDisable=1
         SilentAutoUpdateEnable=0
    AutoUpdateDisable=1 is what disables the updates (background and notification) completely.
    Note that whenever you uninstall Flash Player the update settings are reset to the default setting (AutoUpdateDisable=0).  You'll need to be sure to select Never check for updates (not recommended) when you install Flash Player again.
    Maria

  • How do I stop auto update of date/time

    Hi,
    I'm starting to despair, a while ago I stupidly clicked on auto update/time on a letter I was working on, it seemed like a good idea at the time. But now whenever I open any letter the date is automatically updated which is a major problem as I am losing the references to when I actually wrote and therefore sent these letters. I'm too scared to open letters now because I'll lose this important piece of information.
    Any help appreciated!
    Thanks
    Nathalie

    Next time, don't use the Pages 's insert date_time feature.
    Use the one delivered in the free WordService from Devon Technologies.
    It always inserts a fixed date_time.
    But I have wondering about your problem.
    The Pages User Guide states:
    • To add and format the date and time, place the insertion point where you want the value to appear, and then choose Insert > Date & Time.
    To change the date and time format, Control-click the date and time value, choose Edit Date & Time, and then choose a date and time format from the pop-up menu. *If you want the document to always show the current date and time, select “Automatically update on open.”*
    Which, if I understand well means that the default setting is that the inserted date_time is a frozen (fixed) one.
    Yvan KOENIG (VALLAURIS, France) mardi 30 mars 2010 16:29:17

  • 11.0.9 is unusable, but after downgrading to 11.0, Acrobat keeps auto-updating back to 11.0.9

    I can't use 11.0.9 because it screws up the HTML > PDF conversion (alignment issues galore). I learned how to downgrade to 11.0 yesterday. This morning, I came into work and it had auto-updated back to 11.0.9. In Preferences > Updater it's set to not download and install updates, so I don't understand why this happened (apart from the fact that all updates on our machines require admin logins, which certainly didn't happen in the middle of the night!)
    I have the Creative Cloud, and it was running, but still, such an update shouldn't have happened without the admin login. We've turned off the CC launching at boot, but I do need to run it occasionally to update other apps, but I NEVER want Acrobat to update until they come out with a usable product again.
    Any help out there?
    TIA,
    Kirby

    Hi KRKnight,
    The latest version of Acrobat is v 11.0.10. Please check if you still face such conversion issues with Acrobat.
    Acrobat’s PDF export to HTML is targeted to facilitate reuse of exported HTML and retaining the exact layout is a secondary aspect. The export engine therefore focuses on accurately generating text content with minimum HTML tags that is well suited for text re-flow.
    If the base version 11.0 works correctly for you then you can continue using it but it's always recommended to update to the latest version as most of the reported bugs and security vulnerabilities are fixed in the latest version.
    Disabling the Adobe Acrobat XI update notifications is actually pretty easy. There’s a registry setting in HKEY_LOCAL_MACHINE that will allow you to completely disable both update notifications and the update functionality. The full path of the key is HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\11.0\FeatureLockDown
    The registry entry is named bUpdater and is a DWORD value. Setting the value to 0 disables updates. (Note: This DWORD value does not exist by default and either has to be created manually or by some other automated method like Group Policy.)
    Regards,
    Rave

  • Disable JRE Auto update in Vista for all users?

    I feel like a complete idiot that I can't figure this out, but it's either so obvious I'm overlooking it, or I just plain can't figure it out, so I'm hoping someone here can help.
    We have not yet been able to figure out how to simply disabled the Auto Update option when installing JRE under Vista, so it will never check for updates, no matter what user is logged into a pc. I've just installed the newest version 1.6.0_05-b13, but get the same results.
    Basically, we are creating a "base clone image" of a Vista workstation and we need the auto update feature of the JRE to be disabled so it doesn't check for updates. When a new user logs into the pc, we want them to 'inherit' this setting from the default user profile, or we simply want a 'global' setting on the pc that stops all JAVA update checks from occuring. But even though there are multiple registry keys that 'look' like they control the auto update function, no matter how we set them the update option still shows it is enabled when you open the JAVA control panel.
    We have 2 basic problems:
    - When a standard user runs the JAVA Control Panel applet and they select the 'Update' tab, the option to "uncheck" autoupdates is "grayed out". If we make the user a local administrator, then it is not grayed out anymore and they can set the option. Problem is, we have thousands of users and none of them are local administrators, hence the problem of getting it to already be defaulted to not check for updates. How do we get the update checkbox to NOT be grayed out for a NON-administrator?
    - How do we set the 'global' (or default) option to disable the auto update checkbox for ALL users? No matter what we try, when a new user logs in, the auto update feature is still enabled after their initial profile is generated from the first time login.
    I was able to figure out if I change the "EnableJavaUpdate" value in the below registry key, it will "remove" the Update tab from the JAVA Control Panel. But does the simply remove the tab? Or does it remove the tab AND disable auto updates for ALL users on the computer?
    HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy
    I've sent multiple emails to Sun asking for help on what should be a simple thing to do, but have never received a reply from them.
    Keith Hemmelman

    Thank you for the reply. I apologize for not getting back here sooner.
    We actually already use a deployment.properties file located under the Default User profile on our Vista setup. It's located under the "C:\Users\Default\AppData\LocalLow\Sun\Java\Deployment" folder. This file does get copied over to a new user profile when a new person logs in. This is what we want since we have set things like the maximum cache size and temporary file location.
    The problem though is there is no setting that disables the automatic update check within this file. The best I can figure out is that for some reason under the Vista environment, the auto update setting is controlled in the registry at: HKEY_CURRENT_USER\Software\JavaSoft\Java Update\Policy
    There is a REG_BINARY key there that appears to control this option. It is named "EnableAutoUpdateCheck". The problem is that the value of this key is "several" characters long and it is "different" from one user to the next. I tried disabling auto update under the Java Control Panel and then copied the value of this key into the same aread of the Default User hive but when a new user logs in, it ignores that setting and auto update is still enabled. I also tried using a simple "0" to disable the autoupdate or a "1" to enable it for this key, but it doesn't work either. (This is very frustrating why there isn't a simple 1 or 0 setting to turn the auto update setting on/off.)
    We had no problem getting this to work under XP. Basically we didn't have to do anything special in XP. We simply created a temporary user account and made all the settings we wanted and then copied that profile over to our Default User profile and the Java autoupdate setting under the Java Control Panel was disabled for all new users. We did the same thing under Vista, but the auto update setting was ignored and re-enabled for all new users.
    I read through the settings for the deployment.properties file located at the below link, but there is nothing there to control the auto update setting.
    http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/properties.html
    Thus, we can't get the auto update setting to be disabled in the default user profile so it will in turn be disabled for all new users that log into the computer. This is extremely frustrating.
    The other equally frustrating problem we have run into under the Vista environment is that when you run the Java Control Panel, the option to disable the auto update check is "grayed out" and the user can't uncheck this option to disable auto update. We have found you must be an administrator before this option is no longer grayed out. Since none of our thousands of users are admins, this is also a problem for us. (This option works fine for a standard user if you are on a XP machine though. It's just Vista where things have changed.)
    I've sent repeated emails to Sun in the past asking for help, but they never replied.
    Keith

Maybe you are looking for