在设置计算机环境时,有两种相互冲突的力量在起作用:
- 对常用工具进行小的改进是值得的。
- 无休止地调整你的设置是没有效率的。
人们常常会陷入极端的境地。一些程序员根本拒绝配置或学习他们的工具,而另一些程序员则不断地重新配置他们的设置,而没有任何生产力的提高。
找到平衡点可能很棘手。关于终端,我多年来一直使用alacritty 。它完成了工作,但我不知道我是否错过了什么?我一直想考虑像wezterm和kitty这样的替代品,但我还没有足够多的时间去尝试它们。
一方面它只是一个终端,它能带来什么区别呢?
另一方面,我每天在航站楼内度过无数个小时,因此从长远来看,即使是很小的改进也应该得到回报。
输入Ghostty ,一个如此大肆宣传的终端,它让我放弃了我正在做的任何有用的事情,看看到底有什么问题。我不太明白为什么人们大肆宣传万物终端,但我们就在这里。
Ghostty并没有彻底改变我的设置或其他任何东西,但我承认Ghostty非常好,它已经取代了alacritty作为我的终端。
我只想要一张没有任何装饰的空白画布
Ghostty的一大卖点是它的原生平台集成。它应该与您的窗口管理器很好地集成,因此它看起来相同并为您提供一些额外的功能……但我不知道为什么我应该关心 – 我只是想要一个没有任何装饰的大正方形。
您应该能够简单地关闭任何窗口装饰:
window-decoration = false
目前有一个错误需要您设置一些奇怪的 GTK 设置才能完全删除边框:
gtk-titlebar = false
gtk-adwaita = false
不幸的是,我没有在我的机器上进行任何 GKT 配置(我使用XMonad作为我的窗口管理器,并且我在任何地方都没有任何窗口装饰)。
可能有一些我不知道的有用的本机功能。例如,密码输入样式很简洁,尽管我不确定它与其他终端相比在功能上有何不同:
光标反转
cursor-invert-fg-bg = true
在alacritty中,我已经让光标反转了背景和前景,你也可以在Ghostty中做到这一点。
我遇到了一个问题,它会干扰indent-blankline.nvim ,使光标很难在缩进中被发现(采用缩进指南的颜色,其设计与背景的对比度较低)。
很烦人,但它给了我动力,我需要尝试不同的插件来看看问题是否仍然存在。我最终使用Snacks.nvim进行了(甚至更好的)设置,它不会隐藏光标:
左: indent-blankline.nvim (光标几乎不可见)
右: snacks.nvim (光标可见并且突出显示范围)。
最小对比度
不可读的ls
输出是优秀 Linux 用户体验的一个主要内容。它可能看起来像这样:
超级烦人。
您当然可以配置ls
输出颜色,但这仅适用于一个程序,当您ssh
到另一台服务器时它不会自动跟随。
Ghostty的minimum-contrast
选项确保文本和背景始终具有足够的对比度以可见:
minimum-contrast = 1.05
最优秀。
如果您使用低对比度配置,此功能有可能破坏“养眼”功能,例如 Neovim 缩进线插件。我仍然时不时地遇到一些小问题。
打字时隐藏光标
mouse-hide-while-typing = true
一个提高生活质量的小功能是在打字时隐藏光标的能力。我不知道我的生活中需要这个。
台式机和笔记本电脑之间的字体大小一致
使用alacritty时,我遇到了一个恼人的问题,我需要在笔记本电脑和台式机上使用非常不同的字体大小( 8
和12
)。情况并非总是如此,我认为某些事情可能会迅速发生变化,但我不确定。
Ghostty没有这个问题,我现在可以在我的机器上使用相同的字体设置( font-size = 16
)。
结扎支持
为 alacritty 添加连字的问题在八年前就已经解决了,尽管我想尝试连字,但我懒得去“运行一个低质量的分叉”。
Ghostty似乎是“低质量”的反义词,它很好地呈现了Iosevka的连字:
我配置的 Iosevka 连字,在 Ghostty 中渲染。
总的来说,我觉得Ghostty中的字体渲染比alacritty中的要好一点,尽管这可能是新近度偏差。我对连字还没有决定,但我喜欢我不必感到受到终端的限制。
我使用带有这些Ghostty设置的自定义 Iosevka 构建:
font-family = IosevkaTreeLig Nerd Font
font-style = Medium
font-style-bold = Bold
font-style-italic = Medium Italic
font-style-bold-italic = Bold Italic
font-size = 16
配色方案
虽然Ghostty有一个绝对优秀的主题选择器,其中包含一堆主题( ghostty +list-themes
),但不包括melange-nvim ,所以我必须自己配置颜色方案。尽管palette = 0=
语法有点令人惊讶,但它相当简单:
# The dark variant of melange
background = #292522
foreground = #ECE1D7
palette = 0=#867462
palette = 1=#D47766
palette = 2=#85B695
palette = 3=#EBC06D
palette = 4=#A3A9CE
palette = 5=#CF9BC2
palette = 6=#89B3B6
palette = 7=#ECE1D7
palette = 8=#34302C
palette = 9=#BD8183
palette = 10=#78997A
palette = 11=#E49B5D
palette = 12=#7F91B2
palette = 13=#B380B0
palette = 14=#7B9695
palette = 15=#C1A78E
# I think it's nice to colorize the selection too
selection-background = #403a36
selection-foreground = #c1a78e
我对幽灵很满意
最后, Ghostty改进了我的设置,我很高兴我花时间尝试一下。它比“仅仅启动它”花费了更多的时间,但这绝对不是什么大问题。回报是一些令人愉快的改进,使我的生活有所改善。
也许最重要的是:我现在是一个使用 Zig 编写的终端的 alpha 书呆子。
我是否为 Ghostty 配置文件创建了一个自定义荧光笔,只是为了为这篇博客文章提供正确的语法突出显示?
(这是一个简单的树保姆语法。)
原文: https://www.jonashietala.se/blog/2025/01/06/first_impressions_of_ghostty