SUSE Studio / Studio Express

Добро пожаловать в Студию Экспресс.
Это новый дом для создания образов openSUSE и SUSE Linux Enterprise.](https://studioexpress.opensuse.org/)

Тем кто поверил в напутственные слова, двери нового дома начинают потихоньку приоткрываться.
Хочу предложить для использования несколько шаблонов образов openSUSE Leap 15.1 с окружением рабочего стола Cinnamon, Enlightenment, KDE3, MATE, TDE, XCFE4.
Повторю, это всего лишь шаблоны. Не стройте завышенных ожиданий от их использования. Цель шаблонов - это помочь быстро создать свой собственный образ под свои задачи.
По подборке программ для работы с файловыми системами и разделами жёсткого диска образы можно рассматривать как диски восстановления.
С чего начать? Начните с настройки домашнего проекта (Advanced - Project Config). Всё что понадобиться, это текстовый редактор и, может быть, архиватор.

https://susepaste.org/images/70640643.png

Глубоко. Может это очепятка:). Кто бы ещё пунктуацию проверил?:slight_smile:
С орфографией и пунктуацией разобрались.
А в целом, нужно это кому-нибудь или лучше обойтись официальными
образами системы, чем “произведением народного творчества”?

Для привлечения внимания лучше написать статьи на Хабре и прочих СМИ.

Хотел бы привлечь внимание, выбежал бы голым на футбольное поле, ночью потемнее.
Где как не на форуме openSUSE писать о Studio Express?
Документацию легко найти на openSUSE Wiki.
По прежнему с интересом жду ответа. Нужны кому-нибудь рабочие примеры создания образов или нет?

Возможно, кому-то и пригодится, но здесь необходимы знания о kiwi, настройках Project Config, и в общем-то об OBS + bash + тонкости системы и мн. др.
Вряд ли вы дождетесь здесь ответа, как и заинтересованности в целом.

Кстати, я тут подумал, раз у вас уже имеется практический опыт.
Быть может вы создадите образ для этой ветки](https://build.opensuse.org/project/show/X11:Pantheon:Branch)?

Не в восторге от собранного](https://build.opensuse.org/package/binaries/home:AndnoVember:Live:15.1/pantheon-mini-live/images). Вход автоматический, без пароля. Выход из
сессии - чёрный экран. Блокировка экрана, тоже - экран чернее ночи. И
тишина. Буквы шрифта в терминале наползают друг на друга. Собрал как есть,
пользуйтесь на свой страх и риск.

Благодарю.
Позже проверю.
Возможно что-то придется править.

https://paste.opensuse.org/images/22196844.png
Полный размер](https://paste.opensuse.org/images/93452014.jpg)

Добавил несколько исправлений. Примите во внимание.
В пакете lightdm-elementary-greeter не отрабатывает после установочный скрипт? Повысил приоритет до 25.

if rpmqpack | grep lightdm-elementary-greeter; then
    update-alternatives --install /usr/share/xgreeters/lightdm-default-greeter.desktop \
    lightdm-default-greeter.desktop /usr/share/xgreeters/io.elementary.greeter.desktop 25
fi

В настройках терминала не задан шрифт. Пакет (rpm -qf /usr/share/glib-2.0/schemas/io.elementary.terminal.gschema.xml)

if  -f /usr/share/glib-2.0/schemas/io.elementary.terminal.gschema.xml ]; then
    sed -i '/\"font\"/{n;s/\".*\"/\"Droid Sans Mono 10\"/}' \
    /usr/share/glib-2.0/schemas/io.elementary.terminal.gschema.xml
fi

Сменил фон с ярко зелёного на тёмно синий. Раздражал.

if  -f /usr/share/glib-2.0/schemas/pantheon-desktop-schemas-openSUSE-branding.gschema.override ]; then
    sed -i 's/#258c06/#173f4f/' \
    /usr/share/glib-2.0/schemas/pantheon-desktop-schemas-openSUSE-branding.gschema.override
fi

Попытался предварительно настроить plank. Изменилась только тема.

if  -f /usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml ]; then
    sed -i "/name=.*dock-items/{n;s/\.*\]/\'desktop.dockitem', 'midori.dockitem', \
'io.elementary.terminal.dockitem', 'io.elementary.files.dockitem', 'io.elementary.photos.dockitem', \
'io.elementary.music.dockitem', 'io.elementary.videos.dockitem'\]/}" \
    /usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml
    sed -i "/name=.*theme/{n;s/Gtk+/Default/}" \
    /usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml
fi

Установил тёмную тему elementary и сменил обои.

if rpmqpack | grep pantheon-session-settings-branding-openSUSE; then
    echo "gtk-application-prefer-dark-theme = 1" >> /etc/xdg/pantheon/gtk-3.0/settings.ini
fi
_WALLPAPER="Morskie Oko.jpg"
ln -sf "$_WALLPAPER" /usr/share/backgrounds/default-wallpaper

Добавил пакет gsettings-backend-dconf. Без этого пакета ни обои, ни фон нельзя было сменить. Странно, что пакет
отсутствует в зависимостях к Центру настроек.

Тестировал на VirtualBox с подключённой общей папкой. Удобно находить и быстро исправлять ошибки, тут же тестировать
исправления.

Ярко-зелёный и тёмно-синий пишутся через дефис.:slight_smile:

Спасибо за тестирование.
Поскольку, я являюсь сопровождающим этого проекта, то поясню следующее:

В пакете lightdm-elementary-greeter не отрабатывает после установочный скрипт? Повысил приоритет до 25.

Я, в некотором роде, с вами полностью согласен, но есть несколько нюансов:

  1. lightdm в openSUSE идет с приоритетом 20 , и скрипт обрабатывается, как ожидалось, только в том случае, если в системе стоит только один менеджер входа, включая xdm.
  2. В некотором роде это экспериментальный пакет, и если в системе уже присутствует др. менеджер входа, то в системе ничего не меняется.
  3. Хотя, существуют и исключения, например для менеджера входа entrance, я поступил так:
_count=$(%{_sbindir}/update-alternatives --display default-displaymanager 2>&1 | grep -o '[0-9]\+$' | sort -rn | grep -m1 .)
 if ! %{_sbindir}/update-alternatives --list default-displaymanager 2>&1 | grep entrance; then
     %{_sbindir}/update-alternatives --install \
     %{_libexecdir}/X11/displaymanagers/default-displaymanager \
     default-displaymanager \
     %{_libexecdir}/X11/displaymanagers/entrance $((_count = $_count + 5))
 fi

См. https://build.opensuse.org/package/view_file/X11:Enlightenment:Nightly/entrance/entrance.spec?expand=1

В настройках терминала не задан шрифт. Пакет (rpm -qf /usr/share/glib-2.0/schemas/io.elementary.terminal.gschema.xml)

На самом деле, шрифт по умолчанию зашит в исходнике, и если в системе установлены рекомендованные пакеты из шаблона patterns-pantheon-pantheon_basis, то проблем быть не должно.

Попытался предварительно настроить plank. Изменилась только тема.
if -f /usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml ]; then
** sed -i “/name=.dock-items/{n;s/.]/'desktop.dockitem’, ‘midori.dockitem’,
‘io.elementary.terminal.dockitem’, ‘io.elementary.files.dockitem’, ‘io.elementary.photos.dockitem’,
‘io.elementary.music.dockitem’, ‘io.elementary.videos.dockitem’]/}”
/usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml**
sed -i “/name=.*theme/{n;s/Gtk+/Default/}”
/usr/share/glib-2.0/schemas/net.launchpad.plank.gschema.xml
fi

Расположение приложений в панели запуска plank осуществляются динамически, и вышеприведенные вами строки, применяются единожды и только при первом входе в сессию.
Подробности в пакете elementary-default-setting:

## Add the default apps to plank and the list files to dock-items
## You have to specify .desktop file and package that provides a file
## Example: multitaskingview.desktop provides gala package
_desktop="multitaskingview=gala"
_graphics="videos=elementary-videos music=elementary-music photos=elementary-photos"
_internet="epiphany=epiphany"
_office="calendar=elementary-calendar writer=libreoffice-writer"
_system="files=elementary-files switchboard=switchboard"
## Set apps location on the plank panel
_include="$_desktop $_graphics $_internet $_office $_system"
##
_count=$(echo "$_include" | grep -o '=' | wc -l)
for _package in $_include; do
    ((_count -- ))
    if _file=$(rpm -ql --whatprovides ${_package#*=} | grep -i "${_package%=*}\.desktop$"); then
        _basename="$(echo $(_name=${_file##*/}; echo ${_name%.*}).dockitem)"
        echo -e "[PlankDockItemPreferences]\
Launcher=file://"${_file}"" > "$_basename"
        install -Dm0644 {.,%{buildroot}%{_sysconfdir}/skel/.config/plank/dock1/launchers}/"$_basename"
        _configfile+="'$_basename',"
        if  "$_count" -eq 0 ]; then
            if  -n "$_configfile" ]; then
                sed -e "/^dock-items/s/^=]*$/${_configfile%,}]/" \
                    -i $(grep -l '^dock-items' %{buildroot}%{_datadir}/glib-2.0/schemas/elementary-branding.gschema.override)
            fi
        fi
    else
        rpm -ql --whatprovides ${_package#*=} || :
        %{_datadir}/applications/${_package%=*}.desktop
    fi
done
### Generate the dockitems script
### Creates the dockitem files in a new user session
_includefile=$(find %{buildroot} -name \*.dockitem)
_countfile=$(echo "$_includefile" | wc -l)
for _file in $_includefile; do
    ((_countfile -- ))
    echo " -f \"$(sed -n '/Launcher/Is/^/]*\/\///p' $_file)\" ]" >> plank-dockitems.in
    _dockitems+=$'
'$(sed ":a;N;s/\(.*\)/echo '\1' > \"\$plank_config_dir\"\/${_file##*/}/;ba" $_file)
    if  "$_countfile" -eq 0 ]; then
        echo 'mkdir -p "$plank_config_dir"' >> plank-dockitems.in
        echo "$_dockitems" | sed '/^$/d' >> plank-dockitems.in
        sh -x plank-dockitems.in
        sed -i '/trap/s/exit 1/exit 0/' plank-dockitems.in
        echo "gsettings get net.launchpad.plank.dock.settings:/net/launchpad/plank/docks/dock1/ dock-items 2>&1 | grep -q '^@'" \
        >> plank-dockitems.in
        echo "gsettings set net.launchpad.plank.dock.settings:/net/launchpad/plank/docks/dock1/ dock-items" \
        \"$(sed -n '/dock-items/s/^=]*=//p' %{buildroot}%{_datadir}/glib-2.0/schemas/elementary-branding.gschema.override)\" \
        >> plank-dockitems.in
        install -Dm0755 plank-dockitems.in %{buildroot}/%{_libexecdir}/pantheon/plank/dockitems # install to pantheon dir
    fi
done
###
##

Результат вышеприведенных строк размещается в %{_libexecdir}/pantheon/plank/dockitems](https://build.opensuse.org/package/view_file/X11:Pantheon:Branch/elementary-default-settings/plank-dockitems.in?expand=1) файле.
См. https://build.opensuse.org/package/view_file/X11:Pantheon:Branch/elementary-default-settings/elementary-default-settings.spec?expand=1
Если же вы хотите расположить список приложений dockitems на свое усмотрение, тогда воспользуйтесь возможностями директории skel, а точнее %{_sysconfdir}/skel/.config/plank/dock1

Добавил пакет gsettings-backend-dconf. Без этого пакета ни обои, ни фон нельзя было сменить. Странно, что пакет
отсутствует в зависимостях к Центру настроек.

Для этих целей предусмотрен пакет elementary-tweaks. После установки данного пакета, скрытые настройки рабочего стола отобразятся в центре настроек switchboard.

Тестировал на VirtualBox с подключённой общей папкой. Удобно находить и быстро исправлять ошибки, тут же тестировать
исправления.

А вот с этого места поподробнее, пожалуйста!
В завершении хотелось бы добавить: вы не будите против, если я размещу ссылку на ваш образ в соответствующем разделе вики](https://en.opensuse.org/Portal:Pantheon)?

Сменил фон с ярко зелёного на тёмно синий. Раздражал.

Я думаю, что вы не один, которого раздражает это.
Но, к сожалению, этот фон по умолчанию в openSUSE.

Добавил пакет gsettings-backend-dconf. Без этого пакета ни обои, ни фон нельзя было сменить. Странно, что пакет
отсутствует в зависимостях к Центру настроек. [QUOTE] Для этих целей предусмотрен пакет elementary-tweaks. После установки данного пакета, скрытые настройки рабочего стола отобразятся в центре настроек switchboard.
[/QUOTE]
Извините, я неправильно вас понял.
Вы абсолютно правы, данная зависимость по умолчанию отсутствует в системе.
Исправил: https://build.opensuse.org/request/show/715426
Спасибо!

Повышение приоритета было скорее перестраховкой, так как lightdm-elementary-greeter единственный подобный пакет на
собранном LiveCD.
osc less X11:Pantheon:Branch lightdm-elementary-greeter lightdm-elementary-greeter.spec
Смущает вот эта проверка перед выполнением послеустановочного скрипта:

%post
if  ! -e /.buildenv ]; then
...

При сборке LiveCD как раз присутствует этот файл:
/var/tmp/build-root/images-x86_64/.buildenv
Можно поднять логи сборки LiveCD.](https://build.opensuse.org/public/build/home:AndnoVember:Live:15.1/images/x86_64/pantheon-mini-live/_log)

На самом деле, шрифт по умолчанию зашит в исходнике, и если в системе установлены рекомендованные пакеты из
шаблона patterns-pantheon-pantheon_basis, то проблем быть не должно.

Рекомендованные пакеты отброшены для уменьшения размера готового образа LiveCD, но установленого пакета со шрифтом Droid
Sans Mono получается, что не достаточно. Лучше точно определить шрифт в соответствующих настройках.

Для этих целей предусмотрен пакет elementary-tweaks.

По разным причинам пакет elementary-tweaks может быть не установлен, тогда первое впечатление от настройки внешнего
вида рабочего стола будет испорчено раз и навсегда. Добавить стандартный пакет gsettings-backend-dconf в зависимости
будет не лишним.

Изменение цвета фона вполне доступно в рамках проекта X11:Pantheon:Branch
(rpm -qf /usr/share/glib-2.0/schemas/pantheon-desktop-schemas-openSUSE-branding.gschema.override)
Тёмно-синий цвет взят не с потолка см. Help:Colors.

А вот с этого места поподробнее, пожалуйста!

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

В завершении хотелось бы добавить: вы не будите против, если я размещу ссылку на ваш образ в соответствующем
разделе вики](https://en.opensuse.org/Portal:Pantheon) ?

Нет:), не против.

Кроме того, не против, а скорее, за копирование проекта

***osc copypac home:AndnoVember:Live:15.1 pantheon-mini-live X11:Pantheon:Branch:Medias pantheon-live***

Пробуйте добавлять и удалять пакеты, настраивать внешний вид… Это просто.

Смущает вот эта проверка перед выполнением послеустановочного скрипта:

Тёмно-синий цвет взят не с потолка см. Help:Colors.

Исправил.
Спасибо за тестирование и свежий взгляд со стороны.

В завершении хотелось бы добавить: вы не будите против, если я размещу ссылку на ваш образ в соответствующем
разделе вики](https://en.opensuse.org/Portal:Pantheon) ?

[QUOTE]Нет:), не против.
[/QUOTE]
Я обновил страницу вики.

Кроме ого, не против, а скорее, за копирование проекта.

Сомневаюсь, что у меня будет время на сопровождение образа.
Может быть, я лучше добавлю вас в число сопровождающих?

osc copypac home:AndnoVember:Live:15.1 pantheon-mini-live X11:Pantheon:Branch:Medias pantheon-live

Хотя, вы сами имеете необходимые полномочия для создания этого проекта

Я все-таки скопировал ваш проект и создал два дополнительных образа для openSUSE Leap и Tumbleweed с некоторыми основными изменениями:

  1. Поддержка многоязычности, за исключением YaST
  2. Загрузка образа с настройками по умолчанию рабочего стола
    Полный список изменений можно посмотреть тут](https://build.opensuse.org/request/show/716673).

Внес некоторые изменения в первоначальный образ](https://build.opensuse.org/package/show/X11:Pantheon:Branch:Medias/openSUSE-Current-Pantheon-Mini-Live), о чем вам уже известно, и внес изменения в Project Config для статических ссылок на образ (Repotype: staticlinks).
Думаю, что проект готов к тестированию и теперь вы находитесь в числе сопровождающих.
Если будет время и желание, тогда присоединяйтесь! :slight_smile:

То, что на OBS собираются пакеты для различных дистрибутивов уже особо не впечатляет. Другое дело живые образы этих дистрибутивов. В подпроектах Virtualization:Appliances:Images:Testing_x86 можно найти готовые для сборки решения таких дистрибутивов, как: Arch Linux, CentOS, Debian, Fedora, SUSE и Ubuntu.
Мало кому будет интересно, загрузив скаченный образ и введя имя единственного пользователя и его пароль, увидеть мигающий курсор в левом верхнем углу тёмного экрана.
Продолжим. Изменив и дополнив конфигурационные файлы сборки](https://build.opensuse.org/package/show/home:AndnoVember:Live:Ubuntu/x_ubuntu-live) можно добиться (по)разительных результатов.
Взяв за основу убунтовскую заготовку](https://build.opensuse.org/package/show/Virtualization:Appliances:Images:Testing_x86:ubuntu/test-image-live-disk) можно получить вполне работоспособный живой образ](https://download.opensuse.org/repositories/home:/AndnoVember:/Live:/Ubuntu/images/iso/).
Полученный образ - это калька с хорошо известного Xubuntu (Jammy), но из-за некоторых допущений влияющих на процесс сборки, немного не дотягивающий до оригинала. Нестыковка dracut и initramfs-tools привела к удалению последнего, а следом за удалением initramfs-tools пришлось удалить программу установки Ubuntu. В образ также не попали контейнеры snap (строительные блоки песочницы, необходимой для запуска браузера firefox).