Tôi đã viết khá nhiều chương trình nguồn mở trong những năm qua, nhưng không phải gần đây và tôi chưa bao giờ gặp vấn đề này trước đây. Các mục menu cho dự án mới của tôi chỉ đơn giản là từ chối hiển thị trong các menu trên gnome hoặc kde.
Ban đầu tôi chỉ cài đặt các tệp .desktop vào / usr / share / application nhưng sau đó đã sửa đổi nó để sử dụng các tập tin máy tính để bàn - tất cả đều vô ích. Tôi đã thêm cơ sở dữ liệu cập nhật máy tính để bàn vào tập lệnh postinst của mình ... không có gì
Tôi đã xác thực các mục nhập và trong trình quản lý tệp, chúng là chính xác, tôi đã thử cấp cho chúng quyền thực thi ... Tôi không thể tìm thấy bất cứ điều gì sai nhưng chúng sẽ không xuất hiện. Có điều gì mới phải làm để có được các mục menu của ứng dụng của bạn để hiển thị những ngày này không?
Các tập tin .desktop là:
silentcoder@ravenriley ~/SOURCE/ezdm $ cat ezdm.desktop
[Desktop Entry]
Type=Application
Name=EZDM
GenericName=Easy Dungeon Master
Comment=A tookit for AD&D Dungeon Master
TryExec=/usr/games/ezdm
Exec=/usr/games/ezdm
Categories=Game;RolePlaying;
Icon=/usr/share/icons/hicolor/128x128/ezdm.png
Terminal=false
mèo ezdmconsole.desktop
[Desktop Entry]
Type=Application
Name=EZDM-Console
GenericName=Easy Dungeon Master (Console version)
Comment=A tookit for AD&D Dungeon Master
TryExec=/usr/games/ezdm --console
Exec=/usr/games/ezdm --console
Categories=Game;RolePlaying;
Icon=/usr/share/icons/hicolor/128x128/ezdm-console.png
Terminal=1
X-Desktop-File-Install-Version=0.20
Và nếu bất kỳ mã nào khác có thể hữu ích, tất cả đều có thể duyệt trên github: https://github.com/ajventer/ezdm
CẬP NHẬT: Bí ẩn càng sâu sắc, nếu tôi sao chép các tệp vào / usr / share / application / kde4 (điều mà rõ ràng là tôi không muốn làm trong gói của mình - sau tất cả, nó cũng sẽ hoạt động trong gnome), sau đó đột nhiên ezdm.desktop hiển thị trong menu, nhưng ezdm-console.desktop vẫn từ chối.
CẬP NHẬT: vì nó có thể có liên quan: Từ Makefile:
install:
$(PYTHON) setup.py install --prefix=/${PREFIX} --root $(DESTDIR) --install-scripts=/${PREFIX}/games/ --no-compile --force --record .install.record --install-layout=deb
mkdir -p ${DESTDIR}/${PREFIX}/share/applications
mkdir -p ${DESTDIR}/${PREFIX}/share/icons/hicolor/128x128/
desktop-file-install --dir=${DESTDIR}/${PREFIX}/share/applications/ ezdm.desktop
desktop-file-install --dir=${DESTDIR}/${PREFIX}/share/applications/ ezdm-console.desktop
install -g root -o root -m 0666 ezdm.png ${DESTDIR}/${PREFIX}/share/icons/hicolor/128x128/ezdm.png
install -g root -o root -m 0666 ezdm-console.png ${DESTDIR}/${PREFIX}/share/icons/hicolor/128x128/ezdm-console.png
update-desktop-database ${DESTDIR}/${PREFIX}/share/applications
Và debian / postinst:
cat debian/postinst
#!/bin/bash -x
ln -sf /usr/games/ezdm* /usr/bin
for I in /usr/lib/python2.7/dist-packages/ezdm_libs/*.py; do
python -m compileall $I
done
update-desktop-database
#DEBHELPER#