•  untoreh-light

让 Windows 变得可以忍受

使 Windows 感觉更像 Linux 的工具列表

自从我 使用 WSL 切换到 Windows 10 我想我会列出一个软件列表,我必须使用这些软件来使 Windows 更接近我通常的 linux 工作流程。让我们说清楚 Windows UI 很烂,它卡在90s 一切都应该用鼠标指针点击和拖动。不知道是不是 文化 东西(windows 开发者一定很喜欢鼠标),或者为了 目标人群 (“点击那个东西!”很容易解释),或者因为 安全最佳实践 (如果我们给用户太多控制权,恶意软件就会利用它)或者只是 视窗外壳 由一堆技术债务构成,这使得为高级用户添加功能变得更加困难。事实上,Linux 中的简单事情在 Windows 中需要复杂的解决方案。

虚拟桌面

在 linux 中,每个 windows 管理器都有某种形式的虚拟桌面,windows 最近使用 W10 构建了虚拟桌面。问题是在撰写本文时,您只能使用热键左右循环,而没有热键可以转到桌面 X。有这个 影音库 但我还没有找到使用它的软件,只有 AHK[1] 具有较差实现的脚本,例如“循环直到我们处于正确的 VD”。

windows内置的虚拟桌面缺少合适的快捷方式让我不得不使用3rd方软件,其中有很多,我选择了 dexpot 因为它可以完成我需要的所有事情以及更多(我会很高兴go to Xmove window to X 快捷键)。唯一的问题是 dexpot 无法绑定已经绑定的键...有点 AHK 能够覆盖其他应用程序使用的键,而 dexpot 不能,我认为这是因为它依赖于不同的 Windows API(或[dll])。解决方法是重新映射我想要的快捷方式(例如Win+1 ) 带有可以在 dexpot 上设置的免费快捷方式(例如Win+Shift+F1)

键盘映射

电动玩具 允许映射键和快捷方式,以便我可以映射 CapsLock->LeftControl 和 RightControl->LeftControl。和捷径之类的Win+hjkl 到箭头。太糟糕了Win+l 是用于锁定屏幕的 Windows 默认快捷方式,无法重新映射...注册表项会覆盖快捷方式并修复此问题...直到您更新 Windows...因此您必须在每次启动时应用此修复程序!

启动器

powertoys 提供的应用程序启动器功能非常强大,不会比 KRunner 使用更多的内存,而且速度快且反应灵敏。唯一的抱怨是它有时会失去焦点,但这很可能是 Windows 病态(如变态)控制在任何给定时间应该聚焦哪个窗口的问题。

平铺

我在 Linux 上从 sway 切换到 KDE,所以我不是一个平铺的 Windows 爱好者。 Powertoys 有 FancyZones,它比窗口提供的基本窗口 Snaps 略有改进,因为它为您提供 差距 布局 .然而,它仍然缺乏使平铺有用的最重要的东西,那就是 规则适用于匹配的窗口,但这也需要对虚拟桌面的支持......我们已经提到了它们的当前状态。比较 KWin 允许您匹配具有非常复杂定义的窗口。 FancyZones 通过在会话中保留窗口位置来解决规则问题,但我还没有研究它在不同虚拟桌面上的工作情况。

拖动窗口

窗口只能从标题栏拖动,另外一个 公用事业 需要使用快捷键组合来移动它们。

系统监控

使用 KDE,您可以使用等离子小部件来显示系统信息,尽管等离子小部件往往会消耗大量内存,因此我并没有过多地使用它们。在 Windows 中没有内置的实用程序,在尝试了一些实用程序后,我选择了 流量监控 它提供了网络、CPU、内存,最近才添加了 GPU 和临时值。结果是在任务栏中显示了一个漂亮的低调矩形:

Windows 的优点是我的 UPS 被识别并显示在托盘区域中,因此不需要额外配置,而在 linux 中 坚果 驱动程序问题.

系统服务

当 systemd 出现在 linux 内核中时,许多人不喜欢它..对于 Windows,我开始想念它..Windows 服务 并不是真正面向用户的东西 像systemd。 Windows 有 任务调度器 处理看起来像的事情one-shot 单元文件,但它的界面(或缺少界面)也是可怕的。幸运的是,我们实际上并不需要 Windows 中的自定义守护程序,因为我们使用的大多数 Windows 应用程序都只是 启动时运行一种逻辑,不需要更高级的配置。事实上,除了一堆工具( ) 要使 Windows 像现代环境一样工作,那么只有其他正在使用的本机 Windows 应用程序是浏览器 ( 火狐 ) 因为浏览器 GPU 加速在 WSL 中很糟糕(即使在本机 linux 上也是如此......)和视频播放器( mpv )..当然还有游戏...

套餐

我不喜欢 巧克力味 因为它需要管理员权限,所以我总是首先寻找 scoop 包,因为它们安装在用户文件夹中,这样更方便、更一致,并简化了备份。

WSL/克

我被诱导从最近切换到 Windows 工作组 更新。其中需要使用编译的台面驱动程序d3d12 后端支持opengl . Windows 提供了一个社区预览 ubuntu 层,但我选择了 拱形Linux 因为已经有一个 AUR 包 带 d3d12 的台面 .由于 WSL 目前不支持 systemd,我最终使用了 导师 管理一些服务。为了确保 supervisor 处于活动状态,在 shell 配置文件中检查应该在上创建的锁定文件tmpfs 如果之前已经启动了主管。

WSL 仅支持ext4 文件系统,要使用其他文件系统,您必须直接在 WSL VM 内部挂载分区(或磁盘)。但是它们必须手动安装 作为管理员 从窗户。为了自动执行此操作,我们可以使用允许通过运行任务绕过 UAC 提示的任务调度程序 享有最高特权 .我们可以运行一个 wsl--mount 命令挂载我们想要的磁盘/分区,然后在 linux 中运行挂载文件系统。因为我的/home/ 驻留在一个安装btrfs文件系统我必须自动挂载它,所以我们使用/etc/fstab 映射我们的分区(通过LABEL ) 到/home .因为我们使用 nix 与nix-env 我们需要将我们的 nix 存储绑定到/nix 在每次 wsl 启动时,因为/tmp 不在tmpfs 我们必须创建一个覆盖安装tmpfs 超过现有的/tmp 目录,以保存与 X 服务器通信所需的重要文件,特别是 X11 文件。

这些挂载是用脚本执行的,应该运行 我们已经在 linux 中安装了磁盘。我们需要一个在挂载任务完成后运行的任务,并且因为 WSL 为不同的 Windows 用户使用不同的虚拟机,所以脚本必须以最高权限运行(否则它会挂载在管理员虚拟机上)。

为了确保 WSLg 正常工作,我们必须确保 XDG 运行 DIR 已设置,因为它不同并且位于(默认情况下)/mnt/wlsg/runtime-dir .这是 Wayland 下的窗口的外观,您可以看到,因为 Wayland 窗口装饰可以由合成器或应用程序绘制,它们会保留您的 GTK/QT 主题的配置,因此您最终会得到一个本地 linux 主题的窗口在 Windows 外壳内......起初有点迷失方向。

终端模拟器

在 linux 上我正在使用 猫咪 ,因为它是具有 GPU 加速功能的较新的终端模拟器之一[2] 和一个有点稳定的守护进程模式,它允许多个窗口具有相同的实例。然而,在 Windows 上,我涉足了一些基于 Windows 的终端,如 Windows Terminal、fluent 终端、wsltty、conemu,但最终我切换到 韦兹特姆 .尽管是较新的终端,但它具有您希望从终端模拟器获得的所有功能:

在 Windows 中,我还稍微修改了我的工作流程,这样我就不需要通过使用下拉终端来支持多个独立窗口的具有守护程序模式的终端。使wezterm 落下 在尝试了许多下拉 AHK 脚本后,最终我找到了 效果很好。然而,更好的选择是 windows终端地震 ,但我遇到了由 dexpot 管理的虚拟桌面行为不当的问题,而 mitty-quake-console 似乎与 dexpot 虚拟桌面兼容。很可能当内置的 Windows 虚拟桌面体验改善时,我会切换到 windows-terminal-quake。 WezTerm 也是跨平台的,这意味着我可以继续在本机 linux 安装中使用它。对于这个 Windows+WSL 开关来说,这是一个非常幸运的发现,因为 Kitty 还不支持 Windows,而其他终端替代品有一些相当大的烦恼 我无法接受.

[1]自动热键
[2]为什么我再次需要在终端中使用 GPU 加速?

帖子标签: