diff --git a/winehelper b/winehelper
index 9d546c9..a593cff 100755
--- a/winehelper
+++ b/winehelper
@@ -51,6 +51,10 @@ WH_DB_DIR="$DATA_PATH/database"
 WH_AUTOINSTALL_DIR="$DATA_PATH/autoinstall"
 WH_MANUALINSTALL_DIR="$DATA_PATH/manualinstall"
 
+WH_MENU_DIR="$HOME/.local/share/applications/WineHelper"
+WH_MENU_CATEGORY="$HOME/.local/share/desktop-directories/WineHelper.directory"
+WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
+
 # export WINEDLLOVERRIDES=mshtml,mscoree="
 
 check_variables WINEESYNC "0"
@@ -357,6 +361,7 @@ var_ld_library_path_update () {
 create_desktop () {
     local name_desktop="$1"
     local exe_file="$2"
+    local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
     local icon_file="$WH_IMAGE_PATH/$3.png"
 
     if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
@@ -379,25 +384,77 @@ create_desktop () {
         fi
     fi
 
+    create_new_dir "$WH_MENU_DIR"
+
     [[ ! -f "$icon_file" ]] && icon_file=wine
 
+    # Создаем .desktop файл
     {
         echo "[Desktop Entry]"
         echo "Name=$name_desktop"
         echo "Exec=env \"$RUN_SCRIPT\" \"$exe_file\" %F"
         echo "Type=Application"
-        echo "Categories=WineHelper;Application;Other;"
+        echo "Categories=WineHelper;"
         echo "StartupNotify=true"
         echo "Path=$DATA_PATH"
         echo "Icon=$icon_file"
-    } > "$USER_WORK_PATH/$name_desktop.desktop"
-    chmod +x "$USER_WORK_PATH/$name_desktop.desktop"
+    } > "$USER_WORK_PATH/$desktop_filename.desktop"
+    chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
 
-    create_new_dir "$HOME/.local/share/applications/WineHelper/"
-    cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$HOME/.local/share/applications/WineHelper/"
-    cp -f "$USER_WORK_PATH/$name_desktop.desktop" "$(xdg-user-dir DESKTOP)"
-    update-desktop-database "$HOME/.local/share/applications/"
-    print_info "В меню и на рабочем столе создан $name_desktop.desktop"
+    cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
+
+    # Создаем файл категории для меню
+    create_new_dir "$HOME/.local/share/desktop-directories"
+    if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
+    cat > "$WH_MENU_CATEGORY" <<EOF
+[Desktop Entry]
+Type=Directory
+Name=WineHelper
+Icon=wine
+EOF
+    fi
+
+    # Создаем файл меню для всех приложений
+    create_new_dir "$HOME/.config/menus/applications-merged"
+    if [[ ! -f "$WH_MENU_CONFIG" ]] ; then
+    cat > "$WH_MENU_CONFIG" <<EOF
+<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+  "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+<Menu>
+  <Name>Applications</Name>
+  <Menu>
+    <Name>WineHelper</Name>
+    <Directory>WineHelper.directory</Directory>
+    <Include>
+      <Category>WineHelper</Category>
+    </Include>
+  </Menu>
+</Menu>
+EOF
+        # Обновляем меню
+        if check_command update-menus ; then
+            update-menus
+        fi
+    fi
+
+    # Обновляем кэш desktop файлов
+    if check_command update-desktop-database ; then
+        update-desktop-database "$HOME/.local/share/applications"
+    fi
+
+    if [[ $4 != "nocopy" ]] ; then
+        if [[ -n $4 ]] ; then
+            local desktop_path="$(xdg-user-dir DESKTOP)/$4"
+            create_new_dir "$desktop_path"
+            print_info "В меню создан $desktop_filename.desktop и скопирован на рабочий стол в каталог $4"
+        else
+            local desktop_path="$(xdg-user-dir DESKTOP)"
+            print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
+        fi
+        cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
+    else
+        print_info "В меню создан $desktop_filename.desktop"
+    fi
 
     if [[ -n "$INSTALL_SCRIPT_NAME" ]] \
     && [[ -f "$exe_file" ]]
@@ -417,9 +474,27 @@ create_desktop () {
 remove_desktop () {
     if [[ -n "$1" ]] ; then
         try_remove_file "$USER_WORK_PATH/$1.desktop"
+        try_remove_file "$WH_MENU_DIR/$1.desktop"
         try_remove_file "$HOME/.local/share/applications/$1.desktop"
         try_remove_file "$(xdg-user-dir DESKTOP)/$1.desktop"
     fi
+
+    # Удаляем категорию если она пуста
+    if [[ -d "$WH_MENU_DIR" ]] && [[ -z "$(ls -A "$WH_MENU_DIR")" ]]; then
+        try_remove_dir "$WH_MENU_DIR"
+        try_remove_file "$WH_MENU_CATEGORY"
+        try_remove_file "$WH_MENU_CONFIG"
+        # Обновляем меню
+        if check_command update-menus ; then
+            update-menus
+        fi
+    fi
+
+    # Обновляем кэш desktop файлов
+    if check_command update-desktop-database ; then
+        update-desktop-database "$HOME/.local/share/applications"
+    fi
+fi
 }
 
 ##### INSTALLED PROGRAMS #####
diff --git a/winehelper.directory b/winehelper.directory
deleted file mode 100644
index f053757..0000000
--- a/winehelper.directory
+++ /dev/null
@@ -1,5 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Type=Directory
-Name=WineHelper
-Icon=wine