Created
May 28, 2025 16:43
-
-
Save brucmao/495e664bd84be7839c33c52cbfbdd948 to your computer and use it in GitHub Desktop.
SyncClipboard 配合tasker 将手机剪贴板自动同步到电脑
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<TaskerData sr="" dvi="1" tv="6.4.15"> | |
<Profile sr="prof3" ve="2"> | |
<cdate>1748421533663</cdate> | |
<edate>1748443921337</edate> | |
<flags>8</flags> | |
<id>3</id> | |
<mid0>2</mid0> | |
<nme>剪贴板监控</nme> | |
<Event sr="con0" ve="2"> | |
<code>2097</code> | |
<pri>0</pri> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%cl_extras | |
Extras | |
Optional extra info in JSON format that the clipboard may contains</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%cl_html_text | |
HTML Text | |
Current clipboard text if set as HTML text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%cl_image_uri | |
Image URI | |
If the URI corresponds to an image, this will have a value</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%cl_mimetypes() | |
Mime Type | |
The types of data that the clipboard contains</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%cl_text | |
Text | |
Current clipboard text</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%cl_uri | |
URI | |
Current clipboard URI (could be image or something else)</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
</Vals> | |
</Bundle> | |
<Int sr="arg1" val="1"/> | |
</Event> | |
</Profile> | |
<Task sr="task2"> | |
<cdate>1712501709775</cdate> | |
<edate>1748449052289</edate> | |
<id>2</id> | |
<nme>文本到电脑</nme> | |
<pri>6</pri> | |
<Action sr="act0" ve="7"> | |
<code>123</code> | |
<Str sr="arg0" ve="3">dumpsys activity recents | grep 'Recent #0' | grep -v 'com.termux' | head -n 1 | sed -n 's/.*:\(com[^}]*\)\(}\)*$/\1/p'</Str> | |
<Int sr="arg1" val="0"/> | |
<Int sr="arg2" val="1"/> | |
<Str sr="arg3" ve="3">%last_app</Str> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Int sr="arg7" val="0"/> | |
</Action> | |
<Action sr="act1" ve="7"> | |
<code>123</code> | |
<Str sr="arg0" ve="3">am start -n com.termux/com.termux.app.TermuxActivity</Str> | |
<Int sr="arg1" val="0"/> | |
<Int sr="arg2" val="1"/> | |
<Str sr="arg3" ve="3"/> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Int sr="arg7" val="0"/> | |
</Action> | |
<Action sr="act10" ve="7"> | |
<code>548</code> | |
<Str sr="arg0" ve="3">%stdout-推送成功!</Str> | |
<Int sr="arg1" val="0"/> | |
<Str sr="arg10" ve="3"/> | |
<Int sr="arg11" val="1"/> | |
<Int sr="arg12" val="0"/> | |
<Str sr="arg13" ve="3"/> | |
<Int sr="arg14" val="0"/> | |
<Str sr="arg15" ve="3"/> | |
<Int sr="arg2" val="0"/> | |
<Str sr="arg3" ve="3"/> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Str sr="arg6" ve="3"/> | |
<Str sr="arg7" ve="3"/> | |
<Str sr="arg8" ve="3"/> | |
<Int sr="arg9" val="1"/> | |
</Action> | |
<Action sr="act11" ve="7"> | |
<code>43</code> | |
</Action> | |
<Action sr="act12" ve="7"> | |
<code>548</code> | |
<Str sr="arg0" ve="3">%stdout-推送失败!</Str> | |
<Int sr="arg1" val="0"/> | |
<Str sr="arg10" ve="3"/> | |
<Int sr="arg11" val="1"/> | |
<Int sr="arg12" val="0"/> | |
<Str sr="arg13" ve="3"/> | |
<Int sr="arg14" val="0"/> | |
<Str sr="arg15" ve="3"/> | |
<Int sr="arg2" val="0"/> | |
<Str sr="arg3" ve="3"/> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Str sr="arg6" ve="3"/> | |
<Str sr="arg7" ve="3"/> | |
<Str sr="arg8" ve="3"/> | |
<Int sr="arg9" val="1"/> | |
</Action> | |
<Action sr="act13" ve="7"> | |
<code>38</code> | |
</Action> | |
<Action sr="act14" ve="7"> | |
<code>123</code> | |
<Str sr="arg0" ve="3">monkey -p %last_app -c android.intent.category.LAUNCHER 1</Str> | |
<Int sr="arg1" val="0"/> | |
<Int sr="arg2" val="1"/> | |
<Str sr="arg3" ve="3"/> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Int sr="arg7" val="0"/> | |
</Action> | |
<Action sr="act2" ve="7"> | |
<code>1256900802</code> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<com.termux.execute.arguments>termux-clipboard-get</com.termux.execute.arguments> | |
<com.termux.execute.arguments-type>java.lang.String</com.termux.execute.arguments-type> | |
<com.termux.tasker.extra.BACKGROUND_CUSTOM_LOG_LEVEL><null></com.termux.tasker.extra.BACKGROUND_CUSTOM_LOG_LEVEL> | |
<com.termux.tasker.extra.BACKGROUND_CUSTOM_LOG_LEVEL-type>java.lang.String</com.termux.tasker.extra.BACKGROUND_CUSTOM_LOG_LEVEL-type> | |
<com.termux.tasker.extra.EXECUTABLE>tudo</com.termux.tasker.extra.EXECUTABLE> | |
<com.termux.tasker.extra.EXECUTABLE-type>java.lang.String</com.termux.tasker.extra.EXECUTABLE-type> | |
<com.termux.tasker.extra.SESSION_ACTION><null></com.termux.tasker.extra.SESSION_ACTION> | |
<com.termux.tasker.extra.SESSION_ACTION-type>java.lang.String</com.termux.tasker.extra.SESSION_ACTION-type> | |
<com.termux.tasker.extra.STDIN></com.termux.tasker.extra.STDIN> | |
<com.termux.tasker.extra.STDIN-type>java.lang.String</com.termux.tasker.extra.STDIN-type> | |
<com.termux.tasker.extra.TERMINAL>false</com.termux.tasker.extra.TERMINAL> | |
<com.termux.tasker.extra.TERMINAL-type>java.lang.Boolean</com.termux.tasker.extra.TERMINAL-type> | |
<com.termux.tasker.extra.VERSION_CODE>6</com.termux.tasker.extra.VERSION_CODE> | |
<com.termux.tasker.extra.VERSION_CODE-type>java.lang.Integer</com.termux.tasker.extra.VERSION_CODE-type> | |
<com.termux.tasker.extra.WAIT_FOR_RESULT>true</com.termux.tasker.extra.WAIT_FOR_RESULT> | |
<com.termux.tasker.extra.WAIT_FOR_RESULT-type>java.lang.Boolean</com.termux.tasker.extra.WAIT_FOR_RESULT-type> | |
<com.termux.tasker.extra.WORKDIR><null></com.termux.tasker.extra.WORKDIR> | |
<com.termux.tasker.extra.WORKDIR-type>java.lang.String</com.termux.tasker.extra.WORKDIR-type> | |
<com.twofortyfouram.locale.intent.extra.BLURB>tudo termux-clipboard-get | |
Working Directory ✕ | |
Stdin ✕ | |
Custom Log Level null | |
Terminal Session ✕ | |
Wait For Result ✓</com.twofortyfouram.locale.intent.extra.BLURB> | |
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%stdout | |
Standard Output | |
The &lt;B&gt;stdout&lt;/B&gt; of the command.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%stdout_original_length | |
Standard Output Original Length | |
The original length of &lt;B&gt;stdout&lt;/B&gt;.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%stderr | |
Standard Error | |
The &lt;B&gt;stderr&lt;/B&gt; of the command.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%stderr_original_length | |
Standard Error Original Length | |
The original length of &lt;B&gt;stderr&lt;/B&gt;.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%result | |
Exit Code | |
The &lt;B&gt;exit code&lt;/B&gt; of the command.0 often means success and anything else is usually a failure of some sort.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>com.termux.tasker.extra.EXECUTABLE com.termux.execute.arguments com.termux.tasker.extra.WORKDIR com.termux.tasker.extra.STDIN com.termux.tasker.extra.SESSION_ACTION com.termux.tasker.extra.BACKGROUND_CUSTOM_LOG_LEVEL</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS> | |
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type> | |
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> | |
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> | |
</Vals> | |
</Bundle> | |
<Str sr="arg1" ve="3">com.termux.tasker</Str> | |
<Str sr="arg2" ve="3">com.termux.tasker.EditConfigurationActivity</Str> | |
<Int sr="arg3" val="10"/> | |
<Int sr="arg4" val="1"/> | |
</Action> | |
<Action sr="act3" ve="7"> | |
<code>547</code> | |
<Str sr="arg0" ve="3">%cliptext</Str> | |
<Str sr="arg1" ve="3">%stdout</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<Int sr="arg4" val="0"/> | |
<Int sr="arg5" val="3"/> | |
<Int sr="arg6" val="1"/> | |
</Action> | |
<Action sr="act4" ve="7"> | |
<code>598</code> | |
<Str sr="arg0" ve="3">%cliptext</Str> | |
<Str sr="arg1" ve="3">\\</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<Int sr="arg4" val="0"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Str sr="arg7" ve="3">\\\\</Str> | |
</Action> | |
<Action sr="act5" ve="7"> | |
<code>598</code> | |
<Str sr="arg0" ve="3">%cliptext</Str> | |
<Str sr="arg1" ve="3">"</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<Int sr="arg4" val="0"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Str sr="arg7" ve="3">\\"</Str> | |
</Action> | |
<Action sr="act6" ve="7"> | |
<code>598</code> | |
<Str sr="arg0" ve="3">%cliptext</Str> | |
<Str sr="arg1" ve="3">\r|\n</Str> | |
<Int sr="arg2" val="0"/> | |
<Int sr="arg3" val="0"/> | |
<Int sr="arg4" val="0"/> | |
<Str sr="arg5" ve="3"/> | |
<Int sr="arg6" val="1"/> | |
<Str sr="arg7" ve="3">\\n</Str> | |
</Action> | |
<Action sr="act7" ve="7"> | |
<code>351</code> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%http_auth_headers | |
Headers | |
Use this in the HTTP Request action in the 'Headers' field to authenticate the request</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
</Vals> | |
</Bundle> | |
<Int sr="arg1" val="1"/> | |
<Str sr="arg10" ve="3">密码</Str> | |
<Str sr="arg2" ve="3"/> | |
<Str sr="arg3" ve="3"/> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3"/> | |
<Str sr="arg6" ve="3"/> | |
<Int sr="arg7" val="0"/> | |
<Int sr="arg8" val="30"/> | |
<Str sr="arg9" ve="3">用户名</Str> | |
</Action> | |
<Action sr="act8" ve="7"> | |
<code>339</code> | |
<se>false</se> | |
<Bundle sr="arg0"> | |
<Vals sr="val"> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%http_cookies | |
Cookies | |
The cookies the server sent in the response in the Cookie:COOKIE_VALUE format. You can use this directly in the 'Headers' field of the HTTP Request action</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%http_data | |
Data | |
Data that the server responded from the HTTP request.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%http_file_output | |
File Output | |
Will always contain the file's full path even if you specified a directory as the File to save.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%http_response_code | |
Response Code | |
The HTTP Code the server responded</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4>%http_headers() | |
Response Headers | |
The HTTP Headers the server sent in the response. Each header is in the 'key:value' format</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5>%http_response_length | |
Response Length | |
The size of the response in bytes</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> | |
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> | |
</Vals> | |
</Bundle> | |
<Int sr="arg1" val="3"/> | |
<Int sr="arg10" val="0"/> | |
<Int sr="arg11" val="0"/> | |
<Int sr="arg12" val="1"/> | |
<Str sr="arg2" ve="3">https://域名或者ip:端口/SyncClipboard.json</Str> | |
<Str sr="arg3" ve="3">%http_auth_headers</Str> | |
<Str sr="arg4" ve="3"/> | |
<Str sr="arg5" ve="3">{"File":"","Clipboard":"%cliptext","Type":"Text"}</Str> | |
<Str sr="arg6" ve="3"/> | |
<Str sr="arg7" ve="3"/> | |
<Int sr="arg8" val="5"/> | |
<Int sr="arg9" val="0"/> | |
</Action> | |
<Action sr="act9" ve="7"> | |
<code>37</code> | |
<coll>false</coll> | |
<ConditionList sr="if"> | |
<Condition sr="c0" ve="3"> | |
<lhs>%http_response_code</lhs> | |
<op>0</op> | |
<rhs>200</rhs> | |
</Condition> | |
</ConditionList> | |
</Action> | |
<Img sr="icn" ve="2"> | |
<nme>mw_action_backup</nme> | |
</Img> | |
</Task> | |
</TaskerData> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
SyncClipboard 自行搭建。
Termux
Termux:API
Termux:Tasker
自行从F-Droid 安装手机需要root, 需要安装xpose-clipboard-whitelist 让tasker后台监控剪贴板变化
安装后,勾选系统框架,并重启
添加tasker 名单