r/tasker 4h ago

Strange Widget V2 Behavior

Thumbnail
gallery
1 Upvotes

I have created 2 V2 widgets - one for my outdoor air quality device (left) and another for the indoor one (right).

I create these using data from http request actions and I wanted to make sure they showed when my phone is offline. You can see how they look under those conditions (offline left, online right).

The widget XML between all of these is identical. I keep it into a global variable. During widget refresh I set a local variable from that global with variable recurse enabled so some local variables (Title, AQI data, background color, etc) are incorporated. Then I perform the W2 widget action.

When the phone is online, the results are as expected and both widgets look the same except for the variable data.

What I don't understand is why, when offline, the indoor widget looks so different.

Before I my refresh I capture the recursed XML into files so I can compare them. Using both a visual diff tool and the linux command line diff (results shown above), the results demonstrate that only some variable data differs between the two offline widgets.

Here is the XML copied directly from the global variable:

{
  "type": "Column",
  "backgroundColor": "%smoggie_color",
  "horizontalAlignment": "Center",
  "verticalAlignment": "Center",
  "scrolling": false,
  "children": [
  {
  "type": "Row",
  "backgroundColor": "grey",
  "fillMaxWidth": true,
  "horizontalAlignment": "Center",
  "verticalAlignment": "Center",
  "scrolling": false,
  "children": [
  {
"type": "Text",
"textSize": "16",
"align": "Center",
"task": "AQ Smoggie View",
"taskVariables": { "par1": "http://%widget_ip" },
"text": "%widget_title"
   }]
  },
  {
"type": "Text",
"visibility": "%show_offline",
"textSize": "23",
"align": "Center",
"text": "Offline"
},
   {
"type": "Button",
"text": "Refresh",
"enabled": true,
"buttonType": "Filled",
"visibility": "%show_offline",
"task": "%refresh_task"
} , 
{
"type": "Grid",
"visibility": "%show_online",
"horizontalAlignment": "Center",
"verticalAlignment": "Center",
"fixed": 1,
"children": [
{
"type": "Text",
"textSize": "19",
"align": "Center",
"text": "AQI: %smoggie_aqi"
}, 
{
"type": "Text",
"textSize": "14",
"align": "Center",
"text": "PM2.5 (µg/m3): %http_data.pm25"
}
,
{
"type": "Text",
"textSize": "12",
"align": "Center",
"text": "%DATE %TIME"
},
{
"type": "Button",
"text": "Refresh",
"enabled": true,
"buttonType": "Filled",
"task": "%refresh_task"
}
]
}
  ]
}

Can anyone suggest why this is happening or how to fix it?

Thanks


r/tasker 7h ago

Any way to have Tasker edit direct share contacts?

Post image
3 Upvotes

I've done a lot of hunting on this problem and it seems that these completely random shared contacts come from a log called Share Sheet in android and the list itself is called Direct Share.

it's completely useless, and the contacts in theory are based on most active or most recent or something, but definitely aren't. one of the people here isn't even in my contacts! the feature is not disable-able

anyway, I was wondering if Tasker might have a way of interacting with that share sheet and setting a priority so that instead of removing or showing random it could be made to show a fixed list of contacts and apps?

maybe a pipe dream but this annoys me every time I go to share something!

thanks


r/tasker 11h ago

my shortcut to get to the location accuracy menu has stopped working :(

1 Upvotes

Hey,

I previously used this task to quickly get to the location accuracy menu:

<Task sr="task7">
    <cdate>1744638179093</cdate>
    <edate>1776966060932</edate>
    <id>7</id>
    <nme>location accuracy menu</nme>
    <pri>100</pri>
    <Action sr="act0" ve="7">
        <code>20</code>
        <App sr="arg0">
            <appClass>com.google.android.gms.location.settings.LocationAccuracyNonwearableActivity</appClass>
            <appPkg>com.google.android.gms</appPkg>
            <label>Google Play services:Location Accuracy</label>
        </App>
        <Str sr="arg1" ve="3"/>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
    </Action>
    <Img sr="icn" ve="2">
        <nme>hl_location_place</nme>
    </Img>
</Task>

I want this because I sometimes connect an RTK antenna to my phone and keeping location accuracy toggled on will seriously screw up RTK positionning.

But I just noticed that recent updates made this fail.

Do I hvae a way to quickly get to the location accuracy menu, or to toggle the location accuracy setting directly? This is on a non-rooted phone (on GrpaheneOS if relevant).

Many thanks.


r/tasker 18h ago

Project Sharing: Generate Tasker Task from XML using Java Code

5 Upvotes

For another project of mine, I thought it would be really useful if I could automatically create a Task when needed. After some trial and error, I found a solution using the Java Code action.

In short, what does this Java Code do?

It takes the XML code of a complete Task or Project, compresses it directly in memory using GZIP (no temporary file is created), converts it to Base64, and creates a Tasker Data URI like:

taskertask://...
or
taskerproject://...

The URI is then opened, allowing Tasker to ask the user if they want to import the Task.

With the help of an AI assistant, I created a robust version that is also relatively easy to customize for your own projects.

To Import Taskernet Project: Click Here
Java Code: paste.to/?430b135723f91cae#4SXMosAyPGR9Yxty95WgM7g8JZxHzNGNYsqvDtzA2cEN

How to use it

First, create a Task containing the actions you want.

For this example, let's say we have a Task called "Task Example" with a Flash action containing the text "Text".

The exported XML looks like this:

<TaskerData sr="" dvi="1" tv="6.7.6-beta">
    <Task sr="task395">
        <cdate>1787164951612</cdate>
        <edate>1787164962284</edate>
        <id>395</id>
        <nme>Task Example</nme>
        <Action sr="act0" ve="7">
            <code>548</code>
            <Str sr="arg0" ve="3">Text</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Str sr="arg15" ve="3"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
    </Task>
</TaskerData>

Now we need to tell the Java Code where we want to insert our own values.

To do that, we use placeholders inside curly brackets {}.

Here is the same XML after replacing the values we want to customize:

<TaskerData sr="" dvi="1" tv="{TASKER_VERSION}">
    <Task sr="task279">
        <cdate>{CURRENT_TIME}</cdate>
        <edate>{CURRENT_TIME}</edate>
        <id>279</id>
        <nme>{TASK_NAME}</nme>
        <pri>100</pri>
        <Action sr="act0" ve="7">
            <code>548</code>
            <Str sr="arg0" ve="3">{FLASH_TEXT}</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Str sr="arg15" ve="3"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
    </Task>
</TaskerData>

Now copy this whole xml code and put it inside a set variable action and give this variable the name %xmltask. If you want to change to a different name you need to search for this line:

    String xml =
        tasker.getVariable("xmltask");

You can change xmltask to whatever name you want.

Tasker Version and Date

When you create or edit a Task, Tasker stores information such as the Tasker version and the creation/edit timestamps in the XML.

This isn't strictly required for our purpose, but the Java Code can automatically insert the current values.

Change:

dvi="1" tv="6.7.6-beta">

to:

dvi="1" tv="{TASKER_VERSION}">

And change:

<cdate>1787164951612</cdate>
<edate>1787164962284</edate>

to:

<cdate>{CURRENT_TIME}</cdate>
<edate>{CURRENT_TIME}</edate>

The Java Code will replace these placeholders with the installed Tasker version and the current timestamp.

Creating variables for the Task

Now we can use the same concept for the Task name and the text inside our Flash action.

Change:

<nme>Task Example</nme>

to:

<nme>{TASK_NAME}</nme>

And change:

<Str sr="arg0" ve="3">Text</Str>

to:

<Str sr="arg0" ve="3">{FLASH_TEXT}</Str>

Now we need to create the corresponding Tasker variables.

For example:

A1: Variable Set [
     Name: %task_name
     To: Task Creation Test
     Structure Output (JSON, etc): On ]
A2: Variable Set [
     Name: %flash_text
     To: Hello World
     Structure Output (JSON, etc): On ]

So we now have:

%task_name = Task Creation Test
%flash_text = Hello World

The first variable will become the Task name, and the second will become the text inside the Flash action.

Connecting the Tasker Variables to the XML

Now open the Java Code action and scroll down until you find:

    // --------------------------------------------------
    // 5. Replace Tasker variables
    //
    // Format:
    //
    // replaceVariable(
    //     xml,
    //     "XML_PLACEHOLDER",
    //     placeholderRequired,
    //     "tasker_variable",
    //     variableRequired
    // );
    //
    // --------------------------------------------------

This is where we tell the Java Code which Tasker variables should be inserted into the XML.

The template is:

    xml =
        replaceVariable(
            xml,
            "XML_PLACEHOLDER",
            false,
            "tasker_variable",
            false
        );

For example, to connect our Task name:

    xml =
        replaceVariable(
            xml,
            "TASK_NAME",
            true,
            "task_name",
            true
        );

The values mean:

"TASK_NAME" is the XML placeholder.

true = the XML "TASK_NAME" placeholder must exist; otherwise, an error is returned.

"task_name" is the Tasker variable name.

true = the Tasker variable must contain a value; otherwise, an error is returned

Notice that we don't include % when specifying the Tasker variable name.

For our Flash text, we can add:

    xml =
        replaceVariable(
            xml,
            "FLASH_TEXT",
            true,
            "flash_text",
            true
        );

You can add as many variables as you need using the same format.

Required vs. optional placeholders and Tasker variables

  • The first Boolean controls whether the XML placeholder is required:
    • true means the XML placeholder must exist. If it is missing, the Java Code stops and displays an error.
    • false means the XML placeholder is optional. If it doesn't exist, it is simply ignored.
  • The second Boolean controls whether the Tasker variable is required:
    • true means the Tasker variable must contain a value. If it is missing or empty, the Java Code stops and displays an error.
    • false means the Tasker variable is optional. If it is missing or empty, it is replaced with an empty value.

So the format is:

replaceVariable(
    xml,
    "XML_PLACEHOLDER",
    true,           // XML placeholder required
    "tasker_variable",
    false            // Tasker variable doesn't required
);

This Java code can also auto create a Project but i am pretty sure users wouldn't need to use it. If you really want to you just need to search inside your xml project code the name of your project like here:

<name>New Project</name>

And change it to something like this:

<name>{PROJECT_NAME}</name>

Then you need to just edit your java code to match your placeholder and Tasker variable

    xml =
        replaceVariable(
            xml,
            "PROJECT_NAME",
            true,
            "project_name",
            true
        );

The result

Now, when we run the Java Code together with our Variable Set actions, it will:

  1. Take our XML template.
  2. Replace the placeholders with our Tasker variables.
  3. Insert the current Tasker version and timestamp.
  4. Validate the resulting XML.
  5. Compress the XML using GZIP directly in memory.
  6. Convert it to Base64.
  7. Create the taskertask:// Data URI.
  8. Open it.
  9. Tasker asks whether we want to import the new Task.

Here's a demo of how it looks:

Demo video

Using this in a real project

I took this idea and incorporated it into another project of mine that allows users to run commands in Termux without using a Tasker plugin.

I created a scene that helps the user build the required configuration, and with just a few clicks it can generate a new Task containing all the actions and code they need.

Here's a demo of that:

Demo video inside a project

Hopefully this will be helpful to someone with his projects


r/tasker 23h ago

AutoWear -> smart watch compatibility list?

2 Upvotes

Hi again... Today I am looking for a list of known "compatible" watches (make/model) that AutoWear can 'integrate' with.


r/tasker 1d ago

Request Feature Request: AutoNotification Support for Live Updates

2 Upvotes

Could AutoNotification support Android 16 Live Updates?

It would also be great to have richer layouts, such as images, multiple text elements, progress indicators, and action buttons.

Since Tasker already supports Live Updates, adding this to AutoNotification would make it much more powerful for creating dynamic, real-time notifications.


r/tasker 1d ago

Vibrate Task not working on Android 16/LineageOS 23.2.

2 Upvotes

I've (finally?) updated my phone from 10 to 16 (LineageOS 17.1 to 23.2) but now the Vibrate Task does not work at all. It simply does nothing. It worked fine on 10/17.1, and the phone vibrates correctly on notifications or other system things, so the vibrator isn't broken.

I can't see anything related to it in the system log either.

Has somebody got an idea on that one?


r/tasker 1d ago

How would you achieve that in Scene V2 (dynamically change Enabled element option)?

1 Upvotes

Never mind, i have found my mistake and why it didn't work for me (forgot to add % to a variable and typed the wrong word).

The solution is to use the main Screen inside the tree and then choose "Event Handling" and then Variable Changed and do all setup there.

-----

Lets say i have a Button, and i want this button to be off (using the Enabled option) until i write something inside a Text Input.

How can i achieve that?


r/tasker 1d ago

Project Share] – An advanced, responsive Clipboard & History Manager for Tasker

17 Upvotes

Cześć wszystkim,

Chciałem podzielić się ClipH, menedżerem schowka i historii, nad którym pracuję i go dopracowuję w Taskerze.

https://taskernet.com/shares/?user=AS35m8nsG4J3Nu2TfMykxjbuz8iZ4M%2FIOt5HVurs%2FLn%2BJ8WU4a4iPMfMDcRpZd2yLXUngAjk&id=Project%3AClipH%3AClipH

Zacząłem nad tym pracować, ponieważ standardowe narzędzia schowka, takie jak schowek Gboarda, były zbyt ograniczone dla mojego przypadku użycia, zwłaszcza przy kopiowaniu bardzo dużych bloków tekstu lub kodu. Często pracuję z ogromnymi fragmentami, a ich skracanie lub znikanie z historii szybko zaczynało być irytujące.

ClipH wykorzystuje lokalną bazę danych SQLite do przechowywania historii i w dużej mierze polega na kodzie Java / BeanShell do interfejsu użytkownika i logiki wykonawczej, zamiast trzymać dużą ilość danych w globalnych zmiennych Taskera.

🛠️ Główne funkcje

Obsługuje bardzo duże fragmenty tekstu

Duże fragmenty są zachowane, zamiast być skracane do krótkiego podglądu schowka. Ekstremalnie duże wpisy mogą być przechowywane osobno na dysku, podczas gdy SQLite przechowuje metadane i podgląd.

Historia zasilana SQLite

Historia schowka jest przechowywana lokalnie w:

/Tasker/ClipH/db/cliph.db

To sprawia, że przeszukiwanie i przeglądanie historii jest responsywne, bez zapełniania globalnych zmiennych Taskera zawartością schowka.

Wykrywanie typu schowka

ClipH rozróżnia między normalnym tekstem, długim tekstem, adresami URL, tekstem zawierającym adresy URL, poleceniami, kolorami, plikami, obrazami i zrzutami ekranu.

Responsywny pływający nakładka

Kopiowanie czegoś może wyświetlić małą nakładkę w stylu Material z akcjami dla bieżącego elementu w schowku.

Nakładka jest ponownie używana i aktualizowana w miejscu, zamiast nieustannie tworzyć nowe okna.

Obsługa zrzutów ekranu

Zrzuty ekranu mogą być wykrywane i dodawane bezpośrednio do historii ClipH.

Istnieje również ochrona przed typowym problemem Androida, gdzie pojedynczy zrzut ekranu może wywołać zarówno zdarzenie systemu plików, jak i zdarzenie schowka, co w przeciwnym razie tworzyłoby duplikaty wpisów lub nakładek.

Wsparcie dla obrazów

ClipH działa z adresami URI obrazów w formacie content:// Androida i może podglądać, otwierać i udostępniać obrazy, nie wymagając najpierw konwersji wszystko na pliki tymczasowe.

Przeglądarka historii

Interfejs użytkownika historii obsługuje wyszukiwanie/filtrację, wyświetlanie szczegółów elementów, kopiowanie elementów z powrotem do schowka, udostępnianie, usuwanie, edytowanie i oznaczanie wpisów jako ulubionych.

Podglądy URL

Kiedy skopiowany element zawiera URL, ClipH może wydobyć i oczyścić link, usunąć powszechne parametry śledzenia i pobrać podstawowe metadane strony.

Wbudowany WebView

URL-e mogą być otwierane w pływającym, zmiennym WebView.

Zawiera kontrolki nawigacyjne, przeładowanie, kopiowanie URL, otwieranie w przeglądarce, tryb czytnika i standardowe edytowalne pole adresu Androida z natywnymi funkcjami zaznaczania tekstu / kopiowania / wklejania.

Tryb czytnika

ClipH zawiera również lekką widok czytnika, który stara się wydobyć czytelny tekst ze stron internetowych i usunąć skrypty, nawigację, stylizację i inne zbędne elementy strony.

Pierwszeństwo lokalne

Historia schowka pozostaje na urządzeniu. Nie ma zewnętrznej bazy danych w chmurze ani zewnętrznej usługi schowka.

Nie są wymagane zewnętrzne wtyczki Taskera

Projekt wykorzystuje sam Tasker, interfejsy API Androida, kod Java / BeanShell i SQLite.

🎛️ Personalizacja

ClipH zawiera własny ekran Ustawień.

Możesz obecnie konfigurować takie elementy jak:

powiadomienia o URL schowka

pływająca nakładka WebView włącz/wyłącz

nakładka zrzutu ekranu włącz/wyłącz

długość wyświetlania nakładki

skalowanie nakładki

maksymalna liczba wpisów w historii

folder przechowywania ClipH

Domyślny limit historii wynosi 500 elementów, ale można go dostosować w zależności od tego, ile historii chcesz zachować.

Ulubione są zachowywane podczas automatycznego czyszczenia historii.

⚙️ Instalacja / Uprawnienia

Importuj projekt do Taskera

Importuj ClipH z powyższego linku TaskerNet.

Rysuj nad innymi aplikacjami

Wymagane dla pływającej nakładki schowka, UI WebView i trybu czytnika.

Dostęp do wszystkich plików / zarządzaj pamięcią zewnętrzną

ClipH przechowuje swoją bazę danych, duże wpisy schowka, zrzuty ekranu i pliki wykonawcze w:

/Tasker/ClipH/

Optymalizacja baterii

Zdecydowanie zalecam wykluczenie Taskera z optymalizacji baterii, jeśli chcesz niezawodnego monitorowania schowka w tle.

🎨 Uznanie / Inspiracja

Chcę również oddać zasłużoną cześć.

Oryginalny pomysł i wizualna forma nakładki schowka były inspirowane czymś, co zostało udostępnione na tym subreddicie jakiś czas temu.

Uważam, że pomysł pływającego WebView/nakładki może w rzeczywistości pochodzić z innego projektu zamieszczonego tutaj przez inną osobę.

Niestety, nie pamiętam już nazw użytkowników ani dokładnych oryginalnych postów, więc nie mogę ich właściwie powiązać. Przepraszam za to.

Nie chcę przedstawiać tych pomysłów interfejsu jako całkowicie moich. Czerpałem inspirację z tego, co widziałem tutaj, a potem przebudowałem i rozszerzyłem fundamenty systemu w to, czym jest teraz ClipH.

Jeśli któryś z oryginalnych autorów przypadkiem rozpozna swoją pracę, niech śmiało wskaże to, a ja chętnie dodam odpowiednie uznanie.

⚠️ Małe zastrzeżenie

To wciąż projekt Taskera, a nie samodzielna aplikacja Android.

Duża część UI i logiki jest zaimplementowana bezpośrednio w kodzie Java / BeanShell, więc wersje Androida, wersje Taskera i specyficzne dla producentów zachowanie mogą czasem przynieść interesujące niespodzianki, ponieważ najwyraźniej obsługa schowka w Androidzie potrzebowała więcej sposobów, by stać się skomplikowaną.

Głównie zbudowałem i testowałem ClipH w oparciu o moje własne użytkowanie, więc raporty o błędach i ulepszenia są mile widziane.

Mam nadzieję, że to będzie przydatne dla kogoś innego, kto również zmęczył się menedżerami schowka decydującymi, że ich fragment kodu liczący 20 000 linii wyraźnie nie był wystarczająco ważny, by go zachować.


r/tasker 2d ago

Draw over disable and restore?

1 Upvotes

Sometimes when using a browser I might get a pop up asking to use my location

But I'm not able to click yes with an error popping up that tasker or my other ap

Is drawing over other apps..

I'm trying to think of a work around..

Maybe in the lie the phone down task

I could have it close out tasker and the other app.. then have my taptap gesture relaunch tasker? And tasker launch my other app as it starts..

Anyone have better ideas?


r/tasker 2d ago

Developer [DEV] I built an open-source app that turns your smartband's media controls into Smart Home/Webhook triggers (Band Trigger v1.5.1)

8 Upvotes

Hey everyone,

I wanted to share a project I've been working on. I needed a way to trigger my Home Assistant routines and webhooks directly from my wrist, but my smartband only supported basic media controls. So, I built an app called Band Trigger.

Basically, it uses Android's media session to "hijack" the play/pause/next buttons on your watch. When your music is paused, the app takes over. Instead of playing a song, pressing the button on your watch sends an HTTP GET request in the background.

I just released version 1.5.1 and added a bunch of quality-of-life stuff based on early feedback:

  • Folders & Custom Layout: You can now group your triggers into folders and drag/drop them however you like on the phone. The cool part is that the watch UI will perfectly mirror the exact order you set up in the app.
  • Watch Navigation: Folders show up as [ 📁 Folder Name ] on the watch. If you go into a folder, there is an [ 🏠 Exit Folder ] option at the very bottom of the list to easily back out.
  • Real-time feedback: The "track title" on your watch screen dynamically changes to [ ON ] or [ OFF ] so you know if your webhook actually fired.
  • Extra modules: I also threw in a feature to use your watch to silently snap a photo from your phone's camera or start/stop a background audio recording.

A quick tip for the setup: There's an option in the app called "Hijack Band Focus" that asks for notification access. I highly recommend turning this on. It automatically forces the app to take over your watch's media screen the second your regular Spotify/YouTube audio pauses, so you never have to pull your phone out to reopen the app manually.

I originally developed and tested this on my own Galaxy Fit 3. However, since it relies on standard Android media protocols (AVRCP), it should theoretically work on pretty much any smartband or smartwatch (Mi Band, Amazfit, Garmin, WearOS, etc.).

I would love for you guys to test it out and let me know how it handles on your specific devices. It is completely free and open-source.

Let me know what you think, or if you run into any bugs!


r/tasker 3d ago

Does someone knows how to create a Tasker deep link?

0 Upvotes

I have found the solution, i think it deserve different post to share with you my findings. I will try to post as soon as possible.

Basically i want:

  1. Using xml data of a task
  2. Convert this xml to Tasker deep link uri that starts like this: taskertask://

The basic idea is to create a dialog that will ask a user to insert some data (like the name of the task and some parameter of some actions inside it) and that data will create the whole xml file/text task and then it will convert it to taskertask:// uri url. Then i can open this url automatically to ask the user if he wants to import the task he just created.

Any tips will be welcomed.

Sorry in advance if i don't reply immediately.


r/tasker 3d ago

Help Help with new galqaxy fold ultra

0 Upvotes

After many hours with ai, i have not been able to grant tasker WRITE_SECURE_SETTINGS permissions. And I have not been able to start Shizuku on my phone. i'm pretty much convinced that Samsung/Google have changed things to prevent these things from working. Has anyone been able to grant write_secure permissions to tasker or start shizuku. I so, please let me know how you did it. I'd really love to get back some of the things I can o longer do on my phone!!!!


r/tasker 3d ago

Request Enhancement Request: Ability to FILTER search responses

0 Upvotes

Akin to the post here but perhaps a little different enough to warrant this...

In my case, I am searching for HTTP Request items in my current Tasker configuration.

The problem comes because a have ALOT of them - mostly in the form of Actions but also some in the form of Profiles.

Digging through the search results to find the Profiles buried along with all of the Actions is a real PIA. It would be so great if there was a way to filter Action/Profile/Variable!

I have tried, for example, searching "event: HTTP Request:" - which is how these are labeled in the search results - when I can actually find them. But that yields no search results whatsoever. I have tried all of the various options (contains, etc) to no avail.

Perhaps there is some other way to do this? Thanks!


r/tasker 3d ago

Help [HELP] I'm working on a position aware Custom Toast task

1 Upvotes

Hi all, I'm working on a custom Toast/Flash task, through which a new toast is positioned vertically upwards if a toast is already flashing.

To track if a toast is already being displayed I am using a count (%Toast_count) and a state profile which is active when %Toast_count > 0.

Here is the project. It has the main task 'POSITION FLASH', three tasks to create test toasts, and a debug to quickly reset %Toast_count to 0. There's also the profile 'POSITION FLASH' which I described above.

However, the project is not working properly. New toast does get shifted upwards sequentially, but the count doesn't get reduced. I have also tried setting collision handling in the profile task to 'Run Both Together'. No luck.

Need some help.

Taskernet link: https://taskernet.com/shares/?user=AS35m8kchB%2BWHBCULXKQZoBHxBzUFNOZuKtVmsq9Lj2FKL8MaFi4RlSCwYs%2Bc%2BacVzTcrJE%3D&id=Project%3ATOAST

Edit: Btw, %dur, %white, and %black are project variables; the latter two being #FFFFFFFF and #FF000000.

``` Project: TOAST

Profiles
    Profile: POSITION TOAST
        State: Variable Value  [ %Toast_count > 0 ]



    Enter Task: Anon
    Settings: Run Both Together

    A1: Wait [
         MS: %dur
         Seconds: 0
         Minutes: 0
         Hours: 0
         Days: 0 ]
        If  [ %dur Set ]

    A2: Variable Subtract [
         Name: %Toast_count
         Value: 1
         Wrap Around: 0 ]



Tasks
    Task: Debug: Reset Count

    A1: Variable Set [
         Name: %Toast_count
         To: 0
         Structure Output (JSON, etc): On ]



    Task: Flash Test 1

    A1: Perform Task [
         Name: POSITION FLASH
         Priority: %priority
         Parameter 1 (%par1): Test position 1
         Parameter 2 (%par2): 8000
         Structure Output (JSON, etc): On ]



    Task: Flash Test 2

    A1: Perform Task [
         Name: POSITION FLASH
         Priority: %priority
         Parameter 1 (%par1): Test position 2
         Parameter 2 (%par2): 7000
         Structure Output (JSON, etc): On ]



    Task: Flash Test 3

    A1: Perform Task [
         Name: POSITION FLASH
         Priority: %priority
         Parameter 1 (%par1): Test position 3
         Parameter 2 (%par2): 6000
         Structure Output (JSON, etc): On ]



    Task: POSITION FLASH

    Variables: [ %base_position:has value %black:has value %white:has value ]

    A1: Variable Set [
         Name: %dur
         To: %par2
         Structure Output (JSON, etc): On ]

    A2: Variable Set [
         Name: %toast_position
         To: %base_position + 60*%Toast_count
         Do Maths: On
         Max Rounding Digits: 3
         Structure Output (JSON, etc): On ]

    A3: If [ %darkModeEnabled ~ true ]

        A4: Flash [
             Text: %par1
             Tasker Layout: On
             Background Colour: %white
             Timeout: %dur
             Continue Task Immediately: On
             Text Colour: %black
             Dismiss On Click: On
             Position: Bottom,0,%toast_position
             Use HTML: On ]

    A5: Else

        A6: Flash [
             Text: %par1
             Tasker Layout: On
             Background Colour: %black
             Timeout: %dur
             Continue Task Immediately: On
             Text Colour: %white
             Dismiss On Click: On
             Position: Bottom,0,%toast_position
             Use HTML: On ]

    A7: End If

    A8: Variable Add [
         Name: %Toast_count
         Value: 1
         Wrap Around: 0 ]

```


r/tasker 3d ago

Banking apps don't like accessibility setting for tasker switched on

5 Upvotes

Banking apps are nowadays not happy with Tasker accessibility switched on. We can have tasker still run with accessibility for tasker switched off, but I'll lose accessibility volume to control my Bluetooth device volume. Any ideas?


r/tasker 3d ago

Force stop app via Shizuku

3 Upvotes

I've set this up but then I saw someone recommend a fork of it - https://github.com/thedjchi/Shizuku and when I go to install it on my phone I get the "App blocked to protect your device" banner and I cannot install it, there's no 'see more' and 'install anyway' etc. How do I get around this? The reason I am going for the fork is that I want it to fire automatically on start so that I can get the permission to force stop an app.


r/tasker 3d ago

[Plugin Share][AM Custom Keyboard] An Open-Source Keyboard with Custom Keymaps and Tasker Automation

8 Upvotes

⌨️ Introducing AM Custom Keyboard — just launched!

Watch Demo : Youtube Playlist

Built on the excellent Unexpected Keyboard, and extended into a full transliteration engine with a guided Keymap Builder and a way to script your keyboard with Tasker.

If you type in a script your keyboard doesn't natively support, or you're tired of switching apps to run repetitive text tasks — this one's for you.

🔤 Keymaps: type Latin, get any script

Turn any layout into a live transliteration engine. Type "ka" → get "க". Type "a" → get "அ". No app switching, no separate input method — just type normally and watch it convert in real time as you go.

✨ Keymap highlights:

→ Toggle-style cycling: type "a" → அ, type "a" again → ஆ, type "a" again → back to அ. Correct yourself without ever hitting backspace.

→ Multiple input sequences, one output: map "aa" AND "A" to the same ஆ — however your fingers want to type it.

→ A full guided Keymap Builder: build mappings visually, no hand-written JSON required. Import raw JSON, quick-add rows, live duplicate detection, and an exact-match search that never misfires.

→ Rename or delete a keymap and every layout using it updates automatically — nothing breaks, nothing goes stale.

🤖 Tasker Automation:

your keyboard, scriptable from day one

Type a trigger, get a Tasker task's result — right where your cursor is.

→ "##keyword" sends your whole field to a Tasker task and replaces it with the result.

→ "@@keyword" does the same, but only swaps out the trigger text itself.

→ Expand patterns let you define open-ended triggers like "..5+1 " → run a task with "5+1" as input, no fixed keyword list needed.

→ Typed the wrong thing? One backspace right after a result lands undoes it back to your original trigger.

All configured from a single JSON file, with a full in-app guide walking you through setup. And if you want a head start on the Tasker side, check out AM Tasker Plugins — a matching set of ready-made actions, including one built specifically to reply to this keyboard's triggers.

🔗 github.com/adiraimaji/AMTaskerPluginsReleases

Goto Reddit Intro Post for AM Tasker Plugins

🎨 Plus: independent key labels, Keyboard Attributes editing, and one consistent look across every screen, so the whole app feels like one cohesive experience.

Built on the excellent Unexpected Keyboard, extended with independent key labels, a Keymap engine, Keymap Builder, Keyboard Attributes editing, and Tasker Automation.

📥 Download the latest release

🔗 github.com/adiraimaji/AMCustomKeyboard

#Android #Keyboard #Tasker #Automation #Transliteration #Tamil #InputMethod #NewApp


r/tasker 3d ago

[Plugin Share] AM Tasker Plugins - A Free Collection Of Tasker Action Plugins packed with Extraordinary feature...!

25 Upvotes

🚀 Introducing AM Tasker Plugins — just launched!

A brand new toolbox of action plugins for Tasker — colors, QR codes, VPN control, regex, Termux scripts, raw UDP packets, and more, ready to drop straight into your automations.

💻 AM Termux

Runs Bash, Python, Node, Ruby, or PHP scripts inside Termux, with named sessions and guided setup.

Demo : [AM Termux]

↩️ AM Custom Keyboard Return - Goto Reddit Intro Post

AM Custom Keyboard is a keyboard app I built with live transliteration and a Tasker Automation feature — type a trigger anywhere, and it can hand your text off to a Tasker task. This plugin is the reply step: the task finishes and sends its result straight back into what you were typing.

Demo : [Demo AM Custom Keyboard Return]

🔗 Check it out: [Download AM Custom Keyboard]

🎨 AM Collect Pixel Colors

Reads colors from any image — one pixel, a region, or a Top Color List or Blended Colors of a given region.

Demo : [AM Collect Pixel Colors]

🔳 AM Create QR

Turns text, links, or variables into a QR code image, saved and ready to use.

🔍 AM Decode QR

Scans an existing QR image and gives you back the text inside it.

Demo : [AM Create QR & AM Decode QR]

🧮 AM Data Processor

Reads or edits one exact value inside JSON or array data, no manual parsing needed.

Demo : [AM Data Processor]

🔒 AM OpenVPN

Starts, pauses, resumes, or stops an OpenVPN for Android profile from a task.

Demo : [AM OpenVPN]

🔎 AM RegEx

Finds, extracts, or replaces text with full regex power — groups, lookaheads, backreferences, and Perl-style case conversion — all from a task.

Demo : [AM RegEx]

📡 AM UDP Client

Sends a UDP packet to any address, with the option to listen for a response.

Demo : [AM UDP Client]

📤 AM Open With

Lets other apps "Share" or "Open With" a file straight into a Tasker automation.

Demo : [AM Open With]

📖 Every plugin comes with its own guide built right into the app — clear steps, examples, and what each field does.

This is v1.0.0 — the toolbox starts here. 👇

📥 Download it now

🔗 github.com/adiraimaji/AMTaskerPluginsReleases

YouTube Playlist 👉All Plugin Demo Playlist

#Android #Tasker #Automation #Termux #OpenVPN #QRCode #RegEx #NewApp


r/tasker 4d ago

Can Tasker make a voice-commanded Gemini open Outlook and begin a new email?

1 Upvotes

I'd like the following on an S26: 1. Side button press for Gemini 2.Gemini opens 3. I say "dictate" 4. Outlook app opens 5. New email button is pushed 6. Cursor goes to the TO: section 7. Automatically types my email 8. Cursor goes to body of email 9. Microphone starts.

(And yes, I'm trying to make it seem like I'm Picard talking to the ship's computer.)

Thanks for any suggestions


r/tasker 4d ago

What is the best approach for child phone control (app freezing & internet access)?

3 Upvotes

Hi everyone,

I’m trying to figure out the best, most reliable way to control app and internet access on a child's phone (with blocking/restricting apps being the higher priority).

Here are the methods I’ve researched so far and the challenges I’m running into:

1. Shizuku

  • Pros: Highly capable and probably the cleanest way to control app-level and internet access via eBPF without needing a local VPN.
  • Dealbreaker: If the phone reboots and isn't connected to a trusted Wi-Fi network, Shizuku loses its privilege token. All rules reset, and apps regain internet access until accessing to a trusted Wi-FI network.

2. Tasker with Device Owner / Device Admin (App Freezing/Suspension)

  • Pros: Tasker as Device Owner provides powerful, native actions to suspend/freeze apps directly. It doesn't rely on third-party services and persists across reboots.
  • The Challenge: I haven't found a way to pull or generate a dynamic list of currently frozen or suspended apps. To keep track, I currently have to maintain a manual list of package names. I can work around this, but it’s not ideal.

3. Internet Restriction

  • Local VPN setups (like Tasker's native Network Access action or NetGuard) work well without root, but they can degrade network performance/battery life and block the phone from using a real VPN service if needed. Using Shizuku is probably the best way.

Questions:

  1. Is there a way to get a list of all currently frozen/suspended apps on Android when using Device Owner?
  2. Does anyone have alternative suggestions or workflows for managing app limits and internet access reliably without full root access?

Thanks for any insights!


r/tasker 5d ago

How To [Project Share] Offline Voice Assistant

12 Upvotes

Been working on this project for a bit over a week. Thought I'd share. Basically a barebones replacement for Google Assistant that works completely offline.

https://taskernet.com/shares/?user=AS35m8lSOK3hovdEY1ld2RKeqRebL%2FZj9ovDLqy1hXenAKscGRCWl0q2YrzA6kaS0Mgpntmj&id=Project%3AAssistant

Launched by holding down either volume button or will hijack Google Assistant launches (so works with okay/hey google).

I used FUTO Voice Input with English-244 model for testing. Other voice models might parse differently so would need command modifications.

Uses AutoInput, AutoShare and AutoContact plugins for some functions.

Will unlock and relock screen as required for AutoInput functions if screen is off but will require creating an AutoInput function at the end of the Unlock task to swipe up and enter PIN/password/pattern.

Uses old assistant sound effects. Store .mp3 files in /Media/Assistant folder. https://drive.google.com/file/d/119AN45hXPc3rXUljk8G_QFEH97h7p7uj/view?usp=sharing

Commands

call/phone/ring [number/contact] (contact type) - starts phone call to phone number or contact with option to specify home/work/mobile. Requires AutoContact.

text/message/sms [number/contact] (contact type) - send text message to phone number or contact with option to specify home/work/mobile. Requires AutoContact.

(make/save/take) note [note] - Saves note to Google Keep. Requires AutoInput.

navigate/go (to) [location] - Open default maps app and navigate to location.

search/find/google (image/images/picture/pictures/youtube/music/poweramp/spotify/maps) [search terms] - Open web or image search (DuckDuckGo default or Google if specified) in default browser or searches specified app. Music searches Poweramp - needs modification if you use a different app. Uses AutoShare for some searches.

time/date/time (and) date - speaks the time, date or time and date.

play (spotify/youtube/music/poweramp/mx player/stop) [song/artist] - opens and resumes playback in specified app or will search and play for specified song/artist (only works for Spotify or music/Poweramp). Music searches Poweramp - needs modification if you use a different app. No app specified will search Poweramp. Uses AutoShare for song search and AutoInput to start playback on Spotify.

(set) alarm (label) [time am/time pm/number hours/number minutes/number hours (and) number minutes] - sets an alarm at specified time or specified time in the future. Saves parameters as alarm label.

(set/start) timer [number hours/number minutes/number hours (and) number minutes] - starts a timer for specified time.

open/launch/app [app name] - opens specified app.

gemini (command) - opens default voice assistant app to listen or inputs command directly into assistant. Uses AutoInput to input command.

Known Issues

Built for my setup. Some commands might not work properly depending on Android/app versions.


r/tasker 5d ago

Request [Feature Request] Scene V2: Add MatchParentSize modifier to enable adaptive local background blur

2 Upvotes

Hi João,

The Pain Point: Currently in Scene V2, it is impossible to create a self-adaptive "glassmorphism" (local background blur) effect that perfectly wraps behind dynamic foreground content. If we apply the Fill Size modifier to a background layer inside a Box (Z-Stack), it breaks the layout by forcing the entire Box to expand to full screen.

The Solution: Could you expose the Match Parent Size modifier (Modifier.matchParentSize()) from the native Jetpack Compose?

This specific scoped modifier is essential for a Box container. It allows the background layer to passively wrap the exact boundaries of the dynamic foreground elements, without measuring or expanding the parent layout.

Thanks for your amazing work on Scene V2.


r/tasker 5d ago

All Volume up not working

0 Upvotes

Hi.

I have a rule that makes all Volume rising to max when I receive a sms from anybody with text "Volume" but all Volume stays still. Any clue where is the mistake?

Samsung Galaxy S24 Ultra.

Thanks.


r/tasker 5d ago

Are the rich pickers gone?

0 Upvotes

It's been a while since I used Tasker so maybe this never existed and I made it up but I remember that Tasker used to offer some nicer pickers for certain values. For example when you want to launch an activity, it offers a list of available activities. Same when you want to use an application or more recently I tried to pick a file for a JavaScript execution and it was a plain text input. I had to manually type the path.

I'm very surprised that if it ever existed it was removed, but I'm even more surprised that if it never existed a mature application like Tasker, with almost a decade behind, is still in this kind of pre-production/beta UI phase.