Omarchy WezTerm Migration Guide #4994
hikarisakamoto
started this conversation in
Manual
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Guide to replacing Alacritty with WezTerm in Omarchy.
1. Install WezTerm
First, you need to install WezTerm onto your machine:
2. Configure WezTerm & Omarchy Theming
WezTerm uses a Lua configuration file. To make it a "first-class" Omarchy app we need to set it up:
Create WezTerm's Main Config
First, create the WezTerm configuration directory and its main settings file. This file tells WezTerm to load Omarchy's generated colors.
~/.config/wezterm/wezterm.lua3. Update Live Integration Scripts
Update Omarchy's helper scripts on your live system. These are located in
~/.local/share/omarchy/bin/:bin/omarchy-font-set: Add WezTerm font modification.~/.local/share/omarchy/bin/omarchy-font-setbin/omarchy-restart-terminal: Hot-reload WezTerm by touching its config.~/.local/share/omarchy/bin/omarchy-restart-terminalbin/omarchy-launch-screensaver: Add WezTerm as a first-class citizen in the switch-case for screensavers. Just like Alacritty, Kitty, and Ghostty, WezTerm needs to usehyprctl dispatch exec --to span across all monitors correctly. Find thecase $terminal instatement and add the WezTerm block right at the top:~/.local/share/omarchy/bin/omarchy-launch-screensaver4. Update Live Desktop Environment & Hyprland
Make WezTerm the default terminal environment in your live Window Manager.
~/.config/xdg-terminals.list: ReplaceAlacritty.desktopwithorg.wezfurlong.wezterm.desktop.~/.config/waybar/config.jsonc: Change"on-click-right": "alacritty"to"wezterm". To apply this change immediately, run:~/.config/hypr/input.conf: You do not need to delete Alacritty! Terminal emulators handle Wayland touchpad scrolling speeds very differently. To safely add WezTerm as a first-class app while keeping Alacritty as a backup, add a new dedicated statement for WezTerm just like Ghostty has:~/.config/hypr/input.conf~/.local/share/omarchy/default/hypr/apps/terminals.conf: Addorg.wezfurlong.weztermto the terminal tag regex.Note: You will need to reload Hyprland to apply these changes. You can do this immediately by running:
5. Remove Alacritty (Optional)
Once you are completely satisfied that WezTerm is working as expected and fully integrated, you can safely remove Alacritty from your machine.
You can also clean up its configuration files:
6. Pitfalls & Troubleshooting
Debugging WezTerm Crashing on Launch
If WezTerm simply refuses to launch from the app menu (especially in VMs), the best way to debug it is to run it from your current terminal (like Alacritty) and force it to spawn a new process so you can read the error logs directly.
If it is a graphics issue, the error output will usually complain about Wayland EGL, Vulkan, or OpenGL contexts failing to initialize.
Wayland & GPU Frontends (VMs / Zink Errors)
If you are testing in a VM, you might see errors like
libEGL warning: failed to create dri2 screenorMESA: error: ZINK: vkCreateInstance failed. This happens because WezTerm tries to use native Wayland EGL/Vulkan, but your VM lacks hardware 3D acceleration, causing Mesa's Vulkan translation (Zink) to fail.The Fix for VMs: Force WezTerm to run through XWayland instead of native Wayland. XWayland has a much more robust software-rendering fallback for VMs. In your
~/.config/wezterm/wezterm.lua, change these settings:~/.config/wezterm/wezterm.luaThis tells WezTerm to launch as an X11 window, which Hyprland will perfectly handle via XWayland, bypassing the missing Wayland Vulkan drivers in your VM.
Startup Time
WezTerm takes ~100-200ms longer to launch than Alacritty because it spawns a multiplexer daemon. Consider using
wezterm-guiorwezterm cli spawnin your Hyprland bindings for instant spawning.Font Rendering Engine
WezTerm uses HarfBuzz. Fonts might look slightly different (thicker/taller) than in Alacritty. You may need to tweak
config.line_heightorconfig.freetype_load_target = "Light".Wayland Class Quirks
When launching specific app classes (like the screensaver), WezTerm sometimes appends metadata to Wayland
app-ids. Use partial matches or regex in Hyprland window rules instead of exact string matchingHope this help you migrate!
Don't forget to improve your
wezterm.luato better fit you UI experience!Keep coding!
Beta Was this translation helpful? Give feedback.
All reactions