From nobody Sun Sep 27 12:19:43 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 4ht3R43cnFz6tRR0 for ; Sun, 27 Sep 2026 12:19:44 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ht3R41BfNz4Q2C for ; Sun, 27 Sep 2026 12:19:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790511584; 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=gbLlNtt8tBHVNoTbsqxDHIcrqfBRvfmzEInIxbzhUho=; b=VN69hRxfr0u9ZrQPqM5DQuJFxUHNYfznVPYaiZQIh79Ea8HOjOZbNRvJrEGJzXIIAq/Sfj RExpAv5Rrgic/WzyEJsX245BXJ49/voMDGL/lxD6etUCrVMUPhxL5MlSbqrn77okfH4lOO 3Og0MWKAOOsYH8KJ0cruHN1pbo+N7fbTw3Q6SLC9XMR+0cD2GieiF72wUtCLjdBclMVpZt /yxNl3jI11XJNhOrrWO5aQemV/WUKmuyh/87C/ZCrbybtXJzDCPghAEKh2jiMcpQUU8q7h Y8XrOWVqd1o4I9CspXhnDbqS9PJv/gt8PUVZl7W/77lu0Ov/UBONbdGFqwAQYA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790511584; b=vJNFbsn5CGt2qBKoFhGtj+5bQKVVyrPKrRjn1w1s7ez1j0Bjydz70yRWcvWnu6D8KfLtIO h/7oTKByE7359lNjKFyxP4PDc8ODBqHW/XyjVOROZq9s7NkwOdfyJeoC1LKSq7zeCuG+eZ lf6D98ezytxchLWXnkBU49VXO8eJcCzbUOqQE+jKPcSDzZspK+sqOiSxiISYzIiRH9W36i cR2QVmkt1myYdy/4/w7QeSdAjjgtyUp2jU0yTFZGdWbwYy80Zb3mZZVK4xFNd2FJrSjIQq 0bilC6nFSQYSxMeaGxEhVyx8be9Fw/Ikngh6R5k4H0AV9UZFjsmjwpLiGe3S7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790511584; 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=gbLlNtt8tBHVNoTbsqxDHIcrqfBRvfmzEInIxbzhUho=; b=ILbKQt3oZWYErHK8ivP4IJkguwburf3QJaZFPPlg8RYU2TdzPQNAVQ9AhdiK97xgrT/QNL 9iM4pq2t5bidvneDUrhBwWDvAU30Me/M/+MXTciW++yzF70b1T85ybTgKEZUtyU4ks6og+ MS3p+xG5FsdKjqQ+iZlbF8YF82XUZI5jbCtgFihC/UBHP0syTKkrF7g5VkiyZhrcHgfhna q3VQZvXpGzlnbKbUR877xCoMizgErDUtCwD8RpR650btu9XkuYaJpeeKbw1CejwvwpCpoj GnrFmpmVzX8xb+Q307q8bc8kzJjxBd1hMb8A20eUfmJiFRNI8y4Y5rFs+yqtbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ht3R400X0zhWs for ; Sun, 27 Sep 2026 12:19:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30af9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 27 Sep 2026 12:19:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Kang Kang From: Vladimir Kondratyev Subject: git: 3244419dfcd2 - stable/15 - evdev: map ChromeOS "Vivaldi" top-row action keys 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 3244419dfcd2feb5e724a1f2755de09a03889b7e Auto-Submitted: auto-generated Date: Sun, 27 Sep 2026 12:19:43 +0000 Message-Id: <6ab909df.30af9.7b946a@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=3244419dfcd2feb5e724a1f2755de09a03889b7e commit 3244419dfcd2feb5e724a1f2755de09a03889b7e Author: Kang Kang AuthorDate: 2026-09-13 09:37:39 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-09-27 12:18:26 +0000 evdev: map ChromeOS "Vivaldi" top-row action keys Chromebook keyboards driven by the ChromeOS EC emit the top-row action keys as scancode set 1 codes 0xE0 0x11 - 0xE0 0x1E (see the codeset 1 comments on the SCANCODE_* enum in chrome-ec include/keyboard_8042_sharedlib.h). The e0 half of the evdev_scancode2key() translation table leaves eleven of those at NONE, so on FreeBSD those keys emit no evdev event at all and userspace remappers such as keyd have nothing to bind to: e0 11 fullscreen KEY_ZOOM e0 12 overview KEY_SCALE e0 13 screenshot KEY_SYSRQ e0 14 brightness down KEY_BRIGHTNESSDOWN e0 15 brightness up KEY_BRIGHTNESSUP e0 16 privacy screen toggle KEY_PRIVACY_SCREEN_TOGGLE e0 17 kbd backlight down KEY_KBDILLUMDOWN e0 18 kbd backlight up KEY_KBDILLUMUP e0 1a play/pause KEY_PLAYPAUSE e0 1b mic mute KEY_MICMUTE e0 1e kbd backlight toggle KEY_KBDILLUMTOGGLE Fill those in. Only entries that were previously NONE are touched: the EC's remaining top-row codes already have mappings here (e0 10 prev track, e0 19 next track, e0 20 mute, e0 2e / e0 30 volume, e0 67 refresh, e0 69 forward, e0 6a back), as do e0 1c keypad enter and e0 1d right control, and none of them change. Signed-off-by: Kang Kang Tested on: Lenovo ThinkPad C14 Chromebook (Google primus, ChromeOS EC) Reviewed by: wulf MFC after: 2 weeks (cherry picked from commit 11ad849f1c50b2469ff13ee74e2ab0f5bcfa6cc9) --- sys/dev/evdev/evdev_utils.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/sys/dev/evdev/evdev_utils.c b/sys/dev/evdev/evdev_utils.c index d7b7b790dc2c..bd3039c3b825 100644 --- a/sys/dev/evdev/evdev_utils.c +++ b/sys/dev/evdev/evdev_utils.c @@ -159,10 +159,15 @@ static uint16_t evdev_at_set1_scancodes[] = { NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, - KEY_PREVIOUSSONG, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, - NONE, KEY_NEXTSONG, NONE, NONE, - KEY_KPENTER, KEY_RIGHTCTRL, NONE, NONE, + /* + * 0xE0 0x11 - 0xE0 0x1E: ChromeOS EC "Vivaldi" top-row action keys + * (see chrome-ec include/keyboard_8042_sharedlib.h). + */ + KEY_PREVIOUSSONG, KEY_ZOOM, KEY_SCALE, KEY_SYSRQ, + KEY_BRIGHTNESSDOWN, KEY_BRIGHTNESSUP, /* 0x14 - 0x15 */ + KEY_PRIVACY_SCREEN_TOGGLE, KEY_KBDILLUMDOWN, /* 0x16 - 0x17 */ + KEY_KBDILLUMUP, KEY_NEXTSONG, KEY_PLAYPAUSE, KEY_MICMUTE, + KEY_KPENTER, KEY_RIGHTCTRL, KEY_KBDILLUMTOGGLE, NONE, /* 0x20 - 0x3f. 0xE0 prefixed */ KEY_MUTE, KEY_CALC, KEY_PLAYPAUSE, NONE, KEY_STOPCD, NONE, NONE, NONE,