Изменить значок приложения Wine в Unity Launcher

21

Я часто запускаю программу Windows с вином. Когда я открываю эту программу, она отображается в панели запуска Unity как вино, а не как фактически открытая программа.

Я сделал лаунчер на рабочем столе с нужной иконкой, но перетаскивая его на лаунчер Unity, вернул иконку обратно к иконке рюмки. При запуске приложения оно обозначается как Wine Windows Program Loader вместо его фактического имени.

Скриншот:

введите описание изображения здесь

zorkerz
источник

Ответы:

26

Обходной путь на Ubuntu 12.04 LTS и выше


Заметка

Этот обходной путь требует рабочего средства запуска для вашего приложения Wine. Вот учебник о том, как его создать . Обходной путь также применяется к приложениям, установленным со скриптами PlayOnLinux. Более поздние версии PlayOnLinux автоматически добавляют StartupWMClassстроку в свой лаунчер.

инструкции

Откройте вашу программу .desktopзапуска в вашем любимом текстовом редакторе и добавьте эту строку в файл:

StartupWMClass=application.exe

где application.exe- базовое имя исполняемого файла, который вы хотите запустить в Wine.

Не используйте полный путь, только базовое имя. И убедитесь, что он не цитируется (общее правило, которому вы должны следовать с файлами рабочего стола).

Результат

Значки приложений и описания теперь должны отображаться нормально:

введите описание изображения здесь


Источник: https://bugs.launchpad.net/unity-2d/+bug/702452

Glutanimate
источник
Я могу подтвердить, что это работает также с приложениями PlayOnLinux в Ubuntu 12.04
TIIUNDER
3
Я должен уточнить, что это должно быть только имя исполняемого файла , а не полный путь, без кавычек или что-то еще в этом роде.
Иона
1
Я могу подтвердить, что это работало с Ubuntu 13.10. @Jonah Можете ли вы отредактировать свой ответ и добавить эту небольшую деталь, потому что это действительно важно :)
thelinuxer
1
@ thelinuxer Рад, что ответ помог вам. Я отредактировал ту часть, на которую указал Иона.
Glutanimate,
3
Вот мой вариант, работает для 14.04: если он доступен, выберите «Создать ярлык на рабочем столе» в установщике приложения. Затем переместите этот ярлык в / usr / share / Applications и добавьте в него строку StartupWMClass = XXX.exe (например, с помощью gksudo gedit XXX.desktop)
Доминик Комтуа,
7
  1. Здесь вы найдете ваши иконки или разместите ваши собственные иконки здесь:

    $ cd ~/.local/share/icons/hicolor/256x256/apps/
    $ ls
    1DF1_PicasaPhotoViewer.0.png
    .
    .
    .
    29F5_WINWORD.0.png
    850A_EXCEL.0.png
    AA79_POWERPNT.0.png
    
  2. Перейдите в следующий каталог:

    $ cd ~/.local/share/applications/wine/Programs/Microsoft\ Office
    $ ls
    Microsoft Excel 2010.desktop\
    Microsoft Office 2010 Tools\
    Microsoft PowerPoint 2010.desktop\
    Microsoft Word 2010.desktop\
    
  3. Отредактируйте файлы .desktop:

    $ sudo nano Microsoft\ Word\ 2010.desktop
    [Desktop Entry]
    Name=Microsoft Word 2010
    .
    .
    .
    Icon=29F5_WINWORD.0.png (or name of icon as in above folder)
    
  4. Вы сделали!

Дипак
источник
У вас есть идея, почему я могу использовать существующий значок Word в Iconпапке, а не то, что я сам помещаю в эту папку, чтобы использовать в своем файле .desktop?
Гейзенберг
Ничего. Похоже, значок должен быть .png вместо jpg?
Гейзенберг
2

Есть несколько зарегистрированных ошибок по этому вопросу.

В одной из ошибок (пост 3) кто-то сообщил о возможном обходном пути. Тем не менее, еще два поста ниже отмечают, что это не всегда работает.

fossfreedom
источник
1

Я не использую Unity, поэтому я действительно не знаю, сработает ли это.

Ваша проблема может быть из-за запуска программы. Я предполагаю, что ваш файл .desktop содержит Exec=wine '/home/user/.wine/dosdevices/c:/Program...'и так далее. Попробуйте создать двоичный файл bash, который содержит что-то вроде этого:

#!/bin/bash
cd '/home/aldomann/.wine/dosdevices/c:/Archivos de programa/Warcraft II BNE'
wine 'Warcraft II BNE.exe'

Например, назовите его warcraft2и переместите в /usr/bin(или любую переменную PATH, которую вы можете узнать, набрав echo $PATHв Терминале)

Тогда в вашем .desktop файле вместо Exec=wine '...'использования Exec=warcraft2. Я думаю, что Unity предположит, что это не винная программа, и будет использовать вашу иконку, но это только предположение.

Надеюсь, что это работает ;)

По умолчанию ваши приложения Wine .desktopsразмещены на/home/user/.local/share/applications/wine

Вместо изменения существующего .desktopфайла вы можете создать новый и поместить его в него /home/user/.local/share/applications. Это должно быть что-то вроде этого:

[Desktop Entry]
Name=Application
Comment=Comment
Exec=app-binary
Icon=app-icon
Type=Application
Terminal=false
StartupNotify=true
Categories=GTK;Utility

Совет: если вы поместите свой значок на /home/user/.icons/(т.е. app-icon.png), вам нужно будет только поставить Icon=app-icon.

Альфредо Эрнандес
источник
Я не уверен, как найти файл .desktop, чтобы попробовать.
zorkerz
Это должно быть на /home/user/.local/share/applications/wine
Альфредо Эрнандес
0

Я написал скрипт, чтобы исправить эту и другие проблемы с MSO в Unity. https://ubuntulogia.wordpress.com/2015/01/25/fix_mso_unity/ Это работает для меня, но любые предложения приветствуются. Если кто-то протестировал его и обнаружил какие-либо улучшения, поделитесь им со мной. Чтобы запустить скрипт, вы должны скопировать код в текстовый файл (например, с помощью gedit) и сохранить его. Затем вы должны запустить его, используя «sh». Например, если вы сохраните файл в своей домашней папке как «fixmso.sh», команда для запуска сценария будет выглядеть так: sh fixmso.sh

Goghard
источник
0

Вы можете сделать это действительно просто через графический интерфейс с помощью программы под названием alacratz. Вот довольно простая инструкция. Нижняя глава - это то, что вы ищете http://develop.alpdesigns.ch/pages/linux/add_exe_program_to_linux.html

Джон
источник
Простая публикация ссылки не так полезна, как суммирование шагов, включенных в ссылку. Мы хотим, чтобы наши пользователи могли решать проблемы без необходимости нажимать на них.
-1

Используйте Alacarte (старый редактор меню, вам может потребоваться установить его), чтобы создать запись меню в старом стиле со значком и исполняемым файлом, который запускает вашу программу. Затем найдите это с помощью alt + F2 и закрепите его на панели запуска.

вир
источник
-1

Вы можете легко изменить любую установленную программу в вашем Ubuntu, используя «Главное меню» (имя пакета «alacarte»). Вы можете скачать его из Центра программного обеспечения, набрав «Главное меню», а затем:

введите описание изображения здесь

  1. Запустите программу «Главное меню».
  2. На правой панели под названием «Меню» найдите вашу программу (в данном случае она находится в узле «Wine») и выберите ее на панели «Элементы».
  3. Нажмите на кнопку свойств.
  4. В появившемся диалоговом окне выберите значок кнопки, который находится вверху слева.
  5. Наконец, найдите местоположение вашего нового значка в вашей файловой системе.

После выполнения описанных выше шагов вы увидите свой новый значок в панели запуска Unity и на панели.

Приятно провести время

Саид Заринфам
источник
Саид, я не думаю, что вы действительно понимаете вопрос. Конечно, возможно изменить значок любой программы, как вы описали, но дело в том, что Wine является оберткой для ряда различных программ - поэтому необходимо изменить значок в зависимости от фактической программы, которая запускается. Вы описываете способ изменения иконки Wine, а не основной программы.
Тем не менее, Alacarte может использоваться только для этого (вам просто нужно поместить wine your_program в поле исполняемого файла).
вир
-1

У меня была та же проблема, и я узнал, что это потому, что я поместил файлы ярлыков (которые PlayOnLinux размещает на рабочем столе) в отдельную папку. Я вынул их из папки и положил на рабочий стол, и он работает нормально (отображается значок). Надеюсь это поможет!

user2420837
источник