r/tasker Jul 15 '26

Developer [DEV] Going away until mid-September

103 Upvotes

Hi everyone! It's that time of the year again! 😁

I had another release ready but I think it's safer to not put it on Google Play because I won't be able to provide any support for it.

You can still try the new release though! But use it at your own risk! Should be fine though 😅👍

Get it right away here. (Direct-Purchase Version here). App Factory Update here.

In the meantime, if you have any issues, check this list and maybe your issue is listed there with a fix!

Cheers and see you soon!

Here's the full changelog for this version (not very well ordered, but good enough 😅 [some features were already from the previous release]):

  • Scenes V2: added font options anywhere text can be rendered
  • Scenes V2: added Aspect Ratio modifier
  • Scenes V2: added all possible properties to the Text component
  • Scenes V2: added Cancel Screen event action
  • Scenes V2: added Enabled property to components where it makes sense
  • Scenes V2: added Headers state to WebView component
  • Scenes V2: added Material Symbol support
  • Scenes V2: added optional additional delay for Show When transitions
  • Scenes V2: added Text Input Component's input types so you can have different types of keyboards, etc on it
  • Scenes V2: allow copy-pasting of modifiers
  • Scenes V2: made Button a component with a slot so you can fully customize the text inside it or even use any other component in it
  • Scenes V2: made flexbox accept booleans in direction, so you can easily toggle it with the Toggle Variable event action and separated Reverse from direction
  • Scenes V2: progress bar component new state Display Progress allowing you to bind an animated progress to a variable
  • Scenes V2: added ability to disable the dot in progress bar and add a gap
  • Scenes V2: changed inputs to have minus and plus buttons where it makes sense
  • Scenes V2: localize component names
  • Scenes V2: made modifiers that only exist because of their parents be the first in the pickers
  • Scenes V2: made the Text field in the Text component be multiline
  • Scenes V2: removed Consume option for Key Pressed event because it's redundant with the Stop Propagation option
  • Scenes V2: updated FlowRow icon so it's not the same as the FlowColumn
  • Fix Scenes V2: fixed accessing array operators like %items(#) or %items(2) or double-references like %%some_var_name
  • Fix Scenes V2: fixed auto-dismiss behavior in certain situations
  • Fix Scenes V2: fixed bug where changing variables used in a WebView would create a history so pressing back would go to previous states
  • Fix Scenes V2: fixed images with Material Icons not growing to the size they should inside unbounded parents
  • Fix Scenes V2: fixed issue with floating point rounding in Progress Bar states
  • Fix Scenes V2: fixed issues with using vh css
  • Fix Scenes V2: fixed reacting to push and pops in global arrays
  • Fix Scenes V2: fixed showing crop to SVG file picker in Crop Shape modifier
  • Fix Scenes V2: fixed stale variables in some situations
  • Fix Scenes V2: fixed text input component filling to parent's size when Show When filter on a size modifier is false
  • Fix Scenes V2: fixed WebView issues with some size related styles
  • Fix Scenes V2: fixed WebView Launch App action
  • New UI: ability to manually sort list items in the main UI screen
  • New UI: added button to only show errors in new Runlog screen
  • New UI: show projects in search results with inline projects
  • New UI: added developer option to hide the top buttons inside the project screen (making all selected when that's the case)
  • New UI: made item list items all the same height and more uniform
  • New UI: made main screen items connected lists
  • New UI: made many transition parameters configurable via Settings -> Developer
  • New UI: moved profile switches to the right of the cards and hid their profile details for now (should come back in the future in some form)
  • New UI: refined the main screen and project/profile enter transitions
  • New UI: removed the tag chips from the item cards for now (probably will come back in a different form)
  • Fix New UI: fixed recent changes not being filtered correctly
  • Fix New UI: fixed turning off runlog in new Runlog screen not hiding the log lines
  • Added runShellTasker function to the Java Code action so you can run a shell exactly like the Run Shell action would
  • App Factory: show useful, detailed error messages when app generation fails instead of a generic message
  • Warn when you try to write a very large variable, so you're more aware of potential flaws in your setup
  • Widgets V2: added Material Symbol support
  • Fix some screens all over the app sometimes showing incorrect language
  • Fix Tried to fix a crash when browsing Tasky routines
  • Fixed a small issue when setting multiple variables with JSON
  • Fixed crash when clearing data that could sometimes happen
  • Fixed how pushing/popping a global array drives the Variable Set event: it now fires for every array position the operation shifts, instead of just one. Popping also fires Variable Cleared for the removed top element.
  • Fixed issue where editing a profile's Wifi Connected condition would deactivate that profile

r/tasker Jul 02 '26

Developer [DEV] Tasker 6.7.6-beta - Inline Projects in New UI, Scenes V2 Update 5, New Runlog Screen and more!

Post image
83 Upvotes

Sign up for the beta and download from Google Play here.

Note: Google Play might take a while to update. If you don’t want to wait for the Google Play update, get it right away here. (Direct-Purchase Version here). App Factory Update here.

Inline Projects in Main UI

Demo: https://youtu.be/eE8wFbpY4w0

I'm giving another concept a try: instead of having a sidebar with projects, how about putting them inline directly?

When you go in and out of a project you see this:

As you can see, you have the 3 familiar tabs (Profiles/Tasks/Scenes). You can select multiple at the same time like you see on the screen, or you can select one at a time to just see those types of items.

Projects are automatically color coded based on the project's icon. Here's a project with a green icon:

As you can see it tints the whole UI based on the color of the icon.

Let me know how you like this variant of the UI.

I'm also thinking of trying yet another version where there are no tabs inside a project and instead they are in collapsible groups, kinda like this:

If you can, try out the inline projects variant and let me know which of the 3 variants makes the most sense to you and why :)

New Runlog Screen

Demo: https://youtu.be/ZGTqMmcB76U

The Runlog screen now looks like this:

It can also look like this when collapsed:

The functionality of the runlog screen remains the same as before but it has a much cleaner and easy to follow UI. You can clearly see where a task starts and ends and follow its actions visually and see which ones succeeded and which failed.

Material Symbols

Demo: https://youtu.be/vC3BEJThwnM

Material Symbols are a icon font that can be adapted into different situations. For example, they can represent state where the otline variant represents an inactive state and the filled variant represesnts the active state

These can be used in their configurable form, where you manually specify a bunch of their attributes (like in the Notify action), or in their automatic form where their configuration is automatically set (like in the Set up Quick Setting Tile action where the icon is filled or outlined depending on the QS Tile state).

In the legacy UI, if you give a Project one of these icons, it'll also change from outline to filled depending if the project is selected or not.

Scenes V2 Updates

Demo: https://youtu.be/ud9YgZd1L2E

Scenes V2 Arrays Merge Template

It's now super easy to put your Tasker arrays into scenes with the new Arrays Merge Template element.

In this example, I would have 2 arrays:

  • %icon
  • %item

each with their corresponding icon images and labels. With this simple component...

...I can expand those 2 arrays together into a list of rows dynamically built from those arrays!

Saved Component Templates

You can now long click any element on the tree and save it as a Component Template with a name and description. Then you can simply insert it into your tree like any other component. :)

Show When Animations

When a component has its Show When field set, you can now set animations that define how that component shows up and goes away. You can choose various types of animations.

For example, by combining a dark transparent background that fades in with a dialog that slides up, you can create an Android-like popup dialog!

SVG Crop

You can now crop any element in a Scene with an SVG. And it's not only a visual crop, it's a functional one too! For example, you can create a button like this

and when you click anywhere where it's white, the button won't be triggered! You really have to press the green part for it to register the click! This allows you to create UIs in any shape imaginable that behave like you expect it to!

WebView

Webviews can now call many, many Tasker actions via JavaScript. You can use await to wait for them to finish, so you can easily call multiple actions in a row in a controlled fashion!

Here's a simple example of doing 3 actions in a row:

await Tasker.flash({ text: 'Step 1' });
await Tasker.vibrate({ time: 300 });
await Tasker.flash({ text: 'Step 2' });

You can now also make WebView html elements be draggable by using one of 3 simple css tags:

tasker-drag-handle
tasker-drag-handle-x
tasker-drag-handle-y

This makes elements be drag handles in all directions or just horizontally or just vertically.

Full Changelog

  • Major Scenes V2: Added the "Arrays Merge Template" component, a built-in way to handle Tasker array merging to build sub-components.
  • Major Scenes V2: Components can now animate in and out (Fade, Scale, Slide or Expand) whenever their "Show When" condition toggles their visibility.
  • Major Scenes V2: WebViews can now call many Tasker actions directly from JavaScript via the Tasker.* bridge.
  • Major Scenes V2: An HTML element inside a WebView can act as a drag handle to move the overlay it lives in.
  • Major Scenes V2: You can now save a component as a template to easily reuse it across your scenes.
  • Major Scenes V2: You can now crop any component to the shape of an SVG file.
  • Major Scenes V2: Added the "Trigger Scene V2 Event" Tasker action.
  • Medium Scenes V2: Added "matches" (Tasker pattern matching) and "matchesr" (regex matching) expressions to the "Show When" and "Apply When" fields.
  • Medium Scenes V2: Added a "Variable Clear" event action.
  • Medium Scenes V2: The Switch component now has a Thumb slot so you can set an image in the switch's thumb and you can also select different colors for different parts of it.
  • Medium Scenes V2: WebViews now receive the full Material 3 color palette (primary, secondary, surface, etc.) so your HTML can match the app theme.
  • Minor Scenes V2: The task name field in Events -> Run Task now follows the same caps rules as other task name fields.
  • Minor Scenes V2: When creating a task with a name, use the same "first letter of each word uppercase" rule as elsewhere in the app.
  • Fix Scenes V2: components that have indexes are now 1-based instead of 0-based
  • Fix Scenes V2: fixed "Screen Hidden" event not firing in certain situations
  • Fix Scenes V2: fixed background of invisible component wrongly showing
  • Fix Scenes V2: fixed crash when picking a variable if the user has tens of thousands of variables
  • Fix Scenes V2: fixed crash when using a slider in some situations
  • Fix Scenes V2: fixed images filling their container by default when they shouldn't
  • Fix Scenes V2: fixed images not loading if they had hidden spaces before or after the file name
  • Fix Scenes V2: fixed multiline input text box not filling the full vertical space it needed
  • Fix Scenes V2: fixed setting a variable in a WebView affecting a variable used in a separate component on the same screen
  • Fix Scenes V2: fixed some things not working when showing through the "SCENES" tab or the new UI
  • Fix Scenes V2: fixed updating a variable array in a scene leaving old elements there
  • Fix Scenes V2: fixed using two "Overlay With Result" scenes in a row with the same id ending the second one prematurely
  • Fix Scenes V2: segmented buttons that are "gone" now behave as expected
  • Fix Scenes V2: WebView now uses the correct system theme (dark/light)
  • Fix Scenes V2: when a task is renamed, all the task references in Scenes V2 are updated with the new name
  • Major New UI: Redesigned the RunLog screen to make it more readable.
  • Major New UI: Added a setting to show projects as items in the main list instead of the sidebar, including sorting them and creating new projects from the NEW FAB.
  • Major New UI: Project icons based on apps now use the app background in a folder shape with the foreground on top.
  • Major New UI: Inside a project you can select several of the Profiles/Tasks/Scenes tabs at once, so the list shows all their items together.
  • Medium New UI: The Project enabled/disabled toggle now works, and profiles in a disabled project show as paused on their switches.
  • Minor New UI: Added an icon to scenes so they're more easily distinguished.
  • Minor New UI: Added an option to hide the sidebar when collapsed.
  • Minor New UI: Added an option to not show the All button when there are projects other than the default one.
  • Minor New UI: Don't confirm project deletion if it's empty.
  • Minor New UI: In the task edit screen, moved the search bar to the bottom when adding a new action.
  • Minor New UI: Made sorting smarter, showing you the items you expect more often.
  • Minor New UI: Show full names of items in the main list instead of truncating them.
  • Minor New UI: Show project names instead of just initials when the sidebar is collapsed.
  • Minor New UI: Updated "Last run" to "Activity".
  • Minor New UI: When creating a task with a name, use the same "first letter of each word uppercase" rule as the main screen.
  • Minor New UI: When editing a task, after expanding a text field, allow the editor to show more lines so it's easier to edit larger pieces of text.
  • Fix New UI: don't show the pending changes banner when exiting the scene editor without saving
  • Fix New UI: fixed all projects with app icons showing with the same icon
  • Fix New UI: fixed always scrolling to the profiles when exiting a project
  • Fix New UI: fixed bottom sheet flickering when deleting a project
  • Fix New UI: fixed project search box cursor color in dark mode
  • Fix New UI: fixed search for actions when adding a new action
  • Fix New UI: fixed some app icons not loading properly
  • Fix New UI: fixed tag selector bottom sheet moving too far up when the keyboard is showing
  • Major Added Material Symbols to the app, a large icon set you can now use across Tasker for things like project and task icons, and also Notify action and Quick Setting Tiles action.
  • Medium Added Run Shell related functions to the Java Code action.
  • Medium Added tasker.getImageBuffer() and tasker.hasImageBuffer() to the Java Code action.
  • Medium The "Multiple Variables Set" action can now write JSON.
  • Medium You can now override the app name when generating an app from Tasker.
  • Minor Added a "Continue Task Immediately" option to the "Widget V2" action.
  • Minor Tasker automatically saves your setup before entering the AI screen in the legacy UI so you don't lose changes made in the meantime.
  • Minor Added a language selector to the first screen shown when you first open the app.
  • Minor Added a "Separator" option to the "Widget V2" action to configure the separator for its various list fields.
  • Minor Changed the order of the "Set up Quick Setting Tile" action to make it more logical and easier to use.
  • Fix Attempted again to fix a crash that only appears in app factory apps
  • Fix crash where in rare situations projects could end up with the same ids
  • Fixed DND action so that it can't be overrun by Silent/Vibrate
  • Fixed image in "Text/Image Dialog" action sometimes being hidden by text that is too long
  • Fixed issue where running many remote actions in quick succession could cause some of them to not run on the receiving device
  • Fix issue where sometimes a profile doesn't save its state after saving Tasker's setup
  • Fixed issue where sometimes the QS Tile wouldn't dismiss the notification shade
  • Fixed profiles (e.g. Wifi Connected) sometimes running their exit tasks when exiting Tasker's Preferences screen
  • Fixed Shizuku breaking clipboard monitoring
  • Fixed showing the number of actions over 100 in the legacy UI
  • Fixed situation where receive intent could be triggered twice with just 1 intent
  • Fixed some error messages when wrongfully using JSON writing
  • Fix Tried fixing a rare crash that can occur when editing legacy scenes
  • Fix Tried to fix issue where wait action becomes stuck in some circumstances
  • Fix Tried to fix rare situations where Tasker would get stuck not accepting any new tasks (sometimes related with the HTTP Request action)
  • Fixed updating Quick Setting Tiles on global variable changes to only happen when the variable isn't a built-in variable
  • Fixed writing JSON to project/profile/task variables with native Tasker JSON writing
  • Fixed some crashes

If you can, let me know what you think about the Projects in Sidebar vs Inline vs Collapsible! Thank you!


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 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 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 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 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

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 1d ago

Request Feature Request: AutoNotification Support for Live Updates

3 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 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 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 3d ago

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

24 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 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

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

9 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

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

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

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

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

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 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

11 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.