{ pkgs, hostname, ... }: { programs.wezterm = { enable = true; package = if hostname == "pircard" then (pkgs.wezterm.overrideAttrs (old: rec { pname = "wezterm"; version = "20240406-cce0706"; src = pkgs.fetchFromGitHub { owner = "wez"; repo = "${pname}"; rev = "cce0706b1f2a9e2d1f02c57f2d1cd367c91df1ae"; fetchSubmodules = true; hash = "sha256-BBPxidOpFrw/tIRTqMSREyJF3QEWOwlIoVRT3FD62sQ="; }; cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = "${src}/Cargo.lock"; outputHashes = { "xcb-imdkit-0.3.0" = "sha256-fTpJ6uNhjmCWv7dZqVgYuS2Uic36XNYTbqlaly5QBjI="; }; }; patches = (old.patches or []) ++ [ (pkgs.fetchpatch { # fix(wayland): ensure repaint event is sent in show url = "https://patch-diff.githubusercontent.com/raw/wez/wezterm/pull/5264.patch"; hash = "sha256-c+frVaBEL0h3PJvNu3AW2iap+uUXBY8olbm7Wsxuh4Q="; }) (pkgs.writeText "wezterm-remove_capabilities.patch" '' diff --git a/window/src/os/wayland/seat.rs b/window/src/os/wayland/seat.rs index 3798f4259..e91591130 100644 --- a/window/src/os/wayland/seat.rs +++ b/window/src/os/wayland/seat.rs @@ -65,9 +65,15 @@ impl SeatHandler for WaylandState { _conn: &Connection, _qh: &QueueHandle, _seat: WlSeat, - _capability: smithay_client_toolkit::seat::Capability, + capability: smithay_client_toolkit::seat::Capability, ) { - todo!() + if capability == Capability::Keyboard && self.keyboard.is_some() { + self.keyboard.take().unwrap().release(); + } + + if capability == Capability::Pointer && self.pointer.is_some() { + self.pointer = None; + } } fn remove_seat(&mut self, _conn: &Connection, _qh: &QueueHandle, _seat: WlSeat) { '') ]; })) else pkgs.wezterm; extraConfig = '' return { -- enable_wayland = false; -- https://github.com/wez/wezterm/issues/4483 font = wezterm.font_with_fallback { { family = 'Iosevka Comfy', stretch = 'Expanded', weight = 'Regular', harfbuzz_features = { 'dlig=1' } }, }; font_size = 13; allow_square_glyphs_to_overflow_width = "Always"; color_scheme = "Catppuccin Mocha"; window_background_opacity = 1; enable_tab_bar = false; hide_mouse_cursor_when_typing = false; window_close_confirmation = "NeverPrompt"; window_padding = { left = '1cell', right = '1cell', top = '0.5cell', bottom = '0.5cell', }; } ''; }; }