From nobody Wed Apr 22 20:08:09 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g19JT6V2hz6bDq3 for ; Wed, 22 Apr 2026 20:08:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g19JT1y4dz3LcT for ; Wed, 22 Apr 2026 20:08:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776888489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fx/BJv79CFluRtjJq1j8Yvkp8ra8XI0VEEoamXK4w54=; b=j3IT4Nr59tWwnpPINbgY1bKMlLFDJTne8h4IoIVDGSuUZ8voLzPkZearJW/6uYjsXBvylV 8CdVehHO9oO50GwS1QWIegGlONYCFMvU1UiVMWdduJtkN87/TpOtenVk5qEUH3ND6svyw0 ASnfkaV8JkJYxx+VcS+g6EjUv7PWJFIkeUdSvK6EdFneByclYRXnPX1g1hjV/GVORy28+g bbkvEpMm2whgR4ViF621kxRDNBsRL0ev6cGj4i/FcumIhpsvbjKOsMHK0R2b24p5lYdqx+ 4QLtKHpl/l0/GUVcw4oUWwGb/ZNPS9dQYAV980l61Uim0+7uCa/BBqJPORt2DA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776888489; a=rsa-sha256; cv=none; b=Ss4wBOyCD9NkMgw6h9TRDyB/Z4I8CcJYnNq/enfVC9EaWOtP8zvz8aXoA/Akprgwz/EFd4 tITLlG2wT3NucgXpjIX0zb2wqYbkfdYd6fK3uPuX2v+qXo7IF9goOBXjhT1KI+D075bxw/ vPqGw9UZeOlHjsaDlrnkMPqeMCjec4+77V1iOzhR0S6dnGq34ihpbaP4A3yOJC9Ypi12lE GhgzY1OzLjZsLSgiAHX8MXopxUXUb6zYw/mSqN322KQwJYSYcXY5oO3E6NHMa8pi+3bh1t btIUmU6h1Ci6tBT9uau5K2lE63GN8G5Im6HiYimN0HdXGlTOmF7Nrn+bwz0+vA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776888489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fx/BJv79CFluRtjJq1j8Yvkp8ra8XI0VEEoamXK4w54=; b=gnT/Ea+/hRqNDgOHWVTg3ZouOa1njD0MJavQ15aSka5oQCQ4BireKOWKmX7ralbP8SZo/v 7MLypyhINrtFvOnNlc/o/NZCeX6Mu3rTQJIQSxE+4cvkWAH2NjA+GYFbTZHfCUVHXr2KfY iTp9v9gWFHNgm/ruiWg9QtN6TfAtyTLdaWRTnBFqe+eVd8PuDyb+xPMRyvhUKcOR7W3y8t 9H4uupm6+al1H3m/UnyGjUsV9YRIhOW8VxdF48mj9JTEbc0CaXAJHUGtCxaWGedgohr6Vc bD/ULfjzsLNNYb6+G02clFPkrhyHWyvVlit6ExLEK4a0KW7YTG3ZErFo8FkM2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g19JT0dqwzlNp for ; Wed, 22 Apr 2026 20:08:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21dbc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 22 Apr 2026 20:08:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Toby Slight From: Vladimir Kondratyev Subject: git: 03fb1afc3ca7 - stable/15 - hkbd(4): add some extra handy fn key bindings List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 03fb1afc3ca70e187b08ccb0a1fd9916a322510d Auto-Submitted: auto-generated Date: Wed, 22 Apr 2026 20:08:09 +0000 Message-Id: <69e92aa9.21dbc.22ca216@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=03fb1afc3ca70e187b08ccb0a1fd9916a322510d commit 03fb1afc3ca70e187b08ccb0a1fd9916a322510d Author: Toby Slight AuthorDate: 2026-03-29 13:16:57 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-04-22 19:59:03 +0000 hkbd(4): add some extra handy fn key bindings - Fn+S for ScrollLock as it's very useful to have ScrollLock on FreeBSD's TTY. - Fn+P for PrtSc/SysRq, as it's another very handy but sadly missing key on Macbooks. - Some other Fn+ combinations duplicating existing keys. Apply the change to ukbd(4) as well. Signed-off-by: Toby Slight Reviewed by: wulf MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1998 (cherry picked from commit bb8230f838c8d5f8d362a0dad4809908b44ae379) --- sys/dev/hid/hkbd.c | 10 ++++++++++ sys/dev/usb/input/ukbd.c | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/sys/dev/hid/hkbd.c b/sys/dev/hid/hkbd.c index 9ab02e940089..c98f4be69169 100644 --- a/sys/dev/hid/hkbd.c +++ b/sys/dev/hid/hkbd.c @@ -623,6 +623,16 @@ static uint32_t hkbd_apple_fn(uint32_t keycode) { switch (keycode) { + case 0x0b: return 0x50; /* H -> LEFT ARROW */ + case 0x0d: return 0x51; /* J -> DOWN ARROW */ + case 0x0e: return 0x52; /* K -> UP ARROW */ + case 0x0f: return 0x4f; /* L -> RIGHT ARROW */ + case 0x36: return 0x4a; /* COMMA -> HOME */ + case 0x37: return 0x4d; /* DOT -> END */ + case 0x18: return 0x4b; /* U -> PGUP */ + case 0x07: return 0x4e; /* D -> PGDN */ + case 0x16: return 0x47; /* S -> SCROLLLOCK */ + case 0x13: return 0x46; /* P -> SYSRQ/PRTSC */ case 0x28: return 0x49; /* RETURN -> INSERT */ case 0x2a: return 0x4c; /* BACKSPACE -> DEL */ case 0x50: return 0x4a; /* LEFT ARROW -> HOME */ diff --git a/sys/dev/usb/input/ukbd.c b/sys/dev/usb/input/ukbd.c index 3ebdf1e9747d..37deb5c56fbd 100644 --- a/sys/dev/usb/input/ukbd.c +++ b/sys/dev/usb/input/ukbd.c @@ -677,6 +677,16 @@ static uint32_t ukbd_apple_fn(uint32_t keycode) { switch (keycode) { + case 0x0b: return 0x50; /* H -> LEFT ARROW */ + case 0x0d: return 0x51; /* J -> DOWN ARROW */ + case 0x0e: return 0x52; /* K -> UP ARROW */ + case 0x0f: return 0x4f; /* L -> RIGHT ARROW */ + case 0x36: return 0x4a; /* COMMA -> HOME */ + case 0x37: return 0x4d; /* DOT -> END */ + case 0x18: return 0x4b; /* U -> PGUP */ + case 0x07: return 0x4e; /* D -> PGDN */ + case 0x16: return 0x47; /* S -> SCROLLLOCK */ + case 0x13: return 0x46; /* P -> SYSRQ/PRTSC */ case 0x28: return 0x49; /* RETURN -> INSERT */ case 0x2a: return 0x4c; /* BACKSPACE -> DEL */ case 0x50: return 0x4a; /* LEFT ARROW -> HOME */