Oplossing om een eigen menu te maken in Xubuntu. Sorry dat dit misschien wat simpel geschreven is, maar het was de oplijsting van een aantal dagen zoeken die ik hier integraal post. Hopelijk hebben sommige mensen er iets aan. Het is mijn persooonlijke voorkeur van menu, iedereen kan dit aanpassen naar zijn eigen noden en programma's.
Er zijn drie files die belangrijk zijn:
*) De "hoofdfile":
/etc/xdg/xfce4/desktop/menu.xml
Deze mag niet aangepast worden. Is van root. Dient enkel maar als voorbeeld.
*) Dan de tweede is de automatisch gegenereerde file:
/home/naam/.cache/xfce/desktop/menu-cache--home-naam-.config-xfce-desktop-menu.xml.xml
dewelke de menustructuur bevat van het huidige menu.
*) Ten slotte de derde file:
/home/naam/.config/xfce/desktop/menu.xml
dewelke de file is die gebruikt wordt bij de creatie van het menu.
Deze heeft een "link" naar de automatisch gegenereerde file en er kan
een link bijgemaakt worden voor een nieuwe file die dan het voor mij
aangepaste menu beschrijft. De eerste link kan dan uitgekommentarieerd
worden zodat het automatische deel weg is.
Stap 1: Aanpassen van de file die gebruikt wordt voor het maken van het menu.
Dit is de file: /home/naam/.config/xfce/desktop/menu.xml
Maak een kopie voor zekerheid en noem deze menu_backup.xml.
Uitleg over wat er moet gebeuren vindt je in de eerste file (van root).
Er moet een lijn weggedaan worden en eentje bijgevoegd d.m.v. de
kommentaarlijnen te wijzigen. Maak een link in de menu.xml file naar menu2.xml
De inhoud van de file /home/naam/.config/xfce/desktop/menu.xml moet nu zijn:
Zoals te zien is er een link naar een tweede file menu2.xml. Deze bevat
de informatie van het menu dat ik wil. Dit is de lijn:
De lijn met de link naar de automatisch gegenereerde file is deze er
vlak boven:
Indien deze file nu wordt uitgevoerd als echt menu is er enkel nog
het automatisch gegenereerde deel, de andere file bestaat immers nog niet.
Ook zijn beide delen beschikbaar, er is nog niets uitgekommentarieerd.
Stap 2: Maken van de nieuwe file voor ons eigen menu. Dit kan het eenvoudigste
gebeuren door een andere file te nemen en te kopieren als start. Dit is
inderdaad mogelijk want er is reeds een automatisch gegenereerde file
met alle huidige programma's in. Deze kopieren we, dus:
/home/.cache/xfce/desktop/menu-cache--home-naam-.config-xfce-desktop-menu.xml.xml
kopieren naar /home/naam/.config/xfce4/desktop/menu2.xml en gaan
we aanpassen naar onze wensen. De programma's zijn opgedeeld in submenu's.
Deze moeten eerst gedefinieerd worden. De nieuwe file heeft dit reeds in
zich. Het menu moet er uit zien als volgt:
Terminal
Xfce file manager
Firefox
*) Accessories
*) Internet
*) System tools
*) Graphics
*) Office
*) Sound & Video
*) Programming
*) Other
*) Games
*) Settings
*) System
Eerst moeten de onderwerpen van het menu zelf gemaakt worden. Per programma
moet er een regel in de nieuwe file komen. Deze regel bevat de info van het
programma, de naam, een link naar het icoon en het opstartcommando. Algemeen ziet
deze file (/home/naam/.config/xfce4/desktop/menu2.xml) er uit als volgt:
De file begint met de volgende regels, die correct moeten zijn anders wordt het menu niet geladen:
En eindigt met:
Zoals te zien zijn er reeds drie programma's bijgevoegd. Terminal, Xfe en Firefox.
Dan komt er een scheidingslijn
en daarna menu-items die subitems bevatten. Deze laatste zijn nog niet weergegeven
hierboven. De subitems kunnen ook gescheiden worden door een lijn. Hier het voorbeeld
van het menu-item "Accessories":
Duidelijk is dat de nodige info per item moet meegegeven worden anders zal deze niet
correct verschijnen in het menu. Als voorbeeld het eerste programma, "Terminal". De naam
is duidelijk "Terminal" dewelke gaat verschijnen in het menu. Daarna staat het opstartcommando
gegeven, dan komt het path naar het icoon, dan de melding of het een programma is dat in een
terminal moet gerund worden, hier niet want het is de terminal zelf en ten slotte de vraag
of snotify true of false moet zijn. Dit is soms true en soms false, ik weet niet goed wanneer
het het een of het andere moet zijn. Op de volgende site heb ik gevonden:
http://xubuntu.wordpress.com/2006/07/12/manually-edit-the-xfce-menu/snotify sets whether or not the program supports startup notification. (You can probably leave this to false.)
Dit ken ik niet en dus laat ik alles maar staan zoals het staat. Deze codes die je
nodig hebt staan meestal in het automatisch gegenereerde menu. Meestal kopieer ik
ze gewoon naar het menu dat ik zelf wil. Soms is het wat zoeken naar het opstartcommando
of het icoon, maar als je iets weet over de naam van het programma (wat normaal zo moet zijn)
kan je in een terminal gaan zoeken naar de locatie van files met deze naam. Bijvoorbeeld:
$ locate *xfe*.png
Dit geeft dan een lijst met alle png files die xfe in hun path hebben staan. Het kan soms
een langdradige lijst zijn, maar normaal vindt je wel wat je moet hebben op deze manier.
Het menu dat ik nu gebruik is het volgende (/home/naam/.config/xfce4/desktop/menu2.xml) :
Stap 3: Activeren van het menu. Eerst zeker zijn dat stap 1 correct is uitgevoerd. In de file
/home/naam/.config/xfce/desktop/menu.xml moet de aanroep naar het eigen menu zeker
bijgevoegd zijn.
. Indien dit OK is, dan kan je
het nieuwe menu activeren door de menu editor te openen. Dit kan door in een terminal
xfce-setting-show te typen of door het programma Settings - Settings Manager te openen
vanuit het bestaande menu. In dit venster staat de menu-editor die je moet openen.
Hierin zal een lijn staan met "--- include --- system" en een lijn met
"--- include --- menu2.xml". Deze kan je aan- of afvinken bij de kolom hidden. Normaal
gezien staat het systeem menu (dit is het automatisch gegenereerde menu) op visible.
Je kan dit hidden maken door aan te vinken en de file menu2 visible maken door af te
vinken. Dit saven en het menu dat je zelf gemaakt hebt zou het andere moeten vervangen
hebben.
Stap 4: Toevoegen nieuwe programma's. Dit kan gebeuren door het programma te installeren, maar
zal dan niet in het menu zichtbaar zijn omdat dit je eigen menu is. Je moet het er zelf
nog bijzetten. Normaal gezien is dit wel bijgevoegd in het automatisch gegenereerde menu.
Hierin kan je dan de regel kopieren van het nieuwe programma en bijvoegen in menu2.xml.
Het activeren van dit nieuwe menu gaat dan eenvoudig door weerom de menu editor te openen
en de menu2.xml file hidden te maken en de system menu visible. Dan saven en opnieuw deze
twee vinken inverteren en opnieuw saven. Het nieuwe programma zou er bij moeten staan.
Opmerking: Alle programma's dienen een .desktop file te hebben. Deze zijn dikwijls te vinden onder
/usr/share/applications/.... Deze files dienen dezelfde commando's te hebben als dewelke
in de regels van het menu2.xml file staan. Dit moet aangepast worden indien deze niet
overeenstemmen anders komt het menu niet zichtbaar in de menustructuur of werkt het
programma niet vanuit opstart van het menu. Meestal worden deze automatisch bijgevoegd
na installatie. Heel soms moet je deze file zelf maken. Dit kan wat googlewerk vergen.