日用: Windows 11 与 Linux 共存

关于在使用 Linux 作为日用时,如何恰当的让 Windows 和 Linux 双系统各司其职。

总览

简单总结 Windows 和 Linux 的区别

  • Windows 的图形界面底层有较多逻辑冲突,但使用简单。Linux 的图形界面体验统一优秀,但如果你想要构建自己的工作流,需要花点时间配置。
  • Windows 的适配软件数量是压倒性的优势,但 Linux 的软件适配也正在逐步提升,且具有 Wine (包括 Proton) 可以运行大部分未适配的软件。
  • 部分软件即使未适配 Linux, 其在 Linux 上通过兼容层运行反而比 Windows 上的性能/体验更好 (如 GTAV)。
  • Windows 的底层通常具有更强的存在感(如在作者的笔记本上会不定时自动重启),Linux 虽然开源活跃,但同样具有漏洞[1]但比 Windows 少,且修补及时。
  • NVIDIA 系在 Windows 上有更好的表现,在 Linux 上表现极差。[2]

就 Windows 与 Linux 的各自的优点对比来看,作者更倾向于将 Linux 作为主要系统,而 Windows 仅在部分场景(如游戏等)使用。 以下是作者推荐(同时正在使用)的系统环境:

  • Windows: 使用 Windows 11 专业版,注意保持系统更新。

  • Linux: 使用 Arch Linux, 使用 Hyprland 搭配 end_4 的 Hyprland配置 作为桌面环境。

微调

若想合理分配资源,推荐应用以下调整:

Windows

  • 使用占用较小且检测相对精准的火绒替代 Windows Defender,避免扫盘和误杀[3]

  • 考虑移除部分系统预装软件,以及关闭具有很多问题的动画效果。

  • 在高级设置中应用最佳性能预设,然后将字体平滑和UI元素改进回退至启用状态。

  • 使用纯色壁纸,始终使用亮/暗色模式,关闭动态计算主题色(推荐使用森绿色)。

  • 关闭小组件、屏幕键盘等(如果不需要或内存吃紧的话)。

  • 若将 Linux 作为主力机,考虑关闭虚拟机平台、WSL等虚拟化功能。相比而言 QEMU/KVM 具有和 Hyper-V 相近的定位和更好的性能。

  • 将搜索索引设置为“增强”以启用自定义筛选,然后在筛选中排除所有硬盘分区来阻止索引。

    相比于直接关闭索引,该方法在最大程度减小影响的同时避免了 的"启用 Windows 索引"的温馨提示持续占用搜索面板。

  • 注意:安装时请谨慎使用 ATLAS OS 调整工具。尽管获得了(名义上)更好的性能,但可能会导致 Windows 的部分功能(包括核心功能)缺失

Linux

  • 使用 linux-zen 内核,其通常具有更好的性能,或使用 linux-git 获得更快的修复和更新的功能。

  • 基于性能考量决定是否启用视觉效果提升(如半透明、背景模糊等)。

  • 照常进行外观自定义和快捷键自定义。

  • 考虑安装 Wine 来尽量减少切换系统的次数,提升效率。

  • 始终使用 Fcitx5 作为输入法。相比 GNOME 的 IBus 而言,其在跨桌面(包括 GNOME )使用上具有更好的兼容性,且相比 GNOME 的 IBus 更加兼容 GNOME 自家的软件。

    IBus 的兼容问题是因为其切换输入法的方式是弹出一个强制聚焦的窗口,而这在本身就有较多可改进空间GTK4 上会触发诸如输入框失焦、光标复位等特性。

    虽然 Fcitx5 在 Hyprland 上仍有诸如 GTK 应用弹窗错位等问题,考虑到某基金会近期资金短缺[4],这更像是 GTK 自身未修复的缺陷。也许他们 应该问问 另一个基金会 为什么可以完善地维护知名大型桌面。 IBus 在 Hyprland 上则更加跳跃:其在 GTK 应用中虽然位置正常,但窗口撕裂、绘制残缺且存在闪烁, Qt 应用更是直接忽略(即使你设置了 QT_IM_MODULEQT_IM_MODULES ),其在 Hyprland 中更像是运行在 XWayland 里的古董。

Wine 简明配置

该小节以作者在主力机器上配置 Wine 使用的方法为基准,可能不适用于所有环境。

  1. 安装 Wine:

    sudo pacman -S wine wine-gecko wine-mono winetricks
    
  2. 配置:

    1. 启动 Winetricks
    2. 选择默认的容器。
    3. 安装所有字体,或只安装 CJK 字体。
    4. 安装 dxvkd3dx11_43

      假如你在安装 dvxk 时遇到错误,可以尝试安装名字符合 dxvkXXXX 的锁定版本。

Fcitx5 简明配置

该小节以作者在主力机器上配置 Fcitx5 使用的方法为基准,可能不适用于所有环境。

  1. 安装 Fcitx5:

    sudo pacman -S fcitx5-im fcitx5-rime
    
  2. 设置环境变量:在 Hyprland 配置中添加:

    hl.env("QT_IM_MODULE", "fcitx")
    hl.env("QT_IM_MODULES", "fcitx")
    hl.env("XMODIFIERS", "@im=fcitx")
    

    通常不必为全局 GTK 程序设置 GTK_IM_MODULE,其值应当为空或wayland,GTK 程序会请求窗口管理器来获取输入法。

  3. 设置启动:在 Hyprland 配置中添加:

    hl.on("hyprland.start", function()
        hl.exec_cmd("fcitx5 -d")
      end);
    
  4. 重新启动 Hyprland 或运行 fcitx5 -d,然后在任意程序中尝试输入,输入法应当已经被启动。

    这是因为 Hyprland 会自动重载环境变量(这不包括已经启动的程序)

  5. 打开 Fcitx 5 配置 应用程序,可以进行适当调整。

  6. 额外的,由于 Fcitx5 的输入法切换实现非标准快捷键注册,你可以使用 作者的 GitHub 仓库内的脚本,具体是 bin/fcitx5-switch,在 Hyprland 中将其注册为 SUPER+SPACE (默认),并可选的取消 Fcitx5 自身的快捷键监听(实际上,在注册之后该监听已经失效了,取不取消无所谓)。

    原理:Hyprland 会优先独占自身注册的快捷键,并防止快捷键被传入到应用程序,但 Fcitx5 不会保证独占,这会导致诸如切换输入法同时也打开应用菜单之类的问题。通过一次脚本桥接可以解决该问题。

软件

作者使用的以下软件都已适配 Linux, 可从软件源或 Flathub 下载:

  • 钉钉: 官网, AUR
  • QQ: 官网(.deb, .rpm), AUR, Flathub
  • 微信: 官网(.deb, .rpm), AUR, Flathub
  • Steam: 几乎所有渠道[5]
  • 部分 Steam 游戏: 相当多的游戏都已经适配了 Linux
  • HMCLMinecraft: 原生支持 Linux
  • Microsoft VS Code: 官网, AUR, Flathub
  • Ubuntu: 官网(ISO)

    尽管 Ubuntu 是发行版,但基于其后现代的设计理念和 Canonical 的战略操作,应当作为(商业)软件考量。
    当然这并不代表你必须忽略 Ubuntu 使用其他发行版。Ubuntu广告宣发和劝退用户[6]两方面上的决策仍然是遥遥领先。如果你刚入门,我推荐你使用 EndeavourOS(基于 ArchLinux) 或 Fedora 。 这也不代表 RedHat 是救世主公司,但就目前来看,其在商业化和社区之间尚且取得了动态 平衡。