Categories

  • The Meta category: Organizational or general discussion.

    1k Topics
    10k Posts
    R
    I am organising a UBport Community Awards for the developers. If you have suggestions for award categories, please let me know! Current ideas for Categories: Biggest OS bug squashed Favourite new app in the open store Community's favourite developer Favourite new app concept ( in the app store) Details about the planning can be found here: https://forums.ubports.com/post/90354
  • Discuss news updates from Ubuntu Touch and its related projects

    1k Topics
    5k Posts
    U
    Ubuntu Touch isnt much known to be still alive, i think that it needs more social network visibility, ideally not only those for nerds (masodon) but also having news on platforms where normal people are (fb?)
  • Discuss and solve problems with other users

    4k Topics
    28k Posts
    DJacD
    yes, I see this topic. and my search giveme this : https://forum.fairphone.com/t/pas-dacces-4g-et-ni-mms-avec-bouygues-telecom-sous-ubuntu-touch/117304 and it works... so. i share it but, this way don't allow to receive mms whithout internet connection.
  • 2k Topics
    19k Posts
    G
    @ChromiumOS-Guy said in Guide to charge limiting your Fairphone 5: on FP5 it seems to draw the same amount if I set it to a large value then if I restart well, my main concern is what could happen for people following your advice with a more powerful (fast) charger. If I understand correctly, the kernel limits to 6 amperes whatever, from kernel-fairphone-qcm6490/drivers/power/supply/qti_battery_charger.c; #ifdef CHARGE_MODE_FCC_SUPPORT #define SLOW_MODE_FCC 1000000 // 2A #define NORMAL_MODE_FCC 6000000 // 6A static int battery_psy_set_charge_current_by_chgmode(struct battery_chg_dev *bcdev, int val) { int rc = 0; u32 fcc_ua = ((val == SLOW_MODE_FCC) ? SLOW_MODE_FCC : NORMAL_MODE_FCC); rc = write_property_id(bcdev, &bcdev->psy_list[PSY_TYPE_BATTERY], BATT_CHGMODE_FCC, fcc_ua); I don't know if the FP5 battery can support 6 amps without problems. If I would use your system, I'd try to keep safe and set user_fcc to 1000000 (notice how the comment seems wrong, how can 1000000 mean 2 amp and 6000000 6 amp ?) Re: different kernels, well, if I understand correctly, if the battery driver supports it, you'll find the appropriate values in the /sys/class/power_supply/ that are referred everywhere on the web: charge_control_start_threshold and charge_control_end_threshold, there should be no need for a script that will wake up the Cpu every minute (hardly a good thing to save power). It don't concern FP5 (although the kernel is recent enough... I wonder if the kernel in Android 14 has a more recent driver that supports this feature or if there is some script to support it, but what's sure is that control up to 80% charge is supported on Android and FP5).
  • Discussions on development of Ubuntu Touch

    521 Topics
    6k Posts
    C
    @Bolly No, I'm just waiting now to see whether my suggestions are taken up. If necessary, I can use syncthing instead of rsync. But of course it's a shame if you have a shell but the programs are missing. greetings Charly
  • Discuss the user experience or design of Ubuntu Touch or its apps

    164 Topics
    2k Posts
    t12392nT
    woah, great work!
  • Creating Ubuntu Touch apps

    764 Topics
    7k Posts
    K
    Can't you get the density somewhere else? For example in QML, you use Screen.
  • Porting Ubuntu Touch to new devices

    485 Topics
    4k Posts
    I
    @k.nacke im buys these days but anyways im biack into this thing if you need anything for me to test i can do it
  • Lomiri, the operating environment for everywhere

    72 Topics
    616 Posts
    F
    but sharing about overall experience, I'm really happy with FP5. It works flawlessly with my 4k monitor and docking station. I can just plug it and use from mouse/keyboard/monitor. That's just awesome. FP4 was probably working similarly with FHD but I don't have any low resolution screen anymore, so I never tested it (I just can confirm that it couldn't drive 4k resolution). I just hope FP7 will have fully fictional USB-C again (as FP6 allows only charging, no docking capabilities!!!)
  • Discussion on translating Ubuntu Touch and its core apps

    59 Topics
    329 Posts
    B
    @Vlad-Nirky Thank you. Done.
  • A place to discuss ideas for promoting Ubuntu Touch

    56 Topics
    716 Posts
    LakotaubpL
    @Jules We are aware of this and we are having a good look at it.
  • Other Projects

    Projects which are started by a group within the UBports community

    70 Topics
    401 Posts
    D
    could compile it installed it but when run direct on the smartphone it hang if login ssh -CY phablet@10.42.0.1 and run then, gut the GUI Dockerfile FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # First, update and install basic tools RUN apt-get update && apt-get install -y \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Configure repositories properly RUN rm /etc/apt/sources.list.d/ubuntu.sources && \ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" > /etc/apt/sources.list && \ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=amd64] http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list # Enable arm64 architecture RUN dpkg --add-architecture arm64 # Update and install dependencies RUN apt-get update && apt-get install -y \ build-essential \ crossbuild-essential-arm64 \ git \ meson \ ninja-build \ pkg-config \ blueprint-compiler \ desktop-file-utils \ gobject-introspection \ libgirepository1.0-dev \ gir1.2-gtk-4.0 \ gir1.2-adw-1 \ gir1.2-gtksource-5 \ libglib2.0-bin \ libglib2.0-dev \ protobuf-compiler \ libglib2.0-dev:arm64 \ libgtk-4-dev:arm64 \ libadwaita-1-dev:arm64 \ libpango1.0-dev:arm64 \ libgdk-pixbuf-2.0-dev:arm64 \ libcairo2-dev:arm64 \ libgtksourceview-5-dev:arm64 \ gettext \ python3-pip \ && rm -rf /var/lib/apt/lists/* # Fix: Replace ARM64 glib-compile-schemas with wrapper to native version RUN if [ -f /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas ]; then \ mv /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas \ /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas.arm64 && \ echo '#!/bin/bash\nexec /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas "$@"' \ > /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas && \ chmod +x /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas; \ fi # Add this near the end of your Dockerfile, before WORKDIR RUN pip3 install --break-system-packages clickable-ut # Install Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" # Add aarch64 Rust target RUN rustup target add aarch64-unknown-linux-gnu # Configure Cargo RUN mkdir -p /root/.cargo && \ echo '[target.aarch64-unknown-linux-gnu]' >> /root/.cargo/config.toml && \ echo 'linker = "aarch64-linux-gnu-gcc"' >> /root/.cargo/config.toml # Set pkg-config paths for Cargo ENV PKG_CONFIG_SYSROOT_DIR=/ ENV PKG_CONFIG_PATH= ENV PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig ENV PKG_CONFIG_ALLOW_CROSS=1 # CRITICAL: Force Cargo to build for aarch64 ENV CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu # Create simpler cargo wrapper RUN mv /root/.cargo/bin/cargo /root/.cargo/bin/cargo-real && \ cat > /root/.cargo/bin/cargo << 'EOFWRAPPER' #!/bin/bash case "$1" in build) if [[ "$*" != *"--target"* ]]; then /root/.cargo/bin/cargo-real "$@" --target aarch64-unknown-linux-gnu result=$? if [ $result -eq 0 ] && [ -n "$CARGO_TARGET_DIR" ] && [ -f "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" ]; then mkdir -p "$CARGO_TARGET_DIR/release" cp "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" "$CARGO_TARGET_DIR/release/flare" fi exit $result fi ;; esac exec /root/.cargo/bin/cargo-real "$@" EOFWRAPPER RUN chmod +x /root/.cargo/bin/cargo # Create pkg-config wrapper RUN echo '#!/bin/bash\n\ export PKG_CONFIG_PATH=\n\ export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig\n\ export PKG_CONFIG_SYSROOT_DIR=/\n\ exec pkg-config "$@"' > /usr/local/bin/aarch64-linux-gnu-pkg-config && \ chmod +x /usr/local/bin/aarch64-linux-gnu-pkg-config WORKDIR /build aarch64-cross.txt [binaries] c = 'aarch64-linux-gnu-gcc' cpp = 'aarch64-linux-gnu-g++' ar = 'aarch64-linux-gnu-ar' strip = 'aarch64-linux-gnu-strip' pkg-config = 'aarch64-linux-gnu-pkg-config' rust = ['rustc', '--target', 'aarch64-unknown-linux-gnu'] [properties] sys_root = '/usr/aarch64-linux-gnu' [built-in options] pkg_config_path = '/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig' [host_machine] system = 'linux' cpu_family = 'aarch64' cpu = 'aarch64' endian = 'little' [build_machine] system = 'linux' cpu_family = 'x86_64' cpu = 'x86_64' endian = 'little' docker build -t flare-builder . [docker run --rm -v $(pwd):/build flare-builder bash -c " # Install clickable in the container pip3 install clickable-ut # Build the click package cd /build clickable build --arch arm64 clickable click-build --arch arm64 " docker run --rm -v $(pwd):/build flare-builder bash -c " cd /build apt-get update && apt-get install -y click patchelf rm -rf click-package mkdir -p click-package/usr/bin mkdir -p click-package/lib/aarch64-linux-gnu # Copy binary cp builddir/src/flare click-package/usr/bin/flare-bin chmod +x click-package/usr/bin/flare-bin # Explicitly copy ALL required GTK4/Libadwaita libraries echo 'Copying libraries explicitly...' # Copy each library with all its versions cp -v /usr/lib/aarch64-linux-gnu/libgtksourceview-5.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtksourceview-5 not found' cp -v /usr/lib/aarch64-linux-gnu/libgtk-4.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtk-4 not found' cp -v /usr/lib/aarch64-linux-gnu/libadwaita-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libadwaita-1 not found' cp -v /usr/lib/aarch64-linux-gnu/libgraphene-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgraphene not found' cp -v /usr/lib/aarch64-linux-gnu/libpangocairo-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpango-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libharfbuzz.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libcairo-gobject.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libcairo.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libvulkan.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgio-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgobject-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfribidi.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfontconfig.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfreetype.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpixman-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpng16.so.16* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb-render.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb-shm.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libX11.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libXrender.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libXext.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-client.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-cursor.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-egl.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libepoxy.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true # Set RPATH patchelf --set-rpath '\$ORIGIN/../../lib/aarch64-linux-gnu' click-package/usr/bin/flare-bin # Create wrapper cat > click-package/usr/bin/flare << 'WRAPPER' #!/bin/bash SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" APP_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" export LD_LIBRARY_PATH="$APP_ROOT/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH" export QT_QPA_PLATFORM=ubuntumirclient export MIR_SOCKET="${MIR_SOCKET:-/run/user/$(id -u)/mir_socket}" if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then export $(dbus-launch) fi exec "$SCRIPT_DIR/flare-bin" "$@" WRAPPER chmod +x click-package/usr/bin/flare # Copy icon find data -name '*Flare*.svg' -exec cp {} click-package/flare.svg \; -quit # Create desktop file cat > click-package/flare.desktop << 'DESKTOP' [Desktop Entry] Name=Flare Comment=Signal messaging client Exec=usr/bin/flare Icon=flare.svg Terminal=false Type=Application Categories=Network;InstantMessaging; X-Ubuntu-Touch=true DESKTOP # Create manifest cat > click-package/manifest.json << 'MANIFEST' { "name": "flare.dennisschweiger", "title": "Flare", "version": "0.18.6", "maintainer": "Dennis Schweiger dennis@example.com", "architecture": "arm64", "description": "Signal messaging client", "framework": "ubuntu-sdk-20.04", "hooks": { "flare": { "apparmor": "flare.apparmor", "desktop": "flare.desktop" } } } MANIFEST # Create apparmor cat > click-package/flare.apparmor << 'APPARMOR' { "template": "unconfined", "policy_groups": [ "networking", "audio" ] } APPARMOR](link url) cd click-package ``` echo '' echo '=== Bundled libraries (first 30) ===' ls -lah lib/aarch64-linux-gnu/ | head -30 echo '' echo 'Total library files:' ls -1 lib/aarch64-linux-gnu/ | wc -l echo '' echo 'Verifying libgtksourceview-5:' ls -la lib/aarch64-linux-gnu/libgtksourceview* || echo 'NOT FOUND!' # Build click build . --no-validate mv *.click ../ cd .. echo '' echo '=== Package created ===' ls -lh *.click " sudo click unregister --user=phablet flare.dennisschweiger 2>/dev/null || true sudo click install --user=phablet --allow-unauthenticated /home/phablet/flare.dennisschweiger_0.18.6_arm64
  • For things that just don't fit in the other categories.

    847 Topics
    5k Posts
    Vlad NirkyV
    Hello. Listening to Alfred yesterday during the Q&A (very interesting, as was his conference on UT, which is a must-see), I wondered why it wouldn't be possible to free up space by modifying the UT installation process. First, install the OS without any applications, and then, on first boot, download the applications that are currently included in the OS and install them in the user space. This would save space and solve the strange behaviour encountered when attempting to uninstall these applications.