From aa9ed0d0e01e212e5eea34ba61cf4ba35e4b6184 Mon Sep 17 00:00:00 2001 From: Aleksandr Lebedev Date: Wed, 30 Jul 2025 15:08:17 +0200 Subject: [PATCH] English keyboard --- nixos/homes/kylekrein/lisgd-config.h | 2 +- nixos/homes/kylekrein/niri.nix | 7 ++++--- nixos/homes/kylekrein/wvkbd-niri.patch | 27 ++++++++++++++++++++++++++ nixos/homes/kylekrein/wvkbd.nix | 15 ++++++++++++++ 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 nixos/homes/kylekrein/wvkbd-niri.patch create mode 100644 nixos/homes/kylekrein/wvkbd.nix diff --git a/nixos/homes/kylekrein/lisgd-config.h b/nixos/homes/kylekrein/lisgd-config.h index 8f340e9..fa5e71b 100644 --- a/nixos/homes/kylekrein/lisgd-config.h +++ b/nixos/homes/kylekrein/lisgd-config.h @@ -44,7 +44,7 @@ Gesture gestures[] = { {2, SwipeUD, EdgeLeft, DistanceShort, ActModePressed, "niri msg action fullscreen-window"}, {2, SwipeUD, EdgeRight, DistanceMedium, ActModeReleased, "niri msg action close-window"}, {1, SwipeDU, EdgeBottom, DistanceAny, ActModeReleased, - "kill -34 $(ps -C wvkbd-mobintl)"}, + "pkill -34 -f wvkbd"}, //{2, SwipeUD, EdgeBottom, DistanceAny, ActModeReleased, //"pkill -9 -f wvkbd-mobintl"}, {3, SwipeDU, EdgeAny, DistanceAny, ActModeReleased, diff --git a/nixos/homes/kylekrein/niri.nix b/nixos/homes/kylekrein/niri.nix index 4dff879..b4a1408 100644 --- a/nixos/homes/kylekrein/niri.nix +++ b/nixos/homes/kylekrein/niri.nix @@ -12,6 +12,7 @@ }: let lisgd-patched = pkgs.callPackage ./lisgd.nix {}; +wvkbd-patched = pkgs.callPackage ./wvkbd.nix {}; in { programs.fuzzel = { @@ -39,7 +40,7 @@ in networkmanagerapplet ] ++ lib.optionals (hwconfig.hasTouchscreen) (with pkgs; [ - wvkbd # https://github.com/jjsullivan5196/wvkbd + wvkbd-patched # https://github.com/jjsullivan5196/wvkbd lisgd-patched ]); programs.niri = { @@ -61,7 +62,7 @@ in command = [ "${lib.getExe pkgs.brightnessctl}" "set" - "25%" + (if hwconfig.hostname == "kylekrein-framework12" then "20%" else "25%") ]; }; touchscreen-gestures = lib.mkIf (hwconfig.hasTouchscreen) { @@ -71,7 +72,7 @@ in }; touchscreen-keyboard = lib.mkIf(hwconfig.hasTouchscreen){ command = [ - "wvkbd-mobintl" + "${wvkbd-patched}/bin/wvkbd" "--hidden" ]; }; diff --git a/nixos/homes/kylekrein/wvkbd-niri.patch b/nixos/homes/kylekrein/wvkbd-niri.patch new file mode 100644 index 0000000..aa00213 --- /dev/null +++ b/nixos/homes/kylekrein/wvkbd-niri.patch @@ -0,0 +1,27 @@ +From 764c39633aa4bb8b94463dd19961bb4e9c78be26 Mon Sep 17 00:00:00 2001 +From: Maarten van Gompel +Date: Sun, 31 Mar 2024 13:57:24 +0200 +Subject: [PATCH] debug: include trailing \0 byte in call to + zwp_virtual_keyboard_v1.keymap() + +Ref: https://github.com/jjsullivan5196/wvkbd/issues/70 +--- + keyboard.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/keyboard.c b/keyboard.c +index afe0639..cd9a11e 100644 +--- a/keyboard.c ++++ b/keyboard.c +@@ -678,7 +678,7 @@ create_and_upload_keymap(struct kbd *kb, const char *name, uint32_t comp_unichr, + size_t keymap_size = strlen(keymap_template) + 64; + char *keymap_str = malloc(keymap_size); + sprintf(keymap_str, keymap_template, comp_unichr, comp_shift_unichr); +- keymap_size = strlen(keymap_str); ++ keymap_size = strlen(keymap_str) + 1; + int keymap_fd = os_create_anonymous_file(keymap_size); + if (keymap_fd < 0) { + die("could not create keymap fd\n"); +-- +2.49.0 + diff --git a/nixos/homes/kylekrein/wvkbd.nix b/nixos/homes/kylekrein/wvkbd.nix new file mode 100644 index 0000000..5ceede7 --- /dev/null +++ b/nixos/homes/kylekrein/wvkbd.nix @@ -0,0 +1,15 @@ +{wvkbd, fetchFromGitHub, ...}: +let + niri-patch = ./wvkbd-niri.patch; #https://github.com/jjsullivan5196/wvkbd/issues/70 +in +wvkbd.overrideAttrs (final: prev: { + version = "0.17"; + src = fetchFromGitHub { + owner = "Paulicat"; + repo = "wvkbd"; + rev = "ac02545ab6f6ccfa5b6f132414021ba57ea73096"; + hash = "sha256-py/IqNEEaTOx/9W935Vc47WoNFz99+bNaYD0sL//JmY="; + }; + installFlags = prev.installFlags ++ ["LAYOUT=vistath"]; + patches = prev.patches or [] ++ [ niri-patch ]; +})