Bueno , se que este tipo de cosas no importan mucho , pero como es algo interesante y aplicacble a otros linux/escritorios , pues lo voy a explicar un poco por encima.
Muchos habreis visto que tras alguna actualizacion de sistema , el menu de aplicaciones se rompia y todo quedaba en “objetos perdidos”
¿por que sucede esto?
Sucede por que para customizar el menu de aplicaciones y añadir secciones/catgorias y hacer ajustes de tipo ..esta app que no aparezca en esta seccion pero si en la otra que nos gusta mas..etc etc , se venia modificando el fichero menu “principal” ..que se aloja en
Escritorio KDE
/etc/kde/xdg/menus/applications.menu
Se cogia el menu principal y se trabaja ese fichero haciendo las modificaciones oportumas … pero si por algun motivo , lleva una actualizacion del paquete
“kdelibs” , dicho fichero era sobreescrito …y el menu volvia a ser el basico inicial de kde , haciendonos perder todas las secciones que se añaden para customizar el sistema.
Entendiendo que el menu es un fichero del paquete kdelibs , y que si se actualizase volveria a ser “plano” ..ahora parece sencillo entender por que se rompia, ¿verdad?
OK … ¿y como vas a evitar que eso pase de nuevo?
Bien , lo explicare de forma breve y sencilla … existe una forma “correcta” y “elegante” , de añadir secciones y modificaciones al menu , sin
*MALTRATARel menu base , esto seria añadiendo ficheros *.menu en la ruta
/etc/xdg/menus/applications-merged/
En esa ruta puedes añadir menus , que se añadiran automaticamente al menu inicial sin necesidad de tocar el fichero original.
Por ejemplo … como hacemos para que en el menu , la seccion “wifislax” , este arriba del todo ..la primera , por encima del resto ..pues asi
<!DOCTYPE Menu PUBLIC “-//freedesktop//DTD Menu 1.0//EN”
“http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd”>
<Menu>
<Layout>
<Merge type=”menus”/>
<Menuname>Wifislax</Menuname>
<Menuname>Actualizadores</Menuname>
<Menuname>Development</Menuname>
<Menuname>Education</Menuname>
<Menuname>wine-wine</Menuname>
<Menuname>Games</Menuname>
<Menuname>Graphics</Menuname>
<Menuname>Internet</Menuname>
<Menuname>Multimedia</Menuname>
<Menuname>Office</Menuname>
<Menuname>Science</Menuname>
<Menuname>System</Menuname>
<Menuname>Utilities</Menuname>
<Menuname>Applications</Menuname>
<Merge type=”files”/>
<Filename>kde4-kfind.desktop</Filename>
</Layout>
<Menu>
<Name>Settingsmenu</Name>
<Deleted/>
</Menu>
</Menu>
Fijaros en los “menuname” ..como estan ordenados … , si no hacemos eso , por defecto se ordenarian en orden alfabetico
Ahora desde wifislax64-1.1-rc4 , esa parte sera un unico fichero .menu llamado
Orden.menu
Alojado en la ruta anteriormente comentada
/etc/xdg/menus/applications-merged/
Sin necesidad de tocar el menu original principal
Otro ejemplo , con otra modificacion “leve” , okular , es una app del escritorio kde, la cual aparece en “oficina” ,pero ,,, solo aparece esa con nuestra eleccion de apps por defecto para wifislax, y me parecia un poco trite ya que ademas okular , para abrir ficheros pdf o de otro tipo , ni es siquiera llamada desde el menu ya que al intentar abrir un pdf , automaticamente se abre en okular , esto me hacia pensar que la entrada al menu era innecesaria en principio y hacia “triste” una seccion entera con una solo app , asi que por ndefecto se ocualta en el menu.
<!DOCTYPE Menu PUBLIC “-//freedesktop//DTD Menu 1.0//EN”
“http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd”>
<Menu>
<Menu>
<Name>Office</Name>
<Directory>kde-office.directory</Directory>
<Include>
<And>
<Category>Office</Category>
<Not><Category>X-KDE-More</Category></Not>
</And>
</Include>
<Exclude>
<Filename>kde4-okular.desktop</Filename>
</Exclude>
</Menu>
</Menu>
Fijaros al final el exclude y el filename ..
esa pequeña modificacion esta en un solo fichero unico de tipo .menu
y asi con todo … se entiende ahora entonces que haciendolo asi, es imposible romper de nuevo el menu ya que aunque el menu principal fuese sobreescrito en una actualizacion , muestras modificaciones estaran a salvo en el directorio “merged”
He mostrado dos modificaciones paqueñas , añadir toda una nueva seccion con sus subcategorias es algo mas tedioso , pero una vez hecho , sera permanente.
COMOCIMIENTO EXTRA
Como funciona el tema este de customizar menus ..que se necesita.
Pues basicamente esto funciona asi …
1 – Aplicacion con fichero *.desktop tiene el valor
Categories=
Donde se pone la categoria o categorias si queremos que aparezca en mas de una.
Por ejemplo , wpamagickey , tiene categoria “cifrados”
Para que dicha entrada de menu aparezca , se necesitara que “exista” , la categoria cifrados que es un fichero de tipo *.directory , el cual crea el directorio (categoria) para albercar las aplicaciones que llamen a esa categoria/seccion.
Los ficheros directori estan en
/usr/share/desktop-directories/
y por ultimo necesitariamos que nuetsro menu reconociese dicha categoria , para que al ser llamada por algun desktop ,esta categoria fuese ordenada en nuestro menu.
Resumido.
desktop llama a –> directori y directori –> sera ordenado por menu
wpamagickey.desktop –> cifrados.directory –> menu que reconozca ese directory ..si no apareceria como objeto perdido.
Por eso al destruir el menu “custom” que contiene “cifrados” que es seccion custom … todos los desktops que busquen entrar en cifrados se marcharian a “perdidos” ..al no tener el fichero .menu , constancia de dicha categoria de aplicaciones.
Fuente Usuarionuevo