Сайт | Скачать | Видео | Wiki

Автор Тема: Проблема default*  (Прочитано 4530 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Проблема default*
« : 17 Февраль 2020, 12:04:39 »
 Как лучше сделать выбор приложения по умолчанию ЛКМ по файлу? В Puppy это куча скриптов /usr/local/bin/default* не обеспечивает 100% "угадывание" приложения. В "больших" линуксах - /etc/alternatives/<link>, тоже спорно (и топорно). Соображения есть?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32840
  • Репутация: +222/-0
    • PuppyRus-A
Re: Проблема default*
« Ответ #1 : 17 Февраль 2020, 12:22:49 »
По стандарту - через mime , т.е. ярлыки
default* никак не соберусь переделать хотя бы на xdg-open

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Re: Проблема default*
« Ответ #2 : 17 Февраль 2020, 15:07:45 »
переделать хотя бы на xdg-open
Почитал, не вдохновляет :( . Хотя для aufs запуск по ярлыкам *.desktop было бы самое то.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 4865
  • Репутация: +126/-1
Re: Проблема default*
« Ответ #3 : 17 Февраль 2020, 15:25:58 »
default* никак не соберусь переделать хотя бы на xdg-open
Почему бы не взять уже готовое и проработанное.

RUN - запуск часто используемых действий
Exec=run ? nemo thunar caja… запуск из .desktop-ярлыка первой найденной в $PATH команды
Цитата
Новая версия скрипта run update run или run selfupdate или http://victor-dobrov.narod.ru/share/unix-helper.7z
Много исправлений +примеры использования: run demo.


Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Re: Проблема default*
« Ответ #4 : 17 Февраль 2020, 22:04:32 »
запуск из .desktop-ярлыка первой найденной в $PATH команды
Пожалуй не пойдёт. Во первых "первой найденной", во вторых "из .desktop-ярлыка". Хватит, что из-за них в меню полная каша, а тотально редактировать их никто не будет. Поэтому я попробую сделать на основе /etc/alternatives/<category>/<link>. Как это выглядит можно посмотреть в моих IceWM и JWM.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 4865
  • Репутация: +126/-1
Re: Проблема default*
« Ответ #5 : 17 Февраль 2020, 22:18:31 »
Ну это конечно не подойдет для Richy, где строго ограничен список приложений.

Run больше для PRA, где много сборок, много разных DE, каждый со своими приложениями. И это альтернатива скриптам default*:
Код
/usr/local/bin % ls default*
defaultbrowser      defaulthtmlviewer   defaultmediaplayer  defaulttexteditor
defaultfilemanager  defaultimageeditor  defaultpdfviewer
defaulthandler      defaultimageviewer  defaultterminal

Оффлайн Dobrov

  • Пользователь
  • **
  • Сообщений: 26
  • Репутация: +3/-0
Re: Проблема default*
« Ответ #6 : 18 Февраль 2020, 02:43:24 »
    запуск из .desktop-ярлыка первой найденной в $PATH команды

Пожалуй не пойдёт. Во первых "первой найденной", во вторых "из .desktop-ярлыка". Хватит, что из-за них в меню полная каша, а тотально редактировать их никто не будет…

Вы забыли, что ярлыки можно подключить слоем AUFS в /usr/local/share/applications, и что ярлыки есть в ~/.local/share/applications
Рассмотрим одно из основных неудобств: Запуск текстового редактора на системах с разными пакетами:
Ярлык редактора приходится искать в какой угодно категории меню приложений: системные, Офис, Инструменты и прочее…
Мой скрипт устраняет это неудобство: достаточно сделать один ярлык или скрипт: «Text Editor» с командой:
run leafpad l3afpad mousepad geany kate …

кстати, скрипт run позволяет указать разные опции для каждого приложения: run ? "'one cmd' args" 2_cmd запуск команды в $PATH

и ещё покритикую default-скрипты: их сложно менять и они жёстко задают приложение по-умолчанию для всех, хотя у пользователей могут быть разные предпочтения.
в моём примере каждый пользователя будет запускать один и тот же ярлык/скрипт в $HOME/…, но в строке команд каждый может указать свои предпочитаемые приложения.
« Последнее редактирование: 18 Февраль 2020, 03:06:19 от Dobrov »

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Re: Проблема default*
« Ответ #7 : 18 Февраль 2020, 08:25:01 »
Вы забыли, что ярлыки можно подключить слоем AUFS
Я этого никак не мог забыть.
покритикую default-скрипты
Вот поэтому я и хочу от них отказаться.
один ярлык или скрипт: «Text Editor» с командой
У меня несколько другая задача: клик по файлу находит и вызывает необходимое для файла приложение, если их несколько, то дефолтное, заданное юзером.
Схематично примерно так:
Код
#!/bin/sh

Error () {
echo "Error: "
exit 1
}
#Здесь будет GUI выбора приложения
Check () {
echo "Check"
}

B=`find /etc/alternatives/$1/ -type l` 2>/dev/null || Error
case `echo $B|wc -w` in
0) echo "No $1";;
1) exec `basename $B` "$2";;
*) Check;;
esac
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Re: Проблема default*
« Ответ #8 : 18 Февраль 2020, 09:15:22 »
переделать хотя бы на xdg-open
Обнаружил xdg-open в "наследстве" от классического Puppy (barryk 2005. partial update 2008). Там всё завязано на default*
Посмотрел последний xdg-open-1.1.3 - монструозно. Моё мнение - не стоит заморачиваться.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32840
  • Репутация: +222/-0
    • PuppyRus-A
Re: Проблема default*
« Ответ #9 : 18 Февраль 2020, 09:54:00 »
Подобие  default* нужно в 2х случаях:
1. для вызова из своих скриптов
Но тут есть проблемы
Например cat xxx.txt | leafpad работает. С другим блокнотом - не факт
Пришел к выводу что блокнот для своих скриптов надо сделать на yad (ntf -t). ntf - мой скрипт для общения с юзером из скриптов
Терминал - маленький urxvt почти без зависимостей. Можно даже со своим конфигом запускать. С остальными тоже может быть по разному
Остальные default (кроме терминала и блокнота) здесь (да и вообще) не нужны

2. для запуска из ФМ
В mc можно переделать с default* на xdg-open. rox я не знаю. В остальных с миме ок
Заморачивался этим в своем скрипте filestarter
В итоге вместо xdg-open заюзал xdg-mime

Эти проблемы есть во всех самопальных дистрах
Предлагаю решить коллективно
У меня то теме есть ntf и filestarter
Их доработать или переписать заново
https://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/ntf-2019.12-02-any.pkg.tar.xz
https://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/filestarter-2019.12-02-any.pkg.tar.xz

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32840
  • Репутация: +222/-0
    • PuppyRus-A
Re: Проблема default*
« Ответ #10 : 18 Февраль 2020, 09:59:03 »
Посмотрел последний xdg-open-1.1.3 - монструозно.
На родном у меня тоже не пошло. Очень запутано
Распутка и упрощение - в filestarter

Ну или переписать, что я по сути частично в filestarter и сделал
Главная идея - инфу брать из ярлыков
Примеры работы с ярлыками в моем ymenu https://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/pra-scripts-2019.12-02-any.pkg.tar.xz

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8502
  • Репутация: +185/-2
  • Автор темы
  • Старый чайник
Re: Проблема default*
« Ответ #11 : 18 Февраль 2020, 10:39:56 »
Главная идея - инфу брать из ярлыков
Ненадёжно. Ярлыки не нами писаны и не всегда стандартно. Правда для работы с ярлыками можно приспособить jwmtst.c.
То, что я задумал, намного проще, но имеет существенный недостаток (для тебя) - к каждой программе надо добавлять /etc/alternatives/<category>/<link>, а это не вписывается в автоматическую сборку.
Вот и не знаю, в какую сторону копать?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2221
  • Репутация: +25/-0
Re: Проблема default*
« Ответ #12 : 18 Февраль 2020, 10:47:36 »
можно еще в АнтиКС глянуть (там как-то по-своему реализовано) - может на какую полезную мысль натолкнет...
Samsung RV510: intel pent.T4500; чипсет intel Gl40; ATI mob. Radeon HD 5145, RAM=3Gb; hd1 - Grub2; hd2 - Gr4D.
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32840
  • Репутация: +222/-0
    • PuppyRus-A
Re: Проблема default*
« Ответ #13 : 18 Февраль 2020, 10:49:01 »
не всегда стандартно
Да ладно. Можно пример из любого профессионального дистра?
в какую сторону копать?
В сторону mime , т.к. он во всех ФМ и что не пишите по п.2 от него не денетесь

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2221
  • Репутация: +25/-0
Re: Проблема default*
« Ответ #14 : 18 Февраль 2020, 10:52:35 »
- а так, как вообще выглядит "концепт-кар" этого "действа"?
( просто честно, пока недопонимаю - какую "картинку" нужно получить на выходе? )
Samsung RV510: intel pent.T4500; чипсет intel Gl40; ATI mob. Radeon HD 5145, RAM=3Gb; hd1 - Grub2; hd2 - Gr4D.
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ