Home avatar

Lixp 的 Blog

Helix 配置

首先在 Arch Linux 中安装:

yay -S helix

ArchLinux 中 helix 的默认别名并不是 hx, 可以手动软链接

Rime输入法安装

使用雾凇拼音方案(Rime-ICE), Rime-ICE 是社区维护的 Rime 配置, 项目地址为 https://github.com/iDvel/rime-ice , 集成了很多常用功能, 支持双拼和全拼, 由于会经常更新, 所以用户自己对配置文件直接修改会在更新时被覆盖掉, 所以推荐用 Rime 中对配置文件 Patch 的机制来嵌入自己的配置内容, Rime 官方文档的配置规则为以下内容:

Git 基本配置

Windows 可以在 https://git-scm.com/ 下载安装, Linux 一般发行版都自带 Git .

使用 ssh-keygen 命令可以生成 ssh-key , 在 Windows 和 Linux 一般都是自带的, 终端运行后可以交互式生成, 没有特殊需求直接按三次回车即可.

ArchLinux 安装配置

这里选择 EndeavourOS , 它是一个 Arch Linux 的发行版, 安装更加方便, 初始安装自带桌面, 方便进行后续操作, 同时接近上游, 不像 Manjaro 一样对 Arch Linux 有很多改动.

安装时注意选择 Btrfs + Grub . 推荐离线安装直接可以安装 KDE 版本.

Rust交叉编译和静态链接

如果依赖不包含C/C++依赖, Rust的交叉编译非常简单, 例如需要编译aarch64平台的静态链接产物, 只需要:

  1. rustup target add aarch64-unknown-linux-musl, 添加相关工具链 (*-musl为静态链接版本, 而aarch64-unknown-linux-gnu一般为编译动态链接的目标, 具体差异可以查询"gcc vs musl")
  2. cargo build --release --target aarch64-unknown-linux-musl, 编译产物
  3. 传输到目标平台后, 使用ldd <filename>即可检查是否有动态依赖, 输出statically linked即为成功静态链接

例如Rust中比较流行的HTTP客户端reqwest, 可以指定替换底层的OpenSSLrustls-tls, 规避C代码依赖, 在Cargo.toml中添加如下features:

Windows注册表更改按键映射

win+r运行regedit打开注册表, 移动到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

输入:

00,00,00,00
00,00,00,00
03,00,00,00
3A,00,1D,00
1D,00,3A,00
00,00,00,00
  • 前两行版本信息号.
  • 第三行表示修改了几个键,低位在左,高位在右.最后一行也算一个. 03,00,00,00意为00,00,00,03
  • 四五行表示修改的键.以键盘扫描码作为标识.
  • 3A,00,1D,00表示将左Ctrl映射为Caps Lock
  • 最后一行以结尾.
    "00 00":"None",
    "01 00":"Esc",   
    "02 00":"1",
    "03 00":"2",
    "04 00":"3",
    "05 00":"4",
    "06 00":"5",
    "07 00":"6",
    "08 00":"7",
    "09 00":"8",
    "0a 00":"9",
    "0b 00":"0",
    "0c 00":"-",
    "0d 00":"=",
    "0e 00":"Backspace",
    "0f 00":"Tab",
    "10 00":"Q",
    "11 00":"W",
    "12 00":"E",
    "13 00":"R",
    "14 00":"T",
    "15 00":"Y",
    "16 00":"U",
    "17 00":"I",
    "18 00":"O",
    "19 00":"P",
    "1a 00":"[",
    "1b 00":"]",
    "1c 00":"Enter",
    "1d 00":"Left Ctrl",
    "1e 00":"A",
    "1f 00":"S",
    "20 00":"D",
    "21 00":"F",
    "22 00":"G",
    "23 00":"H",
    "24 00":"J",
    "25 00":"K",
    "26 00":"L",
    "27 00":"Semicolon",    
    "28 00":"'",
    "29 00":"`",
    "2a 00":"Left Shift",
    "2b 00":"\",
    "2c 00":"Z",
    "2d 00":"X",
    "2e 00":"C",
    "2f 00":"V",
    "30 00":"B",
    "31 00":"N",
    "32 00":"M",
    "33 00":",",
    "34 00":".",
    "35 00":"/",
    "36 00":"Right Shift",
    "37 00":"n*",
    "38 00":"Left Alt",
    "39 00":"Space",
    "3a 00":"Caps Lock",
    "3b 00":"F1",
    "3c 00":"F2",
    "3d 00":"F3",
    "3e 00":"F4",
    "3f 00":"F5",
    "40 00":"F6",
    "41 00":"F7",
    "42 00":"F8",
    "43 00":"F9",
    "44 00":"F10",
    "45 00":"Num Lock",
    "46 00":"Scroll Lock",
    "47 00":"n7",  
    "48 00":"n8",
    "49 00":"n9",
    "4a 00":"n-",
    "4b 00":"n4",
    "4c 00":"n5",
    "4d 00":"n6",
    "4e 00":"n+",
    "4f 00":"n1",
    "50 00":"n2",
    "51 00":"n3",
    "52 00":"n0",
    "53 00":"n.",
    "57 00":"F11",
    "58 00":"F12",
    "1c e0":"nEnter",
    "1d e0":"Right Ctrl",
    "37 e0":"PrtSc",
    "38 e0":"Right Alt",
    "47 e0":"Home",
    "48 e0":"Up",
    "49 e0":"Page Up",
    "4b e0":"Left",
    "4d e0":"Right",
    "4f e0":"End",
    "50 e0":"Down",
    "51 e0":"Page Down",
    "52 e0":"Insert",
    "53 e0":"Delete",
    "5b e0":"Left Windows",
    "5c e0":"Right Windows"

禁用Windows笔记本自带键盘

CMD管理员身份运行:

sc config i8042prt start= disabled 	禁用键盘
sc config i8042prt start= demand 	启用键盘

sc config是设置服务启动类型, 可选项disabled(禁用)/demand(手动)/auto(自动)

Aria2服务部署

https://p3terx.com/archives/docker-aria2-pro.html
https://p3terx.com/archives/aria2-frontend-ariang-tutorial.html

aria2服务部署, 使用前替换<TOKEN>

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=\<TOKEN\> \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v $PWD/aria2-config:/config \
    -v $PWD/aria2-downloads:/downloads \
    p3terx/aria2-pro

ariaNG部署

不使用中间变量交换值

如有 a,b 两个变量, 思路是先某种运算使 a 储存 a,b 的全部信息, 然后用 b 与 a 进行逆运算使 b 得到 a 的初始值, 然后用 a 与 b 逆运算赋值给 a.

用群论的说法是: 或运算的集合 G_or({1,0},or) , 与运算的集合G_and({1,0},and)