惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
博客园 - 叶小钗
V
V2EX
博客园 - Franky
博客园_首页
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
S
SegmentFault 最新的问题
B
Blog RSS Feed
博客园 - 【当耐特】
D
Docker
N
Netflix TechBlog - Medium

竹林里有冰的博客

Nuxt SSG 博客的尾斜杠到底怎么加? | 竹林里有冰的博客 小米 Xiaomi Book Pro 14 (Ultra X7) Linux 兼容性实测 | 竹林里有冰的博客 国内(大陆)版小米 FCM 熄屏断连:Rootless 环境下的尝试与可能的解决方案 | 竹林里有冰的博客 我没法访问 dl.google.com —— 记一次 TUN 下的网络 debug | 竹林里有冰的博客 Vercel 的缓存控制,你注意过吗? | 竹林里有冰的博客 小记 —— Caddy 在 Layer 4 上的流量代理实践 | 竹林里有冰的博客 你的域名后缀拖慢你的网站速度了嘛?——再谈 DNS 冷启动 | 竹林里有冰的博客 DNS 冷启动:小型站点的“西西弗斯之石” | 竹林里有冰的博客 HTTP/2 Server Push 已事实性“死亡”,我很怀念它 | 竹林里有冰的博客 Nuxt Content v3 中数组字段的筛选困境与性能优化 | 竹林里有冰的博客 后 OCSP 时代,浏览器如何应对证书吊销新挑战 | 竹林里有冰的博客 初试 Github Action Self-hosted Runner,想说爱你不容易 | 竹林里有冰的博客 DNS 解析延迟毁了我的图床优化 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(下):告别 DOM 操作,拥抱 AST 与函数式渲染 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(上):从暴力刷新、分块更新到 Morphdom 的华丽变身 | 竹林里有冰的博客 node-sass 迁移至 dart-sass 踩坑实录 | 竹林里有冰的博客 前端中的量子力学——一打开 F12 就消失的 Bug | 竹林里有冰的博客 2025 年,如何为 web 页面上展示的视频选择合适的压缩算法? | 竹林里有冰的博客 el-image 和 el-table 怎么就打架了?Stacking Context 是什么? | 竹林里有冰的博客 2025年,前端如何使用 JS 将文本复制到剪切板? | 竹林里有冰的博客 ssh 拯救世界——通过 ssh 隧道在内网服务器执行 APT 更新 | 竹林里有冰的博客 Cudy TR3000 吃鹅(daed)记 | 竹林里有冰的博客 使用 Cloudflare Workers 监控 Fedora Copr 构建状态 | 竹林里有冰的博客 基于 Cloudflare Workers 实现的在线服务状态检测告警系统 | 竹林里有冰的博客 构建部署在 Cloudflare Workers 上的 TG Bot | 竹林里有冰的博客 2024年,Firefox 是唯一还在坚持执行在线的 SSL 证书吊销状态检查的主流浏览器 | 竹林里有冰的博客 小爱课程表适配不完全指北——以 ZJUT 本科正方教务系统为例 | 竹林里有冰的博客 将博客从 waline v2 更新到 waline v3 | 竹林里有冰的博客 给家里云装上 Fedora 41 KDE 后,我是如何配置的 | 竹林里有冰的博客 为 Hexo 添加 follow 认证 | 竹林里有冰的博客
为 Element 添加自己喜欢的贴纸 | 竹林里有冰的博客
竹林里有冰 · 2022-08-10 · via 竹林里有冰的博客

在读这篇文章之前,你应该已经知道 element、matrix 是什么,这部分内容咱就不过多展开讲了。

需要准备的#

  • PC 端 element
  • python3.6+ 环境
  • 能够挂静态资源的站点(比如 Github Pages、Gitlab Pages、Vercel 等免费平台的账号)
  • 可能需要能够突破大局域网限制的网络环境

需要用到的项目 maunium/stickerpicker

克隆主项目#

git clone https://github.com/maunium/stickerpicker.git && cd stickerpicker

使用 pip 安装依赖#

其实本来想直接用包管理去安装这个项目的依赖的,可惜我看了一眼依赖列表,有整整一半的依赖没有被 Fedora 打包,所以干脆就直接用 pip 安装算了。

pip install .

选择一:将本地图片制成贴纸包#

在项目根目录下创新一个新的目录。

mkdir <pack directory>

将需要的图片放入其中。如果需要排序,可以在图片的文件名最前面加上数字标号。

执行命令进行打包

sticker-pack <pack directory> --add-to-index web/packs/

如果想要给目录贴纸包命名,则可以追加--title <custom title>,否则将直接设置为目录名

选择二:从 tg 获取现成的贴纸包#

项目内已经为我们准备了 sticker-import 命令来帮助我们直接从 tg 获取表情包,那我们直接收下

sticker-import <pack_url>

第一次使用时,会要求我们登陆 matrix 和 tg 账号

matrix 的 homeserveraccess token 可以在 PC 端 element 的设置里找到

element 在 pc 端上而设置界面element 在 pc 端上而设置界面

tg 登陆时需要你输入手机号码,或者某一个 tg bot 的 token,这个大家都懂。

运行完成后,贴纸包就被上传到了你所使用的 matrix homeserver 上。


接着我们需要做的事情就是将 web 文件夹部署到 github pages 等做成静态站点,这个比较简单,不再赘述,我这里直接部署在了 https://matrix-sticker.zhullyb.top 我们下文就直接拿它做演示,看得上的也可以直接拿来用。另外,@朝色 的 url 也可以直接拿来使用 https://sticker.zhaose.cyou/web/

这是本篇文章最吊诡的地方,element 其实并没有为我们准备这么一个添加自定义 sticker 的地方,从某种意义上讲,我们是把我们的 sticker 给 hack 进去。

在 element 的 pc 端找到任意一个对话框,输入 /devtools 并发送

如图如图

将会出现如下页面,选择 Explore account data

1660220693791.png1660220693791.png

找到 m.widgets,如果没有,就点击下图标出的按钮

1660220786171.png1660220786171.png

在新的页面中,填写如下内容,url 那一行应当改为自己部署的页面,并发送请求

{
    "stickerpicker": {
        "content": {
            "type": "m.stickerpicker",
            "url": "https://matrix-sticker.zhullyb.top/?theme=$theme",
            "name": "Stickerpicker",
            "data": {}
        },
        "sender": "@you:matrix.server.name",
        "state_key": "stickerpicker",
        "type": "m.widget",
        "id": "stickerpicker"
    }
}

发送请求发送请求

重启 element,此时就可以享受到自己导入的 sticker 了,手机端的 element 设置也将会被同步。

补一张效果图

效果图效果图