Ukrywanie ikon Gnome dla KDE i na odwrót

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Jeśli ktoś posiada zainstalowane dwa środowiska graficzne, tak jak ja – Gnome i KDE – to ikony aplikacji z obu środowisk są widziane w każdym z nim, przez co używając Gnome widzimy, które przeznaczone są dla środowiska KDE i na odwrót.
Istnieje jednak skrypt, który pozwala „wymazać” ikony aplikacji Gnome w menu KDE i na odwrót :)

Całość opisana jest na stronie – klik– jednak zawiera ona kilka błędów.

Autor umieścił również prosty skrypt, który wykona wszystko automatycznie, jednak jest on dosyć stary i w nowych wersjach Ubuntu musiał zostać zmodyfikowany – czym zajęli się późniejsi komentatorzy tego wpisu.

Na początek kopie zapasowe, stwórz katalogi, do których zrobisz kopie:

mkdir -p ~/.menu-backup/{gnome,kde}

Kopia dla menu GNOME:

cp /usr/share/applications/* ~/.menu-backup/gnome

Kopia dla menu KDE:

cp /usr/share/applications/kde/* ~/.menu-backup/kde

Teraz pora na skrypt. Otwórz terminal i wydaj polecenie:

gedit ~/menu-cleaner.sh

W oknie programu wklej poniższy kod (Uwaga, skrypt zawiera również edycję menu XFCE:

#!/bin/bash
###########
# menu-cleaner.sh will consolidate your desktop environment menus, meaning
# that your gnome applications will only show in gnome and your KDE
# applications will only show in KDE. This came from my biggest pet peeve
# of seeing *all* of the applications in both desktop environments.
#
# BUGS: I have no idea, it's a really simple app. Report them if you find them
# at christer.edwards@ubuntu.com
#
# LICENSE: menu-cleaner.sh is released under the Public Domain.

if [[ $EUID -ne 0 ]]
then
echo "##############################################"
echo "# You must be root / sudo to run this script #"
echo "##############################################"
exit 1

else

echo
echo "Creating backup folder"
echo
mkdir -p ~/.menu-backup/{gnome,kde} &>/dev/null
cp /usr/share/applications/* ~/.menu-backup/gnome/ &>/dev/null
cp /usr/share/applications/kde/* ~/.menu-backup/kde/ &>/dev/null
if [[ $? -ne 0 ]]
then
echo "backup failed, exiting menu-cleaner"
exit 1
fi

echo "Updating gnome menu entries"
echo
cd /usr/share/applications/
for i in *; do echo "OnlyShowIn=GNOME" >> $i; done &>/dev/null
if [[ $? -ne 0 ]]
then
echo "gnome menu cleaner failed, exiting."
exit 1
fi

echo "Updating KDE menu entries"
echo
cd /usr/share/applications/kde/
for i in *; do echo "OnlyShowIn=KDE" >> $i; done &>/dev/null
if [[ $? -ne 0 ]]
then
echo "KDE menu cleaner failed, exiting"
exit 1
fi

echo "Updating KDE4 menu entries"
echo
cd /usr/share/applications/kde4/
for i in *; do echo "OnlyShowIn=KDE" >> $i; done &>/dev/null
if [[ $? -ne 0 ]]
then
echo "KDE4 menu cleaner failed, exiting"
exit 1
fi

echo "Updating XFCE menu entries"
echo
cd /usr/share/applications/
for i in exo-preferred-applications.desktop; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
for i in fedora-mousepad.desktop; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
for i in fedora-*hunar*; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
for i in fedora-xarchiver.desktop; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
for i in Terminal.desktop; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
for i in xfce*; do echo "OnlyShowIn=XFCE" >> $i; done &>/dev/null
if [[ $? -ne 0 ]]
then
echo "XFCE menu cleaner failed, exiting"
exit 1
fi

echo "menu-cleaner successful. Enjoy"
echo

fi 

Zapisz plik (CTRL+S). Teraz w terminalu wydaj polecenie:

sudo sh ~/menu-cleaner.sh

Sprawdź czy aplikacje w menu zniknęły poprawnie, jeśli tak możesz usunąć kopie zapasowe:
Menu Gnome:

rm -r ~/.menu-backup-gnome

Menu KDE:

rm -r ~/.menu-backup-kde
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • warzyn

    witam,

    Niestety nie wszystko poszło po mojej mysli i zniknęły wszystkie programy z Gnome. W jaki sposób moge przywrócić z kopii zapasowej?
    Pozdrawiam i dziekuje.