From nobody Sun Mar 29 13:17:44 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 4fkFL10XQSz6X4L9 for ; Sun, 29 Mar 2026 13:17:45 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fkFL060mrz3wVk for ; Sun, 29 Mar 2026 13:17:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774790264; 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=WGr89LjoRejjE46T07d4J5dhzv/N1MyRCF1H1Est/4I=; b=sqyBA+/zgjlgOhb8hubTQ1eJzgPV1Hk6NHm9Hw6G1vmGbQ9yhusenKvOfm/C2j3Z1GD9Sx 47XlK3dsapS+uZf/WndAg7lF6l2CNVUcCTnMso71pO/akb4jByMBbgoAXGvc8rmF0pYbbc vyEQp2rgWVYtgZnjjelFABCZQW9OZK5CvqTAEdjmlz8mM+HZKU6AOCMQSTYpvg20ss+YMh n/Z5XVeC84jIsWfrk80QbOztL2iEyOPikv2XsKH6W/PI6tK9E9p/z7yue3vmmN3g1jOQhS yl7tcMgMexCPa5x6bs1OLZXmAgYK2N7TqFM+62mjaP1V+0t6Cq4o+WciHeAeeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774790264; a=rsa-sha256; cv=none; b=NseDbxFnbip+1ubXI86Kw00FkCAVDys2KeJ7EUef94iZZ86mBTJgy1QEbM3PxH32rKsEVW LmTru0eew89xA8/icCBDqdPMuO6y6fLJCD8B1MtWBr5aSPU6VrxyoT7z2OiLptMd8Z/hU+ vhXXMQbE9rvl7TiA4356qmH/Vd2zq+AlF3C+/bPl43fGLR2C+JaVRZCEZxRevj/ELs0LXY sB9mSoOXURd1fo922OVOXGh9dexfT59UxQZcQmoE1sewJ78p/s+S6UIAkwELbJ1ET5C9Iw 0ATPHDUAwJrTMieVA9xs+f32jiPkKTsRWrHj1nuJ8vzTkWEjq3xXyY+HMDbfhg== 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=1774790264; 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=WGr89LjoRejjE46T07d4J5dhzv/N1MyRCF1H1Est/4I=; b=rtz0f5GfXXHxL2PPbsdyajlcsBkrmvmXcRE1Wa1fnce/khrxU6f3pdDtd8jWRXn1h3xbmT l3OFDf0yrPBvGXm/V5i2edYysLuKVQMQwVa/XMxkS4FNcl5zWd6+vaauRe7BEKrwk0qbqS 4VSghFQB1d4nF6XhV4Xze4hh3B6KYXHlwgrdjlK8j4UG5UdUJyd/jmrXtSXIXi7/BTPlw5 E1h0ZEQOQYXYol+UZYoDP1WjGYf8aTbTnDlYCM04FQSj8bSrBP8twaog4RYMnWK//mHYrp Kf0gGDzWGlWszg9z3Wlhb5pECzZbQpr2053gCKlvZfnmjLoLRjmqDWFq9cpnuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fkFL03wmBz1C9x for ; Sun, 29 Mar 2026 13:17:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 206ec by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 29 Mar 2026 13:17:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Toby Slight From: Vladimir Kondratyev Subject: git: bb8230f838c8 - main - 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/main X-Git-Reftype: branch X-Git-Commit: bb8230f838c8d5f8d362a0dad4809908b44ae379 Auto-Submitted: auto-generated Date: Sun, 29 Mar 2026 13:17:44 +0000 Message-Id: <69c92678.206ec.39f0d32e@gitrepo.freebsd.org> The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=bb8230f838c8d5f8d362a0dad4809908b44ae379 commit bb8230f838c8d5f8d362a0dad4809908b44ae379 Author: Toby Slight AuthorDate: 2026-03-29 13:16:57 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-03-29 13:16:57 +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 --- 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 */