A new version! We changed & added a lot again in version 4.0. Check it out below.
The theme this version is missing actions and events! But we have done a lot more as well
New Multiple Devices Upgrade
With this Upgrade you will be able to connect multiple devices to one Touch
Portal desktop. One device, the primary device, will be the device that will act on automatic
navigation based on the active application on your desktop and the rest of the devices
will function as a secondary devices. These
will not act on automatic navigation but will be able to fully operate on their own.
The new Multiple Devices Upgrade.
All connected devices, even without the Multiple Devices Upgrade, will show
in the connected device panel popup. This panel will describe the specifics about
a connected device.
All your connected devices can be viewed in the connected devices panel.
The Multiple Devices upgrade is purchased and connected to your store (Google or Apple) account
just like all other Upgrades in Touch Portal. This means that all devices that use
an account that has purchased the Multiple Devices Upgrade can be used to connect with the desktop
application. If you buy the license for both iOS and Android, it means that both
can connect at the same time to the desktop. As long as the device has the license
it can connect as a secondary device to the desktop.
MacOS Improvements
We have added highly requested features to MacOS which were already present on Windows
already:
- Auto Navigation based on window activity - We have added the
ability for our users to automatically navigate their primary device based
on what application is active on their desktop.
- Low Level Key presses - You will now be able to send Low Level
Key presses to control your MacOS. They are more reliable than virtual key
presses and have better performance. This also eliminates the bug where moving
the mouse and pressing CMD would fail to register that key press.
- Fixed the App Nap issue - No more issues with connectivity due to
MacOS putting Touch Portal in sleep mode. Using this new functionality allows
Touch Portal to run without ever being put to sleep, ensuring that the connection
to your mobile device is always up and performant.
Adobe Lightroom implementation
Control Adobe Lightroom directly through Touch Portal without the need for
shortcut combinations. Use sliders to quickly set the image adjustments in
Lightroom.
All new Lightroom actions, events and connectors.
Usability Improvements
This version is packed with several usability improvements. We have been striving
for this version to be the most user friendly version we have made so far.
- We have improved the Action Lists with a lot of new features and options. More details are mentioned in the specific section about the action list control.
- We have added an are-you-sure popup when you close editing a button using ESC or the close button when you have unsaved changes.
- Button IDs can be changed by the user. This allows for better and clearer IDs to make reading the flows easier and reduce the number of errors.
- We have added instant tooltips for all icon-only buttons in the application. This allows you to instantly see and read what the button does.
- We have added the option to change the location of the backups folder. This can be set in the settings.
- When editing a button, you can now apply all changes directly without having to save and close. This will also immediately update your changes on the mobile application.
- We have improved the Action Category List Control with a lot of new features and options. More details are mentioned in the specific section about the action list control.
Usability Improvements - Plug & Play Buttons
In this version, we have added a large collection of buttons that you can add
without having to make them yourself. Just drag the premade control to your Page and finish
the wizard. The Page Settings migrated to a button in the page control bar to
make room for the plug and play buttons.
Drag the premade button to your Page.
Once dragged and dropped onto a location on the grid, the wizard will guide you through
the necessary elements to specify. After you
have chosen the button Theme and specified the settings for the button, it will
be fully created with all actions and events present. Of course, you can always
edit the full button as usual to make it fit your requirements exactly.
Example of the wizard to for an OBS source toggle button.
Usability Improvements - P&P Button Theming
You are now able to create themes for buttons that you can use for the new
ready-made buttons, for the auto generated button for navigating back to the main
page and for new buttons that you create to automatically get a theme set up to
allow you to create and edit your button as efficiently as possible.
Create your own preset button themes for newly create buttons.
Usability Improvements - Action Category List
We have also improved the action category list:
- The category collection in Touch Portal has grown over the years. We have added
many additional categories of actions and we have also seen a great number
of plug-ins being created for Touch Portal. When using a lot of them, the
list can become a big pile of unorganized functionality. To fix this, we have
introduced new category collections that will parent specific types of
categories.
Category collection will group category for their main purpose.
- Multiple Level - Categories can have sub categories to even allow
for more clear structuring. Plug-in developers can also make use of this
to also integrate plug-ins in the normal structure.
- Clear search button - We have added a clear search field button
inside the search area to make it easier to quickly search and use actions.
Click on the 'x' to clear the search field.
- Resizable width - In the past, you were able to set the category
list to a small or wide view. With this version, we have made it resizable
by dragging the side of the category list.
- Favorites always visible - The favorites are no longer affected by the search query, meaning that you
will always have direct access to your favorite actions and events.
Action List - Improvements
We have made several improvements to have a better experience when building
your flows.
- Improved loading performance - In previous versions, when you had
a long list of actions or events, it could take seconds to load the entire list.
We have greatly improved this in such a way that it now takes under 1 second to load
the list, no matter how long it is.
- Drag and Drop from the Category list - You can now also drag and drop
new actions to the location you want. This allows you to quickly build
complex logic flows without too much hassle.
- Drag and Drop for actions in the list - Dragging actions to a
different location in the same list has been changed, just drag the action
and it will show a transparent version, which you can then place on the location
you want.
- Drag and Drop for actions scrolling up and down the lists -
When you drag an action in the list to the bottom (or the top) it will automatically
scroll the list to be able to drag and drop throughout the whole list.
- Category coloring - We have also changed a few action colors to
fit the category they belong to a bit better for a better visibility of
the categories and actions.
- Improved text fields - all text fields and selection fields will
show the full text on load. The text is no longer partially cut off.
Action List - New Themes
You already had the ability to set your own color
theme for the actions lists from the settings menu. We have expanded this by
also adding different styles to choose from. Choose your theme and your color
scheme to get the flows to look the way you want.
Examples of the added action list themes.
Action List - Visuals Tags!
Touch Portal nows shows visual tags in the text where you use dynamic text
variables. It will no longer show you long IDs, but instead it
will show you the name of the state, Value or text variable.
Examples of a visual tag added in a text field.
Action List - Tools for Actions
Each action will have an action box attached to the end of the line, which
will show when you hover your mouse over the action. This box has different kinds of actions you can
do on that specific action, such as:
The Play Audio (advanced) action with the tool box on the right.
- Disable / Enable action - This action allows you to disable an action
in your flow of actions so that it will be ignored when the flow of actions
is executed.
- Documentation - This action allows you to view the documentation
for that specific action, event or connector. Clicking this will redirect
the user to our online documentation. The documentation will describe the
action and it will also show specific notes, guides and FAQ entries to help
the user use the action properly and effectively.
The documentation can be found here.
- Run Action - This action, allows you to run the action. This
allows you to test the action to make sure it works properly. This will be
a great help when you are building complex flows.
- Go To Page - This action, which is only available on actions that
handle Page functionality, will load the selected Page as the current
selected Page in the desktop application.
Plug-in API changes
With API version 7 we have introduced a lot more possibilities for plug-in developers.
Check out the updated API documentation as well.
- Language-specific action descriptions. We have added the ability for
plug-in devs to add translations for user faced texts in multiple
places. The languages supported are the same as those supported in the
main application of Touch Portal.
- Option to add tooltips to a plug-in setting that holds the following features:
- Title, optional, describes the setting in a one liner
- Body, the actual text that can be used to describe the
functionality or purpose of the setting
- Link to documentation, which is optional. This is an url that you can
specify that allows users to go to the proper documentation
about this setting online.
- Added more options for the when-the-plugin-state-changes event;
- Contains, checks if the state contains the user value
- Does not contain, checks if the state does not contain the user value
- Begins with, checks if the state begins with the user value
- Ends with, checks if the state ends with the user value
- Matches (regex), checks if the state matches the user value, which is being processed as a regex.
- For the plug-in developers, we added specific plug-in dev tools to assist during
the development of your plugin. Check the API documentation for more information.
- Actions from plug-ins can now have multiple lines.
- Migrated plug-in actions text fields to tag supported text fields.
- Touch Portal users are able to change the plug-in server IP to allow
connections from plugins running on other computers in the network. More
information can be found in the documentation.
- You can also update state lists in Touch Portal. These state lists need
to be defined in the entry file to make them eligible for this.
- Plug-ins developers can now create subcategories for their plug-ins, allowing for better separation of plugins and their subcategories.
And we have fixed a few bugs as well:
- Fixed states with choices which were not usable as states
- Fixed When-Plugin-State-changes event not showing dynamically created states after restarting Touch Portal.
- Fixed IF Statement not showing dynamically created state after restart of Touch Portal.
- Fixed IF Statement (Extended) not showing dropdown choices for plugin state of type "choice"
- Stopped plug-ins will be listed in the log to show the plug-in was detected but not started.
- Fixed plug-in icons causing issues not following the guidelines.
- Fixed plug-in importing when previously imported but set to stopped, resulting in non-functioning plugins.
- Fixed Stopped plug-ins are not started when restarting Touch Portal.
- Fixed Change text color by plug-in state not parsing AARRGGBB formatted colors correctly
- Fixed Action list is not updated when starting, stopping and removing plug-ins.
Plug-in API V2 Documentation
We have reworked (and appended) the API documents to have a more consistent
and clear structure. The new
documentation can be found here.
Category - Navigation
To allow for even more control over your navigation, we have also added a new
navigation event that was missing.
When A Page Is Changed
Action
This action allows you to listen to Page changes and act on it.
Category - Input
To allow for even more control over your desktop, we have also added a new
input action that was missing.
This action allows you to move the mouse to a specific location on your screen(s)
Category - Utilities
To be able to make even better logic systems, we have also added a few new
utility actions that were missing.
Clipboard Content to Value
Action
With this action you store the current contents of the systems clipboard to a Value.
Set Clipboard Content
Action
With this action you can copy text to the clipboard.
Restart Touch Portal
Action
With this action you can restart Touch Portal.
Start / Stop a Plugin
Action
This action allows you to start or stop a plug-in.
On Touch Portal initialized
Event
This event will trigger when Touch Portal is initialized. This event can only be used in the global Events and needs the Pro upgrade to function.
(placeholder for On Page Changed event)
We have also made small improvements on:
- The copy file to clipboard action has been fitted with the posibility
to use values and states as well in the filename.
Category - Values & States
To be able to make even better logic systems we have also added a few new
Values and States actions that were missing.
This will remove all white spaces from the front and from the back of the values text. This will assume the Value is of type text.
This action allows you to get part of a text Value
Get Length Of Text
Action
This action allows you to get the length of a given text and store it into a Value.
Split Value And Get N-th Item
Action
This action allows you to split a text with a delimiter and get the n-th item from the split text.
We have also made small improvements on:
- We have added modulo functionality in the Calculate Value action.
- Fixed Url to Value not including newlines
Category - File IO
We have also added actions that were missing in the File IO category.
Remove Lines from File
Action
With this action you can remove lines from a text file.
We have also made small improvements on:
- Fixed Url to File not including newlines
Category - HTTP
Our HTTP category was missing a few actions so we have added them to have
the HTTP actions complete.
With this action you can do an http call of the type DELETE
With this action you can do an http call of the type PATCH
We have also made improvements:
- We fixed all the incorrect protocol mentioned in the PUT action.
- Fixed newline issue for HTTP get calls
Category - Visuals actions
Url to button Icon
Action
With this action you can load an url image and set that image as the icon.
Restore Button Visuals
Action
With this action you can set the specific parts of the visuals of a button to its original settings.
Change Page Background Image
Action
This action allows you to change the background image of the Page.
Keep Icon the same as external Image
Event
This event will keep track of the image file pointed to. Whenever the file is changed, it will update the icon of the button.
Change Slider Containers color by percentage
Connector
With this connector you can change the color of the container of the value bar from one color to another based on the percentage of the current value.
Change Slider Value color
Connector
With this connector you can change the color of the value bar depending on the value of the slider. This connector has two methods; relative which will make the gradient based on the full width of the bar container and absolute which will make the gradient based on the actual length of the value bar.
Change Slider Text
Connector
With this connector you can change the text of a slider when the slider is being used and the value changes. You can set a text with the wildcard $sliderval which will then be replaced by the actual value (or percentage) with the specified decimals.
We have also made improvements:
- The Change Button Visuals action has been reworked to remove the
necessary popup window. You can now directly add and remove options
from the action in the list. This will greatly speed up your editing process.
We have also added three more missing options that you can change with the action:
- Vertical Text Offset
- Horizontal Text Offset
- Font Family
Category - Media actions
Stop All Audio with Id
Action
With this action you can stop all audio playing with a given id. This id can be set when playing an audio file using the 'Play Media (Advanced)' action.
We have also implemented a few other improvements:
- We have added an ID to the advanced audio play action. This allows you to stop
that specific audio playing using an ID.
- Added Current Systems Volume as an option for both Output as Input for Windows.
- Reworked the Audio states menu structure and the list of sources is sorted.
- Stop all Media Playing action will now also stop the advanced triggered
audio files.
Category - OBS (Websocket 5+)
The websocket 5.0 (and later) comes with additional functionality and is
continuous being developed, so in this version we have integraded a few of these
5.0 specific actions
With this action you can set a text of a text source directly. This canonly be applied to a Text Source. When using this action Touch Portal will turn of the link to a file in the source in OBS.
Set Browser Source Url
Action
With this action you can set the url of a browser source directly. This canonly be applied to a Browser Source.
Refresh Browser Source
Action
With this action you can refresh a browser source.
Set Image Source file
Action
With this action you can set the image of an image source directly. This canonly be applied to a Images Source.
Set Video Source file
Action
With this action you can set the video of a video source directly. This canonly be applied to a Video Source.
Start, Stop and Toggle Virtual Cam
Action
With this action you can start and stop the virtual cam in OBS.
Set Duration of Current Transition
Action
With this action you can set the duration of the current transition.
This action allows you to make custom requests to the OBS Websocket v5+. This allows you to do additional requests that are not (yet) implemented directly in Touch Portal.
When Custom Request Result Are Returned
Event
This event allows you to listen to the result of a Custom Request by ID
On Virtual Cam State change Event
Event
With this event you can listen to the moment the virtual cam is either activated or de-activated.
On Previous Scene Changed
Event
With this event you can keep track of the previous scene in OBS. Everytime youchange a scene in OBS, the old one will be stored as the previous scene in OBS.
On Preview Scene Changed
Event
With this event you can react on when the Preview scene changes. Everytime you change the preview scene, this event will be triggered based on the settings.
When Studio Mode changed
Event
With this event you can react on when the Studio Mode turns on or off.
We have also implemented a few other OBS websocket 5+ additions:
- State: OBS Previous scenes this will hold the previous active scene
in OBS. This can be used in:
- Dynamic Texts
- If Statements
- Set Scene action
- OBS recording time has been added to the state list. This state will be
updated with an interval of 2 seconds.
- Newly created or removed sources are now updated in the action lists correctly.
- Actions with Scene or Source selection fields are now ordered and searchable.
Category - Twitch
Twitch Get Profile Image Url to Value
Action
This action will get the profile picture or the offline picture of auser specified by loginname and stores it in a Value.
Get Twitch Channel Info
Action
This action allows you to retrieve your currente channel information such as the title, the game, the game id and the tags.
When Slow Chat State Changes
Event
This event allows you to listen for changes in the Slow Chat settings.
When Unique Chat State Changes
Event
This event allows you to listen for changes in the Unique Chat State.
When Emotes Only State Changes
Event
This event will listen to the emotes only chat being active or not
When Followers Only State Changes
Event
This event will listen to the followers only chat being active or not
We have also added, improved, removed or updated a few other Twitch elements:
- With the Channel Point Redemption event, you can now use the * as a
catch-all. This means the event will trigger for each Channel Point Redemption event.
- With the Whisper event, you can now use the * as a
catch-all. This means that the event will trigger for each Whisper.
- With the Chat event, you can now use the * as a
catch-all. This means that the event will trigger for each incoming chat message.
- We have added the options Does not Contain and Is not equal
to in the Incoming Chat event
- We have added the local states loginname to the raid event
- We have renamed the "Messages" option in the Twitch Dynamic Var menu options to "Chat".
- We have added a reason option for both the Twitch Bans and the Timeouts.
- Fixed Receive Bits event used for global events not including thresholds where it should have to match the button events.
And we made improvements and fixes:
- Fixed Twitch Chat messages not processed when a prediction was active and had exclamation marks in it.
Category - Photoshop
We have made additions and improvements for the Photoshop integration as well;
Execute Custom Script
Action
This allows you to execute custom Photoshop Scripts (Lua) in Photoshop.
Set Both Main Working colors
Action
With this action you set both colors in one go. This action has better performance in comparison with using two separate actions for changing both the foreground and the background colors.
This allows you to trim the image on four sides by removing the transparent colums or rows.
We have also made improvements:
- Connector Fill Layer can now be set with an variable range for the value.
- Connector Brush Size can now be set with an variable range for the value.
- Fixed Photoshop functionality activated while photoshop integration has not been set up
Category - Twitter
Due to new restrictions and new prices by X (formerly Twitter) we can no longer
support X actions and events. We have removed this category from Touch Portal.
X (Twitter) users can still use it with Touch Portal but this requires the use
of a Twitter plug-in.
Icon Editor Upgrade
For our Icon Editor Upgrade users we have added additional options to make
the upgrade even beter!
Color Hue Shift
This adjustment allows you to shift the hue of the icon.
Color Rectangle
This adjustment allows you to add a colored rectangle on your icon.
Clip Rectangle
This adjustment allows you to cut out a rectangular part of your icon and
replace it with fully transparent pixels. This could be handy to remove unwanted
parts of your icon that you want to have replaced by other images for example.
Color Circle
This adjustment allows you to add a colored circle on your icon.
Clip Circle
This adjustment allows you to cut out a circular part of your icon and
replace it with fully transparent pixels. This could be handy to remove unwanted
parts of your icon that you want to have replaced by other images for example.
This action can also be inversed to cut out everything except the specified circle.
Missing States & Values: Date & Time
We have also added more time and date functionality. We have added the following
dynamic text variables:
- Current Hour
- Current Hour (2 digits)
- Current Minute
- Current Minute (2 digits)
- Current Second
- Current Second (2 digits)
- Current Day of the Week
- Current Day of the Month
- Current Day of the Year
- Current Quarter of the Year
- Current Month
- Current Year
- We also made a custom datetime function which allows you to specify a custom format
for the date. Example; $DateTimeCustom{yyyy-MM-dd} which will result in 2022-08-21.
Missing States & Values: System
We have added several states and Values related to the system:
- Operating System Name - (Dynamic Text & IF Statement (extended))
- Operating System Version - (Dynamic Text & IF Statement (extended))
- User Working Directory - (Dynamic Text & IF Statement (extended))
- User Home Directory - (Dynamic Text & IF Statement (extended))
- User Account Name - (Dynamic Text & IF Statement (extended))
Changes to the logging system
We have made a lot of changes to the logging systems. The most important change is
that you can turn it off completely which will improve the performance of executing your
buttons and events and reduce disk writes. But that is not all:
- We have also added the option to specify the log file size so that when you
have a complex setup it will log enough information for when you need it.
- We have also made it possible to turn on or off all logging tags individually
to have a log file that shows precisely what you want.
- The log view itself will be updated in real time when it is opened.
- Added Log View filter options (contains case-insensitive, matches regex)
Update system
We have also made improvements to the update system.
- Fixed update fails when library files are locked or in use.
- Added capability for the Lightroom plugin update
- Fixed Update Popup modal opens behind the main window
- Fixed properly closing the updating state when an update fails.
Import / Export Systems
We have also made improvements to the import and export systems.
- You can now add multiple Pages to one exported file.
- Added scripts as part of the export of Pages.
- Events can be exported.
- Flows can be exported.
- When importing Pages, you will have the choice how to handle the Values
during the import process. You are able to ignore the Value during the
import, which will not import them and use the Values already in your own setup,
add them renamed, or add them and overwrite the Values with the same name currently in your setup.
- Fixed import failing and hanging when import has a Page that contains a Button that has an incomplete If Statement
- Fixed export not handling type of image correctly
- Fixed missing Value references when exporting certain actions.
- Fixed exporting Local Values as unique global Values.
- Fixed naming of imported Values not updated in already existing actions (but linked correctly).
New Language Support
We have added the Italian language to our application. We have made the
translations using AI tools. If you are Italian and you notice things are not
entirely correct, please let us know.
Mobile Deeplinks
For improved usability of Touch Portal on your mobile device and other systems
we have introduced deeplink functionality to open a Page through deeplinks on your
mobile device.
You can use the tppage:// scheme to open Touch Portal. You can specify
the path of your Page as the path of the url. If none is given it will just
open Touch Portal on the default Page. If you have a Page stored in your Touch
Portal setup in the sub folder 'Example' and the Page is called
'Page 1', you can open it with the full url; tppage://Example/Page%201.
Remember that an url needs to follow the proper http protocol so spaces in this case
should be set with %20 like in our example. Other characters if used in
the Page path should also be converted if present. Some characters cannot be
converted and should therefor not be used in the path or Page name if you
want to use it with this deeplinking system.
What else?!
- We have added a bunch of new fonts to Touch Portal
- Improved the File to Content wording to make it clear that it is about storing
the contents of the file into a specified Value.
- We have also added some textual parts to the application that were
not translated.
- We have improved the onboarding screens to better handle the language
selected and to properly show the text on all screens.
- The handling of a button press is processed faster to have lower latency.
- We added the ability to apply button changes without closing the
button edit screen to improve your setup editing.
- We added a clear-all-notifications option to remove all notifications.
- We have added file association and loading when double-clicking the file
- Added option to vertically center the icon and text on top of a slider.
- Added new preview mode options, that allow you to select the dimensions
of your connected devices as the preview device.
- We have changed the USB connection order so that you do not have to
mannually connect USB connections anymore. The desktop will now
listen for incoming USB connections and automatically connect.
- We have added a Cooldown flow for global Events that allows you
to execute actions when the event is triggered while it is still cooling down.
- With this new version, we have also added file associations to all Touch
Portal extensions. A reinstallation of Touch Portal is required for
this to take effect.
- We increased the Global Events queue size to 12
- Buttons can now have custom IDs
- We have changed a few maximum allowed parameters for the Graphics Upgrades
Bugfixes
Most bug fixes are already mentioned in the sections above but we also fixed some bugs not in those categories:
- When changing colors in the color picker, it will no longer go to the main
window instead of the window you were on when saving or canceling
- Some texts were cut off in popup dialogs, this has been fixed.
- When deleting a button with an auto-text-updater it will no longer render the text from the auto updater
- We have fixed the title of the global Events' editor screen, incorrectly naming Flows
- Fixed all local states with selectors to show a selector instead of a text field in the Extended If statement action
- Fixed the stop all audio not stopping advanced audio playback
- Fixed Execute Flow action control shows information about Values in the search bar
- Fixed OBS streaming bit rate value shows correct bit rate.
- Fixed high IO (writes) of the application (thanks P'lumel for the fix)
- Fixed Get Url to file or state not preserving newlines
- Fixed a silent crash resulting in not all states being loaded and presented to the user
- Fixed Edge Graphics Upgrade Label Background not previewing on the desktop application.
- Fixed the search value being cleared when moving the window.
- Fixed Page Graphics Upgrade options not showing at first load.
- Fixed Page Graphics Upgrade first load visuals not getting the correct dimensions
- Improved precision rendering Edge Graphics Upgrade rows or columns
- We have added a failsafe for when the services file cannot be found.
- Fixed issue for when an image has been removed and trying to use the icon editor after removal.
- Fixed advanced audio action audio file not included in export.
- Fixed counters on Buttons not updating when context menu options were used to alter the contents of a button.
- Fixed Streamlabs Desktop filling log for German users when not used.