DDE手势管理器-更新日志
[v1.0.2]
修复内置命令不生效的问题。
发布地址: v1.0.3
本站下载: com.debuggerx.dde-gesture-manager_1.0.3.3_amd64.deb
[v1.0.2]
修复删除最后一个本地方案配置时触发的程序内部错误;
修复退出单个手势编辑模式时,若手势配置不正确则会出现编辑界面清空的错误。
发布地址: v1.0.2
本站下载: com.debuggerx.dde-gesture-manager_1.0.2.2_amd64.deb
[v1.0.1]
加入软件启动时读取公告并显示的功能
修复点击 markdown 预览界面中的文字部分无法进入编辑模式的问题
接入 Sentry 异常收集平台
发布地址: v1.0.1
本站下载: com.debuggerx.dde-gesture-manager_1.0.1.1_amd64.deb
[v1.0.0]
正式使用生产服务器作为数据源
完成 Deepin/UOS 应用商店规范的 deb 打包
发布地址: v1.0.0
DDE手势管理器-说明手册
概述DDE手势管理器是专为 DDE 桌面环境打造的触摸板手势管理工具(缩写:dgm),客户端使用 Flutter 构建,支持如下功能:
创建、编辑、删除本地手势配置方案
将选定手势方案应用到系统中
注册登陆后可以上传、分享自己创建的配置方案
可以下载、点赞他人分享的配置方案
贴合 DDE 的 UI 设计风格,支持系统主题切换和活动色
支持多语言
使用入门您可以通过以下方式运行或关闭手势管理器,或者创建快捷方式。
img[alt=logo] {
display: inline !important;
margin: -0.2em 0.5em !important;
width: 1.5em;
}
运行手势管理器
单击任务栏上的手势管理器图标,进入手势管理器界面。
上下滚动鼠标滚轮浏览或通过搜索,找到手势管理器图标,单击运行 。
右键单击 ,您可以:
单击 发送到桌面,在桌面创建快捷方式。
单击 发送到任务栏,将应用程序固定到任务栏。
关闭手势管理器
在手势管理器界面,单击 ,退出手势管理器。
右键单击任务栏上 ...
利用 GitHub Actions 自动构建 Linux 内核为 deb 包
在上一篇中,我记录了如何通过源码直接编译并安装 Linux 内核,这一篇将介绍如何将内核编译为 deb 包,使我们可以方便地利用系统包管理工具对编译好的内核进行安装和删除等管理操作,以及如何利用 GitHub Actions 帮我们自动化编译。
本地编译主要参考 debian 的官方文档:编译内核源代码:Debian 内核团队推荐
相比于前篇介绍的步骤,主要区别如下:
使用 sudo apt-get build-dep linux 的方式即可自动安装编译内核所需的全部依赖
可以用 wget 直接从 http://www.kernel.org/pub/linux/kernel/ 这个位置下载所需源码包
使用 make deb-pkg 命令编译,即可生成内核的 deb 安装包。
利用 KVM 虚拟机隔离编译环境
为了不污染工作机的系统环境,我编译软件一般都是先用 KVM 开一个虚拟机进行编译,然后将产物拷贝到物理机使用,下面记录完整流程
下载系统镜像 iso 文件,我下载的是 UOS 系统的安装镜像,放置于 ~/Downloads/uniontechos-desktop-21. ...
修改 Linux 内核使系统启动时间缩短约 30 秒
首先注明,标题描述的修改效果并不具备普适性,仅仅是针对我刚买的新本子的特殊处理,但文中涉及的一些思路和技巧应该还是对处理解决类似的问题有一定的帮助。
对比视频
var bili1 = document.querySelector('#bili1');
var container = document.querySelector('#article-container');
bili1.height = (container.clientWidth * 3 / 4) + 'px';
问题描述趁着 618 活动新买了台红米 air 笔记本,cpu 是 i7-10510Y,希望可以日常使用 Linux,尝试了多个发行版基本都能正常使用,唯一的问题就是启动时,当在 GRUB 选择系统页面选择系统后,画面会停留在 GURB 主题背景页面长达 30 秒,然后才能继续开机流程。
尝试了最新的 Ubuntu 系统,也是类似的问题,唯一的区别是 Ubuntu 下是选择系统后电脑黑屏 30 秒然后出现加载信息。
查看 dmesg 信息可以看到如下错误:
123456 ...
Chrome 插件 : NewTabBeforeClose
简介这是一个 Chrome 插件,用于在关闭最后一个Tab时自动打开一个新标签页而不是关闭浏览器,行为表现模拟 世界之窗浏览器。
本人也算是世界之窗浏览器的老粉丝了,大约十五年前接触到这款浏览器之后就因为它简洁、轻巧、速度快、功能全面且人性化而一直使用。但是由于其被 360 公司收购之后逐渐停止更新,而且个人常用操作系统逐渐全面更换为 Linux,不得已只能强忍不适,将常用浏览器切换为 Chrome,多年过去也已经彻底习惯了。直到前些天看到 V2EX 上的这篇帖子:《浏览器关闭最后一个标签页后的行为》,又使我回想起了那些年有世界之窗相伴的日子,回忆起切换到 Chrome 后关闭最后一个标签页后浏览器会直接关闭而不是保留一个新标签页这一行为的不适与别扭——当时的我没有能力,只是个普通的计算机爱好者,而现在作为伪全栈开发有了折腾的能力,趁此机会就尝试编写了本插件,试图找回熟悉的感觉~
效果
实现细节Chrome插件开发学习主要参考资料如下:
【干货】Chrome插件(扩展)开发全攻略
Doc: Getting started
Doc: API Reference
Don’t Clo ...
MIB275中控加焊USB接口&无线carplay
最终效果
无线carplay,手机和中控都不用插线了,上车自动连接,wifi互联投屏
carplay版高德地图,中控屏显示地图导航,手机显示简洁信息,可以随便放在挡风玻璃前当HUD用或者放在一边充电
手机越狱以后还可以直接在大屏上看视频啥的
动机我这辆车的中控主机型号是 MIB275,使用体验真的是一言难尽……优点是反应还算快,音质马马虎虎,但是除此之外,导航难看(刷高德定制版后是顺眼些了但是每次启动自动进入导航界面,而且要连手机热点才能用,还是很不爽),蓝牙音乐功能简陋(无法实现音乐列表和封面图),所以很长时间我都是使用carplay来进行导航和听音乐。但是这款主机只有前面板一个usb口(包括2020款的车,虽然升级的275C主机更大更漂亮,但是仍然只有前面一个usb口),使用时必须插根线,首先每次上车要先插线很麻烦,而且很容易车子震动大的时候连接断开,副驾拿东西操作空调切歌的时候也很容易碰到,一根线拖老远看着也很不爽。另外还有一个问题,carplay连接的时候蓝牙音乐就不能用了,所以我手机通过carplay导航的时候,老婆大人在副驾想听自己手机里的歌我还得把carp ...
JSONFormat4Flutter v0.9 更新说明
JSONFormat4Flutter 是一个通过输入 json 字符串,生成可以在 Flutter 项目中使用(其实不止)的 dart 语言实体类代码的 GUI 工具。初版编写于2018年1月,由于当时还没有好用的同类工具,所以按照个人的偏好和理解以相对简单粗暴的方式编写了该工具,代码质量惨不忍睹,万万没想到会持续更新到今天。。。
迁移到空安全参考 dart 2.9 打开空安全后全错了,有计划兼容嘛? #30,在 Flutter 升级到2.0之后,默认开启空安全语法检查(参考:迁移Flutter项目到空安全的血泪史),这个工具生成的 json 代码全部都报错了,主要问题如下:
实例的变量需要在声明时初始化,或者在类的构造方法中进行初始化;
类的工厂方法不允许返回 null;
复杂逻辑下的可达性分析和空安全类型提升并不完美(例如对数组字段生成的赋值代码,循环中的 list 对象逻辑上不会为 null,但是语法检查器还是会将其判定为不安全的)
例如:
针对第一个问题,修改后生成的代码所有字段的类型均设置为可空。为什么不是保持字段类型为非空呢,参考:Map 的索引操作符是可空的,由于 ...
迁移Flutter项目到空安全的血泪史——有血、有泪、有💩
2021年3月4日,Flutter正式发布2.0版本——这一天,我回想起了,被脱发支配的恐怖……发际线再次失守的屈辱……
升级后的错误修复如果升级后打开已有项目,还能够正常通过编译,那么恭喜你,这说明你拥有作为 IT 人的最强技能——强运,且敏捷属性点满自带回避 BUG 和异常的效果 👍
然而其实除非项目规模太小,就没引入几个依赖包,大概率此时会因为依赖冲突或者其他插件包内的错误导致编译失败的 😑 。比如我在做的公司项目,引入了接近 40 个依赖和插件,结果自然是原地爆炸 😒……下面就以我的情况为例,介绍一下几种常见情况的处理方法。
charts_flutter 与 flutter_localizations 冲突我的项目中使用了 charts_flutter 这个库用于图表的显示,升级 SDK 后执行 flutter pub get 安装依赖时第一个报出的错误就是:根据报错信息得知,charts_flutter 这个库指定了其引用的 intl 库版本小于 0.17.0,而更新后 flutter SDK 中引用的 intl 库版本正好就是 0.17.0,所以引发了冲突。碰 ...
记一个由护手霜引发的BUG
现象前段时间,忽然注意到在做的 Flutter 项目的日志收集系统中出现了几个异常的用户,他们的日志中出现了大量错误,报错数量多达几千甚至上万:
而且是同一个错误在一段时间内频繁触发,间隔不过十几毫秒:
其具体的错误堆栈信息为:
123456789101112131415161718192021222324252627│ ⛔ Null check operator used on a null value│ ⛔ #0 _AndroidMotionEventConverter.toAndroidMotionEvent.<anonymous closure> (package:flutter/src/services/platform_views.dart:601)│ ⛔ #1 MappedIterable.elementAt (dart:_internal/iterable.dart:374)│ ⛔ #2 ListIterator.moveNext (dart:_internal/iterable.dart:343)│ ⛔ #3 new ...
qrs_detector——Flutter应用中的心电心率识别
公司的纯 Flutter 应用近期要添加一个根据 BLE 心电设备采集到信息实时显示使用者心率的功能,简单研究后发现需要实现一个 QRS波检测算法,记录下研究和实现的过程。
window.onload = function () {
document.querySelectorAll('.hide_code').forEach(function (div) {
var is = div.querySelectorAll('i');
is[0].click();
});
}
DEMO效果演示
var bili1 = document.querySelector('#bili1');
var container = document.querySelector('#article-container');
bili1.height = (container.clientWidth * 3 / 4) + 'px';
前期调查
由于 App 已经实现了 ...