我的 Arch Linux 和 LineageOS 使用心得

2022-05-20 11:43:35 +08:00
 DianQK

前段时间看 使用 Arch Linux 一年的感受 收获了不少 App ,我也分享一下我在使用 Arch Linux 和 LineageOS 的一些心得, 原文见:将 Arch Linux 和 LineageOS 作为主力系统。 个人觉得比较值得一提的是:WireGuard 的自动切换WireGuard 搭配 KDE Connect 使用浏览器插件&书签的管理

Arch Linux

设备选择:联想小新 14 AMD 5800H ,内存 16G 有点小,建议自行更换 AX200 网卡。

选择 Arch 主要是因为除了安装麻烦一些,其他都太友好了,尤其是 pacman 和 aur 。 使用 Arch 可以让自己始终保持可以安装到最新的包。

这里安装 aur 使用的是 yay

如果你需要相关的安装教程,建议参考 Arch Linux 安装使用教程 - ArchTutorial - Arch Linux Studio

软件使用

我选择了 KDE 全家桶,整体上使用起来还好。

以下为我在 Linux 上使用的部分软件:

解决中文字体在 hidpi 的渲染

参见:Linux 下的字体调校指南。 配置完成后,更新特殊应用,比如 code - oss 设置 terminal.integrated.fontFamilymonospace

奇怪的粘手问题

设置 - 输入设备 - 触摸板 - 取消勾选轻触拖拽

Code - OSS

当使用开源版本的 VSCode 时,会因为授权无法使用 C/C++ 插件,这里选择 clangd 替代即可。


LineageOS

设备选择:

通知推送

使用 MIUI Push Framework ,为了让更多的 App 可以使用,你需要写入一些参数,miui_push_device_fake 供参考。 另外在这套方案下还可以在冻结 App 后继续收到通知。

冻结应用

我选择:雹( Hail )

相机

我在 xda 上寻找了使用 Google 相机的方法,另外我关闭了 Google 相机的网络权限。

输入法

使用 Gboard 同时关闭对应的网络权限。

F-Droid 上其他应用清单

访问内网

之前我曾写过一篇 tproxy 的使用,这里提到了如何用 ss 解决上网以及访问家里内网的方案。 但更合适的解决方案是使用 WireGuard ,这样每个设备都会拥有一个 wg 的 IP 网段,可以在各种网络环境下将连接到 wg 的设备看做在一个 wg 内网下。 这有一个非常重要的使用场景:手机 4G 、PC 连接非家庭 Wifi ,二者可以继续使用 KDE Connect 做设备协作。

这里我的 PC 、手机不是一直在内网或外网的情况下,需要频繁切换 wg 的开关状态。 我分别写了两个自动切换的控制。

Linux 根据网络自动切换 WireGuard 开关

参考代码如下:

➜  ~ cat /etc/NetworkManager/dispatcher.d/50-wg0.sh 
#!/bin/sh

interface_=$1
status_=$2

case $status_ in
  up)
    if [[ "$interface_" == "wlan0" ]]; then
      if [[ "$CONNECTION_ID" == "wifi_name" && "wifi_connection_uuid" ]]; then
        wg-quick down wg0
      else
        wg-quick up wg0
      fi
    fi
    ;;
 down)
    if [[ "$interface_" == "wlan0" ]]; then
      wg-quick down wg0
    fi
    ;;
esac

思路很简单,利用 NetworkManager 的切换回调,当连接 Wifi 为内网时,关闭 wg ,其他场景(连接到其他 Wifi 、断开 Wifi )均断开 wg 。

Android 根据网络切换 WireGuard 开关

可以使用 Tasker 、Automate 、Automation 等软件写自动化任务,(可能是我使用姿势不对?)可靠性不够,经常出现没有打开的问题。 为此,我写了一个 Magisk 模块,通过 ip monitor 监听 wlan0 的 ip 变化进行切换,详细参见:WireGuard AutoConnect for Android

这里应该有更好的解决方案,不过上面的 Magisk 模块对我来说已经可以做到稳定切换的能力。

多设备协作

使用 KDE Connect 即可,可以完成剪切板同步、简单的文件或浏览网页分享,还有通知、远程控制等等。 不过 Android 目前限制了后台访问剪切板的能力,我使用 Clipboard Whitelist 解决该问题。 当两个设备不在一个安全的同一网络下,设备仍然可以同时,参见上述的 WireGuard 相关内容。

DLNA 投屏

iOS 设备在这里投屏体验可能较差,经常找不到投屏目标,我不清楚原因。

在 Android TV 上安装 Kodi 打开 DLNA 、Airplay 投屏即可。

浏览器

Linux 上我选择 ungoogled-chromium ,Android 上使用 Kiwi Browser 。 上面两个都可以安装 Chrome Extensions ,我使用 chromium-web-store 安装更新 ungoogled-chromium 的 Chrome Extensions 。 书签同步选择:floccus bookmarks sync (同步后端使用 Nextcloud )。

由于 ungoogled-chromium 安装时间比较长,可以使用以下参数解决 sudo 授权超时问题:sudo yay -Syu --sudoloop

备份

虽然写在了靠后的位置,但实际上这是相当重要的内容,使用任何系统、软件都可能在预想不到的时候出现不可用的情况,所以备份是重中之重。 我选择了 restic 对 Linux 进行全盘备份,使用 Automatic restic Backups using Native OS Task Schedulers 完成定时备份的能力。

后端我选择了 restic server 部署在群晖上。

另外还可以使用 snapper + btrfs 进行每小时的快照备份。

在群晖上的备份我选择了官方的 Hyper Backup + restic 备份到公有云,restic 支持后端存储非常多,这里我选择了性价比很高的 B2 backblaze 。

密码管理

Bitwarden 客户端加上 vaultwarden 作为后端保存数据。 记得做好备份,另外配置上有一些需要注意的地方,参见:升级群晖到 7.0 版本的 HTTPS 和 Vaultwarden 配置方案

邮箱

客户端选择如下: Linux:KMail Android:K-9 Mail

另外我使用 OpenPGP 加密邮件搭配 simplelogin 注册账户。

在 KMail 上设置调整:

Anki

背单词神器,后端使用 anki-sync-server-rs 部署,参见:使用 anki-sync-server-rs 部署自己的 anki 同步服务

RSS 相关

10229 次点击
所在节点    Linux
61 条回复
DianQK
2022-05-20 15:55:27 +08:00
@461da73c 手机和笔记本经常会带出去,自动切换就能保持始终和家里的内网连接
DianQK
2022-05-20 15:56:24 +08:00
@Poker18 确实有些 ROM 会主动关闭内核的 wireguard ,不知道原因是什么
DianQK
2022-05-20 15:58:12 +08:00
@Poker18 如果这台设备不会放到家里局域网中,那确实没有切换的必要,直接用 wg-quick up wg0 (配置文件名) 就行了,kernel 会自动处理,关闭就 wg-quick down wg0
DianQK
2022-05-20 15:59:48 +08:00
@Buges 关于这一点的话,我感觉该出问题的时候还是会出,稳定版 != 没有 bug (上次有个内核 bug ,螃蟹 Wi-Fi 不能用了),铭记:不要在明天还有事情忙的时候更新。
DianQK
2022-05-20 16:00:29 +08:00
@lait rust 版本的,可能不能兼容 py 版本,得迁移一下
DianQK
2022-05-20 16:01:08 +08:00
@showgood163 有广告,去掉了 gcm 之类的闭源组件(换句话说没有通知了,必须挂后台)
Buges
2022-05-20 16:17:44 +08:00
@DianQK 出问题可以降级啊,Android 降级得双清
AllenHua
2022-05-20 17:43:03 +08:00
离开 android 好几年了,看了一些 f-droid free software 推荐,觉得 android 也真的美好,开源万岁!想买一个天玑 8100 的 android 手机了。

推荐阅读:

- F-Droid 应用推荐 https://meta.appinn.net/t/topic/15095
- F-Droid 使用指南 https://sspai.com/post/63647
- 一个 F-Droid 应用清单 https://github.com/offa/android-foss
- 清华大学 fdroid 镜像 https://mirrors.tuna.tsinghua.edu.cn/fdroid/
AllenHua
2022-05-20 17:51:52 +08:00
忘了提及,感谢楼主的分享,见识到不少新玩法。
clf
2022-05-20 18:07:46 +08:00
@AllenHua 联发科 CPU 的 android 手机折腾会麻烦很多,比如解 BL 锁和 Root 会麻烦不少。

————————

Android 原生系统下有自动微信通话录音的解决方案么。
Poker18
2022-05-20 18:28:51 +08:00
@DianQK 但…怎么执行 wg-quick 呢? Termux ?
DianQK
2022-05-20 18:59:13 +08:00
@Poker18 可以先安装 WireGuard 的 app ,里面有个写入 wg-quick 到 magisk module 的选项。这之后就可以 su 用 root 权限执行了,我写的这个模块就是从这个 app 提取的。
DianQK
2022-05-20 19:01:10 +08:00
@Poker18 https://www.wireguard.com/install/ 也可以直接 pkg 安装(这个我没有试过)
webfrogs
2022-05-20 19:48:35 +08:00
青总也开始用上 Linux 了
jarence
2022-05-20 19:49:29 +08:00
佩服佩服!
DianQK
2022-05-20 20:59:06 +08:00
@webfrogs 已经开始拿来日常用+写代码了
wedfds
2022-05-20 21:19:05 +08:00
在 Android TV 上安装 Kodi 打开 DLNA 、Airplay 投屏即可。

请问 tvsou 端安装 kodi 后,移动端怎么投屏到 TV ,后半句没大看明白,
DianQK
2022-05-20 21:33:09 +08:00
@wedfds Kodi 里面有一些设置的选项,可以打开 DLNA 作为投屏服务
ltkun
2022-05-20 22:21:40 +08:00
楼主和我很多共同 app 和应用哈 不同之处是我的后端是基于 pve 和 docker 建立的 群晖总觉得 都用 linux 了还群晖
nextcloud 我有 jellyfin 布了 termux 安卓主力 kodi 多媒体主力遥控器我用 yatse 访问内网简单粗暴 openvpn 密码也是 bitwarden wallabag 也用 Material Files 也有不过熟悉了 cx 管理器了哈 。。。其他可以参考我的私有云部署的文章
jjpprrrr
2022-05-20 22:28:20 +08:00
@DianQK #22 并不是 kernel 故意关掉了 wireguard 。Linux 5.6 的时候 wireguard 才正式进入 mainline ,在这之前的版本是没有 wireguard 的,需要维护者在 kernel 内手动添加 wireguard 为旧版本 kernel 做的 backport 。如果维护者没添加,那自然就没有……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX