Glacier UX

Буду всё же называть его Glacier UX хотя и находится всё в nemomobile ах да, о чём это я?

Glacier UX

Концепт мобильного интерфейса от KDE

Некоторые идеи интересны, но вот уведомления это просто швах...просто гадость имхо...кнул-посмотрел на пустое поле-убрал - не нравится. А вот поиск и клава заинтересовало...

Канал себе запилил...

С утра проснулся и понял, мне нужен телеграм канал! Ну сказано - сделано https://t.me/NeochapayLive осталось понять нафейхоа оно мне, ну и запилить пару ботов каких нибудь да...
Пока просто буду писать туда о том что окружает, работе-иннополисе-собаке-программерстве, такой микроблог чо...

Канал себе запилил...

Так что велком чо...

Настраиваем init.rc для запуска mer-sailfish

Отключаем сервисы
ueventd
healthd
sh
auditd
void
netd
mediaserver
keystore
lmkd

Изменяем путь до запуска surfacefinder с /system/bin/surfacefinder на /usr/libexec/droid-hybris/system/bin/servicemanager в итоге запуск должен выглядеть так:

Ошибка сборки ядра

Если вываливаются ошибки

Код PHP:
  1. ERROR: "mali_platform_device_register" [drivers/gpu/arm/mali400/mali/mali.ko] undefined!
  2. ERROR: "mali_platform_device_unregister" [drivers/gpu/arm/mali400/mali/mali.ko] undefined!
Проверьте включен ли в .config параметр ядра
CONFIG_MALI_DT

Сборка пакетов в SDK

Код BASH:
  1. HOST# ssh -p 2222 -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost
  2. SDK# cd project/dir
  3. SDK# make clean
  4. SDK# find . -iname 'Makefile' -exec rm -rfv {} +
  5. SDK# mb2 -t SailfishOS-i486 build
  6. SDK# make clean
  7. SDK# find . -iname 'Makefile' -exec rm -rfv {} +
  8. SDK# mb2 -t SailfishOS-armv7hl build
Более полно тут:
https://sailfishos.org/develop/sdk-overview/develop-faq/
https://sailfishos.org/develop/tutorials/building-sailfish-os-packages-manually/

Удалять мейкфайлы надо потому что система сборки начнёт тупить и собирать не ту архитектуру

Чтобы блютус сохранял свой статус при перезагрузке

В droid-config-DEV необходимо добавить файлик
sparse/etc/sysconfig/connman с содержимым

Код INI:
  1. SYSCONF_ARGS="--noplugin=jolla_rfkill"

HADK: Ошибка "nothing provides kf5bluezqt-bluez4"

Опять поломали чуть поддержку bluetooth в песочнице. Итак, если у Вас при сборке пакетов droid-config возникает ошибка вида:

Код BASH:
  1. Problem: nothing provides kf5bluezqt-bluez4 needed by droid-config-device-bluez4-1-1.armv7hl
  2. Solution 1: Following actions will be done:
  3. deinstallation of bluez-configs-mer-4.101+git73-1.31.1.armv7hl
  4. deinstallation of bluez-4.101+git73-1.31.1.armv7hl
  5. deinstallation of connman-1.30+git20-1.31.1.armv7hl
  6. deinstallation of connman-configs-mer-1.30+git20-1.31.1.armv7hl
  7. deinstallation of connman-qt5-1.0.98-1.32.1.armv7hl
  8. deinstallation of ssu-network-proxy-plugin-0.42.0-1.35.2.armv7hl
  9. deinstallation of ssu-0.42.0-1.35.2.armv7hl
  10. deinstallation of sdk-register-0.5-10.1.11.jolla.armv7hl
  11. deinstallation of qt5-qtsysteminfo-5.2.0+git8-1.7.1.armv7hl
  12. deinstallation of qt5-qtdeclarative-systeminfo-5.2.0+git8-1.7.1.armv7hl
  13. deinstallation of ssu-vendor-data-jolla-0.95-10.32.2.jolla.noarch
  14. Solution 2: keep obsolete bluez-configs-mer-4.101+git73-1.31.1.armv7hl
  15. Solution 3: break droid-config-device-bluez4-1-1.armv7hl by ignoring some of its dependencies
Необходимо добавить репозиторий http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ в песочницу. Делается это так:
Код BASH:
  1. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper ar http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ sfl
  2. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper up
Теперь устанавливаем kf5bluezqt-bluez4 и за одно удаляем mesa-llvmpipe который нам помешает в сборке libhybris
Код BASH:
  1. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper re mesa-llvmpipe
  2. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm mesa-llvmpipe

Кастомные IconButton в Sailfish

IconButton в Silica всем хороши, но их банально мало, и если нужно задействовать что-то либо другое, приходится городить костылики. Вот мой, работает с SVG иконками, которые я брал из Fontawesome тут

Код QML:
  1. import QtQuick 2.0
  2. import Sailfish.Silica 1.0
  3.  
  4. id: clickIcon
  5.  
  6. signal clicked
  7. property string activeColor: Theme.highlightColor
  8. property string defaultColor: Theme.primaryColor
  9.  
  10. opacity: 0.6
  11.  
  12. fillMode: Image.PreserveAspectFit
  13.  
  14. sourceSize.width: width
  15. sourceSize.height: height
  16.  
  17. layer.effect: ShaderEffect {
  18. id: shaderItem
  19. property color color: clickMouseArea.pressed ? clickIcon.activeColor : clickIcon.defaultColor
  20.  
  21. fragmentShader: "
  22. varying mediump vec2 qt_TexCoord0;
  23. uniform highp float qt_Opacity;
  24. uniform lowp sampler2D source;
  25. uniform highp vec4 color;
  26. void main() {
  27. highp vec4 pixelColor = texture2D(source, qt_TexCoord0);
  28. gl_FragColor = vec4(mix(pixelColor.rgb/max(pixelColor.a, 0.00390625), color.rgb/max(color.a, 0.00390625), color.a) * pixelColor.a, pixelColor.a) * qt_Opacity;
  29. }
  30. "
  31. }
  32. layer.enabled: true
  33. layer.samplerName: "source"
  34.  
  35. id: clickMouseArea
  36. anchors.fill: parent
  37. onClicked: {
  38. clickIcon.clicked()
  39. }
  40. }
  41. }

Для себя.

Ну нравится мне ковыряться в старом коде. Да и понадобится он мне скоро...Это так, больше для себя чтобы не бегать по блогу locusf`а.

Код BASH:
  1. pkcon remove lipstick-glacier-home-qt5
  2. pkcon install lipstick-jolla-home-qt5
  3. systemctl-user restart lipstick.service