Дистрибутивы проекта PuppyRus Linux > Richy

Выбор приложений по умолчанию (default*)

(1/8) > >>

DdShurick:
На примере 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
--- Конец кода ---
Вопросы? Крытика?

Neyel:
Наглядный пример gtkdialog,а  :)

DdShurick:

--- Цитата: Neyel от 04 Октябрь 2020, 23:33:55 ---пример gtkdialog,а
--- Конец цитаты ---
Смысл не в gtkdialog-е, окно выбора может быть любым, смысл в выборе по факту наличия, а не перебором всех возможных и невозможных значений.

sfs:
Алалогичный код у меня в defaultbrowser
Gui на ntf -l
Надо ли это вообще...
Я, помнится, сделал по заказу Pro и Rodon
В модульном дистре логично иметь 1 приложение одного типа
Если у вас 2 - значит что-то экспериментируете и на это время запустите из меню
Кроме того, в ФМ можно по расширению выбрать чем открыть и стандартным способом (через mime) запомнить этот выбор в хомяке

DdShurick:

--- Цитата: sfs от 05 Октябрь 2020, 10:02:26 ---Алалогичный код у меня в defaultbrowser
--- Конец цитаты ---
Аналогичный? Я ведь смотрел. У меня десяток строк, и годится на все случаи жизни. А у тебя? Перебор всех возможных (и невозможных) значений через цикл. Причём для каждой категории свой скрипт.
Вот смотри, твой defaultfilemanager: строка 8
--- Код ---
for i in  stuurman  thunar pcmanfm pcmanfm-qt spacefm filestarter "defaultterminal -e mc" ;do
--- Конец кода ---
rox ты исключил, переписать я не могу из-за модульности, а если что-то новое появится, опять переписывать. Бросай эту бюрократию, пойми идею.

--- Цитата: sfs от 05 Октябрь 2020, 10:02:26 ---Надо ли это вообще...
--- Конец цитаты ---
Думаю, надо. Например для запуска хоткеями.

--- Цитата: sfs от 05 Октябрь 2020, 10:02:26 ---В модульном дистре логично иметь 1 приложение одного типа
--- Конец цитаты ---
В результате такого подхода у тебя чтобы перейти из одного WM в другой требуется полная перезагрузка.
 Короче, не хочешь, не надо, а я себе сделаю.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии