• Update Ubuntu Touch apps to 20.04 Focal Fossa

    Pinned
    9
    4 Votes
    9 Posts
    3k Views
    danfroD
    @kugiigi true. I wonder why I noted those lines a while ago.
  • 20.04 Focal

    Pinned
    9
    2 Votes
    9 Posts
    1k Views
    D
    @lakotaubp said in 20.04 Focal: @doniks Done :folded_hands:
  • Developer Documentation

    Pinned
    12
    8 Votes
    12 Posts
    5k Views
    mimecarM
    Good afternoon. Sorry for taking so long to fix it. The last few weeks I have been quite busy and I have not been able to dedicate time to projects. There was a problem with the DNS and it's fixed now. The link to the course should work fine.
  • full python clickable app prototype

    8
    1
    0 Votes
    8 Posts
    215 Views
    arubislanderA
    @Keneda said in full python clickable app prototype: However there is an option to pop up a donation proposal Sure, but that is optional, whereas payment would be compulsory.
  • Get app name and hook at runtime

    2
    0 Votes
    2 Posts
    124 Views
    developerbaymanD
    @Plarde Yes, it is possible — though not entirely straightforward — to infer some runtime information like the app's name and the hook that launched it on Ubuntu Touch, particularly if the app is deployed as a click package. Here’s a breakdown of your goals and possible solutions: Goal: Get the App ID or Name from Manifest In Ubuntu Touch click packages, metadata is defined in a manifest.json file, which contains fields like: { "name": "appname.yourname", "version": "1.0.0", "framework": "ubuntu-sdk-20.04", ... } How to get this at runtime? At runtime, this data isn’t directly exposed via traditional environment variables like APP_NAME. However: Environment Variables Available at Runtime: The AppArmor profile and the Ubuntu Touch application launch mechanism set a number of environment variables, including: APP_ID: Often the full app name like appname.yourname APP_PATH: The full installation path to the app APP_BIN: The binary or hook name You can access these using C/C++/SDL via getenv("APP_ID"), etc. Goal: Get the Hook Name (i.e., the launcher binary name) Click packages specify "hooks" (executables, wrappers, or scripts) in the manifest.json under "hooks": "hooks": { "myhook": { "apparmor": "myhook.apparmor", "desktop": "myhook.desktop" } } How to get the hook at runtime? There’s no standard variable like APP_HOOK, but you can infer it from: argv[0] or /proc/self/exe: #include <unistd.h> #include <limits.h> char path[PATH_MAX]; ssize_t len = readlink("/proc/self/exe", path, sizeof(path)-1); if (len != -1) { path[len] = '\0'; printf("Executable Path: %s\n", path); } Then extract the final component to get the executable name — likely the hook. Summary of Techniques What You Want How to Get It App ID (from manifest) getenv("APP_ID") or getenv("APP_NAME") (test both) App Install Path getenv("APP_PATH") Executable Name / Hook Use argv[0] or resolve /proc/self/exe Manifest Contents Parse /opt/click.ubuntu.com/<appid>/manifest.json manually Bonus: Parsing the Manifest Programmatically If you want full manifest access: #include <stdio.h> #include <stdlib.h> #include <json-c/json.h> void print_manifest_field(const char* field) { const char* appid = getenv("APP_ID"); if (!appid) return; char manifest_path[512]; snprintf(manifest_path, sizeof(manifest_path), "/opt/click.ubuntu.com/%s/current/manifest.json", appid); FILE* file = fopen(manifest_path, "r"); if (!file) return; struct json_object *parsed_json; parsed_json = json_object_from_file(manifest_path); if (parsed_json) { struct json_object *value; if (json_object_object_get_ex(parsed_json, field, &value)) { printf("%s: %s\n", field, json_object_get_string(value)); } json_object_put(parsed_json); } fclose(file); } ️ Caveats These variables are set by the Ubuntu Touch application launcher, so they only exist in the app context. Hook names are not exported as a separate variable unless the launcher sets one explicitly. SDL3 libraries should allow injection or configuration of these values from the hosting application (e.g., via init). Final Advice for SDL3 Porting Since SDL3 is a library and shouldn't hardcode values: Consider requiring the host app to pass APP_ID and HOOK_NAME to SDL3 during initialization. You could fallback to the environment and /proc/self/exe as a best-effort fallback. Let me know if you want a ready-made SDL3-compatible utility wrapper function for this.
  • Firefox from Snap crushed after run.

    2
    0 Votes
    2 Posts
    134 Views
    developerbaymanD
    @PiotrBujakowski i know its been a minute but ....can you elaborate?
  • not all distros are equal in the eyes of clickable

    1
    0 Votes
    1 Posts
    68 Views
    No one has replied
  • 20.04 Focal: uNav freezes with GPS enabled

    17
    1 Votes
    17 Posts
    1k Views
    CiberSheepC
    @kristatos said in 20.04 Focal: uNav freezes with GPS enabled: @CiberSheep @TheBird @zubozrout Can you please mention on which device these freezes happen to you? Currently I'm on a POCO (but I experienced freezes since Focal. On uNav With gps, wifi, mobile network all on Tap on the map Start navigation Cancel navigation Now UI is freezed Switch off GPS Switch on GPS GPS icon doesn't appear on the indicators bar If you open again uNav and tap on a location and try to navigate, UI will freeze until GPS fails to turn on and switches off. With this I mean, if you turn on GPS from the indicator, still doesn't appear on indicators bar but GPS switch is on. GPS fails. GPS switch turns off. uNav UI unfreezes.
  • I have a problem with clickable to compile for Noble.

    3
    1 Votes
    3 Posts
    121 Views
    Vlad NirkyV
    @lduboeuf Thanks for the answer Lionel. Well, i have made some tries but without success. Finally, i have remove the pip3 install of 8.3.1 and reinstall with snap and now it's working. There was something wrong with the blob fdc55cec6c2e
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    10 Views
    No one has replied
  • Resurrection of Indicator Upower

    upower power indicator
    61
    3 Votes
    61 Posts
    5k Views
    paulcarrotyP
    @Eric-H said in Resurrection of Indicator Upower: I can see POWER_SUPPLY_CHARGE_TYPE=Fast in udev battery info, so it seems to be a fast charge. No, I got Fast with low-end 7W charger too. My guess it's POWER_SUPPLY_FASTCHARGE_MODE=1. My device has POWER_SUPPLY_HI_POWER. How much power can your charger deliver? POWER_SUPPLY_POWER_NOW=39764516 looks realistic for 45W. I also tried to find the Fast Charging voltage (9..12V) on BMS and failed, so you can try it too. Probably not being monitored by software. And all of this is very device-specific.
  • What's the best way to store a user password?

    14
    0 Votes
    14 Posts
    589 Views
    arubislanderA
    @adorsaz said in What's the best way to store a user password?: Although, IIRC Ubuntu Touch lets user use phone without password/pin code. Maybe this is the reason such service is not provided to app developpers ? Ubuntu desktop also allows passwordless login. So that in itself is not the reason there is no implementation of libsecret on UT. The real reason is probably simply that none was implemented as yet.
  • Aplications from Google Store.

    5
    0 Votes
    5 Posts
    227 Views
    stanwoodS
    @bamboy360 said in Aplications from Google Store.: UT's "guided" way of installing waydroid can let you access some GooglePlay apps via AuroraStore apk (a redistributor) without google services. In my experience however, this leads to some android apps needing those services, crashing and causing other problems with Waydroid. It's fiddly. If WayDroid is used without GAPP module, it's recommended to install the MicroG services (a fake Google services library). This will allow "most" apps that need Google services to run properly in WayDroid. The installation is simple and is described here: https://forums.ubports.com/topic/5907/open-ubuntu-touch-to-all-android-applications/115
  • AntiVirus needed!

    2
    0 Votes
    2 Posts
    153 Views
    MoemM
    Do you think that there are any viruses that will run on Ubuntu Touch?
  • Alarm rising sound

    2
    0 Votes
    2 Posts
    143 Views
    K
    @vily I don't think so. Probably something that should be implemented first in the system handling notification sound playback before the app.
  • What do you think of my dutch app

    1
    1 Votes
    1 Posts
    120 Views
    No one has replied
  • Annotate - app to annotate PDF files

    19
    9 Votes
    19 Posts
    1k Views
    P
    @hlbkv Noted! I won't make any promises about the timeframe, but I'll do that when I get a chance
  • tedit development and design discussion

    tedit editor app development features
    200
    5 Votes
    200 Posts
    47k Views
    danfroD
    @domubpkm I am sorry, I forgot to reply. Sadly so far I haven't found a working solution. When setting the TextArea to read-only, we can't navigate in it. So no option. I didn't found time yet to see if some manually added controls allow moving the text in read-only mode. I also tried (after your question, could you please open an issue/feature request so I don't forget about that?) to display the file in a webview. I used that successfully when testing something for weather app and webviews allow pinching and dragging and that. But for some reason simply instantiating a webview component in the code, not even displaying a file, always crashes tedit (of course no error message that might give a direction where to look at). I am totally lost here why that happens. Many apps use webviews for various purposes.
  • clickable permissions issue

    3
    0 Votes
    3 Posts
    183 Views
    lduboeufL
    @lxsed said in clickable permissions issue: Hi. I'm trying to port cocos2d-x (my v2 fork) to Ubuntu Touch. I compiled all the libraries, but I understood that docker containers don't have permission to access "other" files. I decided to check it and it seems to be true (I thought cmake doesn't see directories one level above the project) Here is my directory structure: $HOME qttest (project dir) lib libz.a When the library directory is OUTSIDE the project directory, the container can't access it: make[2]: *** No rule to make target '/home/ruchyekov/lib/libz.a', needed by 'qttest'. Stop. And even clickable run "ls $HOME" gives only qttest and not a single other directory/file So, how can I set permissions for clickable so that it can read files outside the project directory? If you want to work with a third party lib you have to ship it within the click and link to it in your app. If it is a lib that exist in the target os and not in the default clickable setup you have to specify dependencies_target: https://clickable-ut.dev/en/latest/project-config.html#dependencies-target e.g: https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/blob/main/clickable.yaml
  • OSM Scout Server: offline maps

    32
    13 Votes
    32 Posts
    7k Views
    J
    @Taiga-Woods I experienced that today, too. At the end I deleted and reinstalled OSM Scout Server (rebooted in between). Everything worked again afterwards and the maps I had downloaded were still there. But I'm also interested if there's another solution...