92 lines
3.3 KiB
Nix
92 lines
3.3 KiB
Nix
{
|
|
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<Self>,
|
|
_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<Self>, _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',
|
|
};
|
|
}
|
|
'';
|
|
};
|
|
}
|