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

Голосование

Нужен GUI выбора приложений по умолчанию?

Нет
1 (100%)
Да. Как defaultbrowser в PRA (сделать гуй (ntf -3 + ntf -c) выбора дефолтных приложений)
0 (0%)
Да. Как у  DdShurick в этой теме
0 (0%)

Проголосовало пользователей: 1

Автор Тема: Выбор приложений по умолчанию (default*)  (Прочитано 7555 раз)

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

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
На примере default<browser>:
Код
#!/bin/sh
##GPL v2. DdShurick. 04.10.2020

CATEGORY=$(basename $0 | sed 's/^default//')
[ "$1" = "-check" ] && rm $HOME/my-applications/bin/default$CATEGORY

if [ ! -h $HOME/my-applications/bin/$A ]; then
. /usr/libexec/check_apps
ln -sf $(which $ALTERNATIVE) $HOME/my-applications/bin/default$CATEGORY
fi

$HOME/my-applications/bin/default$CATEGORY "$@" &
Окно выбора check_apps
Код
##GPL v2. DdShurick. 04.10.2020

APPs=$(ls -1 /etc/alternatives/$CATEGORY) || exit 1

if [ "$(echo $APPs | wc -w)" -gt 1 ]; then
export Xmngr="<window title=\"Выбор $CATEGORY\" resizable=\"false\"><vbox>
<text><label>Выберите $0</label></text>
<tree>
<variable>ALTERNATIVE</variable>
$(echo "$APPs"| sed 's/^/<item>/;s/$/<\/item>/')
</tree>
<hbox><button cancel></button>
<button ok></button>
</hbox></vbox></window>"
eval $(gtkdialog -c --program "Xmngr")

[ "$EXIT" = "Cancel" -o  "$EXIT" = "abort" ] && exit 0
if [ "$ALTERNATIVE" = "" ]; then notify-send -u low "${0}:" "Ничего не выбрано"; exit 0; fi
else
ALTERNATIVE=$APPs
fi
Вопросы? Крытика?
« Последнее редактирование: 05 Октябрь 2020, 19:46:02 от DdShurick »
Моноблок 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

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
Re: Выбор приложений
« Ответ #1 : 04 Октябрь 2020, 23:33:55 »
Наглядный пример gtkdialog,а  :)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений
« Ответ #2 : 05 Октябрь 2020, 07:11:12 »
пример gtkdialog,а
Смысл не в gtkdialog-е, окно выбора может быть любым, смысл в выборе по факту наличия, а не перебором всех возможных и невозможных значений.
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Выбор приложений
« Ответ #3 : 05 Октябрь 2020, 10:02:26 »
Алалогичный код у меня в defaultbrowser
Gui на ntf -l
Надо ли это вообще...
Я, помнится, сделал по заказу Pro и Rodon
В модульном дистре логично иметь 1 приложение одного типа
Если у вас 2 - значит что-то экспериментируете и на это время запустите из меню
Кроме того, в ФМ можно по расширению выбрать чем открыть и стандартным способом (через mime) запомнить этот выбор в хомяке

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений
« Ответ #4 : 05 Октябрь 2020, 11:31:06 »
Алалогичный код у меня в defaultbrowser
Аналогичный? Я ведь смотрел. У меня десяток строк, и годится на все случаи жизни. А у тебя? Перебор всех возможных (и невозможных) значений через цикл. Причём для каждой категории свой скрипт.
Вот смотри, твой defaultfilemanager: строка 8
Код
for i in  stuurman  thunar pcmanfm pcmanfm-qt spacefm filestarter "defaultterminal -e mc" ;do
rox ты исключил, переписать я не могу из-за модульности, а если что-то новое появится, опять переписывать. Бросай эту бюрократию, пойми идею.
Надо ли это вообще...
Думаю, надо. Например для запуска хоткеями.
В модульном дистре логично иметь 1 приложение одного типа
В результате такого подхода у тебя чтобы перейти из одного WM в другой требуется полная перезагрузка.
 Короче, не хочешь, не надо, а я себе сделаю.
« Последнее редактирование: 05 Октябрь 2020, 11:50:05 от DdShurick »
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Выбор приложений
« Ответ #5 : 05 Октябрь 2020, 12:30:31 »
пойми идею.
Откуда возьмется $HOME/my-applications/bin/default$CATEGORY ?
rox ты исключил
Включить?
чтобы перейти из одного WM в другой требуется полная перезагрузка.
На мой взгляд - вообще ненужный функционал
я себе сделаю.
Касаемо prar и т.п. можно пока сделать ДЕ 089-z-jwm*.pfs - будет ниже только сохраненки
По итогу определимся - как лучше

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений
« Ответ #6 : 05 Октябрь 2020, 13:03:51 »
Откуда возьмется $HOME/my-applications/bin/default$CATEGORY ?
Скрипт запишет. Да, $HOME/my-applications/bin/ Это пережиток от классического Puppy. Можно сделать, например, $HOME/.config/apps/
На мой взгляд - вообще ненужный функционал
Тебе не угодишь, то мало функционала, то много.
ДЕ 089-z-jwm*.pfs
Костыль.
определимся - как лучше
Лучше с тобой не связываться, себе дороже.
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Выбор приложений
« Ответ #7 : 05 Октябрь 2020, 13:19:26 »
Скрипт запишет
APPs=$(ls -1 /etc/alternatives/$CATEGORY) || exit 1
Скрипт сразу выйдет. Изначально откуда и юзер не понял из чего должен выбирать (не нашел перечисления вариантов) ? или просто должен тыкнуть в бинарник...
Тебе не угодишь, то мало функционала, то много.
Там где надо - функционал нужен. Где не надо - лишнего не надо  :)
Горячее переключение ВМ - обсуждали давно - не нужно
С перегазрузом - достаточно и надо только новичкам на стадии выбора ДЕ

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений
« Ответ #8 : 05 Октябрь 2020, 17:02:35 »
Скрипт сразу выйдет.
Вот тут ты не понял, смотри:
Код
# find /etc/alternatives/ -type l
/etc/alternatives/x-session-manager/icewm-session
/etc/alternatives/x-session-manager/jwm
/etc/alternatives/filemanager/rox
/etc/alternatives/browser/seamonkey
В каждом атомарном модуле приложения должна быть ссылка /etc/alternatives/<category>/<name> на пусковой файл. Можно, конечно, парсить *.desktop, но нет к ним доверия, ибо написано безалаберно.
С перегазрузом - достаточно и надо только новичкам на стадии выбора ДЕ
Вот как раз на этой стадии горячее переключение гораздо удобнее: ткнул "сменить WM" -> выбрал -> Ok -> готово.
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Выбор приложений
« Ответ #9 : 05 Октябрь 2020, 17:24:11 »
Теперь понял. Но тогда уж лучше сразу делать ссылку на defaultbrowser и т.п.
Добавлю голосование в тему

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений по умолчанию (default*)
« Ответ #10 : 05 Октябрь 2020, 17:36:43 »
лучше сразу делать ссылку на defaultbrowser
Тогда не будет выбора, слои перекроются.
Добавлю голосование в тему
Демократия? :D
Моноблок 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

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Выбор приложений по умолчанию (default*)
« Ответ #11 : 05 Октябрь 2020, 17:40:00 »
Тогда не будет выбора, слои перекроются.
Ну так последний подключенный по логике и нужен + гуй создания ссылки на что юзер выберет для сложных желаний и их смены : ntf -с
Демократия? :D
Понять - надо ли такое хоть кому-то...
« Последнее редактирование: 05 Октябрь 2020, 17:41:42 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Выбор приложений по умолчанию (default*)
« Ответ #12 : 05 Октябрь 2020, 18:58:22 »
надо ли такое хоть кому-то...
Во всех больших линуксах есть. Идею /etc/alternatives взял из Альтлинукса, хотя и в других есть, приспособил для слоистой системы и сильно упростил. Что тут обсуждать, если это общепринято?
Ну так последний подключенный по логике и нужен
Беда в том, что подключать можно по разному и результат будет разный.
Моноблок 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

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: Выбор приложений по умолчанию (default*)
« Ответ #13 : 05 Октябрь 2020, 21:25:00 »
Не могу понять - это на замену ПКМ-открыть_с_помощью ?
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Выбор приложений по умолчанию (default*)
« Ответ #14 : 05 Октябрь 2020, 23:00:27 »
/etc/alternatives
Wikipedia
ЛОР