Compare commits

...

18 Commits

Author SHA1 Message Date
Lennart Poettering fea6abb69c
Merge e33d1a2222 into 81af8f998e 2024-09-18 11:31:16 +02:00
Daan De Meyer 81af8f998e repart: Support specifying multiple directories to ExcludeFiles= 2024-09-18 10:22:33 +02:00
chenjiayi 4fc8a63f9e systemd: rewatch pids under cgroup v1 when sigchld of processes more than main pid and control pid is captured
If `Delegate` is configured in service, cgroup agent will never send out
any datagram as .control subcgroup is generated. Thus systemd will watch
all processes on the cgroup hierarchy for SIGCHLD to deal with unreliable
cgroup notifications.

In this way, systemd should rewatch all processes when any SIGCHLD is
captured, more than the control pid or main pid.
2024-09-18 10:13:20 +02:00
Jason Yundt dfb3155419 man: document ShowStatus and SetShowStatus()
SetShowStatus() was added in order to fix #11447. Recently, I ran into
the exact same problem that OP was experiencing in #11447. I wasn’t able
to figure out how to deal with the problem until I found #11447, and it
took me a while to find #11447.

This commit takes what I learned from reading #11447 and adds it to the
documentation. Hopefully, this will make it easier for other people who
run into the same problem in the future.
2024-09-18 10:11:55 +02:00
Daan De Meyer fc5037e7d7
Merge pull request #34464 from yuwata/test-space-in-path
test: allow to run tests under directory that contains spaces
2024-09-18 08:50:38 +02:00
Yu Watanabe 13f6ec7ce7 test: quote paths to executables
Fixes #34459.
2024-09-18 09:47:04 +09:00
Yu Watanabe 6e1816ef16 kernel-install: unquote plugin paths in KERNEL_INSTALL_PLUGINS
To support the case that paths to plugins contain spaces.

Prompted by #34459
2024-09-18 09:47:00 +09:00
Yu Watanabe 7ac1ad90d0
Merge pull request #34460 from yuwata/test-86-follow-ups
test: follow-ups for TEST-86
2024-09-18 09:31:17 +09:00
Yu Watanabe d265b8afb7 test: drop unused test.sh for TEST-86-MULTI-PROFILE-UKI
The test cannot run with the bash test runner, as it requires python.
Hence, test.sh is not necessary.

Follow-up for a37640653c.
2024-09-18 04:00:05 +09:00
Yu Watanabe 1aab0a5b10 test: minor coding style fixlets
Follow-up for a37640653c.
2024-09-18 03:50:46 +09:00
Lennart Poettering e33d1a2222 hwbd: use newer KEY_PICKUP_PHONE, KEY_HANGUP_PHONE, KEY_SELECTIVE_SCREENSHOT, KEY_NOTIFICATION_CENTER keycodes where appropriate
According to kernel commit cd80ec795156346236e9b1cd9f5cbff5a9bbd212
these were added expressly for these thinkpads, hence use them now.
2024-09-12 10:04:26 +02:00
Lennart Poettering 57aa23bcc6 hwdb: use KEY_ROTATE_DISPLAY for various cases of display rotation keys
The keycode is reletively new. Let's fix some "FIXMEs" and actually make
use of the keycode wherever it appears appropriate according to
commentary.
2024-09-12 10:04:26 +02:00
Lennart Poettering c1ebb399db hwdb: there's KEY_BRIGHTNESSAUTO these days, hence hook it up where a FIXME suggests that 2024-09-12 10:04:26 +02:00
Lennart Poettering 1ee1997629 hwdb: make key map match comment for one laptop
No idea what the right fix is here, the commnt says "touchpad off" but
uses "f22" which is touchpad "on".

let's trust the comment, because it's more literal, and assume this was
a mistake.
2024-09-12 10:04:26 +02:00
Lennart Poettering a415d73e3c hwdb: f23 → touchpad_off 2024-09-12 10:04:26 +02:00
Lennart Poettering 70eb5b0b7c hwdb: f23 → touchpad_on 2024-09-12 10:04:26 +02:00
Lennart Poettering 380683c22f hwdb: f21 → touchpad_toggle
Similar to the previous commit.
2024-09-12 10:04:25 +02:00
Lennart Poettering 81c8d85744 hwdb: replace f20 hwdb key maps by micmute
See: #34323
2024-09-12 10:03:31 +02:00
16 changed files with 268 additions and 222 deletions

View File

@ -116,8 +116,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
KEYBOARD_KEY_d9=brightnessup # Fn+Right KEYBOARD_KEY_d9=brightnessup # Fn+Right
KEYBOARD_KEY_ee=brightnessup # Fn+Right KEYBOARD_KEY_ee=brightnessup # Fn+Right
KEYBOARD_KEY_ef=brightnessdown # Fn+Left KEYBOARD_KEY_ef=brightnessdown # Fn+Left
KEYBOARD_KEY_f1=f22 # Fn+F7 Touchpad toggle (off-to-on) KEYBOARD_KEY_f1=touchpad_on # Fn+F7 Touchpad toggle (off-to-on)
KEYBOARD_KEY_f2=f23 # Fn+F7 Touchpad toggle (on-to-off) KEYBOARD_KEY_f2=touchpad_off # Fn+F7 Touchpad toggle (on-to-off)
KEYBOARD_KEY_f3=prog2 # "P2" programmable button KEYBOARD_KEY_f3=prog2 # "P2" programmable button
KEYBOARD_KEY_f4=prog1 # "P1" programmable button KEYBOARD_KEY_f4=prog1 # "P1" programmable button
KEYBOARD_KEY_f5=presentation KEYBOARD_KEY_f5=presentation
@ -127,7 +127,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
# Acer kernel driver # Acer kernel driver
evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:* evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:*
KEYBOARD_KEY_82=f21 # Touchpad toggle KEYBOARD_KEY_82=touchpad_toggle # Touchpad toggle
# Aspire models # Aspire models
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:*
@ -186,11 +186,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PH*315-52:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311-31*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311-31*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311R-31*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311R-31*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr*
KEYBOARD_KEY_8a=f20 # Microphone mute KEYBOARD_KEY_8a=micmute # Microphone mute
# Travelmate C300 # Travelmate C300
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
KEYBOARD_KEY_67=f24 # FIXME: rotate screen KEYBOARD_KEY_67=rotate_display # rotate screen
KEYBOARD_KEY_68=up KEYBOARD_KEY_68=up
KEYBOARD_KEY_69=down KEYBOARD_KEY_69=down
KEYBOARD_KEY_6b=fn KEYBOARD_KEY_6b=fn
@ -200,7 +200,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G3-M*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G3-M*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P645-S*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P645-S*:*
KEYBOARD_KEY_8a=f20 # Microphone mute button; should be micmute KEYBOARD_KEY_8a=micmute # Microphone mute button
# on some models this isn't brightnessup # on some models this isn't brightnessup
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:*
@ -223,7 +223,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pn*:*
# Swift SF314-511 # Swift SF314-511
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnSwiftSF314-511:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnSwiftSF314-511:pvr*
KEYBOARD_KEY_8a=f20 # Fn+F12, microphone mute KEYBOARD_KEY_8a=micmute # Fn+F12, microphone mute
# Predator PHN16-71 # Predator PHN16-71
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
@ -237,7 +237,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-72:*
# Nitro AN515-58 # Nitro AN515-58
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
KEYBOARD_KEY_8a=f20 # Microphone mute button KEYBOARD_KEY_8a=micmute # Microphone mute button
KEYBOARD_KEY_55=power KEYBOARD_KEY_55=power
########################################################### ###########################################################
@ -246,7 +246,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices # Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
KEYBOARD_KEY_81=f21 # Touchpad toggle KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd KEYBOARD_KEY_8a=ejectcd
KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event
KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event
@ -263,7 +263,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pnM17xR3:*
# Aquarius Cmp NS483 # Aquarius Cmp NS483
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAquarius*:pnCmp*NS483*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAquarius*:pnCmp*NS483*:*
KEYBOARD_KEY_56=backslash KEYBOARD_KEY_56=backslash
KEYBOARD_KEY_76=f21 # Touchpad Toggle KEYBOARD_KEY_76=touchpad_toggle # Touchpad Toggle
########################################################### ###########################################################
# Asus # Asus
@ -277,12 +277,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:* evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:* evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:* evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
KEYBOARD_KEY_6b=f21 # Touchpad Toggle KEYBOARD_KEY_6b=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_7c=f20 # Remap micmute to f20 KEYBOARD_KEY_7c=micmute
# USB keyboard in Asus FX503VD # USB keyboard in Asus FX503VD
evdev:input:b0003v0B05p1869* evdev:input:b0003v0B05p1869*
KEYBOARD_KEY_ff31007c=f20 # Remap micmute to f20 KEYBOARD_KEY_ff31007c=micmute
# Asus TF103C misses the home button in its PNP0C40 GPIO resources # Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this # causing the volume-button mappings to be off by one, correct this
@ -340,15 +340,15 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
KEYBOARD_KEY_f7=f21 # Touchpad Toggle KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_f8=f21 # Touchpad Toggle KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNC_TND_TNE:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNC_TND_TNE:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:* evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
KEYBOARD_KEY_f7=f21 # Touchpad Toggle KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_f8=f21 # Touchpad Toggle KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_81=f20 # Fn+4; Mic Mute KEYBOARD_KEY_81=micmute # Fn+4; Mic Mute
########################################################### ###########################################################
# Compal # Compal
@ -369,7 +369,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
KEYBOARD_KEY_9f=homepage KEYBOARD_KEY_9f=homepage
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnCompaq:pn*:pvr*:rvn*:rnN14KP6* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnCompaq:pn*:pvr*:rvn*:rnN14KP6*
KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
evdev:input:b0003v049Fp0051* evdev:input:b0003v049Fp0051*
evdev:input:b0003v049Fp008D* evdev:input:b0003v049Fp008D*
@ -403,24 +403,24 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD
KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate
KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle") KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
KEYBOARD_KEY_8c=unknown # Fn+Right Auto Brightness KEYBOARD_KEY_8c=brightnessauto # Fn+Right Auto Brightness
KEYBOARD_KEY_8f=switchvideomode # Fn+F7 aspect ratio KEYBOARD_KEY_8f=switchvideomode # Fn+F7 aspect ratio
KEYBOARD_KEY_90=previoussong # Front panel previous song KEYBOARD_KEY_90=previoussong # Front panel previous song
KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific) KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific)
KEYBOARD_KEY_92=media # MediaDirect button (house icon) KEYBOARD_KEY_92=media # MediaDirect button (house icon)
KEYBOARD_KEY_93=unknown # FIXME Fn+Left Auto Brightness KEYBOARD_KEY_93=brightnessauto # Fn+Left Auto Brightness
KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available
KEYBOARD_KEY_97=email # Tablet email button KEYBOARD_KEY_97=email # Tablet email button
KEYBOARD_KEY_98=f21 # FIXME: Tablet screen rotation KEYBOARD_KEY_98=rotate_display # Tablet screen rotation
KEYBOARD_KEY_99=nextsong # Front panel next song KEYBOARD_KEY_99=nextsong # Front panel next song
KEYBOARD_KEY_9a=setup # Tablet tools button KEYBOARD_KEY_9a=setup # Tablet tools button
KEYBOARD_KEY_9b=switchvideomode # Display toggle button KEYBOARD_KEY_9b=switchvideomode # Display toggle button
KEYBOARD_KEY_9e=f21 # Touchpad toggle KEYBOARD_KEY_9e=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_a2=playpause # Front panel play/pause KEYBOARD_KEY_a2=playpause # Front panel play/pause
KEYBOARD_KEY_a4=stopcd # Front panel stop KEYBOARD_KEY_a4=stopcd # Front panel stop
KEYBOARD_KEY_ed=media # MediaDirect button KEYBOARD_KEY_ed=media # MediaDirect button
KEYBOARD_KEY_d8=screenlock # FIXME: Tablet lock button KEYBOARD_KEY_d8=screenlock # FIXME: Tablet lock button
KEYBOARD_KEY_d9=f21 # Touchpad toggle KEYBOARD_KEY_d9=touchpad_toggle # Touchpad toggle
# #
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*910:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*910:*
@ -462,7 +462,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnStudio*155[78]:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
KEYBOARD_KEY_88=! # wireless switch KEYBOARD_KEY_88=! # wireless switch
KEYBOARD_KEY_9e=!f21 KEYBOARD_KEY_9e=!touchpad_toggle
# Dell Latitude E[67]* # Dell Latitude E[67]*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E6*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E6*:*
@ -481,7 +481,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDellInc.:pnDellSystemXPSL702X:*
# Dell XPS12 9Q33 # Dell XPS12 9Q33
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:*
KEYBOARD_KEY_88=wlan KEYBOARD_KEY_88=wlan
KEYBOARD_KEY_65=direction # Screen Rotate KEYBOARD_KEY_65=rotate_display # Screen Rotate
# Dell Pro Rugged microphone mute # Dell Pro Rugged microphone mute
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellProRugged*:* evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellProRugged*:*
@ -493,17 +493,17 @@ evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:* evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
# Dell XPS microphone mute # Dell XPS microphone mute
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:* evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:*
KEYBOARD_KEY_100150=f20 # Mic mute toggle, should be micmute KEYBOARD_KEY_100150=micmute # Mic mute toggle
# Dell Latitude privacy microphone mute # Dell Latitude privacy microphone mute
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:* evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
# Dell Precision privacy microphone mute # Dell Precision privacy microphone mute
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:* evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
KEYBOARD_KEY_120001=f20 # Mic mute toggle, should be micmute KEYBOARD_KEY_120001=micmute # Mic mute toggle
# Dell Professional Sound Bar AE515 # Dell Professional Sound Bar AE515
evdev:input:b0003v413CpA506* evdev:input:b0003v413CpA506*
KEYBOARD_KEY_b002f=f20 # Mic mute toggle, should be micmute KEYBOARD_KEY_b002f=micmute # Mic mute toggle
########################################################### ###########################################################
# Everex # Everex
@ -511,7 +511,7 @@ evdev:input:b0003v413CpA506*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:*
KEYBOARD_KEY_5c=media KEYBOARD_KEY_5c=media
KEYBOARD_KEY_65=f21 # Fn+F5 Touchpad toggle KEYBOARD_KEY_65=touchpad_toggle # Fn+F5 Touchpad toggle
KEYBOARD_KEY_67=prog3 # Fan speed control button KEYBOARD_KEY_67=prog3 # Fan speed control button
KEYBOARD_KEY_6f=brightnessup KEYBOARD_KEY_6f=brightnessup
KEYBOARD_KEY_7f=brightnessdown KEYBOARD_KEY_7f=brightnessdown
@ -550,7 +550,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*Edition*V3505*:*
# Amilo Pro v3205 # Amilo Pro v3205
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*V3205*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*V3205*:*
KEYBOARD_KEY_f4=f21 # FIXME: silent-mode decrease CPU/GPU clock KEYBOARD_KEY_f4=touchpad_toggle # FIXME: silent-mode decrease CPU/GPU clock
KEYBOARD_KEY_f7=switchvideomode # Fn+F3 KEYBOARD_KEY_f7=switchvideomode # Fn+F3
# Amilo Si 1520 # Amilo Si 1520
@ -639,7 +639,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*:*
KEYBOARD_KEY_8c=media # music KEYBOARD_KEY_8c=media # music
KEYBOARD_KEY_8e=dvd KEYBOARD_KEY_8e=dvd
KEYBOARD_KEY_b1=help KEYBOARD_KEY_b1=help
KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness KEYBOARD_KEY_b3=brightnessauto # Auto brightness
KEYBOARD_KEY_d7=wlan KEYBOARD_KEY_d7=wlan
KEYBOARD_KEY_92=brightnessdown # Fn+F7 (Fn+F9 on 6730b) KEYBOARD_KEY_92=brightnessdown # Fn+F7 (Fn+F9 on 6730b)
KEYBOARD_KEY_97=brightnessup # Fn+F8 (Fn+F10 on 6730b) KEYBOARD_KEY_97=brightnessup # Fn+F8 (Fn+F10 on 6730b)
@ -658,8 +658,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
KEYBOARD_KEY_88=media # FIXME: quick play KEYBOARD_KEY_88=media # FIXME: quick play
KEYBOARD_KEY_b7=print KEYBOARD_KEY_b7=print
KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on KEYBOARD_KEY_d9=!touchpad_on # touchpad on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:*
KEYBOARD_KEY_b7=print KEYBOARD_KEY_b7=print
@ -669,7 +669,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:
# Pavilion 13 x360 (Tablet mode and SYSRQ key) # Pavilion 13 x360 (Tablet mode and SYSRQ key)
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:*
KEYBOARD_KEY_d7=!f22 # touchpad off KEYBOARD_KEY_d7=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=unknown KEYBOARD_KEY_d9=unknown
KEYBOARD_KEY_d2=sysrq # Fn+Print = SYSRQ KEYBOARD_KEY_d2=sysrq # Fn+Print = SYSRQ
@ -687,7 +687,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[sS][pP][eE][cC][tT][rR][eE]*x360Convert
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPSpectrex360Convertible13*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPSpectrex360Convertible13*:*
# ENVY x360 13 # ENVY x360 13
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:*
KEYBOARD_KEY_82=f20 # Microphone mute button, should be micmute KEYBOARD_KEY_82=micmute # Microphone mute button
# Spectre x360 16 2022 # Spectre x360 16 2022
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:* evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:*
@ -700,7 +700,7 @@ evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:* evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
KEYBOARD_KEY_64=calendar KEYBOARD_KEY_64=calendar
KEYBOARD_KEY_81=f20 # Microphone mute button KEYBOARD_KEY_81=micmute # Microphone mute button
KEYBOARD_KEY_ee=switchvideomode # Switch display outputs KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
KEYBOARD_KEY_92=brightnessdown KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup KEYBOARD_KEY_97=brightnessup
@ -718,15 +718,15 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2230s*:*
# Presario # Presario
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:*
KEYBOARD_KEY_d8=f21 KEYBOARD_KEY_d8=touchpad_toggle
KEYBOARD_KEY_d9=f21 KEYBOARD_KEY_d9=touchpad_toggle
# 2510p 2530p # 2510p 2530p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# 2570p # 2570p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
@ -740,15 +740,15 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
KEYBOARD_KEY_87=volumedown KEYBOARD_KEY_87=volumedown
KEYBOARD_KEY_92=brightnessdown KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup KEYBOARD_KEY_97=brightnessup
KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on KEYBOARD_KEY_d9=!touchpad_on # touchpad on
KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness KEYBOARD_KEY_b3=brightnessauto # Auto brightness
# TX2 # TX2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
KEYBOARD_KEY_c2=media KEYBOARD_KEY_c2=media
KEYBOARD_KEY_d8=!f23 # Toggle touchpad button on tx2 (OFF) KEYBOARD_KEY_d8=!touchpad_off # Toggle touchpad button on tx2 (OFF)
KEYBOARD_KEY_d9=!f22 # Toggle touchpad button on tx2 (ON) KEYBOARD_KEY_d9=!touchpad_on # Toggle touchpad button on tx2 (ON)
# Presario 2100 # Presario 2100
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario*2100*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario*2100*:*
@ -773,8 +773,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8460p:*
# HDX9494nr # HDX9494nr
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:*
KEYBOARD_KEY_b2=www # Fn+F3 KEYBOARD_KEY_b2=www # Fn+F3
KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook 725 G2 # HP EliteBook 725 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:*
@ -793,14 +793,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*:*
# HP ZBook # HP ZBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
# HP ZBook Studio G5 # HP ZBook Studio G5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12) KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
KEYBOARD_KEY_6d=displaytoggle # Display icon KEYBOARD_KEY_6d=displaytoggle # Display icon
KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go KEYBOARD_KEY_66=pickup_phone # Pickup phone button
KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel KEYBOARD_KEY_65=hangup_phone # Hangup phone button
# HP ZBook 15 G2 # HP ZBook 15 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
@ -808,9 +808,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
# HP ProBook 11 G1 # HP ProBook 11 G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_d8=f21 # touchpad toggle KEYBOARD_KEY_d8=touchpad_toggle # touchpad toggle
KEYBOARD_KEY_d9=f21 # touchpad toggle KEYBOARD_KEY_d9=touchpad_toggle # touchpad toggle
# HP ZBook Studio G4 # HP ZBook Studio G4
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
@ -818,13 +818,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
# HP EliteBook Folio 1040 G2 # HP EliteBook Folio 1040 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:*
KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook Folio G1 # HP EliteBook Folio G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:*
KEYBOARD_KEY_64=calendar KEYBOARD_KEY_64=calendar
KEYBOARD_KEY_81=f20 KEYBOARD_KEY_81=micmute
# HP EliteBook 845 G7 # HP EliteBook 845 G7
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook845G7*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook845G7*:pvr*
@ -857,16 +857,16 @@ evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
# HP ProBook 11G2 # HP ProBook 11G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
KEYBOARD_KEY_d8=!f23 # Fn+F2: touchpad off KEYBOARD_KEY_d8=!touchpad_off # Fn+F2: touchpad off
KEYBOARD_KEY_d9=!f22 # Fn+F2: touchpad on KEYBOARD_KEY_d9=!touchpad_on # Fn+F2: touchpad on
# HP mt44 Mobile Thin Client # HP mt44 Mobile Thin Client
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:* evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12) KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
KEYBOARD_KEY_6d=displaytoggle # Display icon KEYBOARD_KEY_6d=displaytoggle # Display icon
KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go KEYBOARD_KEY_66=pickup_phone # Pickup phone button
KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel KEYBOARD_KEY_65=hangup_phone # Hangup phone button
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
KEYBOARD_KEY_f8=wlan # Wireless HW switch button KEYBOARD_KEY_f8=wlan # Wireless HW switch button
@ -884,7 +884,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMEN*:pvr*
# HP Dev One # HP Dev One
evdev:atkbd:dmi:*:rvnHP:rn8A78:* evdev:atkbd:dmi:*:rvnHP:rn8A78:*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_f9=prog1 # Fn+F12; Programmable hotkey KEYBOARD_KEY_f9=prog1 # Fn+F12; Programmable hotkey
# HP Victus # HP Victus
@ -913,7 +913,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteDragonfly13.5inchG3NotebookPC:pvr*
# Huawei WMI hotkeys driver # Huawei WMI hotkeys driver
evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI:* evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI:*
KEYBOARD_KEY_287=f20 # Microphone mute button, should be micmute KEYBOARD_KEY_287=micmute # Microphone mute button
# Huawei MACH-WX9 and EUL-WX9 # Huawei MACH-WX9 and EUL-WX9
evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnMACH-WX9:* evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnMACH-WX9:*
@ -974,7 +974,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINVENTEC:pnSYMPHONY*6.0/7.0:*
# LEAP W502 # LEAP W502
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr*
KEYBOARD_KEY_76=f21 # touchpad toggle KEYBOARD_KEY_76=touchpad_toggle # touchpad toggle
########################################################### ###########################################################
# Kvadra # Kvadra
@ -982,7 +982,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr*
# LE14U/LE15U # LE14U/LE15U
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnKVADRA*:pn*LE1*U*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnKVADRA*:pn*LE1*U*:*
KEYBOARD_KEY_76=f21 # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle
########################################################### ###########################################################
# Lenovo # Lenovo
@ -995,7 +995,7 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_03=sleep KEYBOARD_KEY_03=sleep
KEYBOARD_KEY_04=wlan KEYBOARD_KEY_04=wlan
KEYBOARD_KEY_06=switchvideomode KEYBOARD_KEY_06=switchvideomode
KEYBOARD_KEY_07=f21 KEYBOARD_KEY_07=touchpad_toggle
KEYBOARD_KEY_08=f24 KEYBOARD_KEY_08=f24
KEYBOARD_KEY_0b=suspend KEYBOARD_KEY_0b=suspend
KEYBOARD_KEY_0f=brightnessup KEYBOARD_KEY_0f=brightnessup
@ -1006,13 +1006,13 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_15=volumedown KEYBOARD_KEY_15=volumedown
KEYBOARD_KEY_16=mute KEYBOARD_KEY_16=mute
KEYBOARD_KEY_17=prog1 KEYBOARD_KEY_17=prog1
KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute KEYBOARD_KEY_1a=micmute # Microphone mute button
KEYBOARD_KEY_45=bookmarks KEYBOARD_KEY_45=bookmarks
KEYBOARD_KEY_46=prog2 # Fn + PrtSc, on Windows: Snipping tool KEYBOARD_KEY_46=selective_screenshot # Fn + PrtSc, on Windows: Snipping tool
KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea
KEYBOARD_KEY_4b=chat # Fn + F9, on Windows: Notifications panel key KEYBOARD_KEY_4b=notification_center # Fn + F9, on Windows: Notifications panel key
KEYBOARD_KEY_4c=connect # Fn + F10, on Windows: Answer (Teams) call KEYBOARD_KEY_4c=pickup_phone # Fn + F10, on Windows: Answer (Teams) call
KEYBOARD_KEY_4d=cancel # Fn + F11, on Windows: Hangup/decline (Teams) call KEYBOARD_KEY_4d=hangup_phone # Fn + F11, on Windows: Hangup/decline (Teams) call
# ThinkPad Keyboard with TrackPoint # ThinkPad Keyboard with TrackPoint
evdev:input:b0003v17EFp6009* evdev:input:b0003v17EFp6009*
@ -1020,14 +1020,14 @@ evdev:input:b0003v17EFp6009*
KEYBOARD_KEY_090013=battery # Fn+F3 KEYBOARD_KEY_090013=battery # Fn+F3
KEYBOARD_KEY_090014=wlan # Fn+F5 KEYBOARD_KEY_090014=wlan # Fn+F5
KEYBOARD_KEY_090016=switchvideomode # Fn+F7 KEYBOARD_KEY_090016=switchvideomode # Fn+F7
KEYBOARD_KEY_090017=f21 # Fn+F8 touchpad toggle KEYBOARD_KEY_090017=touchpad_toggle # Fn+F8 touchpad toggle
KEYBOARD_KEY_090019=suspend # Fn+F12 KEYBOARD_KEY_090019=suspend # Fn+F12
KEYBOARD_KEY_09001a=brightnessup # Fn+Home KEYBOARD_KEY_09001a=brightnessup # Fn+Home
KEYBOARD_KEY_09001b=brightnessdown # Fn+End KEYBOARD_KEY_09001b=brightnessdown # Fn+End
KEYBOARD_KEY_09001d=zoom # Fn+Space KEYBOARD_KEY_09001d=zoom # Fn+Space
KEYBOARD_KEY_090011=prog1 # ThinkVantage button KEYBOARD_KEY_090011=prog1 # ThinkVantage button
KEYBOARD_KEY_090015=camera # Fn+F6 headset/camera VoIP key ?? KEYBOARD_KEY_090015=camera # Fn+F6 headset/camera VoIP key ??
KEYBOARD_KEY_090010=f20 # Microphone mute button; should be micmute KEYBOARD_KEY_090010=micmute # Microphone mute button
# Lenovo 3000 # Lenovo 3000
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr*
@ -1049,8 +1049,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:*
KEYBOARD_KEY_b9=brightnessup # does nothing in BIOS KEYBOARD_KEY_b9=brightnessup # does nothing in BIOS
KEYBOARD_KEY_ba=brightnessdown # does nothing in BIOS KEYBOARD_KEY_ba=brightnessdown # does nothing in BIOS
KEYBOARD_KEY_f1=camera # BIOS toggles camera power KEYBOARD_KEY_f1=camera # BIOS toggles camera power
KEYBOARD_KEY_f2=f21 # touchpad toggle (key alternately emits F2 and F3) KEYBOARD_KEY_f2=touchpad_toggle # touchpad toggle (key alternately emits F2 and F3)
KEYBOARD_KEY_f3=f21 KEYBOARD_KEY_f3=touchpad_toggle
# Lenovo IdeaPad 5 # Lenovo IdeaPad 5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrIdeaPad5*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrIdeaPad5*:*
@ -1063,11 +1063,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*T*:rvn*
KEYBOARD_KEY_66=screenlock KEYBOARD_KEY_66=screenlock
KEYBOARD_KEY_67=cyclewindows # bezel circular arrow KEYBOARD_KEY_67=cyclewindows # bezel circular arrow
KEYBOARD_KEY_68=setup # bezel setup / menu KEYBOARD_KEY_68=setup # bezel setup / menu
KEYBOARD_KEY_6c=direction # rotate screen KEYBOARD_KEY_6c=rotate_display # rotate screen
# ThinkPad X6 Tablet # ThinkPad X6 Tablet
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn*
KEYBOARD_KEY_6c=direction # rotate KEYBOARD_KEY_6c=rotate_display # rotate
KEYBOARD_KEY_68=leftmeta # toolbox KEYBOARD_KEY_68=leftmeta # toolbox
KEYBOARD_KEY_6b=esc # escape KEYBOARD_KEY_6b=esc # escape
KEYBOARD_KEY_6d=right # right on d-pad KEYBOARD_KEY_6d=right # right on d-pad
@ -1078,7 +1078,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn*
# ThinkPad X41 Tablet # ThinkPad X41 Tablet
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
KEYBOARD_KEY_6c=direction # rotate KEYBOARD_KEY_6c=rotate_display # rotate
KEYBOARD_KEY_68=leftmeta # toolbox KEYBOARD_KEY_68=leftmeta # toolbox
KEYBOARD_KEY_6b=esc # escape KEYBOARD_KEY_6b=esc # escape
KEYBOARD_KEY_69=enter # enter on d-pad KEYBOARD_KEY_69=enter # enter on d-pad
@ -1086,17 +1086,17 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
# IdeaPad # IdeaPad
evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:* evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices) KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
KEYBOARD_KEY_08=f20 # micmute KEYBOARD_KEY_08=micmute
KEYBOARD_KEY_42=f23 KEYBOARD_KEY_42=touchpad_off
KEYBOARD_KEY_43=f22 KEYBOARD_KEY_43=touchpad_on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
KEYBOARD_KEY_95=media KEYBOARD_KEY_95=media
KEYBOARD_KEY_a3=play KEYBOARD_KEY_a3=play
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
KEYBOARD_KEY_f1=f21 KEYBOARD_KEY_f1=touchpad_toggle
KEYBOARD_KEY_ce=f20 # micmute KEYBOARD_KEY_ce=micmute
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
# Lenovo IdeaPad Flex 5 # Lenovo IdeaPad Flex 5
@ -1117,16 +1117,16 @@ evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr* evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
# Lenovo IdeaPad Z500 # Lenovo IdeaPad Z500
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*5931*:pvr* evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*5931*:pvr*
KEYBOARD_KEY_f3=f21 # Fn+F6 (toggle touchpad) KEYBOARD_KEY_f3=touchpad_toggle # Fn+F6 (toggle touchpad)
# V480 # V480
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
KEYBOARD_KEY_f1=f21 KEYBOARD_KEY_f1=touchpad_toggle
# Lenovo ThinkCentre M800z/M820z/M920z AIO machines # Lenovo ThinkCentre M800z/M820z/M920z AIO machines
# key_scancode 00 is KEY_MICMUTE # key_scancode 00 is KEY_MICMUTE
evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:* evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_00=f20 KEYBOARD_KEY_00=micmute
# enhanced USB keyboard # enhanced USB keyboard
evdev:input:b0003v04B3p301B* evdev:input:b0003v04B3p301B*
@ -1141,7 +1141,7 @@ evdev:input:b0003v04B3p301B*
# Lenovo Ideapad D330-10IGM # Lenovo Ideapad D330-10IGM
evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:* evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
KEYBOARD_KEY_70073=f21 # Fn+Supr (Touchpad toggle) KEYBOARD_KEY_70073=touchpad_toggle # Fn+Supr (Touchpad toggle)
evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:* evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle) KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle)
@ -1198,8 +1198,8 @@ evdev:input:b0003v046Dp00*
KEYBOARD_KEY_c102b=cyclewindows # Empty window icon KEYBOARD_KEY_c102b=cyclewindows # Empty window icon
KEYBOARD_KEY_c102c=fn # Fn key KEYBOARD_KEY_c102c=fn # Fn key
KEYBOARD_KEY_c102d=www # www text + magnifierglass icon KEYBOARD_KEY_c102d=www # www text + magnifierglass icon
KEYBOARD_KEY_c1031=connect # Pickup phone button → connect → XF86Go KEYBOARD_KEY_c1031=pickup_phone # Pickup phone button
KEYBOARD_KEY_c1032=cancel # Hangup phone button → cancel → Cancel KEYBOARD_KEY_c1032=hangup_phone # Hangup phone button
KEYBOARD_KEY_c1041=help # Help text or icon (Fn + F1) KEYBOARD_KEY_c1041=help # Help text or icon (Fn + F1)
KEYBOARD_KEY_c1042=wordprocessor # Word icon (Fn + F2) KEYBOARD_KEY_c1042=wordprocessor # Word icon (Fn + F2)
KEYBOARD_KEY_c1043=spreadsheet # Excel icon (Fn + F3) KEYBOARD_KEY_c1043=spreadsheet # Excel icon (Fn + F3)
@ -1500,7 +1500,7 @@ evdev:input:b0003v1532p0200*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
KEYBOARD_KEY_76=f21 # Toggle touchpad, sends meta+ctrl+toggle KEYBOARD_KEY_76=touchpad_toggle # Toggle touchpad, sends meta+ctrl+toggle
KEYBOARD_KEY_91=config # MSIControl Center KEYBOARD_KEY_91=config # MSIControl Center
KEYBOARD_KEY_a0=mute # Fn+F9 KEYBOARD_KEY_a0=mute # Fn+F9
KEYBOARD_KEY_ae=volumedown # Fn+F7 KEYBOARD_KEY_ae=volumedown # Fn+F7
@ -1509,10 +1509,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
KEYBOARD_KEY_c2=ejectcd KEYBOARD_KEY_c2=ejectcd
KEYBOARD_KEY_df=sleep # Fn+F12 KEYBOARD_KEY_df=sleep # Fn+F12
KEYBOARD_KEY_e2=bluetooth # satellite dish2 KEYBOARD_KEY_e2=bluetooth # satellite dish2
KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable KEYBOARD_KEY_e4=touchpad_toggle # Fn+F3 Touchpad disable
KEYBOARD_KEY_ec=email # envelope button KEYBOARD_KEY_ec=email # envelope button
KEYBOARD_KEY_ee=camera # Fn+F6 camera disable KEYBOARD_KEY_ee=camera # Fn+F6 camera disable
KEYBOARD_KEY_f1=f20 # Microphone mute KEYBOARD_KEY_f1=micmute # Microphone mute
KEYBOARD_KEY_f2=rotate_display # Rotate screen KEYBOARD_KEY_f2=rotate_display # Rotate screen
KEYBOARD_KEY_f6=wlan # satellite dish1 KEYBOARD_KEY_f6=wlan # satellite dish1
KEYBOARD_KEY_f7=brightnessdown # Fn+F4 KEYBOARD_KEY_f7=brightnessdown # Fn+F4
@ -1546,7 +1546,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7 KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
KEYBOARD_KEY_f2=prog2 # Fn+F12 Screen rotation KEYBOARD_KEY_f2=rotate_display # Fn+F12 Screen rotation
KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
KEYBOARD_KEY_8c=prog4 # Fn+Z Launch True Color KEYBOARD_KEY_8c=prog4 # Fn+Z Launch True Color
KEYBOARD_KEY_f5=fn_esc # Fn+esc Toggle the behaviour of Fn keys KEYBOARD_KEY_f5=fn_esc # Fn+esc Toggle the behaviour of Fn keys
@ -1554,8 +1554,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_98=unknown # Lid open KEYBOARD_KEY_98=unknown # Lid open
evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:* evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
KEYBOARD_KEY_0213=f22 KEYBOARD_KEY_0213=touchpad_on
KEYBOARD_KEY_0214=f23 KEYBOARD_KEY_0214=touchpad_off
# MSI Claw # MSI Claw
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:* evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
@ -1568,7 +1568,7 @@ evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.
# VersaPro VG-S # VersaPro VG-S
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
KEYBOARD_KEY_a8=f21 # Fn+Space touchpad toggle KEYBOARD_KEY_a8=touchpad_toggle # Fn+Space touchpad toggle
KEYBOARD_KEY_67=brightnessdown # Fn+F7 brightness down KEYBOARD_KEY_67=brightnessdown # Fn+F7 brightness down
KEYBOARD_KEY_65=brightnessup # Fn+F8 brightness up KEYBOARD_KEY_65=brightnessup # Fn+F8 brightness up
KEYBOARD_KEY_71=battery # Fn+F4 ECO KEYBOARD_KEY_71=battery # Fn+F4 ECO
@ -1581,7 +1581,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
evdev:input:b0003v15BAp003C* evdev:input:b0003v15BAp003C*
KEYBOARD_KEY_70066=sleep # Fn+F1 KEYBOARD_KEY_70066=sleep # Fn+F1
KEYBOARD_KEY_700f6=wlan # Fn+F2 KEYBOARD_KEY_700f6=wlan # Fn+F2
KEYBOARD_KEY_700c7=f21 # Fn+F3 touchpad toggle KEYBOARD_KEY_700c7=touchpad_toggle # Fn+F3 touchpad toggle
KEYBOARD_KEY_7006f=brightnessdown # Fn+F7 KEYBOARD_KEY_7006f=brightnessdown # Fn+F7
KEYBOARD_KEY_70070=brightnessup # Fn+F8 KEYBOARD_KEY_70070=brightnessup # Fn+F8
KEYBOARD_KEY_7006e=switchvideomode # Fn+F9 KEYBOARD_KEY_7006e=switchvideomode # Fn+F9
@ -1622,8 +1622,8 @@ evdev:name:AT Translated Set 2 keyboard:phys:sp/serio*/input*:ev:120013:*
KEYBOARD_KEY_f3=f17 KEYBOARD_KEY_f3=f17
KEYBOARD_KEY_f2=f18 KEYBOARD_KEY_f2=f18
KEYBOARD_KEY_f1=f19 KEYBOARD_KEY_f1=f19
KEYBOARD_KEY_f0=f20 # micmute KEYBOARD_KEY_f0=micmute
KEYBOARD_KEY_ef=f21 KEYBOARD_KEY_ef=touchpad_toggle
KEYBOARD_KEY_ee=chat KEYBOARD_KEY_ee=chat
KEYBOARD_KEY_e4=chat KEYBOARD_KEY_e4=chat
KEYBOARD_KEY_dd=menu # Frame KEYBOARD_KEY_dd=menu # Frame
@ -1665,7 +1665,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnONKYO*CORPORATION:pnONKYOPC:*
KEYBOARD_KEY_f0=media # Fn+R KEYBOARD_KEY_f0=media # Fn+R
KEYBOARD_KEY_f5=switchvideomode # Fn+E KEYBOARD_KEY_f5=switchvideomode # Fn+E
KEYBOARD_KEY_f6=camera # Fn+T KEYBOARD_KEY_f6=camera # Fn+T
KEYBOARD_KEY_f7=f21 # Fn+Y (touchpad toggle) KEYBOARD_KEY_f7=touchpad_toggle # Fn+Y (touchpad toggle)
KEYBOARD_KEY_f8=brightnessup # Fn+S KEYBOARD_KEY_f8=brightnessup # Fn+S
KEYBOARD_KEY_f9=brightnessdown # Fn+A KEYBOARD_KEY_f9=brightnessdown # Fn+A
KEYBOARD_KEY_fb=wlan # Fn+J KEYBOARD_KEY_fb=wlan # Fn+J
@ -1741,7 +1741,7 @@ evdev:input:b0003v258Ap001E*
# Plantronics .Audio 626 DSP # Plantronics .Audio 626 DSP
evdev:input:b0003v047FpC006* evdev:input:b0003v047FpC006*
KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute KEYBOARD_KEY_b002f=micmute # Microphone mute button
########################################################### ###########################################################
# Purism # Purism
@ -1806,8 +1806,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*:*
KEYBOARD_KEY_b4=!wlan # Fn+F9 (X60P) KEYBOARD_KEY_b4=!wlan # Fn+F9 (X60P)
KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance) KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance)
KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
KEYBOARD_KEY_f7=!f22 # Fn+F10 Touchpad on KEYBOARD_KEY_f7=!touchpad_on # Fn+F10 Touchpad on
KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off KEYBOARD_KEY_f9=!touchpad_off # Fn+F10 Touchpad off
# Series 3 # Series 3
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:*
@ -1820,8 +1820,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
KEYBOARD_KEY_f7=!f22 # Fn+F5 touchpad on KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
KEYBOARD_KEY_f9=!f23 # Fn+F5 touchpad off KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
KEYBOARD_KEY_a0=!mute # Fn+F6 mute KEYBOARD_KEY_a0=!mute # Fn+F6 mute
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
@ -1901,8 +1901,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:*
KEYBOARD_KEY_74=mute KEYBOARD_KEY_74=mute
KEYBOARD_KEY_75=mute KEYBOARD_KEY_75=mute
KEYBOARD_KEY_77=f22 # Touchpad on KEYBOARD_KEY_77=touchpad_on # Touchpad on
KEYBOARD_KEY_79=f23 # Touchpad off KEYBOARD_KEY_79=touchpad_off # Touchpad off
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
KEYBOARD_KEY_ad=leftmeta KEYBOARD_KEY_ad=leftmeta
@ -1959,7 +1959,7 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:*
KEYBOARD_KEY_10=suspend # Fn+F12 KEYBOARD_KEY_10=suspend # Fn+F12
evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:* evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle) KEYBOARD_KEY_05=touchpad_toggle # Fn+F1
KEYBOARD_KEY_0d=down # Fn+F9 zoomout KEYBOARD_KEY_0d=down # Fn+F9 zoomout
KEYBOARD_KEY_0e=up # Fn+F10 zoomin KEYBOARD_KEY_0e=up # Fn+F10 zoomin
@ -1968,19 +1968,19 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
########################################################### ###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
KEYBOARD_KEY_f7=f21 # Touchpad toggle KEYBOARD_KEY_f7=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_f8=f21 # Touchpad toggle KEYBOARD_KEY_f8=touchpad_toggle # Touchpad toggle
# Pangolin 12 # Pangolin 12
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12*
KEYBOARD_KEY_76=f21 # Touchpad toggle KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
########################################################### ###########################################################
# T-bao # T-bao
########################################################### ###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:*
KEYBOARD_KEY_76=f21 # Touchpad toggle KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
########################################################### ###########################################################
# Toshiba # Toshiba
@ -1996,8 +1996,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*A110:*
KEYBOARD_KEY_92=stop KEYBOARD_KEY_92=stop
KEYBOARD_KEY_93=www KEYBOARD_KEY_93=www
KEYBOARD_KEY_94=media KEYBOARD_KEY_94=media
KEYBOARD_KEY_9e=f22 # Touchpad on KEYBOARD_KEY_9e=touchpad_on # Touchpad on
KEYBOARD_KEY_9f=f23 # Touchpad off KEYBOARD_KEY_9f=touchpad_off # Touchpad off
KEYBOARD_KEY_b9=nextsong KEYBOARD_KEY_b9=nextsong
KEYBOARD_KEY_d9=brightnessup KEYBOARD_KEY_d9=brightnessup
KEYBOARD_KEY_ee=screenlock KEYBOARD_KEY_ee=screenlock
@ -2010,8 +2010,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*M30X:*
KEYBOARD_KEY_d9=brightnessup KEYBOARD_KEY_d9=brightnessup
KEYBOARD_KEY_ee=screenlock KEYBOARD_KEY_ee=screenlock
KEYBOARD_KEY_93=media KEYBOARD_KEY_93=media
KEYBOARD_KEY_9e=f22 # touchpad enable KEYBOARD_KEY_9e=touchpad_on # touchpad enable
KEYBOARD_KEY_9f=f23 # touchpad disable KEYBOARD_KEY_9f=touchpad_off # touchpad disable
# Satellite P75-A # Satellite P75-A
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
@ -2025,14 +2025,14 @@ evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:*
KEYBOARD_KEY_13c=brightnessdown KEYBOARD_KEY_13c=brightnessdown
KEYBOARD_KEY_13d=brightnessup KEYBOARD_KEY_13d=brightnessup
KEYBOARD_KEY_13e=switchvideomode KEYBOARD_KEY_13e=switchvideomode
KEYBOARD_KEY_13f=f21 # Touchpad toggle KEYBOARD_KEY_13f=touchpad_toggle # Touchpad toggle
# Satellite P75-A7200 # Satellite P75-A7200
evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:* evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
KEYBOARD_KEY_13c=brightnessdown KEYBOARD_KEY_13c=brightnessdown
KEYBOARD_KEY_13d=brightnessup KEYBOARD_KEY_13d=brightnessup
KEYBOARD_KEY_13e=switchvideomode KEYBOARD_KEY_13e=switchvideomode
KEYBOARD_KEY_13f=f21 # Touchpad toggle KEYBOARD_KEY_13f=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_9e=wlan KEYBOARD_KEY_9e=wlan
# Portege Z830 ACPI quickstart buttons # Portege Z830 ACPI quickstart buttons
@ -2043,7 +2043,7 @@ evdev:name:Quickstart Button 2:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
KEYBOARD_KEY_1=prog2 # TOSHIBA Presentation button KEYBOARD_KEY_1=prog2 # TOSHIBA Presentation button
evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:* evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
KEYBOARD_KEY_1=f21 # Touchpad toggle KEYBOARD_KEY_1=touchpad_toggle # Touchpad toggle
########################################################### ###########################################################
# VIA # VIA
@ -2057,7 +2057,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:*
########################################################### ###########################################################
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:* evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:*
KEYBOARD_KEY_70073=f21 # Touchpad toggle KEYBOARD_KEY_70073=touchpad_toggle # Touchpad toggle
########################################################### ###########################################################
# WeiHeng # WeiHeng
@ -2065,7 +2065,7 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:*
# P325J # P325J
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:* evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:*
KEYBOARD_KEY_76=f21 # Touchpad toggle KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
########################################################### ###########################################################
# Xiaomi # Xiaomi
@ -2091,8 +2091,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote:*
KEYBOARD_KEY_93=switchvideomode # Fn+F3 Toggle Video Output KEYBOARD_KEY_93=switchvideomode # Fn+F3 Toggle Video Output
KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down
KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up
KEYBOARD_KEY_a5=f23 # Fn+F6 Disable Touchpad KEYBOARD_KEY_a5=touchpad_off # Fn+F6 Disable Touchpad
KEYBOARD_KEY_a6=f22 # Fn+F6 Enable Touchpad KEYBOARD_KEY_a6=touchpad_on # Fn+F6 Enable Touchpad
KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth
KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth
KEYBOARD_KEY_f1=wlan # RF Switch Off KEYBOARD_KEY_f1=wlan # RF Switch Off
@ -2192,7 +2192,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:*
# Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X) # Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
########################################################### ###########################################################
# Positivo # Positivo
@ -2203,23 +2203,23 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnCF40CM-V2* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnCF40CM-V2*
# Positivo DUO (k116) # Positivo DUO (k116)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116*
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
# Positivo (N14NPE-N, N15NPE-N) # Positivo (N14NPE-N, N15NPE-N)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]NPE-N* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]NPE-N*
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
KEYBOARD_KEY_dd=search KEYBOARD_KEY_dd=search
# Positivo (N15EPE, N14EPE) # Positivo (N15EPE, N14EPE)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]EPE* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]EPE*
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
KEYBOARD_KEY_6e=search KEYBOARD_KEY_6e=search
# Positivo (CG15D) # Positivo (CG15D)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCG15D* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCG15D*
# Positivo Motion (N14AP7, N14DP6, N14DP7, N14DP7-V2, N14DP9, N14JP6, N14KP6) # Positivo Motion (N14AP7, N14DP6, N14DP7, N14DP7-V2, N14DP9, N14JP6, N14KP6)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14[ADJK]P* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14[ADJK]P*
KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
KEYBOARD_KEY_67=prog1 # Programmable button KEYBOARD_KEY_67=prog1 # Programmable button
KEYBOARD_KEY_68=prog2 # Programmable button KEYBOARD_KEY_68=prog2 # Programmable button
KEYBOARD_KEY_69=prog3 # Programmable button KEYBOARD_KEY_69=prog3 # Programmable button
@ -2233,7 +2233,7 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:br*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14EP6* evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:br*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14EP6*
# Positivo Motion (CW14Q01P) (CW14Q01P-V2) # Positivo Motion (CW14Q01P) (CW14Q01P-V2)
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCW14Q01P* evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCW14Q01P*
KEYBOARD_KEY_70073=f21 # Fn+f2 toggle touchpad KEYBOARD_KEY_70073=touchpad_toggle # Fn+f2 toggle touchpad
KEYBOARD_KEY_7006b=prog1 # Programmable button KEYBOARD_KEY_7006b=prog1 # Programmable button
KEYBOARD_KEY_7006c=prog2 # Programmable button KEYBOARD_KEY_7006c=prog2 # Programmable button
KEYBOARD_KEY_7006d=prog3 # Programmable button KEYBOARD_KEY_7006d=prog3 # Programmable button
@ -2244,7 +2244,7 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
########################################################### ###########################################################
# Multilaser Ultra (UL154) # Multilaser Ultra (UL154)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*bvr*:svnMultilaserIndustrial:pn*:pvr*:rvn*:rnUL154* evdev:name:AT Translated Set 2 keyboard:dmi:bvn*bvr*:svnMultilaserIndustrial:pn*:pvr*:rvn*:rnUL154*
KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
########################################################### ###########################################################
# Other # Other

View File

@ -593,8 +593,6 @@ node /org/freedesktop/systemd1 {
<!--method GetJobBefore is not documented!--> <!--method GetJobBefore is not documented!-->
<!--method SetShowStatus is not documented!-->
<!--method ListUnitsFiltered is not documented!--> <!--method ListUnitsFiltered is not documented!-->
<!--method ListUnitsByPatterns is not documented!--> <!--method ListUnitsByPatterns is not documented!-->
@ -673,8 +671,6 @@ node /org/freedesktop/systemd1 {
<!--property ConfirmSpawn is not documented!--> <!--property ConfirmSpawn is not documented!-->
<!--property ShowStatus is not documented!-->
<!--property DefaultStandardOutput is not documented!--> <!--property DefaultStandardOutput is not documented!-->
<!--property DefaultStandardError is not documented!--> <!--property DefaultStandardError is not documented!-->
@ -1362,6 +1358,24 @@ node /org/freedesktop/systemd1 {
<para><function>ResetFailedUnit()</function> resets the "failed" state of a specific unit.</para> <para><function>ResetFailedUnit()</function> resets the "failed" state of a specific unit.</para>
<para><function>SetShowStatus()</function> configures the display of status messages during bootup and
shutdown. The <varname>mode</varname> parameter can be set to any value that's valid for the
<varname>systemd.show_status</varname> kernel parameter. For more information about
<varname>systemd.show_status</varname>, see
<citerefentry project="man-pages"><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
The <varname>mode</varname> parameter can also be set to an empty string. When <varname>mode</varname>
is set to an empty string, <function>SetShowStatus()</function> will reset
<varname>ShowStatus</varname> back to its original value. You can use
<function>SetShowStatus()</function> create a service that does something like this:
<orderedlist>
<listitem><para>Send a D-Bus message that will turn off status messages.</para></listitem>
<listitem><para>Block until a reply to that message is received.</para></listitem>
<listitem><para>Print multiples lines without being interrupted by status messages.</para></listitem>
<listitem><para>Send a D-Bus message that will reset <varname>ShowStatus</varname> back to its
original value.</para></listitem>
</orderedlist>
</para>
<para><function>ResetFailed()</function> resets the "failed" state of all units.</para> <para><function>ResetFailed()</function> resets the "failed" state of all units.</para>
<para><function>ListUnits()</function> returns an array of all currently loaded units. Note that <para><function>ListUnits()</function> returns an array of all currently loaded units. Note that
@ -1788,6 +1802,12 @@ node /org/freedesktop/systemd1 {
<para><varname>Environment</varname> encodes the environment block passed to all executed services. It <para><varname>Environment</varname> encodes the environment block passed to all executed services. It
may be altered with bus calls such as <function>SetEnvironment()</function> (see above).</para> may be altered with bus calls such as <function>SetEnvironment()</function> (see above).</para>
<para><varname>ShowStatus</varname> encodes systemd's current policy for displaying status messages
during bootup and shutdown. Its value can be any valid value for the
<varname>systemd.show_status</varname> kernel parameter (see
<citerefentry project="man-pages"><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
It may be altered using <function>SetShowStatus()</function> (see above).</para>
<para><varname>UnitPath</varname> encodes the currently active unit file search path. It is an array of <para><varname>UnitPath</varname> encodes the currently active unit file search path. It is an array of
file system paths encoded as strings.</para> file system paths encoded as strings.</para>

View File

@ -483,18 +483,18 @@
<term><varname>ExcludeFiles=</varname></term> <term><varname>ExcludeFiles=</varname></term>
<term><varname>ExcludeFilesTarget=</varname></term> <term><varname>ExcludeFilesTarget=</varname></term>
<listitem><para>Takes an absolute file system path referring to a source file or directory on the <listitem><para>Takes one or more absolute paths, separated by whitespace, each referring to a
host. This setting may be used to exclude files or directories from the host from being copied into source file or directory on the host. This setting may be used to exclude files or directories from
the file system when <varname>CopyFiles=</varname> is used. This option may be used multiple times to the host from being copied into the file system when <varname>CopyFiles=</varname> is used. This
exclude multiple files or directories from host from being copied into the newly formatted file option may be used multiple times to exclude multiple files or directories from host from being
system.</para> copied into the newly formatted file system.</para>
<para>If the path is a directory and ends with <literal>/</literal>, only the directory's <para>If the path is a directory and ends with <literal>/</literal>, only the directory's
contents are excluded but not the directory itself. If the path is a directory and does not end with contents are excluded but not the directory itself. If the path is a directory and does not end with
<literal>/</literal>, both the directory and its contents are excluded.</para> <literal>/</literal>, both the directory and its contents are excluded.</para>
<para><varname>ExcludeFilesTarget=</varname> is like <varname>ExcludeFiles=</varname> except that <para><varname>ExcludeFilesTarget=</varname> is like <varname>ExcludeFiles=</varname> except that
instead of excluding the path on the host from being copied into the partition, we exclude any files instead of excluding the path on the host from being copied into the partition, it exclude any files
and directories from being copied into the given path in the partition.</para> and directories from being copied into the given path in the partition.</para>
<para>When <para>When

View File

@ -3001,7 +3001,12 @@ SystemCallErrorNumber=EPERM</programlisting>
<para><option>tty</option> connects standard output to a tty (as configured via <varname>TTYPath=</varname>, <para><option>tty</option> connects standard output to a tty (as configured via <varname>TTYPath=</varname>,
see below). If the TTY is used for output only, the executed process will not become the controlling process of see below). If the TTY is used for output only, the executed process will not become the controlling process of
the terminal, and will not fail or wait for other processes to release the terminal.</para> the terminal, and will not fail or wait for other processes to release the terminal. Note: if a unit
tries to print multiple lines to a TTY during bootup or shutdown, then there's a chance that those
lines will be broken up by status messages. <function>SetShowStatus()</function> can be used to
prevent this problem. See
<citerefentry project="man-pages"><refentrytitle>org.freedesktop.systemd1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
<para><option>journal</option> connects standard output with the journal, which is accessible via <para><option>journal</option> connects standard output with the journal, which is accessible via
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Note <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Note

View File

@ -568,7 +568,11 @@
<listitem><para>Enables display of status messages on the <listitem><para>Enables display of status messages on the
console, as controlled via console, as controlled via
<varname>systemd.show_status=1</varname> on the kernel command <varname>systemd.show_status=1</varname> on the kernel command
line.</para></listitem> line.</para>
<para>You may want to use <function>SetShowStatus()</function> instead of
<constant>SIGRTMIN+20</constant> in order to prevent race conditions. See
<citerefentry project="man-pages"><refentrytitle>org.freedesktop.systemd1</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -579,7 +583,11 @@
controlled via controlled via
<varname>systemd.show_status=0</varname> <varname>systemd.show_status=0</varname>
on the kernel command on the kernel command
line.</para></listitem> line.</para>
<para>You may want to use <function>SetShowStatus()</function> instead of
<constant>SIGRTMIN+21</constant> in order to prevent race conditions. See
<citerefentry project="man-pages"><refentrytitle>org.freedesktop.systemd1</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

@ -4169,7 +4169,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
* detect when the cgroup becomes empty. Note that the control process is always * detect when the cgroup becomes empty. Note that the control process is always
* our child so it's pointless to watch all other processes. */ * our child so it's pointless to watch all other processes. */
if (!control_pid_good(s)) if (!control_pid_good(s))
if (!s->main_pid_known || s->main_pid_alien) if (!s->main_pid_known || s->main_pid_alien || unit_cgroup_delegate(u))
(void) unit_enqueue_rewatch_pids(u); (void) unit_enqueue_rewatch_pids(u);
} }

View File

@ -404,15 +404,16 @@ static int context_set_path_strv(Context *c, char* const* strv, const char *sour
static int context_set_plugins(Context *c, const char *s, const char *source) { static int context_set_plugins(Context *c, const char *s, const char *source) {
_cleanup_strv_free_ char **v = NULL; _cleanup_strv_free_ char **v = NULL;
int r;
assert(c); assert(c);
if (c->plugins || !s) if (c->plugins || !s)
return 0; return 0;
v = strv_split(s, NULL); r = strv_split_full(&v, s, NULL, EXTRACT_UNQUOTE);
if (!v) if (r < 0)
return log_oom(); return log_error_errno(r, "Failed to parse plugin paths from %s: %m", source);
return context_set_path_strv(c, v, source, "plugins", &c->plugins); return context_set_path_strv(c, v, source, "plugins", &c->plugins);
} }

View File

@ -46,7 +46,13 @@ echo 'DTBDTBDTBDTB' >"$D/sources/subdir/whatever.dtb"
export KERNEL_INSTALL_CONF_ROOT="$D/sources" export KERNEL_INSTALL_CONF_ROOT="$D/sources"
# We "install" multiple plugins, but control which ones will be active via install.conf. # We "install" multiple plugins, but control which ones will be active via install.conf.
export KERNEL_INSTALL_PLUGINS="${ukify_install} ${loaderentry_install} ${uki_copy_install}" KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'"
if [[ -n "$ukify_install" ]]; then
# shellcheck disable=SC2089
KERNEL_INSTALL_PLUGINS="'${ukify_install}' $KERNEL_INSTALL_PLUGINS"
fi
# shellcheck disable=SC2090
export KERNEL_INSTALL_PLUGINS
export BOOT_ROOT="$D/boot" export BOOT_ROOT="$D/boot"
export BOOT_MNT="$D/boot" export BOOT_MNT="$D/boot"
export MACHINE_ID='3e0484f3634a418b8e6a39e8828b03e3' export MACHINE_ID='3e0484f3634a418b8e6a39e8828b03e3'

View File

@ -1742,8 +1742,9 @@ static int config_parse_exclude_files(
const char *rvalue, const char *rvalue,
void *data, void *data,
void *userdata) { void *userdata) {
_cleanup_free_ char *resolved = NULL;
char ***exclude_files = ASSERT_PTR(data); char ***exclude_files = ASSERT_PTR(data);
const char *p = ASSERT_PTR(rvalue);
int r; int r;
if (isempty(rvalue)) { if (isempty(rvalue)) {
@ -1751,10 +1752,23 @@ static int config_parse_exclude_files(
return 0; return 0;
} }
r = specifier_printf(rvalue, PATH_MAX-1, system_and_tmp_specifier_table, arg_root, NULL, &resolved); for (;;) {
_cleanup_free_ char *word = NULL, *resolved = NULL;
r = extract_first_word(&p, &word, NULL, EXTRACT_UNQUOTE);
if (r == -ENOMEM)
return log_oom();
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Invalid syntax, ignoring: %s", p);
return 0;
}
if (r == 0)
return 0;
r = specifier_printf(word, PATH_MAX-1, system_and_tmp_specifier_table, arg_root, NULL, &resolved);
if (r < 0) { if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to expand specifiers in ExcludeFiles= path, ignoring: %s", rvalue); "Failed to expand specifiers in %s path, ignoring: %s", lvalue, word);
return 0; return 0;
} }
@ -1764,6 +1778,7 @@ static int config_parse_exclude_files(
if (strv_consume(exclude_files, TAKE_PTR(resolved)) < 0) if (strv_consume(exclude_files, TAKE_PTR(resolved)) < 0)
return log_oom(); return log_oom();
}
return 0; return 0;
} }

View File

@ -197,7 +197,7 @@ _unused_ static void test_compress_stream(const char *compression,
ASSERT_OK(compress(src, dst, -1, &uncompressed_size)); ASSERT_OK(compress(src, dst, -1, &uncompressed_size));
if (cat) { if (cat) {
assert_se(asprintf(&cmd, "%s %s | diff %s -", cat, pattern, srcfile) > 0); assert_se(asprintf(&cmd, "%s %s | diff '%s' -", cat, pattern, srcfile) > 0);
assert_se(system(cmd) == 0); assert_se(system(cmd) == 0);
} }
@ -212,7 +212,7 @@ _unused_ static void test_compress_stream(const char *compression,
r = decompress(dst, dst2, st.st_size); r = decompress(dst, dst2, st.st_size);
assert_se(r == 0); assert_se(r == 0);
assert_se(asprintf(&cmd2, "diff %s %s", srcfile, pattern2) > 0); assert_se(asprintf(&cmd2, "diff '%s' %s", srcfile, pattern2) > 0);
assert_se(system(cmd2) == 0); assert_se(system(cmd2) == 0);
log_debug("/* test faulty decompression */"); log_debug("/* test faulty decompression */");

View File

@ -52,7 +52,8 @@ static void test_event_spawn_self(const char *self, const char *arg, bool with_p
log_debug("/* %s(%s, %s) */", __func__, arg, yes_no(with_pidfd)); log_debug("/* %s(%s, %s) */", __func__, arg, yes_no(with_pidfd));
assert_se(cmd = strjoin(self, " ", arg)); /* 'self' may contain spaces, hence needs to be quoted. */
assert_se(cmd = strjoin("'", self, "' ", arg));
test_event_spawn_core(with_pidfd, cmd, result_buf, BUF_SIZE); test_event_spawn_core(with_pidfd, cmd, result_buf, BUF_SIZE);

View File

@ -1,10 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
TEST_DESCRIPTION="Test Multi-Profile UKI Boots"
# shellcheck source=test/test-functions
. "${TEST_BASE_DIR:?}/test-functions"
do_test "$@"

View File

@ -4,32 +4,32 @@ set -e
ANALYZE="${1:-systemd-analyze}" ANALYZE="${1:-systemd-analyze}"
$ANALYZE compare-versions 1 lt 2 "$ANALYZE" compare-versions 1 lt 2
$ANALYZE compare-versions 1 '<' 2 "$ANALYZE" compare-versions 1 '<' 2
$ANALYZE compare-versions 1 le 2 "$ANALYZE" compare-versions 1 le 2
$ANALYZE compare-versions 1 '<=' 2 "$ANALYZE" compare-versions 1 '<=' 2
$ANALYZE compare-versions 1 ne 2 "$ANALYZE" compare-versions 1 ne 2
$ANALYZE compare-versions 1 '!=' 2 "$ANALYZE" compare-versions 1 '!=' 2
( ! $ANALYZE compare-versions 1 ge 2 ) ( ! "$ANALYZE" compare-versions 1 ge 2 )
( ! $ANALYZE compare-versions 1 '>=' 2 ) ( ! "$ANALYZE" compare-versions 1 '>=' 2 )
( ! $ANALYZE compare-versions 1 eq 2 ) ( ! "$ANALYZE" compare-versions 1 eq 2 )
( ! $ANALYZE compare-versions 1 '==' 2 ) ( ! "$ANALYZE" compare-versions 1 '==' 2 )
( ! $ANALYZE compare-versions 1 gt 2 ) ( ! "$ANALYZE" compare-versions 1 gt 2 )
( ! $ANALYZE compare-versions 1 '>' 2 ) ( ! "$ANALYZE" compare-versions 1 '>' 2 )
test "$($ANALYZE compare-versions 1 2)" = '1 < 2' test "$("$ANALYZE" compare-versions 1 2)" = '1 < 2'
test "$($ANALYZE compare-versions 2 2)" = '2 == 2' test "$("$ANALYZE" compare-versions 2 2)" = '2 == 2'
test "$($ANALYZE compare-versions 2 1)" = '2 > 1' test "$("$ANALYZE" compare-versions 2 1)" = '2 > 1'
test "$($ANALYZE compare-versions '' '')" = "'' == ''" test "$("$ANALYZE" compare-versions '' '')" = "'' == ''"
set +e set +e
$ANALYZE compare-versions 1 2; ret1=$? "$ANALYZE" compare-versions 1 2; ret1=$?
$ANALYZE compare-versions 2 2; ret2=$? "$ANALYZE" compare-versions 2 2; ret2=$?
$ANALYZE compare-versions 2 1; ret3=$? "$ANALYZE" compare-versions 2 1; ret3=$?
set -e set -e
test $ret1 == 12 test "$ret1" == 12
test $ret2 == 0 test "$ret2" == 0
test $ret3 == 11 test "$ret3" == 11

View File

@ -44,9 +44,9 @@ test_one() (
fi fi
if [[ "${input##*/}" =~ \.fstab\.input ]]; then if [[ "${input##*/}" =~ \.fstab\.input ]]; then
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=yes root=fstab" SYSTEMD_FSTAB="$input" SYSTEMD_SYSROOT_FSTAB="/dev/null" $generator "$out" "$out" "$out" SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=yes root=fstab" SYSTEMD_FSTAB="$input" SYSTEMD_SYSROOT_FSTAB="/dev/null" "$generator" "$out" "$out" "$out"
else else
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$input")" $generator "$out" "$out" "$out" SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$input")" "$generator" "$out" "$out" "$out"
fi fi
# The option x-systemd.growfs creates symlink to system's systemd-growfs@.service in .mount.wants directory. # The option x-systemd.growfs creates symlink to system's systemd-growfs@.service in .mount.wants directory.

View File

@ -53,7 +53,7 @@ for f in $(find "$SOURCE"/test-*.input | sort -V); do
echo "*** Running $f" echo "*** Running $f"
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf" cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf"
$SYSUSERS --root="$TESTDIR" "$SYSUSERS" --root="$TESTDIR"
compare "${f%.*}" "" compare "${f%.*}" ""
done done
@ -62,7 +62,7 @@ for f in $(find "$SOURCE"/test-*.input | sort -V); do
echo "*** Running $f on stdin" echo "*** Running $f on stdin"
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
touch "$TESTDIR/etc/sysusers.d/test.conf" touch "$TESTDIR/etc/sysusers.d/test.conf"
$SYSUSERS --root="$TESTDIR" - <"$f" "$SYSUSERS" --root="$TESTDIR" - <"$f"
compare "${f%.*}" "on stdin" compare "${f%.*}" "on stdin"
done done
@ -72,9 +72,9 @@ for f in $(find "$SOURCE"/test-*.input | sort -V); do
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
touch "$TESTDIR/etc/sysusers.d/test.conf" touch "$TESTDIR/etc/sysusers.d/test.conf"
# this overrides test.conf which is masked on disk # this overrides test.conf which is masked on disk
$SYSUSERS --root="$TESTDIR" --replace=/etc/sysusers.d/test.conf - <"$f" "$SYSUSERS" --root="$TESTDIR" --replace=/etc/sysusers.d/test.conf - <"$f"
# this should be ignored # this should be ignored
$SYSUSERS --root="$TESTDIR" --replace=/usr/lib/sysusers.d/test.conf - <"$SOURCE/test-1.input" "$SYSUSERS" --root="$TESTDIR" --replace=/usr/lib/sysusers.d/test.conf - <"$SOURCE/test-1.input"
compare "${f%.*}" "on stdin with --replace" compare "${f%.*}" "on stdin with --replace"
done done
@ -84,7 +84,7 @@ echo "*** Testing --inline"
prepare_testdir "$SOURCE/inline" prepare_testdir "$SOURCE/inline"
# copy a random file to make sure it is ignored # copy a random file to make sure it is ignored
cp "$f" "$TESTDIR/etc/sysusers.d/confuse.conf" cp "$f" "$TESTDIR/etc/sysusers.d/confuse.conf"
$SYSUSERS --root="$TESTDIR" --inline \ "$SYSUSERS" --root="$TESTDIR" --inline \
"u u1 222 - - /bin/zsh" \ "u u1 222 - - /bin/zsh" \
"g g1 111" "g g1 111"
@ -95,7 +95,7 @@ echo "*** Testing --inline with --replace"
prepare_testdir "$SOURCE/inline" prepare_testdir "$SOURCE/inline"
# copy a random file to make sure it is ignored # copy a random file to make sure it is ignored
cp "$f" "$TESTDIR/etc/sysusers.d/confuse.conf" cp "$f" "$TESTDIR/etc/sysusers.d/confuse.conf"
$SYSUSERS --root="$TESTDIR" \ "$SYSUSERS" --root="$TESTDIR" \
--inline \ --inline \
--replace=/etc/sysusers.d/confuse.conf \ --replace=/etc/sysusers.d/confuse.conf \
"u u1 222 - - /bin/zsh" \ "u u1 222 - - /bin/zsh" \
@ -105,7 +105,7 @@ compare "$SOURCE/inline" "(--inline --replace=…)"
echo "*** Testing --inline with no /etc" echo "*** Testing --inline with no /etc"
rm -rf "${TESTDIR:?}/etc" rm -rf "${TESTDIR:?}/etc"
$SYSUSERS --root="$TESTDIR" --inline \ "$SYSUSERS" --root="$TESTDIR" --inline \
"u u1 222 - - /bin/zsh" \ "u u1 222 - - /bin/zsh" \
"g g1 111" "g g1 111"
@ -136,7 +136,7 @@ for f in $(find "$SOURCE"/test-*.input | sort -V); do
echo "*** Running $f (with login.defs)" echo "*** Running $f (with login.defs)"
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf" cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf"
$SYSUSERS --root="$TESTDIR" "$SYSUSERS" --root="$TESTDIR"
# shellcheck disable=SC2050 # shellcheck disable=SC2050
[ @ENABLE_COMPAT_MUTABLE_UID_BOUNDARIES@ = 1 ] && bound=555 || bound=$system_guid_max [ @ENABLE_COMPAT_MUTABLE_UID_BOUNDARIES@ = 1 ] && bound=555 || bound=$system_guid_max
@ -152,7 +152,7 @@ for f in $(find "$SOURCE"/test-*.input | sort -V); do
echo "*** Running $f (with login.defs symlinked)" echo "*** Running $f (with login.defs symlinked)"
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf" cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf"
$SYSUSERS --root="$TESTDIR" "$SYSUSERS" --root="$TESTDIR"
# shellcheck disable=SC2050 # shellcheck disable=SC2050
[ @ENABLE_COMPAT_MUTABLE_UID_BOUNDARIES@ = 1 ] && bound=555 || bound=$system_guid_max [ @ENABLE_COMPAT_MUTABLE_UID_BOUNDARIES@ = 1 ] && bound=555 || bound=$system_guid_max
@ -166,7 +166,7 @@ for f in $(find "$SOURCE"/unhappy-*.input | sort -V); do
echo "*** Running test $f" echo "*** Running test $f"
prepare_testdir "${f%.input}" prepare_testdir "${f%.input}"
cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf" cp "$f" "$TESTDIR/usr/lib/sysusers.d/test.conf"
SYSTEMD_LOG_LEVEL=info $SYSUSERS --root="$TESTDIR" 2>&1 | tail -n1 | sed -r 's/^[^:]+:[^:]+://' >"$TESTDIR/err" SYSTEMD_LOG_LEVEL=info "$SYSUSERS" --root="$TESTDIR" 2>&1 | tail -n1 | sed -r 's/^[^:]+:[^:]+://' >"$TESTDIR/err"
if ! diff -u "$TESTDIR/err" "${f%.*}.expected-err"; then if ! diff -u "$TESTDIR/err" "${f%.*}.expected-err"; then
echo >&2 "**** Unexpected error output for $f" echo >&2 "**** Unexpected error output for $f"
cat >&2 "$TESTDIR/err" cat >&2 "$TESTDIR/err"