LINUX.ORG.RU

[dolphin][nautilus][thunar][pcmanfm] Давайте унифицируем ключи запуска, что ли

 , , ,


0

1

Что делают ФМы со своими параметрами запуска сейчас:

  • thunar: при указании пути к файлу (не каталогу) открывает этот файл в соответствующей программе, т.е. делает xdg-open.
  • pcmanfm: аналогично.
  • nautilus: при указании пути к файлу (не каталогу) открывает ролительский каталог и ставит выделение на файл.
  • dolphin: при указании пути к файлу (не каталогу) делает xdg-open, но при этом еще и своё окно зачем-то открывает. При указании дополнительно ключа --select открывает ролительский каталог и ставит выделение на файл.

Что предлагаю: а давайте этот разнобой приведем в порядок. Пусть при указании пути к файлу все ФМ делают xdg-open, а если указан ключ --select, то открывают родительский каталог и ставят выделение на файл.

Собственно, я собираюсь патчить pcmanfm в направлении ключа --select. Подумал, что thunar-у и nautilus-у подобная функциональность тоже лишней не будет. Их ковырять я не буду, но если кто захочет...

Это нужно 0.35 линуксоидам, понимаю, что от подобной фичи вряд ли новые баги появятся, но лучше бы баги чинил.

aptyp ★★★★
()

>Пусть при указании пути к файлу все ФМ делают xdg-open

Зачем это дублирование?

Deleted
()

--select не нужен. для открытия файла есть xdg-open. тут у наутилуса наиболее правильное поведение

ananas ★★★★★
()

Mystra_x64> Зачем это дублирование?

ananas> --select не нужен. для открытия файла есть xdg-open. тут у наутилуса наиболее правильное поведение

Хорошо, уточним. Команда filemanager regularfilename в общем случае эквивалентна открытию этого файла через данный ФМ. Который может вообще не работать с FD.O-шной системой привязок типов mime, или же привязки могут переопределены в ФМ. То, что действие совпадает с xdg-open, — частный случай.

--select не нужен. тут у наутилуса наиболее правильное поведение

У нас есть два варианта поведения при попытке открыть регулярный файл запуском ФМа — либо выполнить команду для этого типа файла, определенную в ФМ, либо показать этот файл в родительском каталоге. Очевидно, один вариант будет дефолтным, а другой требует ключа. Дефолтным является вариант первый просто в силу того, что 3 ФМа уже его реализуют, а наутилус в меньшинстве.

geekless ★★
() автор топика
Ответ на: комментарий от kovrik

Зачем? Разве кто-то пользуется сразу несколькими ФМ?

Затем же, зачем проводится любая стандартизация. Чтобы инструменты можно было выбирать по их реально важным свойствам, а не по тому, что половина инженеров нежно любит левую резьбу на болтах, а половина — правую.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

запуск фм - это запуск фм. открытие файла - только одна из функций фм. и поэтому делать различие между файлом или каталогом при открытии - неправильно. а если мне хочется просто инфу о нем увидеть?

и на кой пользователю лишний гемор, если охота открыть каталог - просто его укажи, а если еще и файл подсветить - лишние аргументы добавляй? тут логичнее было бы не --select, а --exec какой-то использовать, если охота файл именно запустить, а не что-то еще сделать.

но вообще - это дискуссия для xdg@lists.freedesktop.org

ananas ★★★★★
()
Ответ на: комментарий от geekless

Который может вообще не работать с FD.O-шной системой привязок типов mime, или же привязки могут переопределены в ФМ

а вот это в корне неправильно

ananas ★★★★★
()
Ответ на: комментарий от lazyklimm

Для тех, кто в танке: ФМ это теперь симлинк для xdg-open? Если нет, то пусть не пытается делать чужую работу.

Deleted
()
Ответ на: комментарий от ananas

запуск фм - это запуск фм.

Это формально безупречное равенство a==a совершенно, тем не менее, не отвечает на вопрос, что именно должен делать ФМ, если в аргументах оказался не каталог. Поехали дальше:

открытие файла - только одна из функций фм. и поэтому делать различие между файлом или каталогом при открытии - неправильно.

Так его, опять же, формально и нет — различия. Каталог открывается во вьюере каталогов, т.е. в самом ФМе, прочие типы открываются в соответствующих приложениях.

а если мне хочется просто инфу о нем увидеть?

Ну сделай --properties для этого, если имеешь ввиду диалог со параметрами файла.

и на кой пользователю лишний гемор, если охота открыть каталог - просто его укажи, а если еще и файл подсветить - лишние аргументы добавляй? тут логичнее было бы не --select, а --exec какой-то использовать, если охота файл именно запустить, а не что-то еще сделать.

Я не согласен, что это было бы логично, но тем не менее, с точки зрения принципа наименьшего удивления (ведь человеческая мыль обычно нифига не логична) твой вариант, возможно, действительно лучше. Но это ничего не меняет. Nautilus в меньшинстве, значит не в ногу шагает именно он, а не прочие 3 указанных ФМ. Я думаю, ты знаешь: стандартно не то, что правильно, а то, что работает.

но вообще - это дискуссия для xdg@lists.freedesktop.org

Я не люблю приходить куда-либо с умными рассуждениями вместо патчей. ;) А на ЛОРе да, можно потрепать языком и параллельно обкатать идею, если повезёт.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

Я думаю, ты знаешь: стандартно не то, что правильно, а то, что работает.

я знаю, что стандартно только то, что более-менее четко описано хотя бы в виде драфта. все остальное - самодеятельность конкретных разработчиков

Я не люблю приходить куда-либо с умными рассуждениями вместо патчей

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

ananas ★★★★★
()
Ответ на: комментарий от ananas

Давай с другой стороны зайдём. Ты согласен, что «показать в родительком каталоге» — полезная опция? Поскольку запуск без ключей реализует разное поведение в разных ФМ, оставим его в покое на усмотрение разработчика и будем говорить только о специфичных ключах. Например, ключ --select ни с чем не конфликтует и уже работает, как минимум, в dolphin.

geekless ★★
() автор топика

и кстати по-поводу стандартов на фм. помнится где-то с год назад автор pcmanfm предлагал стандартизовать действия, определяемые пользователем, для переносимости их между разными фм-ами. добавить туда еще и подобное поведение, да нормально расчехлить ребят из fd.o было-бы очень здорово

ananas ★★★★★
()
Ответ на: комментарий от ananas

помнится где-то с год назад автор pcmanfm предлагал стандартизовать действия, определяемые пользователем

Под этим имеется ввиду добавление пунктов в контекстное меню или что?

geekless ★★
() автор топика

Плюсую, будет проще писать 100% переносимые скрипты.

AlexCones ★★★
()
Ответ на: комментарий от ananas

Для любого числа файлов. Например, dolphin --select *.txt

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

geekless ★★
() автор топика
Ответ на: комментарий от geekless

Под этим имеется ввиду добавление пунктов в контекстное меню или что?

да

ananas ★★★★★
()
Ответ на: комментарий от geekless

Для любого числа файлов. Например, dolphin --select *.txt

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

это полезно. и наверное стоит для подобных вещей --select иметь. но простое указание пути, к файлу или каталогу - должно просто открывать этот каталог и подсвечивать файл, если он указан. запуск, на мой взгляд, совершенно излишен. для запуска есть xdg-open и пользовательская база mime-types со своими предпочтениями. и фм должен уважать эти умолчания.

ananas ★★★★★
()

при указании пути к файлу (не каталогу) открывает этот файл в соответствующей программе, т.е. делает xdg-open.

Это идиотизм.

при указании пути к файлу (не каталогу) открывает ролительский каталог и ставит выделение на файл

Эмм, это с какой версии? Помнится, я отписывался в багзилу, чтобы запилили это — сказали не нужно. В любом случае, именно такое поведение является наиболее правильным и удобным.

Ok
()

Я уже давно этой фичи жду.

pevzi ★★★★★
()
Ответ на: комментарий от geekless

Я просто предложил, ты же предложил унифицировать.
Сделать можно, но примут ли патчи?

aptyp ★★★★
()
Ответ на: комментарий от geekless

Это формально безупречное равенство a==a совершенно, тем не менее, не отвечает на вопрос, что именно должен делать ФМ, если в аргументах оказался не каталог.

Выделить файл.

tensai_cirno ★★★★★
()

Наутилус сейчас — стандарт де факто, поэтому именно его поведение должно считаться правильным.

Deleted
()

Позырил исходники thunar. Вот какие команды умеет выполнять тунар через dbus:

$ grep 'method name' thunar/thunar-dbus-service-infos.xml 
    <method name="DisplayChooserDialog">
    <method name="DisplayFolder">
    <method name="DisplayFolderAndSelect">
    <method name="DisplayFileProperties">
    <method name="Launch">
    <method name="Execute">
    <method name="DisplayPreferencesDialog">
    <method name="CopyTo">
    <method name="CopyInto">
    <method name="MoveInto">
    <method name="LinkInto">
    <method name="UnlinkFiles">
    <method name="LaunchFiles">
    <method name="RenameFile">
    <method name="CreateFile">
    <method name="CreateFileFromTemplate">
    <method name="DisplayTrash">
    <method name="EmptyTrash">
    <method name="MoveToTrash">
    <method name="QueryTrash">
    <method name="BulkRename">
    <method name="Terminate">
А вот какие команды умеет удаленно посылать тунар сам себе:
$ grep method_call thunar/thunar-dbus-client.c 
  message = dbus_message_new_method_call ("org.xfce.Thunar", "/org/xfce/FileManager", "org.xfce.Thunar", "BulkRename");
  message = dbus_message_new_method_call ("org.xfce.Thunar", "/org/xfce/FileManager", "org.xfce.FileManager", "LaunchFiles");
  message = dbus_message_new_method_call ("org.xfce.Thunar", "/org/xfce/FileManager", "org.xfce.Thunar", "Terminate");

Ну вы поняли, да? Тут есть и функциональность, аналогичная предложенная в этом топике, и еще куча всевозможных фич. И практически ничего из этого не вынесено в ключи запуска. Бугага.

Разумеется, никто не будет засирать себе мозги ручным формированием и отправлением пакетов dbus. Если что-то отсутствует в документации и в ключах запуска, то для конечного пользователя этого не существует.

В общем, какая-то феерическая херня. Кто-то старался, писал серверную половину всех этих фич (и мы даже знаем, кто: http://git.xfce.org/xfce/thunar/log/thunar/thunar-dbus-service.c), а потом все дружно забили дописывать клиентскую половину. К чему бы это?

Короче, надо запилить довольно тривиальный патч на thunar-dbus-client.c и main.c. Есть желающие заняться?

geekless ★★
() автор топика

Слушайте, а эти люди, похоже, перманентно упоротые. Четыре года висит баг, что в xfdesktop невозможно вкопипастить файл: https://bugzilla.xfce.org/show_bug.cgi?id=3804

Баг из разряда «пункт в меню добавили, а код написать забыли». Касающийся базовой функциональности приложения. Четыре года.

geekless ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.