项目简介
Hyprland 是一款完全独立的动态平铺 Wayland 合成器,外观毫不妥协。它提供最新的 Wayland 特性、高度可定制性、视觉特效、强大插件和简单 IPC,采用 C++ 编写。支持渐变边框、模糊、动画、阴影和游戏撕裂控制。
README 预览
\n\n\n\n\n\n[![Badge Workflow]][Workflow]\n[![Badge License]][License] \n![Badge Language] \n[![Badge Pull Requests]][Pull Requests] \n[![Badge Issues]][Issues] \n![Badge Hi Mom]\n\n\n\nHyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.\n\nIt provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins,\neasy IPC, much more QoL stuff than other compositors and more...\n\n\n\n---\n\n**[ Install ][Install]** \n**[ Quick Start ][Quick Start]** \n**[ Configure ][Configure]** \n**[ Contribute ][Contribute]**\n\n---\n\n\n\n\n\n# Features\n\n- All of the eyecandy: gradient borders, blur, animations, shadows and much more\n- A lot of customization\n- 100% independent, no wlroots, no libweston, no kwin, no mutter.\n- Custom bezier curves for the best animations\n- Powerful plugin support\n- Built-in plugin manager\n- Tearing support for better gaming performance\n- Easily expandable and readable codebase\n- Fast and active development\n- Not afraid to provide bleeding-edge features\n- Config reloaded instantly upon saving\n- Fully dynamic workspaces\n- Two built-in layouts and more available as plugins\n- Global keybinds passed to your apps of choice\n- Tiling/pseudotiling/floating/fullscreen windows\n- Special workspaces (scratchpads)\n- Window groups (tabbed mode)\n- Powerful window/monitor/layer rules\n- Socket-based IPC\n- Native IME and Input Panels Support\n- and much more...\n\n\n\n\n\n\n# Gallery\n\n\n\n![Preview A]\n\n\n\n![Preview B]\n\n\n\n![Preview C]\n\n\n\n\n\n\n# Special Thanks\n\n\n\n**[wlroots]** - *For powering Hyprland in the past*\n\n**[tinywl]** - *For showing how 2 do stuff*\n\n**[Sway]** - *For showing how 2 do stuff the overkill way*\n\n**[Vivarium]** - *For showing how 2 do stuff the simple way*\n\n**[dwl]** - *For showing how 2 do stuff the hacky way*\n\n**[Wayfire]** - *For showing how 2 do some graphics stuff*\n\n\n\n\n[Configure]: https://
常见问题 (5)
故障排除如何修复启动 Hyprland 后第二台显示器上 (0,0) 位置出现重复幽灵光标的问题?
此多显示器光标渲染 bug 已在 Hyprland 0.38.1 中修复。请将 Hyprland 升级到 0.38.1 或更高版本,并重启会话。对于旧版本,临时解决方法是:移动鼠标,或将焦点切换到显示幽灵光标的显示器;左上角的多余光标会立即消失。
故障排除如何修复在 Hyprland 中拔下并重新插入 DRM 显示器时的 VRAM 泄漏问题?
将 Hyprland 和 Aquamarine 升级到包含这些修复的版本:Aquamarine PR #165 在 CRTC 被禁用或连接器断开时释放 KMS framebuffer 引用,相应的 Hyprland 更改会在显示器断开时调用 OpenGL 的 destroyMonitorResources。这可以防止每次 DRM 显示器重新插拔时在 VRAM 中残留 GBM/GEM/KMS 资源。作为旧版本上的临时解决方法,请避免反复拔插显示器,并重启 Hyprland 以释放泄漏的 VRAM。
故障排除如何显式地显示或隐藏 Hyprland special workspace,而不是只能切换它?
先使用一个临时未使用的特殊工作区来重置可见性。要隐藏当前可见的特殊工作区,连续切换一个空工作区两次:
hyprctl dispatch togglespecialworkspace __TEMP
hyprctl dispatch togglespecialworkspace __TEMP
要确定性地显示某个特定的特殊工作区,先重置可见性,然后再切换它:
hyprctl dispatch togglespecialworkspace __TEMP
hyprctl dispatch togglespecialworkspace __TEMP
hyprctl dispatch togglespecialworkspace <NAME>
将 <NAME> 替换为你的特殊工作区名称。在包含新增 dispatcher 的较新 Hyprland 构建版本中,你也可以使用以下命令隐藏当前的特殊工作区:
hyprctl dispatch hidespecialworkspace故障排除如何修复 Hyprland 中 XF86ScreenSaver 键绑定不起作用的问题?
将 Hyprland 升级到包含 "Fix keybinds xkb names" 修复的版本,然后重新加载:
bind = ,XF86ScreenSaver, exec, hyprctl notify 5 2000 "rgb(22DA6E)" "i am working"
运行:
hyprctl reload
对于受影响的版本,一种变通方法是绑定 wev 报告的物理 keycode,而不是 keysym。在此问题中,wev 报告的按键为 160,因此使用:
bind = ,code:160, exec, hyprctl notify 5 2000 "rgb(22DA6E)" "i am working"
然后运行 hyprctl reload。请使用 wev 验证你自己的 keycode,因为不同键盘之间它可能有所不同。
故障排除如何修复在 Hyprland 中通过 HDMI 连接 Samsung Smart TV 时,鼠标点击导致屏幕短暂黑屏闪烁的问题?
该 issue 中尚未有已确认的 Hyprland/Aquamarine 修复方案,但有一个已报告的变通方法可解决 Samsung HDMI 黑屏闪烁问题:持续播放静音音频,这似乎能保持电视的 HDMI 链路处于活动状态。
使用 PipeWire/PulseAudio 进行测试:
pw-cat --playback --raw --rate=48000 --channels=2 --format=s16 /dev/zero
如果在命令运行期间闪烁停止,请按 Ctrl+C 终止命令,然后创建一个持久化的用户服务:
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/hdmi-silent-audio.service <<'EOF'
[Unit]
Description=Silent audio keep-alive for Samsung HDMI flicker
[Service]
ExecStart=/usr/bin/pw-cat --playback --raw --rate=48000 --channels=2 --format=s16 /dev/zero
Restart=always
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now hdmi-silent-audio.service
该变通方法是针对类似的 Samsung 电视问题报告的,并未在 M50D 上得到专门确认。禁用 blur、animations、hardware cursors、damage tracking、direct scanout、VRR、PSR、FBC 或 DC 等设置均未能解决最初这个 Hyprland 特有的问题。