<?xml version="1.0" encoding="utf-8"?>






<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Pan - 折腾的乐趣</title>
        <link>https://panp.cc/</link>
        <description>一个个人博客，在不断的学习中享受折腾的乐趣！</description>
        <generator>Hugo 0.118.2 https://gohugo.io/</generator>
        
            <language>zh-CN</language>
        
        
            <managingEditor>cool.panjianhao@gmail.com (PanNNN)</managingEditor>
        
        
            <webMaster>cool.panjianhao@gmail.com (PanNNN)</webMaster>
        
        
            <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
        
        <lastBuildDate>Mon, 01 Sep 2025 13:01:31 &#43;0000</lastBuildDate>
        
            <atom:link rel="self" type="application/rss&#43;xml" href="https://panp.cc/rss.xml" />
        
        
            <item>
                <title>Linux 下解决外设网页驱动问题</title>
                <link>https://panp.cc/posts/linux-hidraw-permission/</link>
                <guid isPermaLink="true">https://panp.cc/posts/linux-hidraw-permission/</guid>
                <pubDate>Mon, 01 Sep 2025 17:00:00 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;p&gt;部分外设有网页驱动，但是在 Linux 下并不能正常使用，是因为没有对应设备的权限，通过 &lt;code&gt;chrome://device-log&lt;/code&gt; 可以看到 &lt;code&gt;FILE_ERROR_ACCESS_DENIED&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;即用户只有可读权限，没有写入权限。因此在这类的网页驱动中是能够显示设备，但是无法打开进行设置&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2025/09/7be62b15d57549da31289fcb34634fae.webp&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2025/09/4ba526bb5b370ec23926a80e6bdd2a75.webp&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;
&lt;p&gt;这时候可以通过手动赋予权限来进行设置（ X 为具体设备对应的值，在 chrome 的 log 中可以看到）&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo chmod a+rw /dev/hidrawX
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;但是这样是临时的，在每次系统重启之后都需要重新手动授权&lt;/p&gt;
&lt;h2 id=&#34;持久化授权&#34;&gt;持久化授权&lt;/h2&gt;
&lt;p&gt;参考 &lt;a href=&#34;https://developer.chrome.com/docs/capabilities/hid?hl=zh-cn&#34;&gt;Google 开发者文档&lt;/a&gt; 的“开发者提示”部分：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在大多数 Linux 系统上，HID 设备默认映射为只读权限。如需允许 Chrome 打开 HID 设备，您需要添加新的 udev 规则。在 /etc/udev/rules.d/50-yourdevicename.rules 中创建一个包含以下内容的文件：&lt;/p&gt;
&lt;p&gt;KERNEL==&amp;quot;hidraw*&amp;quot;, ATTRS{idVendor}==&amp;quot;[yourdevicevendor]&amp;quot;, MODE=&amp;quot;0664&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;/p&gt;
&lt;p&gt;在上面的代码行中，如果您的设备是 Nintendo Switch Joy-Con 等，则 [yourdevicevendor] 为 057e。您还可以添加 ATTRS{idProduct} 以指定更具体的规则。确保您的 user 是 plugdev 群组的成员。然后，只需重新连接设备即可。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;但是这样在 &lt;a href=&#34;https://wiki.archlinux.org/title/Udev#Allowing_regular_users_to_use_devices&#34;&gt;Arch Wiki&lt;/a&gt; 中是不推荐的做法，更推荐赋予当前登录用户权限，而不是整个用户组权限&lt;/p&gt;
&lt;p&gt;并且实际上在 Arch 中并没有 &lt;code&gt;plugdev&lt;/code&gt; 这个用户组，可以通过 &lt;code&gt;getent group&lt;/code&gt; 命令验证&lt;/p&gt;
&lt;p&gt;在 Wiki 中推荐使用 &lt;code&gt;uaccess&lt;/code&gt; 的 &lt;code&gt;TAG&lt;/code&gt;，uaccess 机制让 systemd-logind 自动为当前 &lt;code&gt;物理登录的桌面用户&lt;/code&gt; 动态赋予设备 ACL 权限。
这样只有当前活跃桌面会话的用户拥有设备权限，其他用户（包括同一台机器的 SSH 用户）不会获得权限。&lt;/p&gt;
&lt;p&gt;这样就不用再自己维护用户组，也不用给所有人开放 0666 权限&lt;/p&gt;
&lt;h2 id=&#34;实现部分&#34;&gt;实现部分&lt;/h2&gt;
&lt;h3 id=&#34;创建-udev-规则&#34;&gt;创建 udev 规则&lt;/h3&gt;
&lt;p&gt;假设你的设备 idVendor 为 1234，idProduct 为 abcd&lt;/p&gt;
&lt;p&gt;创建udev规则文件&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo touch /etc/udev/rules.d/70-device.rules 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;规则文件内容如下：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SUBSYSTEMS==&amp;#34;usb&amp;#34;, ATTRS{idVendor}==&amp;#34;1234&amp;#34;, ATTRS{idProduct}==&amp;#34;abcd&amp;#34;, MODE=&amp;#34;0660&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;MODE=&amp;quot;0660&amp;quot; 只允许 root 和组访问，但实际权限将由 uaccess 控制。&lt;/li&gt;
&lt;li&gt;TAG+=&amp;quot;uaccess&amp;quot; 让 systemd-logind 为当前物理会话用户动态添加 ACL。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;刷新 udev 规则并重新插拔设备&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo udevadm control --reload-rules
sudo udevadm trigger
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;此时应能正常读取设备信息并在网页驱动中进行配置。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2025/09/847c54e6223cfaeab0d460fd10937ef9.webp&#34; alt=&#34;image&#34;&gt;
&lt;img src=&#34;https://img.panp.cc/2025/09/21c38ce6b9fb57ef62f788fb79f896d4.webp&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;
&lt;p&gt;可以选择执行下面这条命令检查当前用户是否有对应设备的权限&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;getfacl /dev/hidrawX
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h3 id=&#34;工具&#34;&gt;工具&lt;/h3&gt;
&lt;p&gt;Arch 安装 &lt;code&gt;usbutils&lt;/code&gt; 来获取 &lt;code&gt;lsusb&lt;/code&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;paru -S usbutils
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后使用 lsusb 获取当前设备信息来获取 idVendor 和 idProduct&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:&lt;/code&gt; 的前后即 idVendor 和 idProduct&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2025/09/82c29250d8e583c96ef72016b664f7a9.webp&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;udev规则-命名规范&#34;&gt;udev规则 命名规范&lt;/h3&gt;
&lt;p&gt;udev 规则文件的命名基本是“随意的”，但有一些推荐规范：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;数字前缀决定规则应用顺序&lt;/strong&gt;&lt;br&gt;
文件名通常以两位或三位数字开头（如 70-），数字越小规则越早应用。数字后为自定义描述（如 70-device.rules）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;描述部分可自由命名&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;device&lt;/code&gt; 可换为任意描述性内容，如 webusb、hidraw 等，只要便于自己识别即可。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;结尾必须为 .rules&lt;/strong&gt;&lt;br&gt;
这是 udev 识别规则文件的要求。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;避免与已有规则文件名冲突&lt;/strong&gt;&lt;br&gt;
不建议使用如 50、60、99 等标准规则文件前缀，以免被系统或包管理器覆盖。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/linux/">Linux</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/udev/">udev</category>
                                
                            
                        
                    
                
            </item>
        
            <item>
                <title>Exclusively Yours : 部署属于个人的输入法方案</title>
                <link>https://panp.cc/posts/delploy-rime/</link>
                <guid isPermaLink="true">https://panp.cc/posts/delploy-rime/</guid>
                <pubDate>Tue, 15 Oct 2024 20:00:00 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;p&gt;作为 cjk 地区的人也许自互联网发展开始便离不开&lt;strong&gt;输入法&lt;/strong&gt;，但作为一个输入法，它的用途就表明了由它处理的数据是十分隐私的，当然本文的重点并不在于讨论如何保护个人隐私，只不过如果你在任何论坛问类似这样的问题&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注重隐私应该使用什么输入法？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我相信大多数的回答一定会是&lt;a href=&#34;https://rime.im/&#34;&gt;Rime&lt;/a&gt;，而隐私只是 Rime 众多优点之一，它开源，多平台，自定义程度高，支持各类输入方案。&lt;/p&gt;
&lt;h2 id=&#34;安装&#34;&gt;安装&lt;/h2&gt;
&lt;p&gt;关于基本的安装可以参考 &lt;a href=&#34;https://www.mintimate.cc/zh/guide/installRime.html&#34;&gt;oh-my-rime&lt;/a&gt; ，各个平台都有很详细的安装教程，我个人在 Linux 平台下使用的是 fcitx5-rime，Windows 下为小狼毫，而 Android 端为 fcitx5-android，而词库使用的都是&lt;a href=&#34;https://github.com/iDvel/rime-ice&#34;&gt;雾凇拼音&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;Linux 下我使用的是 arch linux，因此只需要一行命令即可安装完成。这里我使用的是 paru&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;paru -S fcitx5-rime rime-ice
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;词库导入方式也都是下载 Github 上的配置文件，然后将其解压到对应的目录下，这些在 oh-my-rime 的教程里都有详细说明，这里就不做无用废话了&lt;/p&gt;
&lt;h2 id=&#34;个人配置文件&#34;&gt;个人配置文件&lt;/h2&gt;
&lt;p&gt;因为 Rime 只是一个输入法&lt;strong&gt;引擎&lt;/strong&gt;，实际上在不同平台的实现都是依赖不同的前端，例如 Linux 下的 fcitx，Windows 下的小狼毫。&lt;/p&gt;
&lt;p&gt;因此我们便可以做到一份配置文件在多平台使用，大量减少了配置上的负担，即“一端完成，多端享用”&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;patch:
  __include: rime_ice_suggestion:/
  __patch:
    menu/page_size: 6    #每页显示6个候选词
    key_binder/bindings/+:
      - { when: paging, accept: comma, send: Page_Up }    #逗号向上翻页
      - { when: has_menu, accept: period, send: Page_Down }    #句号向上翻页
    ascii_composer/switch_key/Shift_L: noop    #禁用左Shift切换
    schema_list:
      - schema: double_pinyin_flypy    #启用小鹤双拼
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这是&lt;code&gt;default.custom.yaml&lt;/code&gt;文件，主要是一些个人的基本设置。&lt;/p&gt;
&lt;p&gt;禁用左 Shift 是因为在打游戏的时候，会经常用到左 Shift，导致一直切换输入法，导致游戏体验极差（不得不说 steam 还是很好用的，永劫无间玩的很顺利🤣&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;patch:
  __patch:
    speller:
      algebra:
        - &amp;#34;erase/^xx$/&amp;#34;
        - derive/^([zcs])h/$1/ # zh, ch, sh =&amp;gt; z, c, s
        - derive/^([zcs])([^h])/$1h$2/ # z, c, s =&amp;gt; zh, ch, sh
        - derive/([aei])n$/$1ng/ # en =&amp;gt; eng, in =&amp;gt; ing
        - derive/([aei])ng$/$1n/ # eng =&amp;gt; en, ing =&amp;gt; in
        - derive/([iu])an$/$lang/ # ian =&amp;gt; iang, uan =&amp;gt; uang
        - derive/([iu])ang$/$lan/ # iang =&amp;gt; ian, uang =&amp;gt; uan
        - derive/^r/l/                     # r =&amp;gt; l
        - &amp;#34;derive/^([jqxy])u$/$1v/&amp;#34;
        - &amp;#34;derive/^([aoe])([ioun])$/$1$1$2/&amp;#34;
        - &amp;#34;xform/^([aoe])(ng)?$/$1$1$2/&amp;#34;
        - &amp;#34;xform/iu$/Ⓠ/&amp;#34;
        - &amp;#34;xform/(.)ei$/$1Ⓦ/&amp;#34;
        - &amp;#34;xform/uan$/Ⓡ/&amp;#34;
        - &amp;#34;xform/[uv]e$/Ⓣ/&amp;#34;
        - &amp;#34;xform/un$/Ⓨ/&amp;#34;
        - &amp;#34;xform/^sh/Ⓤ/&amp;#34;
        - &amp;#34;xform/^ch/Ⓘ/&amp;#34;
        - &amp;#34;xform/^zh/Ⓥ/&amp;#34;
        - &amp;#34;xform/uo$/Ⓞ/&amp;#34;
        - &amp;#34;xform/ie$/Ⓟ/&amp;#34;
        - &amp;#34;xform/(.)i?ong$/$1Ⓢ/&amp;#34;
        - &amp;#34;xform/ing$|uai$/Ⓚ/&amp;#34;
        - &amp;#34;xform/(.)ai$/$1Ⓓ/&amp;#34;
        - &amp;#34;xform/(.)en$/$1Ⓕ/&amp;#34;
        - &amp;#34;xform/(.)eng$/$1Ⓖ/&amp;#34;
        - &amp;#34;xform/[iu]ang$/Ⓛ/&amp;#34;
        - &amp;#34;xform/(.)ang$/$1Ⓗ/&amp;#34;
        - &amp;#34;xform/ian$/Ⓜ/&amp;#34;
        - &amp;#34;xform/(.)an$/$1Ⓙ/&amp;#34;
        - &amp;#34;xform/(.)ou$/$1Ⓩ/&amp;#34;
        - &amp;#34;xform/[iu]a$/Ⓧ/&amp;#34;
        - &amp;#34;xform/iao$/Ⓝ/&amp;#34;
        - &amp;#34;xform/(.)ao$/$1Ⓒ/&amp;#34;
        - &amp;#34;xform/ui$/Ⓥ/&amp;#34;
        - &amp;#34;xform/in$/Ⓑ/&amp;#34;
        - &amp;#34;xlit/ⓆⓌⓇⓉⓎⓊⒾⓄⓅⓈⒹⒻⒼⒽⒿⓀⓁⓏⓍⒸⓋⒷⓃⓂ/qwrtyuiopsdfghjklzxcvbnm/&amp;#34;
        - abbrev/^([a-z]).+$/$1/ #简拼（首字母）
        - abbrev/^([zcs]h).+$/$1/ #简拼（zh, ch, sh）
      alphabet: &amp;#34;zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA`&amp;#34;
      delimiter: &amp;#34; &amp;#39;&amp;#34;
      initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;double_pinyin_flypy.custom.yaml&lt;/code&gt;主要是对小鹤双拼打的模糊音补丁。&lt;/p&gt;
&lt;p&gt;并且只有下面这几行是额外添加的，其他几行都是原本配置文件中的内容。之所以这样是因为打补丁去修改配置文件的话，只能选择在末尾添加或者以类似数组下标的形式一行一行插入。&lt;/p&gt;
&lt;p&gt;而全部添加在末尾的话则会和双拼的配置发生冲突，可以在&lt;a href=&#34;https://gist.github.com/lotem/2320943&#34;&gt;这里&lt;/a&gt;的评论区看到很多使用小鹤双拼的人都是选择修改了源文件。
若是以数组下标形式修改的话，后续不好维护，还不如直接把原本的内容复制过来加上。&lt;/p&gt;
&lt;p&gt;当然如果你是全拼的话就可以直接追加在末尾。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;        - derive/^([zcs])h/$1/ # zh, ch, sh =&amp;gt; z, c, s
        - derive/^([zcs])([^h])/$1h$2/ # z, c, s =&amp;gt; zh, ch, sh
        - derive/([aei])n$/$1ng/ # en =&amp;gt; eng, in =&amp;gt; ing
        - derive/([aei])ng$/$1n/ # eng =&amp;gt; en, ing =&amp;gt; in
        - derive/([iu])an$/$lang/ # ian =&amp;gt; iang, uan =&amp;gt; uang
        - derive/([iu])ang$/$lan/ # iang =&amp;gt; ian, uang =&amp;gt; uan
        - derive/^r/l/                     # r =&amp;gt; l
        xxx
        xxx
        - abbrev/^([a-z]).+$/$1/ #简拼（首字母）
        - abbrev/^([zcs]h).+$/$1/ #简拼（zh, ch, sh）
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;多端同步&#34;&gt;多端同步&lt;/h2&gt;
&lt;p&gt;因为我个人的设备横跨 Linux、Windows、Android 多平台，因此同步便是一道跨不过去的坎。&lt;/p&gt;
&lt;p&gt;我个人使用 onedrive 作为储存，在 Windows 和 Linux 下使用 rclone 进行同步，Android 的话则是使用 FolderSync（Android 这边由于配置文件以及同步文件夹只能位于/Android/data/目录下，所以需要支持 SAF 的工具，而 Linux 和 Windows 两端的同步文件夹都可以在&lt;code&gt;installation.yaml&lt;/code&gt;中设置，具体可以看这个 &lt;a href=&#34;https://github.com/fcitx5-android/fcitx5-android/issues/402&#34;&gt;issue&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;同步的策略我设置的是每台设备在每天 11:00 的时候上传该设备的词库文件，上传完成后等待 5 分钟然后从 onedrive 上同步其他设备的文件，然后再通过命令使 rime 合并词库。&lt;/p&gt;
&lt;p&gt;Linux 下触发 rime 同步有以下几种方式，来自 &lt;a href=&#34;https://github.com/fcitx/fcitx5-rime/issues/54&#34;&gt;issue&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;//qdbus
qdbus org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig fcitx://config/addon/rime/deploy &amp;#39;&amp;#39;
qdbus org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig fcitx://config/addon/rime/sync &amp;#39;&amp;#39;
//busctl
busctl call org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1 SetConfig sv fcitx://config/addon/rime/sync s &amp;#39;&amp;#39; --user
busctl call org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1 SetConfig sv fcitx://config/addon/rime/deploy s &amp;#39;&amp;#39; --user
//dbus-send
dbus-send --type=method_call --dest=org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig string:fcitx://config/addon/rime/sync variant:string:&amp;#39;&amp;#39;
dbus-send --type=method_call --dest=org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig string:fcitx://config/addon/rime/deploy variant:string:&amp;#39;&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Windows 的话只需要执行&lt;code&gt;C:\Program Files\Rime\weasel-0.16.1\WeaselDeployer.exe&lt;/code&gt;，然后携带参数&lt;code&gt;/sync&lt;/code&gt;即可&lt;/p&gt;
&lt;p&gt;例如在终端执行，即可合并同步词库&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#34;C:\Program Files\Rime\weasel-0.16.1\WeaselDeployer.exe&amp;#34; /sync
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Android 的话，通过这个 &lt;a href=&#34;https://github.com/fcitx5-android/fcitx5-android/issues/558&#34;&gt;issue&lt;/a&gt; 可知 fcitx5-android 每半小时就会自动触发一次同步，因此不用使用任何命令执行。&lt;/p&gt;
&lt;h3 id=&#34;自动化&#34;&gt;自动化&lt;/h3&gt;
&lt;p&gt;为了方便自动化执行，在 Linux 和 Windows 下使用脚本来实现全自动化，Linux 使用 crontab 来设置定时任务，Windows 的话则是&lt;code&gt;任务计划程序&lt;/code&gt;-&amp;gt; &lt;code&gt;创建任务&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;sync_rime.sh&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/sh

# 定义路径和文件位置
LOCAL_SYNC_DIR=&amp;#34;/home/Pan/.local/share/fcitx5/rime/sync/arch-linux/&amp;#34;
REMOTE_SYNC_DIR=&amp;#34;rime:/rime/sync/arch-linux&amp;#34;
REMOTE_ROOT_DIR=&amp;#34;rime:/rime/sync/&amp;#34;
LOCAL_ROOT_DIR=&amp;#34;/home/Pan/.local/share/fcitx5/rime/sync/&amp;#34;

# 日志文件路径
LOG_FILE=&amp;#34;/home/Pan/log/rclone_sync.log&amp;#34;

# 记录日志函数
log() {
    echo &amp;#34;$(date &amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;)&amp;#34; $1 &amp;gt;&amp;gt; &amp;#34;$LOG_FILE&amp;#34;
}

log &amp;#34;==================== 同步任务开始 ====================&amp;#34;

# 同步本地到远程
log &amp;#34;正在同步本地到远程...&amp;#34;
rclone sync &amp;#34;$LOCAL_SYNC_DIR&amp;#34; &amp;#34;$REMOTE_SYNC_DIR&amp;#34;
EXIT_STATUS=$?

# 检查同步结果
if [ $EXIT_STATUS -eq 0 ]; then
    log &amp;#34;本地到远程同步成功&amp;#34;
else
    log &amp;#34;！！！本地到远程同步时发生未知错误：退出状态=$EXIT_STATUS&amp;#34;
fi

# 等待5分钟
log &amp;#34;等待5分钟...&amp;#34;
sleep 300

# 同步远程到本地
log &amp;#34;正在同步远程到本地...&amp;#34;
rclone sync &amp;#34;$REMOTE_ROOT_DIR&amp;#34; &amp;#34;$LOCAL_ROOT_DIR&amp;#34;
EXIT_STATUS=$?

# 检查同步结果
if [ $EXIT_STATUS -eq 0 ]; then
    log &amp;#34;远程到本地同步成功&amp;#34;
else
    log &amp;#34;！！！远程到本地同步时发生未知错误：退出状态=$EXIT_STATUS&amp;#34;
fi

# 合并词库
log &amp;#34;合并词库中...&amp;#34;
busctl call org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1 SetConfig sv fcitx://config/addon/rime/sync s &amp;#39;&amp;#39; --user
EXIT_STATUS=$?

# 检查合并结果
if [ $EXIT_STATUS -eq 0 ]; then
    log &amp;#34;合并词库成功&amp;#34;
else
    log &amp;#34;！！！合并词库时发生未知错误：退出状态=$EXIT_STATUS&amp;#34;
fi

log &amp;#34;==================== 同步任务结束 ====================&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;sync_rime.bat&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;@echo off
setlocal enabledelayedexpansion

REM 定义路径和文件位置
set LOCAL_SYNC_DIR=C:\Users\Pan\AppData\Roaming\Rime\sync\Surface
set REMOTE_SYNC_DIR=onedrive:/rime/sync/Surface
set LOCAL_ROOT_DIR=C:\Users\Pan\AppData\Roaming\Rime\sync
set REMOTE_ROOT_DIR=onedrive:/rime/sync
set LOG_FILE=C:\Users\Pan\Downloads\rclone_sync.log

REM 记录日志函数
set timestamp=%date% %time%
set logdate=%timestamp:~0,10% %timestamp:~-11,8%

call :logMessage &amp;#34;==================== 同步任务开始 ====================&amp;#34;

REM 同步本地到远程
call :logMessage &amp;#34;正在同步本地到远程...&amp;#34;
rclone sync %LOCAL_SYNC_DIR% %REMOTE_SYNC_DIR%
set EXIT_STATUS=%ERRORLEVEL%

REM 检查同步结果
if %EXIT_STATUS% equ 0 (
    call :logMessage &amp;#34;本地到远程同步成功&amp;#34;
) else (
    call :logMessage &amp;#34;本地到远程同步时发生未知错误：退出状态=%EXIT_STATUS%&amp;#34;
)

REM 等待5分钟
call :logMessage &amp;#34;等待5分钟...&amp;#34;
timeout /t 300

REM 同步远程到本地
call :logMessage &amp;#34;正在同步远程到本地...&amp;#34;
rclone sync %REMOTE_ROOT_DIR% %LOCAL_ROOT_DIR%
set EXIT_STATUS=%ERRORLEVEL%

REM 检查同步结果
if %EXIT_STATUS% equ 0 (
    call :logMessage &amp;#34;远程到本地同步成功&amp;#34;
) else (
    call :logMessage &amp;#34;远程到本地同步时发生未知错误：退出状态=%EXIT_STATUS%&amp;#34;
)

call :logMessage &amp;#34;合并中&amp;#34;
&amp;#34;C:\Program Files\Rime\weasel-0.16.1\WeaselDeployer.exe&amp;#34; /sync
set EXIT_STATUS=%ERRORLEVEL%

REM 检查合并结果
if %EXIT_STATUS% equ 0 (
    call :logMessage &amp;#34;合并成功&amp;#34;
) else (
    call :logMessage &amp;#34;合并发生未知错误：退出状态=%EXIT_STATUS%&amp;#34;
)


call :logMessage &amp;#34;==================== 同步任务结束 ====================&amp;#34;
endlocal
exit /b

:logMessage
echo [%logdate%] - %* &amp;gt;&amp;gt; %LOG_FILE%
exit /b
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;至于 Android 端的话，则是直接在 FolderSync 里设置定时任务执行&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/186f37d565b930e9550fd02da5d013f3.webp&#34; alt=&#34;FolderSync&#34;&gt;&lt;/p&gt;
&lt;p&gt;到目前为止一切运行良好🥳&lt;/p&gt;
&lt;p&gt;当然这样的同步策略会把 sync 目录下其他文件一块同步下来，你可以添加个 &lt;code&gt;rm&lt;/code&gt; 删除其他文件，我这边出于备份考虑就没有删去。&lt;/p&gt;
&lt;p&gt;值得注意的是，在 Linux 和 Windows 下，雾凇拼音的配置文件和用户的配置文件是分开的，这时 rime 同步只会同步用户的文件，而不会将雾凇拼音的文件一块同步。&lt;/p&gt;
&lt;p&gt;但是在 Android 上，雾凇拼音的安装目录和用户的配置文件只能位于同一处目录，因此会导致目录很杂乱，例如下面这个对比&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/0b4b05560e08133f4407d2776bb985c5.webp&#34; alt=&#34;Android&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/a3ed396b7310587780575a3af8af2397.webp&#34; alt=&#34;Linux&#34;&gt;&lt;/p&gt;
&lt;p&gt;因此也可以选择只上传 txt 文件，这样远程目录会干净不少。&lt;/p&gt;
&lt;h2 id=&#34;结束&#34;&gt;结束&lt;/h2&gt;
&lt;p&gt;配置 rime 其实对我来说也是一种“折腾”，以前使用过百度输入法和 Gboard，百度输入法的好处就是功能丰富，例如建议栏简单数学计算，云联想，丰富的皮肤等，其实还算好用，但是也能说的上是臃肿，即便是套上一层再好看的皮肤，也只是“金絮其外，败絮其内”。&lt;/p&gt;
&lt;p&gt;而 Gboard 的话，我认为最好的点在于它可能是全网唯一支持双拼自动纠错的输入法了，但是我感觉对于双拼这类，本身简化了输入信息而降低了&lt;strong&gt;容错率&lt;/strong&gt;，再配合自动纠错的话可能反而会适得其反，对我来说，似乎也没有那么大的吸引力。&lt;/p&gt;
&lt;p&gt;而之所以开始使用 Rime，其实也是从接触 Linux 开始的，在使用 Linux 的时候了解到这个输入法。而在完成 Linux 端的配置后，当我再去使用 Windows 的时候，几乎完全不能忍受两端分裂感十分严重的输入体验，于是又给 Windows 配上了小狼毫。&lt;del&gt;（然后再来一次，Android🤣）&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;尽管目前 Rime 在 Android 上的体验可能是最差的一端了，不过对我个人来说 Linux 和 Windows 用着还是相当舒适的。对于目前 Android 的 rime，似乎只有开源自由、隐私是为数不多值得使用的点了，在高度定制化上仍然还有很久的路要走......（也许你也可以考虑下&lt;a href=&#34;https://github.com/osfans/trime&#34;&gt;同文输入法&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;如果你想要一个隐私，自由，顺手如意的输入法 也许 RIME 是一个不二之选，正如 RIME 官网所写&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;聪明的输入法懂我心意&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;当然配置 RIME 的途中一定少不了各种麻烦，但在我看来这不也是一种乐趣吗🎉&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Just for fun.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/rime/">rime</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/linux/">Linux</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E5%A4%9A%E7%AB%AF%E5%90%8C%E6%AD%A5/">多端同步</category>
                                
                            
                        
                    
                
            </item>
        
            <item>
                <title>Gnome简单美化指北</title>
                <link>https://panp.cc/posts/gnome-style/</link>
                <guid isPermaLink="true">https://panp.cc/posts/gnome-style/</guid>
                <pubDate>Fri, 31 May 2024 08:00:00 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;h2 id=&#34;起始&#34;&gt;起始&lt;/h2&gt;
&lt;p&gt;在前两周装了台ITX后便马上装上了馋了很久的arch linux，在不同的DE中选了GNOME，相比于kde来说，我还是更喜欢gnome的简洁，但是gnome默认也不太好看，也缺少一些功能，这里就记录一下个人配置。&lt;/p&gt;
&lt;p&gt;注：本文不包括终端 shell的美化，配置。本文内容皆基于本人个人理解，如果有误，欢迎指出。&lt;/p&gt;
&lt;h2 id=&#34;效果一览&#34;&gt;效果一览&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/a713f4c594cc23a437f644dbab91a354.webp&#34; alt=&#34;style&#34;&gt;
&lt;img src=&#34;https://img.panp.cc/2024/10/ddbe8bf9c07a03f0b4261b001afed552.webp&#34; alt=&#34;style&#34;&gt;
&lt;img src=&#34;https://img.panp.cc/2024/10/3cc4d6633fb55cc9244a6feaeb309ee9.webp&#34; alt=&#34;style&#34;&gt;
&lt;img src=&#34;https://img.panp.cc/2024/10/6cb78fc07f09eb3bfb7f7eb27e3cd193.webp&#34; alt=&#34;style&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;前置要求&#34;&gt;前置要求&lt;/h2&gt;
&lt;p&gt;Gnome 46
已安装aur包管理器，&lt;code&gt;yay&lt;/code&gt; &lt;code&gt;paru&lt;/code&gt;均可，paru会更新一些&lt;/p&gt;
&lt;p&gt;安装拓展可以使用浏览器拓展或者命令行安装，浏览器安装需要提前安装&lt;a href=&#34;https://chromewebstore.google.com/detail/gnome-shell-%E9%9B%86%E6%88%90/gphhapmejobijbbhgpjhcjognlahblep&#34;&gt;Gnome Shell 集成&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;theme&#34;&gt;Theme&lt;/h2&gt;
&lt;p&gt;目前只用了shell主题和gtk主题，至于qt主题因为还没找到喜欢的，也没有特别影响整体效果就没有配置。&lt;/p&gt;
&lt;h3 id=&#34;shell主题&#34;&gt;Shell主题&lt;/h3&gt;
&lt;p&gt;Shell主题主要使用的是&lt;a href=&#34;https://github.com/imarkoff/Marble-shell-theme&#34;&gt;Marble Shell Theme&lt;/a&gt;
基本的安装方法在README.md里已经相当详细了&lt;/p&gt;
&lt;p&gt;同时Marble还有一个GDM theme，有简单的美化，也可以一起安装了&lt;/p&gt;
&lt;h3 id=&#34;gtk主题&#34;&gt;GTK主题&lt;/h3&gt;
&lt;p&gt;gtk主题用的是&lt;a href=&#34;https://github.com/catppuccin/gtk&#34;&gt;Catppuccin&lt;/a&gt;的Macchiato版（强推Catppuccin，对于很多应用或者网页都要相应的配色方案，可以做到色彩统一&lt;/p&gt;
&lt;h2 id=&#34;extension&#34;&gt;Extension&lt;/h2&gt;
&lt;h3 id=&#34;系统拓展&#34;&gt;系统拓展&lt;/h3&gt;
&lt;p&gt;Removable Drive Menu 在顶部bar添加移动设备的管理&lt;/p&gt;
&lt;p&gt;User Themes 支持用户使用指定的Shell主题&lt;/p&gt;
&lt;h3 id=&#34;用户拓展&#34;&gt;用户拓展&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/615/appindicator-support/&#34;&gt;AppIndicator and KStatusNotifierItem Support &lt;/a&gt; 在顶栏中显示程序的托盘图标&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/6433/app-menu-is-back/&#34;&gt;App menu is back&lt;/a&gt; 在顶栏中显示当前使用的应用（好像是前几个版本被删掉的特性，个人感觉还算蛮有必要的，用这个可以加回来&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/3193/blur-my-shell/&#34;&gt;Blur my Shell&lt;/a&gt; 强推，能够模糊各个部位的shell样式，对于顶栏我配置了全屏时不模糊（启用Disable in overview），非全屏时直接Sigma和Brightness为0，这样可以做到非全状态下顶栏透明，全屏下有背景色，有效避免全屏后顶栏样式的突兀&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/779/clipboard-indicator/&#34;&gt;Clipboard Indicator&lt;/a&gt; 在顶栏中添加一个剪贴板按钮，不算特别好用，不过算一个比较简单的剪贴板解决方案，支持文本和图片&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/307/dash-to-dock/&#34;&gt;Dash to Dock&lt;/a&gt; 将概览时的dash栏变为dock栏，配置里我只修改了&lt;code&gt;点击动作&lt;/code&gt;为&lt;code&gt;最小化或显示预览&lt;/code&gt; &lt;del&gt;让体验更像windows了&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/2932/executor/&#34;&gt;Executor&lt;/a&gt; 在shell里添加shell脚本，我这里主要用来显示歌词，使用了&lt;a href=&#34;https://github.com/MarsSwimmer/get_lrc&#34;&gt;Get_Lrc&lt;/a&gt;这个项目，不过如果不播放歌的话，这个脚本是不能获得到歌词的，但是还是会在顶栏占用空间，解决办法估计只能专门写个单独的拓展才行了&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/4627/focus-changer/&#34;&gt;Focus changer&lt;/a&gt; 通过快捷键切换焦点到其他应用，感觉效果还行&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/&#34;&gt;GNOME Fuzzy App Search&lt;/a&gt; 让gnome的搜索应用方面更加“智能”，便于快速检索应用&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/261/kimpanel/&#34;&gt;Input Method Panel&lt;/a&gt; 修改Fcitx5的样式，这样Fcitx5不用配置什么皮肤也挺好看了&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/3843/just-perfection/&#34;&gt;Just Perfection&lt;/a&gt; 对一些Shell组件修改，例如隐藏一些不需要的部件。我只用到了隐藏&lt;code&gt;辅助功能菜单&lt;/code&gt;，之所以有这个是因为设置里我的字体dpi调到了1.1（由于启用分数缩放导致不少应用有模糊的问题，只能这样曲线救国了&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/5506/user-avatar-in-quick-settings/&#34;&gt;User Avatar In quick Settings&lt;/a&gt; 在快速设置菜单添加你的头像和名称等信息（感觉加了似乎好看点？？&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/1460/vitals/&#34;&gt;Vitals&lt;/a&gt; 在顶栏添加对一些系统信息的展示，例如内存使用占比，网速等。比自带的System Monitor好用&lt;/p&gt;
&lt;h2 id=&#34;结语&#34;&gt;结语&lt;/h2&gt;
&lt;p&gt;初步配置完仍然有些不太满意，例如gtk主题应用并不完全，圆角，模糊等插件的失效，以及传言中gnome大更新时插件会大量失效都让人有点不安（之所以传言是因为我还没体验过），最后最主要是gnome是堆叠式的，这点与Windows和Mac并没有太大区别。
因此在初步配置好后其实与Windows和Mac在基础操作上基本大差不差。&lt;/p&gt;
&lt;p&gt;本着折腾和“个性化”的想法，接下来估计会开始折腾hyprland了，体验一下平铺式桌面管理的快乐。至于Wayland的兼容性方面...等用上了再说🤣，相信一定能解决的办法。
在GNOME下默认也是使用Wayland，基本没感觉有什么问题，分数缩放方面确实不好处理，据说kde有比较好的解决方案，不过还没用过kde🥲&lt;/p&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/linux/">Linux</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E7%BE%8E%E5%8C%96/">美化</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E6%A1%8C%E9%9D%A2/">桌面</category>
                                
                            
                        
                    
                
            </item>
        
            <item>
                <title>Bubble起始页拓展</title>
                <link>https://panp.cc/posts/bubble-new-tab/</link>
                <guid isPermaLink="true">https://panp.cc/posts/bubble-new-tab/</guid>
                <pubDate>Thu, 02 May 2024 10:00:00 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;h2 id=&#34;bubble-起始页&#34;&gt;Bubble 起始页&lt;/h2&gt;
&lt;p&gt;⭐ Bubble起始页是一个简约且美观的新选项卡扩展，可与多功能框无缝交互&lt;/p&gt;
&lt;p&gt;🔑支持自定义多个搜索引擎，并通过key快捷搜索&lt;/p&gt;
&lt;p&gt;📌添加omnibox关键词，可以实现与起始页相同的搜索体验&lt;/p&gt;
&lt;p&gt;🎈优雅的深色模式，以及页面动画&lt;/p&gt;
&lt;p&gt;🧩可选的天气卡片，一言卡片&lt;/p&gt;
&lt;h2 id=&#34;如何使用&#34;&gt;如何使用&lt;/h2&gt;
&lt;p&gt;在omnibox和主页的搜索框里，可以进行搜索。&lt;/p&gt;
&lt;h3 id=&#34;使用主页搜索框&#34;&gt;使用主页搜索框&lt;/h3&gt;
&lt;p&gt;默认情况下直接输入内容即可进行搜索&lt;/p&gt;
&lt;p&gt;如果要切换搜索引擎，需要先输入&lt;code&gt;:key&lt;/code&gt;进行切换，这里的key是设置里每个搜索引擎自定义的值，例如使用google搜索则输入&lt;code&gt;:gg&lt;/code&gt;然后空格，系统将自动识别并切换到google搜索&lt;/p&gt;
&lt;p&gt;若输入的key有误或不存在，搜索引擎将不会发生改变，仍使用默认的搜索引擎&lt;/p&gt;
&lt;h3 id=&#34;使用omnibox&#34;&gt;使用omnibox&lt;/h3&gt;
&lt;p&gt;和主页搜索框的使用基本相同，但需要提前输入一个&lt;code&gt;:&lt;/code&gt;，再按&lt;code&gt;Tab&lt;/code&gt;键让拓展接管omnibox，然后即可进行搜索&lt;/p&gt;
&lt;h2 id=&#34;天气卡片&#34;&gt;天气卡片&lt;/h2&gt;
&lt;p&gt;使用天气卡片需要用户填写自己的API，天气服务使用和风天气，因此用户需要自己注册账号，申请API&lt;/p&gt;
&lt;p&gt;具体流程如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入&lt;a href=&#34;https://console.qweather.com/&#34;&gt;控制台 | 和风天气 (qweather.com)&lt;/a&gt;，登录账号（若没有账号需注册）&lt;/li&gt;
&lt;li&gt;进入控制台后，进入项目管理页面，点击创建项目3. 填写表单，项目名称随意填写，订阅选择&lt;em&gt;免费订阅&lt;/em&gt; ，Key选择Web API，这里Key的名称也随意填写&lt;/li&gt;
&lt;li&gt;项目创建完成后回到项目管理页面，查看key并填写到设置里即可&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;自定义搜索引擎&#34;&gt;自定义搜索引擎&lt;/h2&gt;
&lt;p&gt;在设置里可以添加自己定义的搜索引擎&lt;/p&gt;
&lt;p&gt;添加搜索引擎需要4个值&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;选项&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;搜索引擎的名称，将显示在页面里&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Icon（可选）&lt;/td&gt;
&lt;td&gt;搜索引擎的图标，将显示在页面里（若没有填写则会自动获取）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Url&lt;/td&gt;
&lt;td&gt;自定义搜索引擎的Url，以&lt;code&gt;https://&lt;/code&gt;开头，关键词参数名及其连接符结尾&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key&lt;/td&gt;
&lt;td&gt;设置该搜索引擎的key，用于切换搜索引擎&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E6%8B%93%E5%B1%95/">拓展</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E9%A1%B9%E7%9B%AE/">项目</category>
                                
                            
                        
                    
                
            </item>
        
            <item>
                <title>为asr 3000刷入openwrt并认证某师大校园网</title>
                <link>https://panp.cc/posts/flash-openwrt-open-mentohust/</link>
                <guid isPermaLink="true">https://panp.cc/posts/flash-openwrt-open-mentohust/</guid>
                <pubDate>Sun, 15 Oct 2023 12:24:38 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;
&lt;p&gt;为什么要费劲千辛万苦折腾校园网呢，老老实实用校园网不好吗？&lt;/p&gt;
&lt;p&gt;当然&lt;del&gt;是为了折腾&lt;/del&gt;，具体原因有很多......&lt;/p&gt;
&lt;p&gt;首先就是因为校园网的限制两台设备让我不能忍受，还有就是较慢的网速（最贵的资费也只有30M 🙃）再者就是为了实现科学上网、去AD、内网穿透等功能。因此还是决定购入路由器用于宿舍&lt;/p&gt;
&lt;h2 id=&#34;刷入openwrt&#34;&gt;刷入OpenWrt&lt;/h2&gt;
&lt;p&gt;这次购买的是安博通abt的asr3000运营商定制机，配置方面为MT7981B 128M+256M，这颗u倒是和360 t7、H3C NX30 Pro、小米AX3000T等为同款，机身开孔倒是蛮多，散热应该不会太差，就是机身属实不是很好看，不过就冲这个价格还要什么自行车😎 在 pdd 菜园领券直接85拿下&lt;/p&gt;
&lt;p&gt;等了几天快递，到手后便迫不及待开箱，只能说确实是难看，之后便下载资料准备刷机&lt;/p&gt;
&lt;p&gt;刷机用到的工具资源教程来自恩山，原帖在这里，感兴趣的可以去看看&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.right.com.cn/forum/thread-8302537-1-1.html&#34;&gt;MT7981B安博通ABT-ASR3000刷机指南及固件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;先下载工具和固件，主要就用到putty和WinSCP。固件的链接扔这里了&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://1drv.ms/f/s!AuDdY4jBTla8h1Zkz7b4LymjnlD-?e=wprE6h&#34;&gt;OneDrive&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;先在浏览器登录后台，将配置（e-202306161250-cfg.tar.gz）导入后直接重启，导入配置的路径是&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;系统工具---配置管理---导入配置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;开机之后再重启一次，这时telnet已经开启了，打开putty输入路由器的地址连接。用户名root 无密码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在putty中输入以下命令用于开启ssh&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;echo arch aarch64_cortex-a53 300 &amp;gt;&amp;gt; /etc/opkg.conf
cd /tmp
wget https://downloads.openwrt.org/re ... ch64_cortex-a53.ipk
opkg install ./dropbear_2019.78-2_aarch64_cortex-a53.ipk -f /etc/opkg.conf --force-depends
/etc/init.d/dropbear enable
/etc/init.d/dropbear start
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这一步是应该要将路由器..联网后下载文件..以开启ssh，这一步踩了个坑，在这说一下&lt;/p&gt;
&lt;p&gt;因为是校园网，所以网线直连wan口当然是没有网络的，这时候想到可以桥接，将路由器连上手机的热点.因为asr3000默认开启了mesh，当mesh关闭时是不能桥接的，所以在把mesh关闭了之后便开启桥接，但是在桥接完之后却发现putty连接不上路由器了，只能放弃......&lt;/p&gt;
&lt;p&gt;在想了很久之后，灵光一闪想到局域网的链接是可以的。于是马上在电脑上开启了之前搭建的PHP服务器环境，直接将文件扔到网站目录首页之后，尝试刷入，结果证明完全可行，，，就是好像有点麻烦&lt;/p&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;
&lt;p&gt;在开启ssh之后，打开WinSCP，协议选scp之后输入账号密码连接，在tmp目录下上传ubooot文件（mt7981_abt-asr3000-fip-fixed-parts.bin）（其实这步在上一步操作时可以一块进行&lt;/p&gt;
&lt;p&gt;之后再打开putty，输入以下命令&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd /tmp
md5sum mt7981_abt-asr3000-fip-fixed-parts.bin
mtd write mt7981_abt-asr3000-fip-fixed-parts.bin FIP
mtd verify mt7981_abt-asr3000-fip-fixed-parts.bin FIP
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在原来恩山的教程中 中间还有一步备份原厂固件的操作，这边被我忽略掉了，因为我本人用不上，有需求的可以去原帖看一看&lt;/p&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;
&lt;p&gt;刷入成功之后拔电，之后按住MESH键插电，将电脑网卡设置IP：192.168.1.100，用网线连上路由器，浏览器登录192.168.1.1 进入uboot webui，刷入系统固件 （asr3000-squashfs-factory.bin）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;刷完之后重启，登录后台192.168.1.1，用户名为root，密码为password。即可享受OpenWrt&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;认证校园网&#34;&gt;认证校园网&lt;/h2&gt;
&lt;p&gt;认证校园网这里用的是mentohust，比较老了但是还是可以正常使用，也可以使用&lt;a href=&#34;https://github.com/updateing/minieap&#34;&gt;MiniEAP&lt;/a&gt; 有兴趣的可以试试，我这里因为安装不上就没有用&lt;/p&gt;
&lt;h3 id=&#34;安装mentohust&#34;&gt;安装mentohust&lt;/h3&gt;
&lt;p&gt;因为后续操作仍然需要下载文件，建议先把路由器连接上网络，我用的是桥接的办法，在路由器后台的&lt;/p&gt;
&lt;p&gt;网络---无线---接口: ..apcli0.. | 类型: ..STA..（有两个任选其一即可）点击配置 开启AP客户端模式连接热点即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/6d6e74b99c3f8cd816f931390fa9b40a.webp&#34; alt=&#34;router-setting&#34;&gt;&lt;/p&gt;
&lt;p&gt;这里直接使用打包好的ipk包，不需要再去编译，比较&lt;del&gt;偷懒&lt;/del&gt;方便 来自&lt;a href=&#34;https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk&#34;&gt;KyleRicardo/MentoHUST-OpenWrt-ipk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在putty输入以下命令（只适用于asr3000 同款aarch64_cortex-a53架构&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd /tmp
wget https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk/releases/download/v0.3.1/mentohust_0.3.1-1_aarch64_cortex-a53.ipk
opkg update
opkg install libpcap
opkg install mentohust_0.3.1-1_aarch64_cortex-a53.ipk
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;配置参数&#34;&gt;配置参数&lt;/h3&gt;
&lt;p&gt;安装完成后，应该对mentohust的配置文件进行修改。
这里强烈建议直接使用输入命令行的方式进行配置，而不是使用修改文件的方式！！！我一开始直接使用修改文件的方式，折腾了一下午都失败，各种方式都尝试过，甚至想要把路由器砸了🙃 最终随手试了命令行，结果一遍成功......&lt;/p&gt;
&lt;p&gt;如果用修改文件的方法去配置参数，在启动服务后会一直认证失败，而在putty中，失败的原因提示是乱码的。原因是因为putty默认的编码是utf-8，而错误原因的编码却是gb2312&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/73e5233f5eabecf864b107723fdbd39a.webp&#34; alt=&#34;utf8&#34;&gt;
&lt;img src=&#34;https://img.panp.cc/2024/10/a354020072a438c81719a548c87c33e2.webp&#34; alt=&#34;gb2312&#34;&gt;&lt;/p&gt;
&lt;p&gt;在修改编码后可以看到错误原因是因为密码错误，但是其实密码是对的，这里不清楚如何解决。所以建议使用命令行设置参数，直接用命令行设置参数并保存到配置文件是完全可行的&lt;/p&gt;
&lt;p&gt;在此配置参数之前建议安装mentohust的windows版，可以快速调整需要的参数，不用频繁修改文件 重启服务，一次性获得参数数据。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.panp.cc/2024/10/9577a175b3d73dd97cf06fcff4e67c6b.webp&#34; alt=&#34;tool&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用法:   ./mentohust [-选项][参数]&lt;/p&gt;
&lt;p&gt;选项：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;   -h 显示本帮助信息
   -k -k(退出程序) 其他(重启程序)
   -w 保存参数到配置文件
   -u 用户名
   -p 密码
   -n 网卡名
   -i IP[默认本机IP]
   -m 子网掩码[默认本机掩码]
   -g 网关[默认0.0.0.0]
   -s DNS[默认0.0.0.0]
   -o Ping主机[默认0.0.0.0，表示关闭该功能]
   -t 认证超时(秒)[默认8]
   -e 响应间隔(秒)[默认30]
   -r 失败等待(秒)[默认15]
   -l 允许失败次数[默认0，表示无限制]
   -a 组播地址: 0(标准) 1(锐捷) 2(赛尔) [默认0]
   -d DHCP方式: 0(不使用) 1(二次认证) 2(认证后) 3(认证前) [默认0]
   -b 是否后台运行: 0(否) 1(是，关闭输出) 2(是，保留输出) 3(是，输出到文件) [默认0]
   -y 是否显示通知: 0(否) 1~20(是) [默认5]
   -v 客户端版本号[默认0.00表示兼容xrgsu]
   -f 自定义数据文件[默认不使用]
   -c DHCP脚本[默认udhcpc -i]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如:   ./mentohust -uusername -ppassword -neth0 -i192.168.0.1 -m255.255.255.0 -g0.0.0.0 -s0.0.0.0 -o0.0.0.0 -t8 -e30 -r15 -a0 -d1 -b0 -v4.10 -fdefault.mpf -cudhcpc -i&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;具体参数根据每个学校都是不同的，具体要靠自己调出来&lt;/p&gt;
&lt;p&gt;这里直接贴我们学校的参数，比较简单，没有什么限制&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;./mentohust -u账号 -p密码 -neth1 -a1 -y0 -b1 -w
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;参数-u和-p没啥好说的，就是账号和密码&lt;/p&gt;
&lt;p&gt;-n即wan口使用的网卡，在路由器后台的接口页可以看到一般类似eth0,eth1这类&lt;/p&gt;
&lt;p&gt;-y这个需要注意，建议填个0，否则会一直报没有安装libnoify，而这个插件是桌面端用的，在openwrt上是安不了的&lt;/p&gt;
&lt;p&gt;-w即写入配置文件数据，建议在尝试认证成功后再加上&lt;/p&gt;
&lt;p&gt;-f用于填写抓包的参数 如果要填写应该填写/etc/mentohust/data.mpf&lt;/p&gt;
&lt;p&gt;其他配置一般可以直接默认，或者填写在windows中认证成功的数据&lt;/p&gt;
&lt;h3 id=&#34;抓包可选&#34;&gt;抓包（可选）&lt;/h3&gt;
&lt;p&gt;如果一直认证失败而其他参数都正确时，可以尝试抓包提供数据&lt;/p&gt;
&lt;p&gt;抓包要用到锐捷认证的客户端还有Mentohust Tool&lt;/p&gt;
&lt;p&gt;打开Mentohust Tool后，选择网卡后建议勾选“集成8021x.exe”和“集成W32N55.dll”这两个选项。之后即可开始抓包，打开锐捷客户端登录校园网，认证成功后会自动抓包完成，将抓包文件.mpf直接保存下来即可&lt;/p&gt;
&lt;p&gt;在&lt;a href=&#34;https://code.google.com/p/mentohust/downloads/list&#34;&gt;Mentohust项目地址&lt;/a&gt;中的Tool工具不知道为什么抓包失败，在各类论坛找了很久终于找到一个能够使用的Tool。本文章所有提到的文件在开头OneDrive链接中均有。&lt;/p&gt;
&lt;p&gt;这里直接引用wiki上的说明&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;-f：由于MentoHUST内置数据是与xrgsu兼容的（即如果用xrgsu能认证成功，用MentoHUST不设置这个参数就也能认证成功），
有些学校关闭了xrgsu的认证（一般提示“不允许使用的客户端类型”），这时可以将8021x.exe和W32N55.dll复制到/etc/mentohust目录，
如果认证失败，再将SuConfig.dat复制到/etc/mentohust目录一般即可认证成功。如果还失败就需要抓包并指定该参数。
到http://code.google.com/p/mentohust/downloads/list 下载MentoHUST抓包工具，然后运行其中的MentoHUSTTool，视情况勾选是否
“集成8021x.exe”和“集成W32N55.dll”（建议勾选），点击“开始”，运行“锐捷”，捕获锐捷认证时的数据包，等待抓包结束保存文件。
然后在Linux下将数据文件路径指定在这个参数中，如果没有勾选“集成8021x.exe”和“集成W32N55.dll”，则还要将8021x.exe与
W32N55.dll复制到数据文件所在目录，接下来就可以开始认证了。认证失败的话，再将SuConfig.dat也复制到该目录即可认证成功。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;W32N55.dll、8021x.exe，SuConfig.dat这三个文件在锐捷客户端的目录下可以找到&lt;/p&gt;
&lt;h2 id=&#34;其他玩法&#34;&gt;其他玩法&lt;/h2&gt;
&lt;p&gt;最终没有意外的话，应该已经成功认证校园网✌️，如果仍然被限制设备，被封禁校园网账号，可以参考这篇文章，应该可以解决。我目前没有这个需求，就没有细研，需要编译，怪麻烦的......&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.sunbk201.site/posts/crack-campus-network&#34;&gt;关于某大学校园网共享上网检测机制的研究与解决方案&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;多拨&#34;&gt;多拨&lt;/h3&gt;
&lt;p&gt;既然成功刷入openwrt并且认证成功，按道理来说自然是可以实现多拨&lt;/p&gt;
&lt;p&gt;只需要重新添加一个虚拟网口，再启动一个mentohust服务配置参数即可（按道理，没试过，一些学校会限制同时在线一个有线连接和一个无线连接，很不巧，我就是 🤡）
同时在线两个mentohust需要删除pid文件，可以参考下这个 &lt;a href=&#34;https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk/issues/20&#34;&gt;issue&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;具体的多拨和负载均衡都教程可以直接在网上查找，基本适用&lt;/p&gt;
&lt;p&gt;MiniEAP在多拨方面比较有优势&lt;/p&gt;
&lt;p&gt;这是MiniEAP项目主页对此的介绍&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;数据包修改同样由插件完成 可以在不修改主要认证流程的情况下适配各种环境。..可以启用多个插件，也可将一个插件启用多次。..程序会让标准 EAP 算法生成的数据包按照命令行中 --module 参数的顺序让数据包流经这些插件。目前提供一个锐捷 v3 认证算法插件和一个打印流经的数据包大小的示例插件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;clash&#34;&gt;Clash&lt;/h3&gt;
&lt;p&gt;这个没啥好说的，应该算是路由器刷机必安的插件之一&lt;/p&gt;
&lt;p&gt;恩山大佬提供的固件已经内置了OpenClash，不需要再安装。如果没有的话，OpenClash的项目地址在这里，可以直接下载ipk安装 &lt;a href=&#34;https://github.com/vernesong/OpenClash&#34;&gt;OpenClash&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;也可以选择ShellClash，就是没有可视化面板，比较麻烦点 &lt;a href=&#34;https://github.com/juewuy/ShellClash&#34;&gt;ShellClash&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;去广告&#34;&gt;去广告&lt;/h3&gt;
&lt;p&gt;这类去广告的插件有AdGuard Home、广告屏蔽大师 Plus+等插件，不过这类插件貌似效果一般，我个人还是直接在浏览器安装拓展&lt;/p&gt;
&lt;h3 id=&#34;内网穿透&#34;&gt;内网穿透&lt;/h3&gt;
&lt;p&gt;这个可能会是最常用的功能，目前还没配置&lt;/p&gt;
&lt;p&gt;想法是将路由器内网穿透后，链接电脑，配置远程后，实现远程访问电脑🤔&lt;/p&gt;
&lt;p&gt;目前想依靠frp和京东云买的活动服务器实现&lt;/p&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/openwrt/">OpenWrt</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E7%BD%91%E7%BB%9C/">网络</category>
                                
                            
                                
                                
                                
                                    <category domain="https://panp.cc/tags/%E6%8A%98%E8%85%BE/">折腾</category>
                                
                            
                        
                    
                
            </item>
        
            <item>
                <title>Hello New Blog</title>
                <link>https://panp.cc/posts/hello-new-blog/</link>
                <guid isPermaLink="true">https://panp.cc/posts/hello-new-blog/</guid>
                <pubDate>Fri, 13 Oct 2023 17:00:36 &#43;0800</pubDate>
                
                    <author>cool.panjianhao@gmail.com (PanNNN)</author>
                
                <copyright>[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)</copyright>
                
                    <description>&lt;p&gt;再一次成功搭建Blog🥲&lt;/p&gt;
&lt;p&gt;决定记录下我的博客的发展史&lt;/p&gt;
&lt;p&gt;大概从18年便基于Wordpress搭建了一个个人博客，用的是freenom提供的免费域名，服务器给忘记从哪里嫖的了&lt;/p&gt;
&lt;p&gt;作为纯小白的我，按照网上查到的教程资料一步步搭建，最终成功搭建了我人生中的第一个Blog&lt;/p&gt;
&lt;p&gt;在成功搭建后便对网站搭建起了极大兴趣，又斥巨资买了域名和学生机，作为blog的新地址&lt;/p&gt;
&lt;p&gt;期间也尝试过Typecho，最终因为对于WordPress而言较简陋，插件等资源比不过WordPress而弃（&lt;del&gt;其实是因为菜&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;在使用WordPress的期间，还根据&lt;a href=&#34;https://fatesinger.com/&#34;&gt;Bigfa&lt;/a&gt;大佬的&lt;a href=&#34;https://github.com/bigfa/Jaguar&#34;&gt;Jaguar&lt;/a&gt;主题魔改了一个主题发在Github上   &lt;a href=&#34;https://github.com/Pan-O/YJP&#34;&gt;YJP - Github&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在去年因为&lt;del&gt;懒&lt;/del&gt;比较忙闲置了很久blog，最终被迫关闭blog   &lt;del&gt;绝对不是因为没钱续费了&lt;/del&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;在开学后发现学习折腾了很多有意思的东西，想要有个地方能够 &lt;del&gt;装逼&lt;/del&gt; 记录，于是决定重新搭建个blog&lt;/p&gt;
&lt;p&gt;再考虑了很久之后，决定用Hugo搭建，不再使用WordPress的原因很简单，服务器的费用对一个贫穷的大学生来说简直就是巨资&lt;/p&gt;
&lt;p&gt;如果购买国内优惠活动的服务器，备案又是一个痛点&lt;/p&gt;
&lt;p&gt;经过综合考虑后便尝试搭建一个静态博客&lt;/p&gt;
&lt;p&gt;主流的框架大致有Hexo  Hugo Gastby等等&lt;/p&gt;
&lt;p&gt;Hexo文章的渲染速度慢，而Gastby在国内的资料较少（&lt;del&gt;不适合我这个技术小白&lt;/del&gt;），因此Hugo就符合我的需求&lt;/p&gt;
&lt;p&gt;这次blog 基于&lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;框架，主题使用&lt;a href=&#34;https://github.com/reuixiy/hugo-theme-meme&#34;&gt;Meem&lt;/a&gt; 托管在&lt;a href=&#34;https://pages.cloudflare.com/&#34;&gt;Cloudflare pages&lt;/a&gt;，完全不会再有费用的担忧了 ✌🏻&lt;/p&gt;
&lt;p&gt;这个博客的域名panp.cc 非常好理解&lt;/p&gt;
&lt;p&gt;pan便是我的姓，而结尾的p即可以表示pro也可以表示plus 还可以表示pure  &lt;del&gt;甚至可以表示porn？？？&lt;/del&gt;  反正就是有非常丰富的含义 :D&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我还有一个小小的个人页  &lt;a href=&#34;https://luckier.top&#34;&gt;luckier.top&lt;/a&gt;  欢迎来访 ！🎈🎈🎈&lt;/p&gt;
&lt;p&gt;最终 欢迎你来到我的新博客！🎉&lt;/p&gt;
</description>
                
                
                
                
                
                    
                        
                    
                        
                    
                
            </item>
        
    </channel>
</rss>
