Почему это имя файла усечено в Наутилусе?

У меня была та же проблема. Вы можете исправить это вручную. Откройте «Настройки системы»> «Дисплеи». В окне «Дисплеи» вы увидите Неизвестный монитор. Нажмите здесь и отключите его.

Я нашел решение из следующего: курсор мыши мерцает и исчезает

Пока я использую 14.04, а ссылка выше для 13.10; это сработало для меня!

)
1
задан 9 December 2016 в 22:43

3 ответа

Цитата из политики безопасности Ubuntu:

Необходимые требования к исполняемым файлам, включая рабочие столы и оболочки, не должны запускать исполняемый код из файлов, когда они оба: отсутствует исполняемый бит, расположенный в домашнем каталоге пользователя или временный каталог. Сюда входят файлы * .desktop, * .jar и * .exe.

Что такое действительный файл .desktop в домашнем каталоге пользователя?

В соответствии с политикой безопасности Ubuntu разрешение на выполнение в файлах .desktops и shells-скрипт является обязательным для запуска исполняемого кода из этих файлов, когда они находятся в домашнем каталоге пользователя.

Nautilus не будет рассматривать файл .desktop как допустимые ярлыки приложений, если он не имеет исполняемого бита, когда он находится в домашнем каталоге пользователя.

С другой стороны, он жестко закодирован в исходном коде Nautilus, что он покажет действительное имя файла .desktop из поля Name= или Name[$LANG] внутри файла .desktop, игнорируя имя файла и расширение. Это не относится к файлам .sh или .jar в nautilus.

Что такое действительный файл .desktop в домашнем каталоге пользователя? На новой установке Ubuntu каждый пользователь получает examples.desktop в своем домашнем каталоге. Имя файла examples.desktop. Но в наутилусе это можно увидеть как Examples. Если вы заглянете внутрь файла .desktop, вы можете увидеть следующее (я показываю только его часть):

Name=Examples Name[aa]=Ceelallo .. Name[en_AU]=Examples Name[en_CA]=Examples Name[en_GB]=Examples ..

Вы можете проверить разрешение (попробуйте ls -la /path/to/filename.extension) из Eclipse.desktop и [ f17]. Первый имеет бит исполняемого бита, тогда как более поздний - нет.

Вот почему nautilus распознает Eclipse.desktop как ярлыки приложений и не показывает его расширение.

20
ответ дан 23 May 2018 в 03:33
  • 1
    Да, именно это. Хорошая работа для предоставления ссылки. Хороший ответ – Sergiy Kolodyazhnyy 7 December 2016 в 10:49
  • 2
    У меня есть много исполняемых файлов в ~ / Documents / bashscripts, которые находятся под заголовком " в домашнем каталоге, но Nautilus показывает расширение имени файла * .sh. Это верно в режиме просмотра списка и значка. Я также скопировал java в файл x.x. Копирование java в файл x.x сохраняет исполняемое разрешение исходного java-файла. Nautilus показывает имя файла как x.x как в представлении списка, так и в виде значков. То, что вы говорите об исполняемых файлах, похоже, не применяется в этих случаях, поэтому в целом кажется неправильным сказать, что исполняемый бит заставляет расширение быть усеченным от Nautilus. – H2ONaCl 7 December 2016 в 11:04
  • 3
    Цитата, которую вы указали, по-видимому, не имеет отношения к усечению имени файла в Nautilus. Кажется, он описывает необходимость выполнения бит. – H2ONaCl 7 December 2016 в 12:59
  • 4
    @ H2ONaCl, это связано с усечением имени файла. После запуска файла .desktop можно задать имя приложения, установленное внутри файла. Скажем, вы можете иметь myapp.desktop, и у него есть Name=Some Cool App линия. С установленным набором разрешений, только тогда имя файла может отображаться как Some Cool App. Конечно, файл должен быть в правильном формате, и на самом деле есть строка Name=. Кстати, см. Отредактированный ответ souravc, он был обновлен. – Sergiy Kolodyazhnyy 7 December 2016 в 13:39
  • 5
    @ H2ONaCl см. Также askubuntu.com/q/419610/295286 Связанный. – Sergiy Kolodyazhnyy 7 December 2016 в 13:44

Если файл .desktop является исполняемым, Nautilus распознает его как ярлык на рабочем столе и не будет отображать имя файла, а строку, установленную как значение свойства Name= в файле.

6
ответ дан 23 May 2018 в 03:33
  • 1
    Это может быть правдой, но для меня неожиданно, когда Nautilus отображает файлы в ~ / .local / share / applications /. Копирование этого файла в ~ / anyDirectory / все еще приводит к усеченному имени файла. Ни один из этих мест не является ~ / Desktop. – H2ONaCl 7 December 2016 в 12:14
  • 2
    Не обязательно находиться в папке ~ / Desktop. Имя файла не усекается . Он вообще не отображается . Nautilus показывает свойство Name =, заданное в файле. – AlexP 7 December 2016 в 12:16
  • 3
    Хорошо, это не усечено. Он выглядит только по совпадению, и это действительно произошло изнутри файла. Зачем нам это поведение вообще, когда авторы команды ls не считали нужным делать то же самое. – H2ONaCl 7 December 2016 в 12:56
  • 4
    @ H2ONaCl Почему будет это так? Первоначальная команда ls была написана до того, как GUI были «вещью», и нет никакой причины, по которой силовая пользовательская программа может обрабатывать один тип файла совершенно иначе, чем все остальные в среде, в которой файлы, о которых идет речь, даже не используется. – wizzwizz4 8 December 2016 в 12:09

На этой ссылке автор «fragos» пишет:

К сожалению, если вы откроете эту папку в nautilus, файлы .desktop появятся со значком, указанным в файле, и с именем файла, вызываемым внутри файла ,

Когда он говорит, что «имя файла вызывается внутри», он означает, что отображаемое имя файла берется изнутри. Я бы сказал, что «имя файла вызывается внутри, когда установлен исполняемый бит». Возможно, он прав, что это несчастливо. Как ни странно, у меня есть некоторые, у которых установлен бит бит, а некоторые - нет. Те, у которых НЕ установлен бит бит, не являются причиной несчастья, но я не знаю, почему мне повезло. Когда бит установлен, возможно, его можно считать причудой или ошибкой.

0
ответ дан 23 May 2018 в 03:33
  • 1
    Разработчики могут установить исполняемый файл .desktop или нет. Большинство из них этого не делают, как вы можете видеть в /usr/share/applications. Там также нет причин устанавливать их исполняемый файл там, и они будут показывать свое имя файла в nautilus (а не в Unity / Dash). Тот факт, что они могут использоваться в качестве прямого пускового устройства, имеет смысл, и поэтому тот факт, что они показывают свое имя GUI, тогда, когда он был выполнен. – Jacob Vlijm 7 December 2016 в 12:56
  • 2
    Это не связано с наутилусом. Все это имеет смысл и определенно не является ошибкой. Как уже упоминалось, имя GUI , как в Dash / Unity, файла .desktop, является гибким, часто даже специфичным для языка. Нет ошибки, вот как она разработана. – Jacob Vlijm 7 December 2016 в 12:59
  • 3
    Я не знаю, почему вы говорите, что это имеет смысл. Существует несогласованность. Некоторые из файлов не имеют установленного бита выполнения. Какую цель они выполняют, когда бит не установлен? Если файлы, у которых НЕ установлен бит, по-прежнему функционируют (и отображают полное имя), то каково оправдание отображения строки, взятой из файла? Дело в том, чтобы рассматривать каталоги файлов так же, как и команда «ls». Использование строки изнутри файла отличается от поведения команды «ls». Как это отклонение может быть оправдано? – H2ONaCl 7 December 2016 в 13:21
  • 4
    Файлы внутри /usr/share/applications не предназначены как (прямые) пусковые установки из графического интерфейса, а только для обслуживания интерфейса (GUI) ОС, например, Unity и Dash. Разработчику нет причины делать исполняемый файл, если он хранится там, и не в ~.local/share/applications. Вы можете назвать это ошибкой, если хотите, но полностью безвредным, поскольку она не предназначена для использования напрямую, , если она не указана, например. ваш рабочий стол. При использовании в качестве представителя вашего приложения файл .desktop означает , чтобы вести себя как хамелеон, в зависимости от вашего языка и т. Д. – Jacob Vlijm 7 December 2016 в 13:32
  • 5
    @Jacob Vlijm, Спасибо, что предположил, что могу назвать это ошибкой, если захочу. Я соглашусь называть это причудой, что Nautilus принял поведение, предназначенное для Unity на рабочем столе или Dash. – H2ONaCl 7 December 2016 в 23:19

Другие вопросы по тегам:

Похожие вопросы: