Linux通用键位修改
下面的修改主要是因为:
现在习惯使用84配列的机械键盘,改配列下Insert键常被精简为需要和Fn键组合触发,这样使用IDE时某些快捷键不是很方便使用,反倒是PrtSc这个不常用的按键被保留了,所以把PrtSc键映射为Insert可以提高效率
现在使用Fcitx5,虽然右侧Shift可以设置为输入法切换按键,但是无法将右Alt、Ctrl键设为热键;同时由于开始尝试双拼,v这个默认用于触发快速输入的按键在双拼模式下需要使用,所以把右Alt键映射为F16,这样即可实现用右Alt进入快速输入模式
主要参考文章:
Linux通用键位修改(中)-实际操作
ArchLinux 键盘映射:交换 CapsLock 和 Ctrl
修改操作:
12345678910# 将PrtSc键映射为Insert# 将右Alt键映射为F16(XF86Launch7)sudo tee /etc/udev/hwdb.d/90-custom-keyboard.hwdb &>/dev/null <<EOFevdev:input:b0003* KEYBOARD_KEY_70046=inser ...
fcitx5_customizer —— 一个让 Fcitx5 更符合简中用户使用习惯的优化脚本
Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。而 Fcitx5 则是 Fcitx 的接替版本,其 slogen 是 maybe a new fcitx. 但是初始状态下的 Fcitx5 由于词库的缺失以及默认配置与很多人的习惯不同,所以需要进行一些修改和配置才能获得比较好的体验,于是我创建了一个专门用于优化 Fcitx5 的脚本——fcitx5_customizer
使用方法1234567891011# 完全自定义bash fcitx5_customizer.sh# 使用推荐配置bash fcitx5_customizer.sh recommend# 在线运行bash -c "$(curl -fsSL https://www.debuggerx.com/fcitx5_customizer/fcitx5_customizer.sh)"# 在线运行并使用推荐配置curl -sSL https://www ...
远程监视器——使用Flutter/Dart开发的Linux系统状态监视APP
简介这是一个利用 Flutter/Dart 编写的,用于显示 Linux 系统状态信息的APP,可以运行在包括Android、iOS、Linux、MacOS、Windows等平台上,兼容从小屏手机到大屏幕电视等各种尺寸的展示,支持局域网自动发现服务,也支持通过网络远程使用。
开发动机
组了台洋垃圾E5主机,配的是一颗10核20线程的CPU,所以想做一个可以随时获得数框框快乐的工具
钟爱的 deepin 系统升级v23版本后系统环境改动很大,原本使用的dock栏网速插件和悬浮窗插件失效了,所以打算做一个替代品
除了日常使用 Linux 桌面,手里还有一些运行 Linux 系统的云服务器、虚拟机和机顶盒等设备,所以想要做一个无关发行版和桌面环境,通用的系统监视工具
家里一堆淘汰的旧手机想要利用起来,并且用旧手机做系统状态监控可以在不占用一丁点的电脑屏幕空间情况下显示足够丰富的信息
特性
支持Android直接下载安装APP,iOS、Linux、MacOS、Windows等可以无修改直接支持
多CPU架构支持(X64、ARM64)
适配各种屏幕尺寸的显示、支持横竖屏切换
适配多核心的自适应 ...
在 flutter 中利用 source_gen 实现条件编译(下)
在前篇 在 flutter 中利用 source_gen 实现条件编译(中) 中,我们利用 source_gen 实现了一套基础的条件编译流程。
但是目前这套方案还有几个实用性问题:
条件的表达力太弱,缺乏平台类型的组合和取反操作,一旦需要处理的平台类型超过两个就会很难处理 1234567891011/// 例如,如果有三个平台类型[android、ios、desktop],那么代码需要写成下面的样子:@PlatformSpec(platformType: PlatformType.desktop)String platform = 'Desktop';@PlatformSpec(platformType: PlatformType.android)String platform = 'Mobile';/// 即使 ios 和 android 的代码完全相同,也必须再写一遍@PlatformSpec(platformType: PlatformType.ios)String platform = 'Mobile';
生成的代码存在格式丢失情况,尤其是尾随逗号(trailing ...
在 flutter 中利用 source_gen 实现条件编译(中)
在前篇 在 flutter 中利用 source_gen 实现条件编译(上) 中,主要介绍了在 Flutter 跨平台开发过程中“条件编译”特性的需求及现状。本篇将介绍一种利用 Flutter/Dart 官方的代码生成库 —— source_gen 实现条件编译的方法。
从 json_serializable 认识 source_gen
如果是按部就班地学习 flutter,那么应该是在 JSON 和序列化数据 这篇教程里第一次认识 flutter/dart 的 source_gen(代码生成) 技术。
json_serializable 做了什么在网络应用开发中,经常需要做 JSON 对象的序列化和反序列化。如果直接使用 dart:convert 包将json字符串反序列化,得到的将是一个通用的Map/List结构,然后开发时通过输入字段名字符串的方式从中取值,非常的不方便,所以在前后端已经定义好数据格式时,通过预定义实体类,json解析后将字段值映射到这个实体类的属性上,就可以在开发时获得类型提醒和约束,从而极大提高开发效率,并降低出错的概率。而json_serializab ...
基于Gitea+Drone的CI系统
关于CI系统(Continuous Integration),我已经有过了一些学习和实践了:
GitLab CI/CD (一) :自动打包部署Flutter项目 | DebuggerX’s BlogGitLab CI/CD (二) :自动编译部署Web项目 | DebuggerX’s Blog利用 GitHub Actions 自动构建 Linux 内核为 deb 包 | DebuggerX’s Blog
那么为什么还要再折腾这样一套CI方案呢?
GitLab的CI/CD:很好,很强大,功能非常完善,非常建议中小团队作为自建代码管理部署平台使用,唯一的问题就是太重了,需要一台性能配置颇高(至少使用2 vCPU和4 GiB内存)的独立服务器
GitHub Actions:也很好,使用非常方便,非常建议个人项目使用,但是同样缺陷明显,虽然可以部署私有runner,但是由于GitHub本身无法self-hosted,所以使用体验很受网络质量影响,并且由于各种安全限制,私有仓库使用体验不是那么的方便
所以基于如上原因,我是在家里一台24小时运行的小服务器上部署了一个 Gitea 服务,并将 ...
在 flutter 中利用 source_gen 实现条件编译(上)
随着 Flutter 3 正式发布,Flutter 的跨平台之旅迈入高潮。现在,Flutter 3 增加了对 macOS 和 Linux 应用的稳定支持,这意味着我们可以仅用一套代码库,为 6 个平台构建精美的体验。
一套代码跨平台的问题迄今为止,我已经使用 flutter 开发了数个跨平台项目,有的是相对常见的 Android / iOS 双平台项目,也有横跨桌面端、移动端和 Web 端这种平台差异更大的项目。由于 flutter 项目是使用同一套代码来编写所有目标平台的界面和逻辑,所以时常会出现以下情况:
不同平台下需要运行不同的代码逻辑例如,在 Android 平台上,应用左上角默认的返回键图标是【】,而在 iOS 平台上,默认的返回键图标样式是【】(参看:平台行为差异和适配 - 图标),为了能够使应用在不同平台上可以表现得更加符合平台的风格和习惯,往往需要判断运行平台编写分支代码
一般做法针对上面的例子,参看 flutter sdk 中 BackButton 的源码 back_button.dart#L31:
1234567891011121314151617181920c ...
个人对 Linux 的一些偏好设置
上一篇 利用 Xbindkeys 设置全局快捷键/一键切换输入法 中介绍了我关于系统快捷键的一点定制,这篇将继续介绍我个人对 Linux 的一些偏好设置,有些是为了提高效率方便使用,有些则是为了美观。
window.onload = function () {
document.querySelectorAll('.hide_code').forEach(function (div) {
var is = div.querySelectorAll('i');
is[0].click();
});
}
Bash.bashrc12345678910111213141516171819# History settings.# 配置显示 history 时显示时间HISTTIMEFORMAT="[%F-%T] "# 增加记录历史的最大条数HISTSIZE=10000HISTFILESIZE=20000# Alias definitions.# 将别名配置分离到独立文件中方便管理if [ - ...
利用 Xbindkeys 设置全局快捷键/一键切换输入法
就像在 DDE手势管理器:FAQ 中提到的,我对与电脑的交互方式一直有比较高的要求,毕竟工作加上生活娱乐,有太多太多的时间要花在电脑上了,符合个人习惯的操作方式可以极大地提高效率并缓解疲劳。除了触摸板手势和鼠标手势之外,我还有一些习惯的个人向系统快捷键设置,其中很重要使用频率极高的快捷键就是:通过单击键盘右侧的 Shift 按键切换输入法。
Why切换中英文输入法是一个使用频率极高的操作,尤其是在写代码和文档的时候。一般来说,默认的切换方式有两种:
使用 Ctrl + Shift 组合键,这是最符合一般习惯的。但是由于需要使用左手的小拇指和无名指以略微扭曲的姿势去按,所以长时间频繁使用会比较容易造成疲劳,而且需要按两个键的组合键,相比于按下一个键总归要多花一点点时间,这在高速打字或者需要尽快跟随思路编写代码的时候,这一点点的差别就可能会让人感觉到不爽。
使用中文输入法自带的方式切换中英文模式,比如搜狗输入法中可以选择切换中英文模式的快捷键: 但是搜狗输入法给出的选项是同时对左右两侧的 Ctrl / Shift 键生效的,而我只希望右侧的 Shift 键响应中英文的切换,因为正常来 ...
Docker 使用技巧杂记
记录一些使用 Docker 的经验和技巧,备忘 📝
加速Docker 镜像加速尝试过各种国内镜像,最终发现还是阿里云的最快,这与 【测速】使用不同的Docker镜像加速器下载速度 对比测试 这篇博客中的测试结果一致。由于阿里云会为每个用户分配独立的加速器地址,建议有阿里云账号的还是用自己的地址,查看方式是,登录阿里云账号后进入控制台,然后【容器镜像服务】->【镜像工具】->【镜像加速器】查看:
12345678sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
let _time;
const img = document.querySelector('[alt="aliyun_mirrors"]').parentE ...