V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
DianQK
V2EX  ›  Linux

我的 Arch Linux 和 LineageOS 使用心得

  DianQK ·
DianQK · 2022-05-20 11:43:35 +08:00 · 10117 次点击
这是一个创建于 913 天前的主题,其中的信息可能已经有所发展或是发生改变。

前段时间看 使用 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 上使用的部分软件:

  • Konsole - 终端
  • Ferdi - 类似 Web 转 App 的应用,我加入了 Telegram 和 Discord
    • Telegram 的原生 Qt 版本体验我感觉一般
  • Zotero - 文献管理,准确说我用来标注查阅书籍、课件等等
    • 我没有使用它的同步服务,我直接将全部内容移动到 Nextcloud 进行同步
    • 使用 Nextcloud 同步时应当忽略 *.sqlite-journal 文件
  • Okular - 查看 pdf

解决中文字体在 hidpi 的渲染

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

奇怪的粘手问题

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

Code - OSS

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


LineageOS

设备选择:

  • 红米 k30s:LCD 屏幕,LineageOS 官方更新比较勤快,目前已有 LineageOS 19.1
  • 小米平板 4:可能是唯一一款带 LTE 的小尺寸平板,xda 有非官方版的 LineageOS 19.1
  • Nvidia Shield TV:只能刷入 LineageOS 17 ,不过也够用了,建议用原版系统,LineageOS 似乎没适配配套的遥控器

通知推送

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

冻结应用

我选择:雹( Hail )

相机

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

输入法

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

F-Droid 上其他应用清单

  • Bromite - 隐私加强的浏览器作为备用
  • Ultrasonic - 使用 navidrome 作为音乐后端播放音乐
  • DeepL
  • Nextcloud
  • Telegram FOSS
  • Jellyfin
  • Tasks.org - 任务管理,后端使用 Nextcloud
  • Material Files - 很棒的文件管理,包含 Root 文件管理,搭配 Sui 使用
  • DAVx5 - 联系人同步,后端 Nextcloud
  • Gadgetbridge - 同步小米手环
  • VLC
  • Forecastie - 天气
  • Gerometric Weather - 天气
  • Aurora Stuore - Play 商店替代,我没有使用 GMS 和 microG
  • App Manager
  • Librera Reader - 看 pdf
  • Gotify - 接收各种通知,比如 NAS 任务通知
  • Termux
  • Droid-ify - F-Droid 非官方商店
  • openScale - 连接体脂秤
  • Neo Backup - 应用备份(包含数据),之前叫 OAndBackupX
  • AccA - 充电到 80%
  • RCX - 基于 Rclone 实现的客户端,非常棒
  • Kore - Kodi 远程控制

访问内网

之前我曾写过一篇 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 相关

  • rsshub:为更多网站添加 RSS 支持
  • miniflux:RSS 阅读器同步&拉取服务(包含 Web ),类似 Inoreader
  • NewsFlash:Linux 上的 RSS 阅读器,支持直接 miniflux 登录
  • News ( F-Droid ):Android 上的 RSS 阅读器,同样支持 miniflux 登录
  • wallabag:稍后读
  • flowerss-bot:RSS 即时通知
第 1 条附言  ·  2022-05-21 13:32:44 +08:00
刚刚基于 xda 上的项目,成功把带 WireGuard 的 LineageOS 19.1 编出来了(小米平板 4 ),过程参见: https://dianqk.blog/2022/05/21/build-custom-lineageos-on-archlinux/ ,下载地址 https://sourceforge.net/projects/xiaomipad4-clover-lineageos/files/lineageos-19.1/
61 条回复    2024-01-27 15:19:17 +08:00
yylzcom
    1
yylzcom  
   2022-05-20 11:46:38 +08:00 via Android   ❤️ 1
Ubuntu 桌面 + LineageOS/PE 用户点赞
joysir
    2
joysir  
   2022-05-20 12:09:37 +08:00   ❤️ 1
感谢分享,收获不少 Android App👍
BigNerd
    3
BigNerd  
   2022-05-20 12:50:18 +08:00   ❤️ 1
青总
wangkun025
    4
wangkun025  
   2022-05-20 12:58:46 +08:00
彪悍。我也想,但我做不到。
whenov
    5
whenov  
   2022-05-20 13:06:41 +08:00
想用 KDE Connect 但是 KDE 太重了,有轻量化的替代品推荐吗?
Buges
    6
Buges  
   2022-05-20 13:16:59 +08:00 via Android
lineage 缺一些通话自动录音之类的功能,而且只有 nightly build ,更倾向使用一个 lineage 衍生的发行版。
Huelse
    7
Huelse  
   2022-05-20 14:00:43 +08:00
感谢分享,有参考意义
DianQK
    8
DianQK  
OP
   2022-05-20 14:03:27 +08:00
@whenov KDE Connect 已经是独立的软件,应当可以在其他系统中单独使用
DianQK
    9
DianQK  
OP
   2022-05-20 14:05:39 +08:00
@Buges 现在的版本有提供录音的选项,打电话之后就可以开启(不过我也不清楚有没有自动打开的选项)
nightly build 我倒是挺喜欢的(就当是匹配 Arch 了,假的滚动更新
衍生版我也调查了很多,看起来更新的频率不高(只有 Pixel 系列好一些)
Poker18
    10
Poker18  
   2022-05-20 14:24:08 +08:00   ❤️ 1
俺也是 Arch/KDE + Lineage OS !
感谢分享 Magisk 模块,今晚装上试试
Wireguard App 的内核模式必须 Root+内核带有 Wireguard 模块,不仅要找别人自定义编译的内核,每次 OTA 更新之后还要重刷内核,一直都很头疼
Poker18
    11
Poker18  
   2022-05-20 14:30:28 +08:00
啊…仔细看了一下,我使用 Wireguard 的方式可能和你不太一样,习惯持久连接而非根据网络条件切换(因为网段设在 10.*.*.*,和我的局域网环境 192.168.*.*网段不会冲突)
有什么方案能在 Lineage OS 19 标准内核下持久运行一个 wireguard 的 daemon 吗?以前装了 Termux 折腾过,但好像没有成功…
Buges
    12
Buges  
   2022-05-20 14:31:34 +08:00 via Android
@DianQK 我记得原版没有自动开启的选项,是衍生发行版 patch 过才有的。
Android 没法像 Arch 一样搞清楚整个系统,而且 Arch 滚的也是最新的稳定版而非 nightly 。
况且 Android 这种 整个 system immutable 的系统 更新频率低一些更稳定吧。
gugogo
    13
gugogo  
   2022-05-20 14:33:28 +08:00   ❤️ 1
rxswift 我还看过你教程呢 😏
Immortal
    14
Immortal  
   2022-05-20 14:37:48 +08:00
感谢分享
有收获
whenov
    15
whenov  
   2022-05-20 14:38:53 +08:00   ❤️ 1
@DianQK 然而 pacman -S kdeconnect 需要安装 71 个包,我还是算了
lait
    16
lait  
   2022-05-20 14:46:18 +08:00 via Android
总结的很棒。anki 有更新了啊,抽空我也重新部署一下
showgood163
    17
showgood163  
   2022-05-20 14:51:38 +08:00 via Android
一个问题,tg foss 和 google play 版有何区别?会有广告吗
461da73c
    18
461da73c  
   2022-05-20 15:37:21 +08:00
为啥要经常切换 wg ?没有理解。
hirenloongdddd
    19
hirenloongdddd  
   2022-05-20 15:51:21 +08:00
感谢分享
yehoshua
    20
yehoshua  
   2022-05-20 15:55:16 +08:00
Mark ,总结很棒。
DianQK
    21
DianQK  
OP
   2022-05-20 15:55:27 +08:00
@461da73c 手机和笔记本经常会带出去,自动切换就能保持始终和家里的内网连接
DianQK
    22
DianQK  
OP
   2022-05-20 15:56:24 +08:00
@Poker18 确实有些 ROM 会主动关闭内核的 wireguard ,不知道原因是什么
DianQK
    23
DianQK  
OP
   2022-05-20 15:58:12 +08:00
@Poker18 如果这台设备不会放到家里局域网中,那确实没有切换的必要,直接用 wg-quick up wg0 (配置文件名) 就行了,kernel 会自动处理,关闭就 wg-quick down wg0
DianQK
    24
DianQK  
OP
   2022-05-20 15:59:48 +08:00
@Buges 关于这一点的话,我感觉该出问题的时候还是会出,稳定版 != 没有 bug (上次有个内核 bug ,螃蟹 Wi-Fi 不能用了),铭记:不要在明天还有事情忙的时候更新。
DianQK
    25
DianQK  
OP
   2022-05-20 16:00:29 +08:00
@lait rust 版本的,可能不能兼容 py 版本,得迁移一下
DianQK
    26
DianQK  
OP
   2022-05-20 16:01:08 +08:00   ❤️ 1
@showgood163 有广告,去掉了 gcm 之类的闭源组件(换句话说没有通知了,必须挂后台)
Buges
    27
Buges  
   2022-05-20 16:17:44 +08:00 via Android
@DianQK 出问题可以降级啊,Android 降级得双清
AllenHua
    28
AllenHua  
   2022-05-20 17:43:03 +08:00   ❤️ 1
离开 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
    29
AllenHua  
   2022-05-20 17:51:52 +08:00
忘了提及,感谢楼主的分享,见识到不少新玩法。
clf
    30
clf  
   2022-05-20 18:07:46 +08:00
@AllenHua 联发科 CPU 的 android 手机折腾会麻烦很多,比如解 BL 锁和 Root 会麻烦不少。

————————

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

请问 tvsou 端安装 kodi 后,移动端怎么投屏到 TV ,后半句没大看明白,
DianQK
    38
DianQK  
OP
   2022-05-20 21:33:09 +08:00
@wedfds Kodi 里面有一些设置的选项,可以打开 DLNA 作为投屏服务
ltkun
    39
ltkun  
   2022-05-20 22:21:40 +08:00   ❤️ 1
楼主和我很多共同 app 和应用哈 不同之处是我的后端是基于 pve 和 docker 建立的 群晖总觉得 都用 linux 了还群晖
nextcloud 我有 jellyfin 布了 termux 安卓主力 kodi 多媒体主力遥控器我用 yatse 访问内网简单粗暴 openvpn 密码也是 bitwarden wallabag 也用 Material Files 也有不过熟悉了 cx 管理器了哈 。。。其他可以参考我的私有云部署的文章
jjpprrrr
    40
jjpprrrr  
   2022-05-20 22:28:20 +08:00
@DianQK #22 并不是 kernel 故意关掉了 wireguard 。Linux 5.6 的时候 wireguard 才正式进入 mainline ,在这之前的版本是没有 wireguard 的,需要维护者在 kernel 内手动添加 wireguard 为旧版本 kernel 做的 backport 。如果维护者没添加,那自然就没有……
drackzy
    41
drackzy  
   2022-05-21 00:35:00 +08:00   ❤️ 1
一样用 Okular ,可以调整 pdf 背景显示颜色,一般调稍微泛黄一点护眼。还能任意切边显示。
windows 下用 Sumatra 看 pdf 。
Poker18
    42
Poker18  
   2022-05-21 02:13:35 +08:00
@DianQK 以前从没注意过,感谢指教!
laincat
    43
laincat  
   2022-05-21 08:54:53 +08:00
完整的解决方案。。。虽然细节没写到,但是已经是很不错的一个目录。
DianQK
    44
DianQK  
OP
   2022-05-21 08:58:40 +08:00 via Android
@ltkun 😭看了一下帖子,照片一样难搞定,我目前用过感觉足够好用的还是群晖的 Photos (另外媳妇也要跟我一起用,开源的那些我只能等体验更好的时候再考虑了)
DianQK
    45
DianQK  
OP
   2022-05-21 09:01:01 +08:00 via Android
@jjpprrrr 原来如此,那看来 Android 上的是后来补上去
DianQK
    46
DianQK  
OP
   2022-05-21 09:02:16 +08:00 via Android
@laincat 那可能要写好多了,大部分有个名字应该就可以找到解决方案了
laincat
    47
laincat  
   2022-05-21 09:10:46 +08:00
是啊,而且每个细分下来,其实都能讲很久,很多坑点。

没有一定的知识经验,每个坑都需要踩一遍。。。。哈哈哈
wedfds
    48
wedfds  
   2022-05-21 09:45:53 +08:00
@DianQK kodi 也支持 ios 的 airplay 吗 除了 dlna
DianQK
    49
DianQK  
OP
   2022-05-21 10:32:38 +08:00 via Android
@laincat 可能也还好,搜索个关键字就能找到大量资料,就是不一定是最佳实践,有一些明显注意点的(其他文档可能没有提到的,我有加上,比如 bitwarden 的文件服务)
DianQK
    50
DianQK  
OP
   2022-05-21 13:29:25 +08:00
@wedfds 应当支持的,但我没有测试过,另外部分 iPhone 上的视频 App 投屏会失败,原因不明。
AndrewDKL
    51
AndrewDKL  
   2022-05-21 15:48:32 +08:00
感谢
imsea1
    52
imsea1  
   2022-05-21 17:14:12 +08:00
请问开机后鼠标滑动经常失常(变得过快),在设置里重新调节后才恢复。这是什么原因导致的
DianQK
    53
DianQK  
OP
   2022-05-21 17:24:35 +08:00
@imsea1 不清楚,或许可以在 https://archlinuxstudio.github.io/ArchLinuxTutorial/ 里面提到的 Telegram 群组询问看看
donieleigh
    54
donieleigh  
   2022-05-22 11:04:39 +08:00
这么装的 Google 相机和 Pixel 相比效果怎么样?
DianQK
    55
DianQK  
OP
   2022-05-22 11:16:04 +08:00 via Android
@donieleigh 扫码体验,也就是能拍东西
corruptdu
    56
corruptdu  
   2022-05-22 20:17:54 +08:00   ❤️ 1
ungoogled-chromium 不从源码编译的话官方推荐大蜥蜴的二进制预构建版本:
https://github.com/ungoogled-software/ungoogled-chromium-archlinux#open-build-service-repository=

ungoogled-chromium 官方的安装 extension 教程:
https://ungoogled-software.github.io/ungoogled-chromium-wiki/faq#can-i-install-extensions-or-themes-from-the-chrome-webstore

termux 有清华、南大等源可用:
https://mirrors.tuna.tsinghua.edu.cn/help/termux/
Chancel
    57
Chancel  
   2022-05-23 09:43:03 +08:00
Jellyfin 断断续续用了大半年,小问题不断,换了 PLEX 之后好很多

12 代的笔记本装了 Manjaro 换到最新内核 5.17 之后依旧有问题
* 休眠之后网卡与蓝牙无法找到适配器
* 喇叭杂音不断
xiaokanhongchen
    58
xiaokanhongchen  
   2022-06-13 10:59:11 +08:00   ❤️ 1
感谢楼主,这几天把我的 k20pro 刷成了 ancientOS,全部使用开源软件,没有了 google services ,真的好省电啊。
yyws2012
    59
yyws2012  
   2023-01-24 16:02:02 +08:00 via Android   ❤️ 1
我目前在用 crDroid 9.1 ( Android 13 ),大部分软件选择和楼主相似,除了没用 nextcloud ,不想要 php 。输入法选择了开源的 fcitx5 android
。两个问题:
为什么不单独编译内核呢?
不用 microg 是什么原因?
DianQK
    60
DianQK  
OP
   2023-01-25 14:18:06 +08:00 via Android
@yyws2012 当时看项目有完整的源码,就自己加上 wireguard 跑了一把,我试试看 fcitx5 ,microg 我用过一段时间,总能出现奇怪的崩溃就没再关注了(应该是和 lineageos 的兼容不太好)
darkgeek
    61
darkgeek  
   296 天前
@DianQK 感谢分享,其中的 Gerometric Weather 现在可以替换称 Breezy Weather 。另外,如果不使用 microg 和 gapps ,如何解决地理定位(非 GPS 场景下)问题?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5921 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 02:30 · PVG 10:30 · LAX 18:30 · JFK 21:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.