LinuxForum.Fans
Тема

Mate-Slackware-дистрибутив

Автор: deleted_user 35 сообщений 9554 просмотров
#357246

Хм, про /usr/share/mime/application и update-mime-database -- это я чуток напутал, речь не про них была, про вызов "xdg-mime default application mimetype(s)".
Жаль сути -- необходимости приложения рук -- это не меняет.

#357260

bormant, Спасибо!!!
Помогла правка скрипта xdg-open в части определения десктопа.

Было:

[console]
#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase

detectDE()
{
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
elif [ x"$DESKTOP_SESSION" == x"mate" ]; then DE=mate;
else DE=""
fi
}
[/console]


После правки скрипта:

[console]
#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase

detectDE()
{
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"MATE" ]; then DE=gnome;
elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
# elif [ x"$DESKTOP_SESSION" == x"mate" ]; then DE=mate;
else DE=""
fi
}
[/console]

Теперь mc вызывает для обработки файлов "правильные" программы. Как это работает, к сожалению я не понял... :(
Но главное, что работает и не раздражает... :)

#357526

Ещё одна ссылка по решению проблемы, но ещё не проверял...

#357995

Для себя решил вопрос с xdg-utils, просто используя готовое решение из дистрибутива ALTLinux.
У них, судя по всему, пакет из последнего git и даже версия даже отличается от официальной последней.
Так как это всего лишь скрипты и компиляции не требуется, просто преобразовал их пакет в слаковский формат и переустановил.
Пока всё работает на ура...
Прилагаю скриптик, автоматизирующий преобразование альтовского пакета в слаковский:

[console]
#!/bin/bash

CWD=$(pwd)

if [ ! -r xdg-utils-1.1.0-alt7.noarch.rpm ] ; then
wget f[span]tp://ftp.by.debian.org/pub/ALTLinux/p7/branch/noarch/RPMS.classic/xdg-utils-1.1.0-alt7.noarch.rpm[/span]
fi

rpm2txz -c xdg-utils-1.1.0-alt7.noarch.rpm

mkdir ~/bld

tar xpJf xdg-utils-1.1.0-alt7.noarch.txz -C ~/bld
rm xdg-utils-1.1.0-alt7.noarch.rpm
rm xdg-utils-1.1.0-alt7.noarch.txz

mv ~/bld/usr/share/doc ~/bld/usr
mkdir ~/bld/install

echo ' |-----handy-ruler------------------------------------------------------|' >~/bld/install/slack-desc
echo 'xdg-utils: xdg-utils (command line tools that assist applications)' >>~/bld/install/slack-desc
echo 'xdg-utils:' >>~/bld/install/slack-desc
echo 'xdg-utils: Xdg-utils is a set of command line tools that assist applications' >>~/bld/install/slack-desc
echo 'xdg-utils: with a variety of desktop integration tasks. About half of the' >>~/bld/install/slack-desc
echo 'xdg-utils: tools focus on tasks commonly required during the installation of' >>~/bld/install/slack-desc
echo 'xdg-utils: a desktop application and the other half focuses on integration' >>~/bld/install/slack-desc
echo 'xdg-utils: with the desktop environment while the application is running.' >>~/bld/install/slack-desc
echo 'xdg-utils:' >>~/bld/install/slack-desc
echo 'xdg-utils: Homepage: ht[span]tp://portland.freedesktop.org/wiki/[/span]' >>~/bld/install/slack-desc
echo 'xdg-utils:' >>~/bld/install/slack-desc
echo 'xdg-utils:' >>~/bld/install/slack-desc

cat $CWD/xdg-utils_repack.SlackBuild > ~/bld/usr/doc/xdg-utils-1.1.0/xdg-utils_repack.SlackBuild

cd ~/bld
/sbin/makepkg -l y -c n $CWD/xdg-utils-1.1.0-noarch-7_alt.txz

cd $CWD
rm -R ~/bld
[/console]

Сохраните его под названием "xdg-utils_repack.SlackBuild", сделайте исполняемым и запустите. Должен получиться слаковский пакет "xdg-utils-1.1.0-noarch-7_alt.txz".
Если этого не получилось, значит хреновый из меня начинающий программатор...
А если получился, то установите его:

[console]
upgradepkg --install-new xdg-utils-1.1.0-noarch-7_alt.txz
[/console]

Не знаю почему, но ребятам из ALTLinux я доверяю... Хотя rpm, это не моё... - еле башем ворочаю...

#358008

Вместо пачки echo ... >> file можно использовать или многострочную строковую константу:[console]echo "строка 1
...
строка N" > file
[/console]или встроенный документ:[console]
cat <<EOF >file
строка 1
...
строка N
EOF
[/console]что существенно повышает читабельность кода.

[console]mkdir ~/bld
...
rm -R ~/bld[/console]Для подобных целей лучше что-то более безопасное в /tmp, вроде /tmp/package-xdg-utils, ведь в домашнем каталоге вполне может быть bld, в котором может лежать много чего полезного. Вполне подошло бы что-то вроде традиционного:[console]CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-xdg-utils
rm -rf $PKG
mkdir $PKG
...
[/console]

#358031
bormant написал:
или встроенный документ:[console]
cat <<EOF >file
строка 1
...
строка N
EOF
[/console]что существенно повышает читабельность кода.

Мне, как начинающему, ну очень интересно, как с помощью данной конструкции будет выглядеть такая строка:
[console]
-exec -a "$0" "$HERE/chrome" "$@"'
[/console]

На счёт "~/bld", так это взято у Вас, из материала по русификации...

Исправленный по рекомендациям скрипт:

[console]
#!/bin/bash

CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-xdg-utils

if [ ! -r xdg-utils-1.1.0-alt7.noarch.rpm ] ; then
wget [url]ftp://ftp.by.debian.org/pub/ALTLinux/p7/branch/noarch/RPMS.classic/xdg-utils-1.1.0-alt7.noarch.rpm[/url]
fi

rpm2txz -c xdg-utils-1.1.0-alt7.noarch.rpm

mkdir $PKG

tar xpJf xdg-utils-1.1.0-alt7.noarch.txz -C $PKG

rm xdg-utils-1.1.0-alt7.noarch.rpm
rm xdg-utils-1.1.0-alt7.noarch.txz

mv $PKG/usr/share/doc $PKG/usr

mkdir $PKG/install
cd $PKG/install
wget -c http://slackware.org.uk/slackware/slackware-14.1/source/x/xdg-utils/slack-desc
cat $CWD/xdg-utils_repack.SlackBuild > $PKG/usr/doc/xdg-utils-1.1.0/xdg-utils_repack.SlackBuild

cd $PKG
/sbin/makepkg -l y -c n $CWD/xdg-utils-1.1.0-noarch-7_alt.txz

cd $CWD
rm -R $PKG
[/console]

#359296

Ещё один вопрос по MATE. Своего штатного записывателя cdrom'ов он не имеет, поэтому был установлен Xfburn из комплекта XFCE.
Работает прекрасно, если вызывать его из меню.
Но если вставить в устройство считывания дисков чистую болванку, появляются следующие сообщения:



Затем, после нажатия "OK":



Волнует заблокированный пункт меню - "Приложения не найдены"...
Как заставить MATE попытаться найти нужное приложение?

#359301

"cdrw" написал:
Как заставить MATE попытаться найти нужное приложение?
Вот так:



Centos, конечно, но разницы никакой.
#359303

redix написал:
[quote="cdrw"]Как заставить MATE попытаться найти нужное приложение?
Вот так:



Centos, конечно, но разницы никакой.[/quote]

Вы забыли самое главное, как выйти на это окно?
#359304

"cdrw" написал:
Вы забыли самое главное, как выйти на это окно?
Caja — правка — параметры — вкладка "носители". :)
#359305

Какая "правка"? Где можно увидеть этот пункт?

#359306

cdrw, вот здесь.

#359307

Ещё "понятнее"... И как это связать с моей проблемой? Ведь это форум, ответы должны быть без намеков и прямые. Вы для меня ответили или для всех?

#359308

"cdrw" написал:
Как заставить MATE попытаться найти нужное приложение?
По моему на этот вопрос ответил. Что тут непонятного?
#359574

Я наверное тупой до безобразия, но никак не могу найти где включить обслуживающую программу... *WALL*

Войдите или зарегистрируйтесь, чтобы ответить.