<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mr.Pan</title>
    <description>The latest articles on DEV Community by Mr.Pan (@easepan).</description>
    <link>https://dev.to/easepan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1368167%2Ffdf129cf-61e6-43ca-bc27-c2f2169ea0d0.jpeg</url>
      <title>DEV Community: Mr.Pan</title>
      <link>https://dev.to/easepan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/easepan"/>
    <language>en</language>
    <item>
      <title>The FAQ of productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Mon, 13 May 2024 02:40:49 +0000</pubDate>
      <link>https://dev.to/easepan/the-faq-of-productivity-application-runflow-2205</link>
      <guid>https://dev.to/easepan/the-faq-of-productivity-application-runflow-2205</guid>
      <description>&lt;p&gt;We will answer your frequently asked questions there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why not free?
&lt;/h3&gt;

&lt;p&gt;First of all, we are very advocating open source, but the design and development of RunFlow cost us a lot of time and energy, and we also have some operational costs, such as servers, developer accounts, etc.&lt;/p&gt;

&lt;p&gt;So we need funds to allow us to continuously update and improve our products, and we hope you can understand. Moreover, charging for our services also helps us avoid putting ads in our products, providing you with a clean and undisturbed user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is payment based on subscription?
&lt;/h3&gt;

&lt;p&gt;Because we aim to continuously update and improve our products to make it better and better, providing you with stable supports, whether it is new requirements or bug fixes (we welcome you to &lt;a href="https://myrest.top/feedback"&gt;submit requirements and bugs&lt;/a&gt;).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if we don't update? We will check on every New Year's Day (January 1st) to see if RunFlow has been updated in the past year, if there is no update (the possibility is extremely low), we will renew all licenses that are unexpired and in good standing for one year for free. For example, your license will expire on &lt;code&gt;2025-02-18&lt;/code&gt;, but our service detects on &lt;code&gt;2025-01-01&lt;/code&gt; that RunFlow has not been updated in the past year from &lt;code&gt;2024-01-01 ~ 2024-12-31&lt;/code&gt;, then we will extend the expiration date of your license to &lt;code&gt;2026-02-18&lt;/code&gt; for free.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Do I need to pay for the plugin?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;All plugins developed by our official team will always be free, aimed to enhance the functionality of our product, and providing you with a better user experience.&lt;/strong&gt; However, whether other unofficial plugins charge fees is determined by their developers, who may have their own pricing policies, we recommend you to read their terms carefully before installation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can plugin developers use it for free?
&lt;/h3&gt;

&lt;p&gt;Plugin developers can be free to use RunFlow: we will evaluate your plugin submission status in the past year on New Year's Day (January 1st) every year, if your plugins have updated, we will renew your license which has the longest validity period under your developer account for one year for free (&lt;strong&gt;please ensure your license is bound to your developer account&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;For instance, your license will expire on &lt;code&gt;2025-01-31&lt;/code&gt;, but our service detects on &lt;code&gt;2025-01-01&lt;/code&gt; that your plugins has been updated in the past year from &lt;code&gt;2024-01-01 ~ 2024-12-31&lt;/code&gt;, then we will extend the expiration date of your license to &lt;code&gt;2026-01-31&lt;/code&gt; for free.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is the CPU and memory usage so high during the first running?
&lt;/h3&gt;

&lt;p&gt;When you run RunFlow for the first time, we will traverse all your disk files and then create file indexes to provide you with a more efficient file retrieval experience. During this time, CPU and memory usage will indeed be relatively high, but it will return to normal once the index creation is completed.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the pros and cons compared to other similar apps?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;RunFlow&lt;/th&gt;
&lt;th&gt;uTools&lt;/th&gt;
&lt;th&gt;Wox&lt;/th&gt;
&lt;th&gt;PowerToys&lt;/th&gt;
&lt;th&gt;Alfred&lt;/th&gt;
&lt;th&gt;Raycast&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tech Stack&lt;/td&gt;
&lt;td&gt;Compose Multiplatform (Java &amp;amp; Kotlin)&lt;/td&gt;
&lt;td&gt;Electron&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platforms&lt;/td&gt;
&lt;td&gt;Windows/macOS&lt;/td&gt;
&lt;td&gt;Windows/macOS/Linux&lt;/td&gt;
&lt;td&gt;Windows&lt;/td&gt;
&lt;td&gt;Windows&lt;/td&gt;
&lt;td&gt;macOS&lt;/td&gt;
&lt;td&gt;macOS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugin Tech Stack&lt;/td&gt;
&lt;td&gt;Any Programming Language&lt;/td&gt;
&lt;td&gt;Web Front End (HTML/JS/CSS)&lt;/td&gt;
&lt;td&gt;C#/Python&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;JavaScript/TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Customization&lt;/td&gt;
&lt;td&gt;Very High&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Languages&lt;/td&gt;
&lt;td&gt;Simplified Chinese, English, Other languages are supported by plugins or language packs&lt;/td&gt;
&lt;td&gt;Simplified Chinese&lt;/td&gt;
&lt;td&gt;Its app supports multiple languages, and the plugins are not extensible&lt;/td&gt;
&lt;td&gt;Its app supports multiple languages&lt;/td&gt;
&lt;td&gt;Its app supports multiple languages, and the plugins are not extensible&lt;/td&gt;
&lt;td&gt;English, other languages can be supported by plugins&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Themes&lt;/td&gt;
&lt;td&gt;Light/Dark, global theme, plugin extensible&lt;/td&gt;
&lt;td&gt;Light/Dark, not global, plugin not extensible&lt;/td&gt;
&lt;td&gt;Its app supports multiple themes, and the plugins are not extensible&lt;/td&gt;
&lt;td&gt;Light/Dark&lt;/td&gt;
&lt;td&gt;Light/Dark, not global, plugin not extensible&lt;/td&gt;
&lt;td&gt;Light/Dark, not global, plugin not extensible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Storage&lt;/td&gt;
&lt;td&gt;Local&lt;/td&gt;
&lt;td&gt;Local/Cloud&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;Local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Sync&lt;/td&gt;
&lt;td&gt;Support (encrypted sync to your cloud drive)&lt;/td&gt;
&lt;td&gt;Only Supported by VIP (sync to uTools cloud)&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory Usage&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aggregation&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keyword Postfixed Matching&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context Menu&lt;/td&gt;
&lt;td&gt;Support (plugin extensible)&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Support (plugin not extensible)&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Yes (plugin not extensible)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preview Result of Menu&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dynamic Results/UI&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin Action Window&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tab&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toolbar&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interoperable UI&lt;/td&gt;
&lt;td&gt;Support (plugin available)&lt;/td&gt;
&lt;td&gt;Support (plugin available)&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Support (no plugin)&lt;/td&gt;
&lt;td&gt;Support (plugin unavailable)&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate Window&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Focused Mode&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hotkey&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot Corner&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cron Task&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple Lines&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input by Dragging&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin Result&lt;/td&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;That's all for now, I will add more when I think of anything else. If there are any oversights or errors, please point theme out, thanks for your understanding. &lt;code&gt;?&lt;/code&gt; means that we have not used the relevant features, we are not know the details about their, so we can't make comparisons, if you know it, please give us feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;read the full article: &lt;a href="https://myrest.top/blog/runflow_faq.md"&gt;https://myrest.top/blog/runflow_faq.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Take stock of the easily overlooked functions of productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Mon, 06 May 2024 03:04:48 +0000</pubDate>
      <link>https://dev.to/easepan/take-stock-of-the-easily-overlooked-functions-of-productivity-application-runflow-4efg</link>
      <guid>https://dev.to/easepan/take-stock-of-the-easily-overlooked-functions-of-productivity-application-runflow-4efg</guid>
      <description>&lt;p&gt;In this article, we will show you some functions which are easily overlooked but very practical of RunFlow.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't know about RunFlow yet? &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_basic_point.md"&gt;Start learning here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Pin Action Window
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft49qebs7q51042k6omb3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft49qebs7q51042k6omb3.gif" alt="Image description" width="800" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can also toggle the window pinned state by double-clicking the &lt;code&gt;Ctrl&lt;/code&gt; key, you can also customize this shortcut key on the &lt;code&gt;Hot Event&lt;/code&gt; settings page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Preview The Result of The Menu
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faizmh1f8wngqbu48cu64.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faizmh1f8wngqbu48cu64.gif" alt="Image description" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Open The Copied URL From Your Clipboard In Your Browser
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff996v0q92wb2uaa6v9s7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff996v0q92wb2uaa6v9s7.gif" alt="Image description" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Input Multiple Lines
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4de53obr7thh1oeyp0wz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4de53obr7thh1oeyp0wz.gif" alt="Image description" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Press &lt;code&gt;Ctrl+Enter&lt;/code&gt; or &lt;code&gt;Shift+Enter&lt;/code&gt; to start a new line.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Pin Result
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yj3vcj1hkvb074crswn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yj3vcj1hkvb074crswn.gif" alt="Image description" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pinned results will always display at the front of the list.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;This article takes stock of those functions that are easily overlooked but are very useful.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>buildinpublic</category>
      <category>development</category>
      <category>tooling</category>
    </item>
    <item>
      <title>The LAN transmission manual of productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Sun, 28 Apr 2024 07:31:17 +0000</pubDate>
      <link>https://dev.to/easepan/the-lan-transmission-manual-of-productivity-application-runflow-18fb</link>
      <guid>https://dev.to/easepan/the-lan-transmission-manual-of-productivity-application-runflow-18fb</guid>
      <description>&lt;p&gt;This article will show you how to use RunFlow to transfer files and synchronize the clipboard within a local area network (LAN). Whether it is a home LAN or an office LAN, you can easily transfer files and synchronize the clipboard. If you have not installed &lt;a href="https://myrest.top/myflow"&gt;RunFlow&lt;/a&gt; yet, &lt;a href="https://myrest.top/myflow/download"&gt;you can click here to download it&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why is it recommended to use LAN transmission? 1. Private, files and clipboard are transmitted within your intranet and will not be connected to any public network server, ensuring the privacy and security of your data; 2. Fast, precisely because it is transmitted within the intranet, no need to Internet environment, so the transmission can be faster.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Enabling LAN Transfer
&lt;/h3&gt;

&lt;p&gt;The LAN transfer tool is not enabled by default. To enable it, we need to jump to the settings page of the builtin plugin, scroll down, and you will see a function called &lt;code&gt;LAN Transfer&lt;/code&gt;, check it to enable LAN transfer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjaawtzhwwf4i2tkzuxjm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjaawtzhwwf4i2tkzuxjm.png" alt="Image description" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you still don't know how to open our settings page, you can start with our &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_basic_point.md"&gt;basic manual&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After successfully enabling &lt;code&gt;LAN transfer&lt;/code&gt;, enter &lt;code&gt;lan&lt;/code&gt; to open the function page, the interface is as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4dk4dbc9j6l2lrprvr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4dk4dbc9j6l2lrprvr8.png" alt="Image description" width="800" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The small green dot on the left side of the device name indicates that the service started successfully, otherwise it indicates that the startup failed. The reason for the failure is most likely that the port is occupied. It is recommended that you modify the Http port on the &lt;code&gt;General Settings&lt;/code&gt; page and restart the application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Static Files Browsing Service
&lt;/h3&gt;

&lt;p&gt;The static files browsing service can be understood as you sharing a read-only file, and other users on the same network can browse and download the file you shared. To enable the static files browsing service, first we need to check it and set a file (usually a folder) to be shared. After the setting is successfully, we can see an accessible link and open the link with a browser to browse and download files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpkz0lkvweroyt73gzlc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpkz0lkvweroyt73gzlc.png" alt="Image description" width="800" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzttjh1vo4oro7jtr4jgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzttjh1vo4oro7jtr4jgy.png" alt="Image description" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This solution can transfer files to other devices that do not have RunFlow installed, such as mobile or Linux devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Request a Connection to Transfer Files and Clipboard
&lt;/h3&gt;

&lt;p&gt;To request a connection, we first need know the IPv4 address of the other device and the port where RunFlow starts the HTTP service. In the second demonstrate image above, you can see that our interface has displayed the IPv4 address and port of the current device: &lt;code&gt;192.168.31.223:8177&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;device A requests connection to device B:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmk8vm23y76ins81r914.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmk8vm23y76ins81r914.jpg" alt="Image description" width="800" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;device B allows the connection (of course you can deny it):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8s4ove5huuwbvirqikj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8s4ove5huuwbvirqikj.png" alt="Image description" width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After allowing the connection, we can see the opposite's device name and IPv4 address, and set the relevant permissions (all turned on by default, you can customize it: 1. receive files, whether to receive files from the device; 2. push clipboard, when the clipboard changes, whether to push the clipboard to the device; 3. receive clipboard, whether to receive the clipboard pushed from the device).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67otsfsox5m3weqvpor6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67otsfsox5m3weqvpor6.png" alt="Image description" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After allowing the connection, you can happily transfer files and synchronize the clipboard (text, images and files can all be synchronized).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Request Connections with Mobile/Web or Other Devices That Do Not Have RunFlow Installed
&lt;/h3&gt;

&lt;p&gt;In the second demonstrate image about, you can see that we displayed an accessible link: &lt;code&gt;http://192.168.31.223:8177/lan&lt;/code&gt;, through this link we can let the browser connect to RunFlow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d1srh9zikzwhm15qvvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d1srh9zikzwhm15qvvw.png" alt="Image description" width="800" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d081fjw9pj2swlbkyma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d081fjw9pj2swlbkyma.png" alt="Image description" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note some limitations of requesting a connection through the browser: 1. unable to receive files; 2. unable to listen the changes of the clipboard, so pushing the clipboard is your manual behaviour; 3. unable to receive clipboard pushes from the device, but we can see the current clipboard content of the device.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;This article introduces you how to use the LAN transfer tools we provide to transfer files and synchronize the clipboard to meet the transmission of various private data.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>development</category>
      <category>tooling</category>
    </item>
    <item>
      <title>The manual of plugin AI assistant for productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Mon, 22 Apr 2024 07:41:22 +0000</pubDate>
      <link>https://dev.to/easepan/the-manual-of-plugin-ai-assistant-for-productivity-application-runflow-4p03</link>
      <guid>https://dev.to/easepan/the-manual-of-plugin-ai-assistant-for-productivity-application-runflow-4p03</guid>
      <description>&lt;p&gt;This article will introduce you the detailed usage about the plugin AI assistant of RunFlow. If you didn't know RunFlow yet, we recommend you read our &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_basic_point.md"&gt;basic&lt;/a&gt; and &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_advanced_point.md"&gt;advanced&lt;/a&gt; manuals first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Goto &lt;strong&gt;Settings&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Plugin Store&lt;/strong&gt;, then installing &lt;strong&gt;Ai Assistant&lt;/strong&gt; plugin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring OpenAI
&lt;/h3&gt;

&lt;p&gt;Apply an API Key：&lt;a href="https://platform.openai.com/account/api-keys"&gt;click here to apply an API Key from the OpenAI official website&lt;/a&gt;, we also support API Keys  from third-party agents (because some countries or regions cannot use OpenAI services).&lt;/p&gt;

&lt;p&gt;goto &lt;code&gt;Ai assistant&lt;/code&gt; settings:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhqkbia4vu61thoqqcc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhqkbia4vu61thoqqcc6.png" alt="openai_1" width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configure &lt;code&gt;API Key&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhy6zauei99c7doz5u3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhy6zauei99c7doz5u3l.png" alt="openai_2" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you cannot access the OpenAI service or applied a third-party API Key, you can set the &lt;code&gt;API Host&lt;/code&gt; (proxy server).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Single Conversation
&lt;/h3&gt;

&lt;p&gt;Input the question you want to ask the AI assistant, and then type the keyword &lt;code&gt;/&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffynjatrdpxeh6h4nh6el.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffynjatrdpxeh6h4nh6el.gif" alt="once_chat_2" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;v1.0.5 already supports single conversation by the general way selecting and pressing Enter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Continuous Conversation
&lt;/h3&gt;

&lt;p&gt;Type the keyword &lt;code&gt;/&lt;/code&gt; to enter the focused mode of AI assistant, to start a continuous conversation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dxuw8m2otq70mi6uo56.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dxuw8m2otq70mi6uo56.gif" alt="continue_chat" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In this case, we will save your consultation records locally so that you can quickly input it next time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Conversation Management
&lt;/h3&gt;

&lt;p&gt;Type the keyword &lt;code&gt;/&lt;/code&gt; to enter the focused mode of AI assistant to manage conversations. On the left side of the Action Window, you can search for historical conversations, view historical conversations (you can also continue the conversation based on historical conversation), remove historical conversations, and click the plus button to start a new conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;This article shows you how to use the AI assistant plugin we provided, for more plugins please visit our &lt;a href="https://myrest.top/store/plugin"&gt;plugin store&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>chatgpt</category>
      <category>productivity</category>
      <category>development</category>
    </item>
    <item>
      <title>The full Java developer manual of the productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Fri, 19 Apr 2024 03:45:46 +0000</pubDate>
      <link>https://dev.to/easepan/the-full-java-developer-manual-of-the-productivity-application-runflow-1ldb</link>
      <guid>https://dev.to/easepan/the-full-java-developer-manual-of-the-productivity-application-runflow-1ldb</guid>
      <description>&lt;p&gt;This manual is writing for Java developers, if you are not a Java developer, you can read our &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_developer_point.md"&gt;developer manual&lt;/a&gt;. Of course, you can continue reading if you are interested.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Typing &lt;code&gt;qe&lt;/code&gt; to enter the focused mode of QLExpress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Executing Java Code
&lt;/h3&gt;

&lt;p&gt;for math example: &lt;code&gt;Math.sin(9);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehqmc9y3iobxd6cdkwvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehqmc9y3iobxd6cdkwvw.png" alt="qe_math" width="800" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Running result: &lt;code&gt;0.4121184852417566&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;for reading system environment variables example: &lt;code&gt;top.myrest.myflow.util.Jackson.INSTANCE.toJsonString(System.getenv(), true);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88tk2lr0vii78ufwf29v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88tk2lr0vii78ufwf29v.png" alt="qe_system" width="800" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Of course, you can also format it as yaml: &lt;code&gt;top.myrest.myflow.util.Jackson.INSTANCE.toYamlString(System.getenv());&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Verifying Methods
&lt;/h3&gt;

&lt;p&gt;Sometimes, because some tooling classes have so many methods, and you are not sure which one to use, so we need to verify the execution result of the method, for example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvbimc8hj3ewlrjuhqg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvbimc8hj3ewlrjuhqg7.png" alt="qe_hutool" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;QLEpress&lt;/code&gt; brings you the ability to execute Java code at RunFlow runtime, we support execute script file which written by QLExpress syntax, &lt;a href="https://github.com/alibaba/QLExpress"&gt;click here to learn QLExpress syntax&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Meanwhile, we support develop plugin through QLExpress, &lt;a href="https://myrest.top/guide/myflow/plugin#/general-plugin-guide/general_guide?id=general-plugin-guide"&gt;click here to learn how to develop plugin with QLExpress&lt;/a&gt;. Certainly, you will get better interaction capabilities if you use Java to develop plugins, &lt;a href="https://myrest.top/guide/myflow/plugin#/jar-plugin-guide/jar_guide?id=jar-plugin-guide"&gt;welcome to click here to read our Java guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>productivity</category>
      <category>developer</category>
      <category>tooling</category>
    </item>
    <item>
      <title>The full developer manual of the productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Mon, 15 Apr 2024 12:56:25 +0000</pubDate>
      <link>https://dev.to/easepan/the-full-developer-manual-of-the-productivity-application-runflow-1cb2</link>
      <guid>https://dev.to/easepan/the-full-developer-manual-of-the-productivity-application-runflow-1cb2</guid>
      <description>&lt;p&gt;Earlier we introduced the &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_basic_point.md"&gt;basic&lt;/a&gt; and &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_advanced_point.md"&gt;advanced&lt;/a&gt; functions of RunFlow, this article is a developer manual specially prepared for developers. Let's take a look at the practical functions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Executing Commands
&lt;/h3&gt;

&lt;p&gt;type &lt;code&gt;&amp;gt;&lt;/code&gt; to enter the focused mode of command (supports recording history to make it faster to execute daily used commands):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lyfll2jsbsuov0du5p2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lyfll2jsbsuov0du5p2.gif" alt="exec_command" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Calculator
&lt;/h3&gt;

&lt;p&gt;base conversion (binary, octal and hexadecimal start with &lt;code&gt;0b&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;0x&lt;/code&gt; respectively)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lxm4qaoo39suv2aj4lo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lxm4qaoo39suv2aj4lo.gif" alt="calc_binary" width="800" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;bit operations (and &lt;code&gt;&amp;amp;&lt;/code&gt;, or &lt;code&gt;|&lt;/code&gt;, XOR &lt;code&gt;^&lt;/code&gt;, right shift &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;, left shift &lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnma2yii8xyvrc7b26bgm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnma2yii8xyvrc7b26bgm.gif" alt="calc_bit" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Datetime Calculator
&lt;/h3&gt;

&lt;p&gt;current timestamp (add a &lt;code&gt;.&lt;/code&gt; parameter to stop the real time, ie: &lt;code&gt;now.&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsnx81negsip1sz6n4hz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsnx81negsip1sz6n4hz.gif" alt="calc_now" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;timestamp to datetime (year, month, day, week, hour, minute, second millisecond are represented by &lt;code&gt;y&lt;/code&gt;, &lt;code&gt;m&lt;/code&gt;, &lt;code&gt;d&lt;/code&gt;, &lt;code&gt;w&lt;/code&gt;, &lt;code&gt;h&lt;/code&gt;, &lt;code&gt;min&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;ms&lt;/code&gt; respectively)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmi3mv5yqh15vrmfekcan.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmi3mv5yqh15vrmfekcan.gif" alt="calc_timestamp" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;offset calculation (&lt;code&gt;&amp;lt;&lt;/code&gt; offset to the past, &lt;code&gt;&amp;gt;&lt;/code&gt; offset to the future, examples: offset to the end of this week &lt;code&gt;now&amp;gt;w&lt;/code&gt;, offset to the beginning of this month &lt;code&gt;now&amp;lt;m&lt;/code&gt;, offset to the end of a certain day &lt;code&gt;2024-05-01&amp;gt;d&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7kndar3tb36ki37pj2e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7kndar3tb36ki37pj2e.gif" alt="calc_date_offset" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;addition and subtraction for datetime calculation (examples: &lt;code&gt;100y+500h+999ms&lt;/code&gt;、&lt;code&gt;2024-05-01+999min-3w&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b03pgw4p3vk95wcfh99.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b03pgw4p3vk95wcfh99.gif" alt="calc_date" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;calculate the difference in days between two date (the datetime format at both ends must be consistent, examples: &lt;code&gt;2024-07-01-2024-01-01&lt;/code&gt;、&lt;code&gt;20241231-20231231&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnxqwwmgyo7cjxwk81h3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnxqwwmgyo7cjxwk81h3.gif" alt="calc_day_between" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Supported formats for datetime: &lt;code&gt;yyyymmdd&lt;/code&gt;、&lt;code&gt;yyyy-mm-dd&lt;/code&gt;、&lt;code&gt;yyyyMMddHHmmss&lt;/code&gt;、&lt;code&gt;yyyyMMdd HHmmss&lt;/code&gt;、&lt;code&gt;yyyyMMddHHmmssSSS&lt;/code&gt;、&lt;code&gt;yyyyMMdd HHmmssSSS&lt;/code&gt;、&lt;code&gt;yyyy-MM-dd HH:mm:ss&lt;/code&gt;、&lt;code&gt;yyyy-MM-dd HH:mm:ss.SSS&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Random Generator
&lt;/h3&gt;

&lt;p&gt;Examples: &lt;code&gt;random abc 16&lt;/code&gt; random 16 lowercase and uppercase letters, &lt;code&gt;random abc upper 16&lt;/code&gt; random 16 uppercase letters, &lt;code&gt;random abc lower 16&lt;/code&gt; random 16 lowercase letters, &lt;code&gt;random int 100,999&lt;/code&gt; a random number from 100 to 999, &lt;code&gt;random color&lt;/code&gt; a random color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbpjhxxfbm3yy9wapytb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbpjhxxfbm3yy9wapytb.gif" alt="random_generator" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Tools
&lt;/h3&gt;

&lt;p&gt;We also provided a developer tools plugin, that include functions: coding naming style conversion, color parsing, CRON expression parsing, Base32 and Base64 encoding and decoding, Sha256 and MD5 encryption, UUID generator, letter uppercase and lowercase conversion, etc. &lt;a href="https://myrest.top/store/plugin?id=top.myrest.myflow.developer"&gt;The Plugin Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjm3x6jtpjhbgcpwxq0p.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjm3x6jtpjhbgcpwxq0p.gif" alt="plugin_developer_tools" width="800" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;This article introduces some commonly used functions by developers. If you wish to develop plugins, welcome to read our &lt;a href="https://myrest.top/guide/myflow/plugin"&gt;plugin development guide&lt;/a&gt;. If you are a Java developer, we have also prepared a Java developer manual, welcome to read it.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>frontend</category>
      <category>backend</category>
      <category>development</category>
    </item>
    <item>
      <title>The fully advanced manual of the productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Sun, 07 Apr 2024 13:05:48 +0000</pubDate>
      <link>https://dev.to/easepan/the-fully-advanced-manual-of-the-productivity-application-runflow-24jb</link>
      <guid>https://dev.to/easepan/the-fully-advanced-manual-of-the-productivity-application-runflow-24jb</guid>
      <description>&lt;p&gt;Welcome to our advanced manual of the RunFlow, if you don't know RunFlow yet, we recommend you read our &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_advanced_point.md"&gt;fundamental manual&lt;/a&gt; first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Searching Files
&lt;/h3&gt;

&lt;p&gt;Appending &lt;code&gt;len&lt;/code&gt; parameter to filter files by size, such as: &lt;code&gt;len:1kb-2kb&lt;/code&gt;, &lt;code&gt;len:3mb-5mb&lt;/code&gt; etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a6xe77hmnohynnqrgek.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a6xe77hmnohynnqrgek.gif" alt="find_file" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;**&lt;/code&gt; can match multi-level directories. For an instance, finding files which start with &lt;code&gt;test&lt;/code&gt; in the folder &lt;code&gt;folder_a&lt;/code&gt;, we can input like this: &lt;code&gt;folder_a/**/test&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Calculator
&lt;/h3&gt;

&lt;p&gt;We have two preset irrational numbers &lt;code&gt;e&lt;/code&gt; and &lt;code&gt;pi&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p8h5kocu5ab2dtkl88a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1p8h5kocu5ab2dtkl88a.gif" alt="pi_and_e" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Calculating big numbers, if you want to calculate &lt;code&gt;9999999999999999999*9999999999999999999&lt;/code&gt;, there is no result if you input it directly like this. We should append a &lt;code&gt;d&lt;/code&gt; parameter after the number, like this: &lt;code&gt;9999999999999999999d*9999999999999999999d&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwmolhvk1dn9cdc2y9zb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwmolhvk1dn9cdc2y9zb.gif" alt="calc_big" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Unwrap Folder
&lt;/h3&gt;

&lt;p&gt;Suppose we have a folder in the below example, and now we need to delete the folder and bring all the files to the same directory, the &lt;code&gt;folderunwrap&lt;/code&gt; will be helpful.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;folder
├─text_01.txt
├─text_02.txt     
├─folder01
│ ├─text_03.txt
│ └─text_04.txt
└─folder02
  └─folder03
    ├─text_05.txt
    └─text_06.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After unwrap the folder, all the files at the same directory level:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text_01.txt
text_02.txt
text_03.txt
text_04.txt
text_05.txt
text_06.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc14ntux2wp4ibn0pwh2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc14ntux2wp4ibn0pwh2.gif" alt="unwrap_folder" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Running in Separate Window
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h2z5yno9zdygjicxft7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h2z5yno9zdygjicxft7.gif" alt="separate_window" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Importing and Exporting Data
&lt;/h3&gt;

&lt;p&gt;We support exporting data as JSON format, and importing data also needs to be the JSON format.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Synchronization
&lt;/h3&gt;

&lt;h5&gt;
  
  
  Local Synchronized Service
&lt;/h5&gt;

&lt;p&gt;The local-based synchronized service is our builtin function, which relies on third-party cloud service, such as Onedrive, iCloud, Google Drive and Dropbox, etc.&lt;/p&gt;

&lt;p&gt;Here I use my usually used OneDrive as an example, the other cloud synchronization is the same. We can first create a new folder &lt;code&gt;MyFlow&lt;/code&gt; in OneDrive to store the data that needs to be synchronized, and then open the settings page of data synchronization, turn on the &lt;code&gt;Data Sync Service Based On Local&lt;/code&gt;, and set the folder where the data is located. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yy9gar6d7h65dbuutr4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yy9gar6d7h65dbuutr4.gif" alt="data_sync" width="800" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Telling you a secret, turning on the data synchronization service will enable you to synchronize your clipboard.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Scheduled Tasks
&lt;/h3&gt;

&lt;p&gt;In the settings page of hot events, we can use Cron expressions to set scheduled tasks, such as regularly cleaning the computer recycle bin, and recreating file indexes, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0nqf8kob4vu8camzsht.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0nqf8kob4vu8camzsht.gif" alt="cron" width="800" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a brief explanation of the cron expression:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;second(0-59)&lt;/th&gt;
&lt;th&gt;minute(0-59)&lt;/th&gt;
&lt;th&gt;hour(0-23)&lt;/th&gt;
&lt;th&gt;day-of-month(1-31)&lt;/th&gt;
&lt;th&gt;month(1-12)&lt;/th&gt;
&lt;th&gt;week(0-7, both 0 and 7 are sunday)&lt;/th&gt;
&lt;th&gt;explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;executing at 12:00 every day&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;executing at 12:00 every month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Cron"&gt;Learn more information about cron&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;Here is all about the commonly advanced builtin functions of RunFlow, if you need more functions, you can visit our &lt;a href="https://myrest.top/store/plugin"&gt;plugin store&lt;/a&gt;. If you are a developer, welcome to read our developer manual and submit plugins.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>development</category>
      <category>tooling</category>
      <category>cron</category>
    </item>
    <item>
      <title>The fully fundamental manual of the productivity application RunFlow</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Wed, 03 Apr 2024 06:55:02 +0000</pubDate>
      <link>https://dev.to/easepan/the-fully-fundamental-manual-of-the-productivity-application-runflow-2e4b</link>
      <guid>https://dev.to/easepan/the-fully-fundamental-manual-of-the-productivity-application-runflow-2e4b</guid>
      <description>&lt;p&gt;RunFlow is a new powerful productivity application developed by us. This article is the basic manual of the RunFlow's skills, and also for the function demonstrations. &lt;a href="https://github.com/myrestop/myblog/blob/master/runflow_first_release.md"&gt;If you want to know what new features we have, you can read this article&lt;/a&gt;, here is no details about this. Let's get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keyword
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Keyword&lt;/code&gt; is our a main feature, a function usually consists of one or more keywords, and you can customize all of these keywords. If you don't like the default keyword, you can customize it with your preference. Then to trigger the function, we only need to type the associated keyword, that makes everything more efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Download and Install
&lt;/h3&gt;

&lt;p&gt;This is the prerequisite for experiencing RunFlow, there is not much to introduce, &lt;a href="https://myrest.top/myflow/download"&gt;&lt;strong&gt;please click here to download and install&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Sense
&lt;/h3&gt;

&lt;p&gt;In Windows, you can press the hotkey &lt;code&gt;Windows+Space&lt;/code&gt; to show or hide our Action Window, and in macOS, you can press &lt;code&gt;Command+Space&lt;/code&gt; to show or hide it.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Enter&lt;/code&gt; key can be used to quickly execute the selected result.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Alt&lt;/code&gt; key can popup the context menu or refreshes the result.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Tab&lt;/code&gt; key can quickly help us complete the input. It can directly let the suggested text or title which provided by the result as the input content, like the under example: jump to the plugin store.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ficpqr2zizc9yd0i1aotn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ficpqr2zizc9yd0i1aotn.gif" alt="tab_intro" width="800" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  General Settings
&lt;/h3&gt;

&lt;p&gt;Typing &lt;code&gt;settings general&lt;/code&gt;, then press &lt;code&gt;Enter&lt;/code&gt; to jump to General Settings page, which can set languages, themes and placeholders, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhly4wf8ohcayfrbyylny.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhly4wf8ohcayfrbyylny.gif" alt="general_settings" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Control Your Computer
&lt;/h3&gt;

&lt;p&gt;Typing &lt;code&gt;settings builtin&lt;/code&gt; jump to Builtin Settings page to see what system commands we support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalgin6em39perrsqyz8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwalgin6em39perrsqyz8.gif" alt="ssytem_commmands" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Keyword&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emptytrash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;clean computer recycle bin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lock&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;lock computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;restart&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;restart computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;shutdown&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;shutdown computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sleep&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;sleep computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;screensaver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;open system screen saver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sleepdispaly&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;sleep computer displays&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;logout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;logout computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;taskviewer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;open system task viewer (only Windows support)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;quit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;quit applications&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here, we use quiting applications as the demonstration:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnznm2s9jldqxnwn9n4a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frnznm2s9jldqxnwn9n4a.gif" alt="quit_app" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dragging Input
&lt;/h3&gt;

&lt;p&gt;Whether it is a file or text, you can input by dragging (ensure the Action Windows is pinned before dragging to avoid hiding it because lost focus, you can pin or unpin it by double-pressing the &lt;code&gt;Ctrl&lt;/code&gt; key or clicking the pin button in the top right corner).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy29jm0t774hgy309bjuc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy29jm0t774hgy309bjuc.gif" alt="drag_input" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Searching Files
&lt;/h3&gt;

&lt;p&gt;find files (append &lt;code&gt;file&lt;/code&gt; parameter to find files only)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8iu6rkev23pajfr3663.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8iu6rkev23pajfr3663.gif" alt="find_file" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;preview files&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg9g0ft8ypm8azrh42ec5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg9g0ft8ypm8azrh42ec5.gif" alt="preview_file" width="800" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;find folders (append &lt;code&gt;dir&lt;/code&gt; parameter to find folders only)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftp74ef3p1spwrvgmw1zy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftp74ef3p1spwrvgmw1zy.gif" alt="find_folder" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;find applications (append &lt;code&gt;app&lt;/code&gt; parameter to find applications only)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zhwy3dt6fv1lfx6nmuh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2zhwy3dt6fv1lfx6nmuh.gif" alt="find_app" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;?&lt;/code&gt; matches any single character, &lt;code&gt;*&lt;/code&gt; matches any one or more characters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Calculator
&lt;/h3&gt;

&lt;p&gt;We support basic mathematical arithmetic operations and remainder operations, as well as linear equations of one variable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pvh2irv6u383ro564wv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pvh2irv6u383ro564wv.gif" alt="calculator" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;%&lt;/code&gt; is the remainder operation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Clipboards
&lt;/h3&gt;

&lt;p&gt;Clipboards will save you copied text, files and images.&lt;/p&gt;

&lt;p&gt;find clipboard (only text)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzf01kbecnmmz0oevwext.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzf01kbecnmmz0oevwext.gif" alt="find_clipboard" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;open clipboard func page (manage texts, files and images)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsauwh8hz6lunmp2apmzy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsauwh8hz6lunmp2apmzy.gif" alt="clipboard_func" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  QRCode
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3f8mdirlzq2wsa7m2gjx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3f8mdirlzq2wsa7m2gjx.gif" alt="qrcode" width="800" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Customizing Hotkey
&lt;/h3&gt;

&lt;p&gt;We support two types of shortcut keys, one is the regular combined hotkeys, such as &lt;code&gt;Windows+Space&lt;/code&gt;. And the another type is to click a certain key multiple times, such as double-pressing &lt;code&gt;Ctrl&lt;/code&gt; mentioned above to toggle the pinned state of the Action Window, we mark it as &lt;code&gt;Ctrl*2&lt;/code&gt;, of course you can also change it to &lt;code&gt;Alt*2&lt;/code&gt; or even &lt;code&gt;Ctrl*3&lt;/code&gt; or any other hotkeys according to your preference.&lt;/p&gt;

&lt;p&gt;Open the settings page of hot event to customize the hotkeys. Here we change the default &lt;code&gt;Windows+Space&lt;/code&gt; and &lt;code&gt;Ctrl*2&lt;/code&gt; to &lt;code&gt;Ctrl+Space&lt;/code&gt; and &lt;code&gt;Alt*2&lt;/code&gt; that toggle the Action Window visible state and the pinned state respectively as a demonstration. In actually experience, you can change to any other you liked hotkeys, and also set hotkey for other functions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feq1mtpqj9atgpscl03gw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feq1mtpqj9atgpscl03gw.gif" alt="hotkey" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Customizing Hot Corner
&lt;/h3&gt;

&lt;p&gt;The hot corner is a very useful feature, it can be triggered when you move the mouse to the edge of the screen. Here we will demonstrate you open task viewer when the mouse moves to the top right corner and lock screen when the mouse moves to the bottom right corner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipa65oorqtetlssiay6n.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipa65oorqtetlssiay6n.gif" alt="hot_corner" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pining Keyword
&lt;/h3&gt;

&lt;p&gt;In the default tab &lt;code&gt;All&lt;/code&gt;, all keywords will be queried and the results will be aggregated displayed, but here has a size limitation. If you wish to focus on a specified keyword to avoid be disturbed by others, or want to see more results, you may need to pin the keyword, such as finding files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b3i5hjnoyv6jc618dci.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b3i5hjnoyv6jc618dci.gif" alt="pin_keyword" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Timer
&lt;/h3&gt;

&lt;p&gt;supports positive timing and negative timing (you can save the negative timing by pressing &lt;code&gt;Enter&lt;/code&gt; or double-clicking the mouse)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5pnaku14v9a0zl2i5s5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5pnaku14v9a0zl2i5s5.gif" alt="timer" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Batch Renaming Files
&lt;/h3&gt;

&lt;p&gt;When you want to rename a series of files in a fixed format, this function maybe able to solve your troubles. Batch renaming files supports formatting, replacing, inserting and appending text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxz972iya1b4c4j75r4q9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxz972iya1b4c4j75r4q9.gif" alt="file_rename" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;Okay, that's all the RunFlow fundamental manual, hoping this app will be helpful for you. If you wish to know more, let's see you in the advanced chapter.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>java</category>
      <category>kotlin</category>
      <category>development</category>
    </item>
    <item>
      <title>We released a new powerful efficiency tool called RunFlow, which is similar to PowerToys and Alfred, welcome to try it</title>
      <dc:creator>Mr.Pan</dc:creator>
      <pubDate>Wed, 20 Mar 2024 09:57:24 +0000</pubDate>
      <link>https://dev.to/easepan/we-released-a-new-powerful-efficiency-tool-called-runflow-which-is-similar-to-powertoys-and-alfred-welcome-to-try-it-3h5o</link>
      <guid>https://dev.to/easepan/we-released-a-new-powerful-efficiency-tool-called-runflow-which-is-similar-to-powertoys-and-alfred-welcome-to-try-it-3h5o</guid>
      <description>&lt;p&gt;Hi guys, we released a new powerful efficiency tool called RunFlow, please feel free to try it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://myrest.top/myflow"&gt;&lt;strong&gt;RunFlow&lt;/strong&gt;&lt;/a&gt; is a cross-platform productivity tool which can launch apps and search files and more, that similar to &lt;a href="https://github.com/Wox-launcher/Wox"&gt;Wox&lt;/a&gt; and &lt;a href="https://github.com/microsoft/PowerToys"&gt;PowerToys&lt;/a&gt; on Windows, and also similar like &lt;a href="https://www.alfredapp.com"&gt;Alfred&lt;/a&gt; and &lt;a href="https://www.raycast.com"&gt;Raycast&lt;/a&gt; on macOS. But we have differences with these tools, and we have our own unique new features. Right now, at the below, we will introduce you what features of RunFlow have been implemented in more details. It's an amazing journey, let's start.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross Platform
&lt;/h3&gt;

&lt;p&gt;The first main feature is cross-platform. Let you have a unified UI and operation experience when working cross-platform, do not need to switch tools.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But Unfortunately for Linux users, the first edition of RunFlow have some fatal problems on Linux, so, currently, Linux is not supported yet. But we will try more efforts to fix these problems to make RunFlow working fine on Linux, and Linux will get support eventually.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Multiple Languages
&lt;/h3&gt;

&lt;p&gt;RunFlow support multiple languages, but by default, we only have english and simplified chinese. If you prefer to other languages, you can go to our &lt;a href="https://myrest.top/store/plugin?query=language"&gt;plugin store&lt;/a&gt; to find a language translator, after you installed the plugin, you can choose your preferred language.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customizable Style and Theme
&lt;/h3&gt;

&lt;p&gt;Here we want to introduce you one of our design philosophy is that we allow user to highly customize most things, so we allow plugin to provide one or more window style and theme, to let you choose what you preferred.&lt;/p&gt;

&lt;h3&gt;
  
  
  Triggered by Keyword
&lt;/h3&gt;

&lt;p&gt;In RunFlow, a function must be provided by keyword, unless some specials, such as language translator, theme provider and data sync service, etc. So likewise, a new keyword always mean a new function, and most of the plugins you installed also consist by keywords.&lt;/p&gt;

&lt;p&gt;To use the function of the keyword, the most commonly way is just typing the keyword, if the function don't need any arguments, you can see the result row at the below, then to execute the result you can press &lt;code&gt;Enter&lt;/code&gt; (ensure the result row is at the front, if not, you should press &lt;code&gt;Up&lt;/code&gt; or &lt;code&gt;Down&lt;/code&gt; to active it, or move mouse to hover on it) or double-click the result row.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IH9xRtGw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/lock_computer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IH9xRtGw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/lock_computer.png" alt="lock_computer" width="800" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the function need one or more arguments, you should type a whitespace to separate the keyword and argument (multiple arguments also use whitespace to separate). For example, typing &lt;code&gt;timer start&lt;/code&gt; to start a timer, the &lt;code&gt;timer&lt;/code&gt; is a keyword, the &lt;code&gt;start&lt;/code&gt; is an argument.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--drpJkS_f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/timer_start.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--drpJkS_f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/timer_start.gif" alt="timer_start" width="600" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, if you input &lt;code&gt;start timer&lt;/code&gt; is also work, in this case, &lt;code&gt;timer&lt;/code&gt; is still the keyword, &lt;code&gt;start&lt;/code&gt; is also still the argument, why this situation is ok?&lt;/p&gt;

&lt;p&gt;Because we support the &lt;strong&gt;&lt;code&gt;postfixed matching&lt;/code&gt;&lt;/strong&gt;, this feature allow you input the arguments first, input the keyword at last, this will be useful in some cases. For example, if you want to encode some literal by base64, you copied or dragged or typed the text as the argument first, but you forgot to type the keyword &lt;code&gt;base64&lt;/code&gt; at the front, if we don't have the &lt;strong&gt;&lt;code&gt;postfixed matching&lt;/code&gt;&lt;/strong&gt; feature, you must move cursor to the front, then type keyword &lt;code&gt;base64&lt;/code&gt; and a whitespace to separate keyword and argument, fortunately, we have, you just need to append the keyword after the text (also need a whitespace to separate), such as &lt;code&gt;myrest.top base64&lt;/code&gt; to encode text &lt;code&gt;myrest.top&lt;/code&gt; by base64.&lt;/p&gt;

&lt;p&gt;The most useful of the &lt;strong&gt;&lt;code&gt;postfixed&lt;/code&gt;&lt;/strong&gt; feature is for &lt;strong&gt;&lt;code&gt;special keyword&lt;/code&gt;&lt;/strong&gt;. &lt;strong&gt;When a keyword starts with symbol not letter or digit, we mark it as a special keyword, and when a special keyword work with &lt;code&gt;postfixed&lt;/code&gt; feature, we no longer need to use a whitespace to separate the keyword and the argument.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Right now, let's see an example about the special keyword &lt;code&gt;/&lt;/code&gt; that was provided by our plugin &lt;a href="https://myrest.top/store/plugin?id=top.myrest.myflow.ai"&gt;Ai Assistant&lt;/a&gt;, it can chat with AI, such as ChatGPT. This is very useful when you want to ask some questions, then just type the keyword to trigger the function.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kU0GN0Hg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/ai.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kU0GN0Hg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/ai.gif" alt="ai" width="600" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The keyword &lt;code&gt;base64&lt;/code&gt; and &lt;code&gt;/&lt;/code&gt; mentioned above are not builtin functions, you can find keyword &lt;a href="https://myrest.top/store/plugin?query=base64"&gt;&lt;code&gt;base64&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://myrest.top/store/plugin?query=/"&gt;&lt;code&gt;/&lt;/code&gt;&lt;/a&gt; in plugin store.&lt;/p&gt;

&lt;p&gt;Don't worry about all of these keywords you may think you should remember them, we have a keyword suggestion function that can infer what you want to do by prefix matching. So you don't need to remember keywords, our &lt;code&gt;suggestion&lt;/code&gt; will help you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Refreshable Result
&lt;/h3&gt;

&lt;p&gt;Through the above examples, you have seen our UI of the result can be refreshed in real time. Let's see another example about the refreshable result: type keyword &lt;code&gt;random&lt;/code&gt; to obtain a random string, that returned result is static and immutable, but if the result is unsatisfied to you, you can press &lt;code&gt;Alt&lt;/code&gt; to refresh it to get a new random string or click &lt;code&gt;refresh&lt;/code&gt; button on the right side.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fa5vKezQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/random.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fa5vKezQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/random.gif" alt="random" width="600" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Context Menu of Result
&lt;/h3&gt;

&lt;p&gt;Context menu of result, we also call it &lt;code&gt;Result Callback Extension&lt;/code&gt;. Like you find files in file browser, you can right-click on file, then pop a context menu that show multiple operations. So RunFlow also do it, but not just for files, any other types can also have context menu. And in RunFlow, we use &lt;code&gt;Alt&lt;/code&gt; key instead of right-click to pop the dialog.&lt;/p&gt;

&lt;p&gt;Let's show you an example by a file, we press &lt;code&gt;Alt&lt;/code&gt; to pop the context menu, and then you can press &lt;code&gt;Up&lt;/code&gt; or &lt;code&gt;Down&lt;/code&gt; to select to you preferred item, then press &lt;code&gt;Enter&lt;/code&gt; to execute it, or use mouse double-click it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SAOR6Wxf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_alt_context_menu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SAOR6Wxf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_alt_context_menu.png" alt="context_menu" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also want to show you another way to present the context menu, only need move the mouse to hover the &lt;code&gt;context menu&lt;/code&gt; icon on the right side. Let's look a sample.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E4OnBJzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/file_hover_context_menu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E4OnBJzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/file_hover_context_menu.gif" alt="context_menu" width="600" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Toolbar
&lt;/h3&gt;

&lt;p&gt;A toolbar, that can quickly access functions for your daily usage. In the above examples, you have seen toolbar at the top right. You can customize toolbar at &lt;strong&gt;General Settings&lt;/strong&gt; page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pinned Keyword
&lt;/h3&gt;

&lt;p&gt;After pinned a keyword, we will create a new tab to display the keyword, working under this tab, you no longer to type the keyword, and you do not be disturbed by other keywords.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tl9cp-wL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/pin_file.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tl9cp-wL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/pin_file.png" alt="pin_file" width="800" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Interoperable UI
&lt;/h3&gt;

&lt;p&gt;The earlier mentioned examples are interactive with a textfield, but if we have much more complex logics and need more user inputs, how to do that? Luckily, we have a feature we call it &lt;code&gt;Func Page&lt;/code&gt;, so don't worry about the complicated interaction, like our &lt;code&gt;file batch rename&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h-d_59Xs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_rename.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h-d_59Xs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_rename.png" alt="file_rename" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate Window
&lt;/h3&gt;

&lt;p&gt;If you don't like multiple tabs on our action window, or you don't want to switch between multiple tabs. You can right-click the tab name, then you will see a popped button &lt;code&gt;Run In Separate  Window&lt;/code&gt;, like this after you executed it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hc4BSsK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_in_separate_window.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hc4BSsK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://myrest.top/local/myblog/images/file_in_separate_window.png" alt="file_in_separate_widow" width="800" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hot Event
&lt;/h3&gt;

&lt;p&gt;Hot event is another quickly way to trigger a function of keyword. Currently, we support hot corner, mouse long click event, hotkey and cron expression, you can customize all of these hot events to trigger what functions you want to execute.&lt;/p&gt;

&lt;h3&gt;
  
  
  Focused Mode
&lt;/h3&gt;

&lt;p&gt;Focused mode is different from pinned keyword, that do not create a new tab, but the same point is they are both don't be disturbed by other keywords. Another point is, focused mode usually required developer to do some additional jobs.&lt;/p&gt;

&lt;p&gt;Let's see a commandline example in focused mode (triggered by keyword &lt;code&gt;&amp;gt;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T7GtGhyw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/commandline.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T7GtGhyw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://myrest.top/local/myblog/images/commandline.gif" alt="commandline" width="600" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Security and Synchronization
&lt;/h3&gt;

&lt;p&gt;Your data is encrypted and stored locally, we do not upload your data to any clouds. So you do not about the issues about data security.&lt;/p&gt;

&lt;p&gt;But if you want to synchronize these data across platforms, it will be a little tedious by our default implementation, see &lt;a href="https://myrest.top/guide/myflow/user#/?id=sync-data"&gt;how to synchronize data&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugins
&lt;/h3&gt;

&lt;p&gt;We support extending RunFlow functionalities through plugins, and our requirements for plugins are very loosely. So plugin can do much more complicated things, giving plugin unlimited possibilities.&lt;/p&gt;

&lt;p&gt;We have a builtin plugin that bundled with RunFlow, that provide many common functions, learn more about our &lt;a href="https://myrest.top/store/plugin?id=top.myrest.myflow.builtin"&gt;builtin plugin&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developing Plugin
&lt;/h3&gt;

&lt;p&gt;Here, we want to say something to developers. &lt;/p&gt;

&lt;p&gt;To develop a RunFlow plugin is very simple, there is no limitation for programming languages. But because RunFlow is built on Compose Multiplatform which powered by JetBrains, so it would be better if you familiar with Java and Kotlin.&lt;/p&gt;

&lt;p&gt;We welcome developers to develop and submit plugins, please see our &lt;a href="https://myrest.top/guide/myflow/plugin"&gt;plugin guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks
&lt;/h3&gt;

&lt;p&gt;Thanks for your patience to read this article, if you feel this tool is helpful to you, please help us to spread it, we need your publicity, thanks again.&lt;/p&gt;

&lt;p&gt;See our &lt;a href="https://myrest.top/myflow"&gt;product page&lt;/a&gt;, and you can download RunFlow by this &lt;a href="https://myrest.top/myflow/download"&gt;&lt;strong&gt;link&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any problems, please feel free to give us a feedback, we would love to hear from you.&lt;/p&gt;

&lt;p&gt;Thank you all :)&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>java</category>
      <category>kotlin</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
