<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7243625079340377775</id><updated>2011-12-26T10:32:44.238-08:00</updated><title type='text'>miket's notes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-8205463075875465810</id><published>2011-12-25T13:45:00.000-08:00</published><updated>2011-12-26T10:32:44.248-08:00</updated><title type='text'>Installing cinnamon on LMDE</title><content type='html'>Installs but does not run.... working on it... please comment if you've had better luck.&lt;br /&gt;&lt;br /&gt;Follow instructions to upgrade to gnome-shell 3.2 here:&lt;br /&gt;&lt;br /&gt;http://forums.linuxmint.com/viewtopic.php?f=197&amp;amp;t=89327&lt;br /&gt;&lt;br /&gt;Dependencies, even on the debian package, have the wrong package name, though some of these can be upgraded -- look for equivalent packages in your debian repos (in sid and experimental as well).&lt;br /&gt;&lt;br /&gt;once you've upgraded everything you can, and have downloaded cinnamon run something like this:&lt;br /&gt;&lt;br /&gt;sudo dpkg --ignore-depends=libecal1.2-10,libedataserver1.2-15,libgjs0c,libmozjs185-1.0,libpulse-mainloop-glib0,libpulse0 -i Downloads/cinnamon_1.1.2_amd64.deb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-8205463075875465810?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/8205463075875465810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/12/installing-cinnamon-on-lmde.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/8205463075875465810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/8205463075875465810'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/12/installing-cinnamon-on-lmde.html' title='Installing cinnamon on LMDE'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-6740050459609646849</id><published>2011-12-14T22:42:00.000-08:00</published><updated>2011-12-14T22:42:45.671-08:00</updated><title type='text'>Hades simulation framework.</title><content type='html'>Taking a computer architecture class, I'm immersed regularly in something known as hades simulation framework.&amp;nbsp; Whether or not the name was intentional matters not.&amp;nbsp; This is like being in hell.&amp;nbsp; An interesting hell, but not a user friendly one.&amp;nbsp; If you don't know what it is, feel blessed.&amp;nbsp; If you do, you know there's very little info about troubleshooting on the internet.&amp;nbsp; Some quick and dirty notes:&lt;br /&gt;&lt;br /&gt;If subdesigns don't show up properly, you can make your own .sym file and specify port locations, names, etc.&amp;nbsp; An example is below:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.BboxRectangle&amp;nbsp; 0 0 4000 2600&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.Rectangle&amp;nbsp; 0 0 4000 2600&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.InstanceLabel 150 450 1bit4to1MUX&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 150 350 I0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 0 200 I0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 150 950 I1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 0 800 I1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 150 1550 I2&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 150 2150 I3&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 0 2000 I3&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 0 1400 I2&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 2800 350 S0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 4000 200 S0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 2800 950 S1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 4000 800 S1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortLabel 2800 1550 Output&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;hades.symbols.PortSymbol 4000 1400 Output&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are a number of reasons subdesigns will appear to be non functional or not respond in a larger design... I'll try to add to these as I find more:&lt;br /&gt;&lt;br /&gt;1. Output named "Y" -- I've had success with this, but it seems to be unpredictable.&amp;nbsp; Avoid it.&lt;br /&gt;2. Edits to subdesigns will sometimes disconnect ports in larger designs.&amp;nbsp; An easy way to test if this has happened is to move the subdesign in the larger design... wires should stay connected, if they don't, well, there you go... delete segments nearest your connections and then add segments to the original wire and reconnect.&lt;br /&gt;3. In your subdesigns, set all your Ipins to default to 0.&amp;nbsp; Defaulting to undefined can cause problems in larger designs.&lt;br /&gt;4. you can't depend on Ipin vectors to take default values.&amp;nbsp; Plan ahead on how to get data in.&lt;br /&gt;&lt;br /&gt;I'm sure that there are more tips, but the semester is over and hades is slowly seeping out of mind.&amp;nbsp; However, if you've stumbled across this and are knee deep in hades issues, go ahead and send an email, maybe i can help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-6740050459609646849?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/6740050459609646849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/12/hades-simulation-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/6740050459609646849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/6740050459609646849'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/12/hades-simulation-framework.html' title='Hades simulation framework.'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-2789235322723905579</id><published>2011-08-29T10:04:00.000-07:00</published><updated>2011-08-29T10:04:46.610-07:00</updated><title type='text'>Installing awn on LMDE XFCE without adding crazy gnome dependencies</title><content type='html'>&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sudo apt-get install libdesktop-agnostic0 libdesktop-agnostic-vfs-gio libdesktop-agnostic-fdo-glib libdesktop-agnostic-cfg-gconf gconf2 libnotify4&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;now, download this package:&lt;br /&gt;http://packages.debian.org/wheezy/libawn1&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo dpkg -i libawn1_0.4.1~bzr830-1_amd64.deb &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(modify for your arch, of course)&lt;br /&gt;&lt;br /&gt;now download this package:&lt;br /&gt;http://packages.debian.org/wheezy/all/avant-window-navigator-data/download&lt;br /&gt;&lt;br /&gt;and sudo dpkg -i for the downloaded file.&lt;br /&gt;&lt;br /&gt;Now, you should be able to download the actual avant-window-manager package from here:&lt;br /&gt;http://packages.debian.org/wheezy/avant-window-navigator&lt;br /&gt;&lt;br /&gt;and run dpkg like so:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;sudo dpkg&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;--ignore-missing gnome-applets --ignore-missing gnome-applets-data --ignore-missing gnome-control-center --ignore-missing gnome-panel --ignore-missing gnome-panel-data --ignore-missing gnome-session --ignore-missing nautilus --ignore-missing nautilus-data&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;-i &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;avant-window-navigator_0.4.1~bzr830-1_amd64.deb&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Again, modified for your arch.&lt;br /&gt;&lt;br /&gt;Now you have awn installed, but you're still not going to have very many applets... if you search through the repos, you will be able to install some of the applets without gnome dependencies, but many of them *depend* on gnome-applets.&amp;nbsp; Not to worry, we can install that without proper gnome as well.&lt;br /&gt;&lt;br /&gt;First we need gnome-applets-data, which does not require any extra gnome nastiness.&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo apt-get install gnome-applets-data&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then download this package:&lt;br /&gt;http://packages.debian.org/squeeze/gnome-applets&lt;br /&gt;&lt;br /&gt;now run:&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo dpkg --ignore-depends gnome-control-center --ignore-depends gnome-panel --ignore-depends gnome-panel-data --ignore-depends gnome-session --ignore-depends nautilus --ignore-depends nautilus-data -i gnome-applets_2.30.0-3_amd64.deb &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As usual, modifying for your archicture.&amp;nbsp; I found that installing the additional awn applet packages was slightly problematic and kept breaking things because gnome-applets keeps wanting to pull in gnome-panel.&amp;nbsp; If you see this breakage, run:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sudo aptitude -f install&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Allow it to uninstall gnome-applets and then re-run the install cmd above.&amp;nbsp; Ultimately I had to download and install awn-applets-c-core with dpkg.&lt;br /&gt;&lt;br /&gt;Now, not *everything* works.&amp;nbsp; A few of the applets crash, but the vast majority of things work just as they do in gnome, but without pulling in and running gnome-session and nautilus which really screw with the xfce user experience.&amp;nbsp; I will update this as I continue to debug some og the problems, but I'm happy to have a decent dock under xfce!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-2789235322723905579?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/2789235322723905579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/08/installing-awn-on-lmde-xfce-without.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/2789235322723905579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/2789235322723905579'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/08/installing-awn-on-lmde-xfce-without.html' title='Installing awn on LMDE XFCE without adding crazy gnome dependencies'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-941341893821503346</id><published>2011-08-19T16:22:00.000-07:00</published><updated>2011-08-19T16:22:54.648-07:00</updated><title type='text'>dpkg notes</title><content type='html'>Search for what package a file came from: dpkg -S&lt;br /&gt;Show installed version of a package: &lt;code&gt;dpkg-query -l&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-941341893821503346?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/941341893821503346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/08/dpkg-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/941341893821503346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/941341893821503346'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/08/dpkg-notes.html' title='dpkg notes'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-639794368955216134</id><published>2011-08-19T14:11:00.000-07:00</published><updated>2011-08-19T14:59:00.999-07:00</updated><title type='text'>Patching and rebuilding debian packages</title><content type='html'>So i've been doing some bug fixes for packages in the linux mint debian edition and its been alot of fun.  However, since they have kind of a small team and it takes awhile for patches to hit the distro, i thought it might be fun and helpful to roll my own .deb packages for people to "try at your own risk" until official packages are released.&lt;br /&gt;&lt;br /&gt;So, for my own point of reference and as a quick reference to anyone who cares, here's a simple tutorial.  You'll need normal debian buildtools and something called quilt that helps manage patches.  Lets assume you've fixed your bug and made a diff against the original file and all that good stuff.  I keep directories like so to keep track of what i'm working on, so you'll see them referenced:&lt;br /&gt;&lt;br /&gt;~/bin (for binaries or ready-to-use scripts)&lt;br /&gt;~/src (for debian source packages and in progress scripts)&lt;br /&gt;~/diffs (for patches)&lt;br /&gt;&lt;br /&gt;normally to get a debian source package, you would run something like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="font-family:courier new;"&gt;voytek@voytek ~/src &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;$ apt-get source &lt;/span&gt;&lt;span style="font-style: italic; font-family:courier new;" &gt;package-name&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in whatever directory you want to have the new source directory created. I'm working on the mintBackup tool which they don't have a debian source package for in the repos, so I'm pulling it directly from git:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;voytek@voytek ~/src $ git clone git://github.com/linuxmint/mintbackup.git&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Simple procedures for working with quilt come from this &lt;a href="http://pkg-perl.alioth.debian.org/howto/quilt.html"&gt;tutorial&lt;/a&gt;&lt;/span&gt;, however before you start using quilt for debian packages, you'll want to make sure you have a ~/.quiltrc file that at least has this line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;QUILT_PATCHES=debian/patches&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This makes sure you're putting the patches where debian expects them.  The tutorial tells us:&lt;br /&gt;&lt;p&gt;&lt;code&gt;"quilt&lt;/code&gt; works in the source tree. There's no copying large trees around. There's also no need to always keep the source tree clean of unapplied changes just to be able to extract a diff with SVN.&lt;/p&gt; &lt;p&gt;To achieve this, however, &lt;code&gt;quilt&lt;/code&gt; needs to know which files are contained in each patch. The workflow is as follows:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;strong&gt;&lt;a name="you_tell_quilt_that_you_start_working_on_a_given_patch" class="item"&gt;you tell &lt;code&gt;quilt&lt;/code&gt; that you start working on a given patch&lt;/a&gt;&lt;/strong&gt;  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;a name="you_work_on_that_patch" class="item"&gt;you work on that patch&lt;/a&gt;&lt;/strong&gt;  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;a name="you_tell_quilt_that_you_re_done" class="item"&gt;you tell &lt;code&gt;quilt&lt;/code&gt; that you're done&lt;/a&gt;&lt;/strong&gt;"&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So I move into the mintbackup src directory and I run:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;voytek@voytek ~/src/mintbackup $ quilt new python-apt-api-changes.patch&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;You can name the patch anything you want, but I'm choosing to name mine descriptively.&lt;/span&gt;  Next you would want to edit and/or patch the file, but first you have to tell quilt what file you're editing.  To do this, you just run:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;voytek@voytek ~/src/mintbackup $ quilt edit usr/lib/linuxmint/mintBackup/mintBackup.py &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Now, this will open the file you've specified in whatever you have set as your $EDITOR&lt;/span&gt;&lt;/span&gt;.  You could make your changes here, but I like to be organized and I tend to make mistakes when I don't have a way to test things nicely, so I'm going to use the patch I already made.  So, I close my editor and quilt responds with:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;File usr/lib/linuxmint/mintBackup/mintBackup.py added to patch python-apt-api-changes.patch&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Good times!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The patch I'm using was originally created from my copy of the modified script in ~/bin applied to the unmodified version on my system, like so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;voytek@voytek ~ $ diff /usr/lib/linuxmint/mintBackup/mintBackup.py bin/mintBackup.py &amp;gt; diffs/mintBackup.py.diff&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;And to apply it, I will simply run:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;voytek@voytek ~/src/mintbackup $ patch usr/lib/linuxmint/mintBackup/mintBackup.py ~/diffs/mintBackup.py.diff&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Now we have to tell quilt that we're finished, which will output the following (cmd included):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;voytek@voytek ~/src/mintbackup $ quilt refresh python-apt-api-changes.patch&lt;br /&gt;Refreshed patch python-apt-api-changes.patch&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Great, so our modified source is ready to be built into a package!  This can be done from the root of the source tree by running:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;voytek@voytek ~/src/mintbackup $ debuild -us -uc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Assuming we did everything correctly, this should create .deb packages for our modified sources in the parent directory.  Thankfully, since the package I'm working on today doesn't have any compiled binaries, I also get a mintbackup_2.0.8_all.deb package which can install on any architecture.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-639794368955216134?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/639794368955216134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/08/patching-and-rebuilding-debian-packages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/639794368955216134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/639794368955216134'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/08/patching-and-rebuilding-debian-packages.html' title='Patching and rebuilding debian packages'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-8767091184586586945</id><published>2011-08-19T14:09:00.000-07:00</published><updated>2011-08-19T14:10:42.473-07:00</updated><title type='text'>mintbackup</title><content type='html'>voytek@voytek ~/src $ git clone git://github.com/linuxmint/mintbackup.git&lt;br /&gt;Cloning into mintbackup...&lt;br /&gt;remote: Counting objects: 1343, done.&lt;br /&gt;remote: Compressing objects: 100% (461/461), done.&lt;br /&gt;remote: Total 1343 (delta 571), reused 1322 (delta 551)&lt;br /&gt;Receiving objects: 100% (1343/1343), 335.08 KiB | 202 KiB/s, done.&lt;br /&gt;Resolving deltas: 100% (571/571), done.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-8767091184586586945?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/8767091184586586945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2011/08/mintbackup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/8767091184586586945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/8767091184586586945'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2011/08/mintbackup.html' title='mintbackup'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7243625079340377775.post-4993110608071547395</id><published>2009-01-06T08:31:00.000-08:00</published><updated>2009-01-07T08:39:06.134-08:00</updated><title type='text'>Freedesktop (Gnome, KDE, etc) menu specs and layouts</title><content type='html'>Ok, so, more explanations later, but when I used to work at Google, I found keeping some notes on a blog really helpful for me when I was working on a project... so one of my current projects is to build a simple point and click launcher for ubuntu applications similar to the old "Launcher" application on Classic Mac OS, but with the ability to show a description for each program, and the ability to display multiple languages simultaneously.&lt;br /&gt;&lt;br /&gt;I want to use python / pygtk to accomplish this and want it to require as little maintenance for new programs as possible.  Looking at existing menus in Ubuntu (and any distrobution that follows the freedesktop.org specs), all the information we need is already in the existing menu system, but its not straightforward as to where to access the underlying info.  After some digging, I found it, so I'm laying it down here for anyone else who wants to solve a similar problem.&lt;br /&gt;&lt;br /&gt;I'll take a minute to explain *why* I want to build an app like this because inevitably if anyone is reading this, someone is thinking, "what's wrong with just using the menu system?"  I volunteer at a community center on the southside of chicago, and a large part of the demographic we serve are adults who've never touched a computer before, many of whom speak only spanish, and some who have literacy problems.  We also have a large youth population who are largely bilingual and a smaller core of volunteers and staff who are either bilingual, english or spanish speakers.  To those of us who've been using computers for a long time, a menu system seems very natural, but in our computer classes we often have to teach people how to use a mouse, what a folder is, etc.  So, if someone wants to use a computer but cannot attend one of our classes, its very intimidating for them.  Having a simple launcher that can display application names with descriptions in multiple languages (in our case, english and spanish, but keeping it fairly easy to allow for any language that the system supports) is the goal, and all the information is here already.&lt;br /&gt;&lt;br /&gt;So, the freedesktop.org manu spec is located here: http://standards.freedesktop.org/menu-spec/latest/  this has most of the info we need but is a little verbose.  Here's the quick and dirty:&lt;br /&gt;&lt;br /&gt;Top level menu definitions are defined here:&lt;span class="term"&gt;&lt;code class="varname"&gt;&lt;br /&gt;$XDG_CONFIG_DIRS&lt;/code&gt;/menus/&lt;code class="varname"&gt;${XDG_MENU_PREFIX}&lt;/code&gt;applications.menu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where $XDG_CONFIG_DIRS and ${XDG_MENU_PREFIX} are environment variables.  On ubuntu, the xdg config dir is /etc/xdg/&lt;br /&gt;&lt;br /&gt;So if i look in /etc/xdg/menus on my ubuntu machine, I see:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;applications.menu    gnome-screensavers.menu  settings.menu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;applications-merged  kde-applications.menu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;gnomecc.menu         preferences.menu&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All we're worried about for now is applications.menu.  For the unified menu system on ubuntu, most window managers use this as their main top level menu.  This file defines the categories displayed, etc.  It's an XML file and if you look at it, its fairly straight forward.  We're not going to use it much at the moment, but we'll want to remember it later when we get to traversing the menus with python.&lt;br /&gt;&lt;br /&gt;Individual applications are defined in $XDG_DATA_DIRS/applications.  On ubuntu, $XDG_DATA_DIRS defaults to:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;/usr/local/share/:/usr/share/:/usr/share/gdm&lt;/span&gt;/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The majority of our apps in the main applications menu appear to be in /usr/share/applications... you'll see files for each app that's something like firefox.desktop... lets look at that for an example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;[Desktop Entry]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Version=1.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name=Firefox Web Browser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[ca]=Navegador web Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[cs]=Firefox Webový prohlížeč&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[es]=Navegador web Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[fa]=ﻡﺭﻭﺭگﺭ ﺍیﻦﺗﺮﻨﺗی Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[fi]=Firefox-selain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[fr]=Navigateur Web Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[hu]=Firefox webböngésző&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[it]=Firefox Browser Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[ja]=Firefox ウェブ・ブラウザ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[ko]=Firefox 웹 브라우저&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[nb]=Firefox Nettleser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[nl]=Firefox webbrowser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[nn]=Firefox Nettlesar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[no]=Firefox Nettleser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[pl]=Przeglądarka WWW Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[pt]=Firefox Navegador Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[pt_BR]=Navegador Web Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[sk]=Internetový prehliadač Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Name[sv]=Webbläsaren Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment=Browse the World Wide Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[ca]=Navegueu per el web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[cs]=Prohlížení stránek World Wide Webu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[de]=Im Internet surfen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[es]=Navegue por la web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[fa]=ﺺﻔﺣﺎﺗ ﺶﺑکﻩ ﺞﻫﺎﻧی ﺍیﻦﺗﺮﻨﺗ ﺭﺍ ﻡﺭﻭﺭ ﻦﻣﺍییﺩ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[fi]=Selaa Internetin WWW-sivuja&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[fr]=Navigue sur Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[hu]=A világháló böngészése&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[it]=Esplora il web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[ja]=ウェブを閲覧します&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[ko]=웹을 돌아 다닙니다&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nb]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nl]=Verken het internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nn]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[no]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pl]=Przeglądanie stron WWW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pt]=Navegue na Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pt_BR]=Navegue na Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[sk]=Prehliadanie internetu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[sv]=Surfa på webben&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName=Web Browser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[ca]=Navegador web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[cs]=Webový prohlížeč&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[es]=Navegador web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[fa]=ﻡﺭﻭﺭگﺭ ﺍیﻦﺗﺮﻨﺗی&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[fi]=Selaa Internetin WWW-sivuja&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[fr]=Navigue sur Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[hu]=A világháló böngészése&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[it]=Esplora il web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[ja]=ウェブを閲覧します&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[ko]=웹을 돌아 다닙니다&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nb]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nl]=Verken het internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[nn]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[no]=Surf på nettet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pl]=Przeglądanie stron WWW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pt]=Navegue na Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[pt_BR]=Navegue na Internet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[sk]=Prehliadanie internetu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Comment[sv]=Surfa på webben&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName=Web Browser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[ca]=Navegador web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[cs]=Webový prohlížeč&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[es]=Navegador web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[fa]=ﻡﺭﻭﺭگﺭ ﺍیﻦﺗﺮﻨﺗی&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[fi]=WWW-selain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[fr]=Navigateur Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[hu]=Webböngésző&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[it]=Browser Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[ja]=ウェブ・ブラウザ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[ko]=웹 브라우저&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[nb]=Nettleser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[nl]=Webbrowser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[nn]=Nettlesar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[no]=Nettleser&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[pl]=Przeglądarka WWW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[pt]=Navegador Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[pt_BR]=Navegador Web&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[sk]=Internetový prehliadač&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;GenericName[sv]=Webbläsare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Exec=firefox %u&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Terminal=false&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;X-MultipleArgs=false&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Type=Application&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Icon=firefox-3.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Categories=Application;Network;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;StartupWMClass=Firefox&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;StartupNotify=true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alright, so here we have everything we need for our app... we have the application name and a generic name in multiple languages, the info about the icon and the executeable, and a description or "Comment" in multiple languages that should be descriptive enough for most users.  We also have the "Categories" section that shows us what submenu its part of (because we likely don't want to show all applications in our launcher, but may want to limit by submenu, or possibly have tabs for different categories).&lt;br /&gt;&lt;br /&gt;Next up:  we'll talk about how to traverse this info in python using python-gmenu and figure out how to use multiple languages simultaneously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7243625079340377775-4993110608071547395?l=hozomean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hozomean.blogspot.com/feeds/4993110608071547395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hozomean.blogspot.com/2009/01/freedesktop-gnome-kde-etc-menu-specs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/4993110608071547395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7243625079340377775/posts/default/4993110608071547395'/><link rel='alternate' type='text/html' href='http://hozomean.blogspot.com/2009/01/freedesktop-gnome-kde-etc-menu-specs.html' title='Freedesktop (Gnome, KDE, etc) menu specs and layouts'/><author><name>mike</name><uri>http://www.blogger.com/profile/03785159190106294460</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
