07-10-2022, 02:42 PM
(This post was last modified: 07-18-2022, 11:27 AM by pifou.
Edit Reason: correction
)
@Peter
Below is what I did when after the latest updates and OS upgrades I lost (completely in Mobian and partially in PostmarketOS) the PPKC functionality. The kb151 kernel module is not present anymore in either OS after all the above. It will get some top row functionality back.
These are the fixes for PostmarketOS. I used this wiki page for inspiration: https://wiki.mobian-project.org/doku.php...ccessories
Step 1
======
I changed the "kb151" to in "/sys/bus/i2c/drivers/kb151/2-0015" to "pinephone-keyboard" as below
/sys/bus/i2c/drivers/pinephone-keyboard/2-0015
In my home dir I created the "bin" subdir and in it I put the "kbd-external.sh" script. Make sure it's executable.
kbd-external.sh
Step 2
======
Then, add this to “~/.config/autostart/kbd-external.desktop”
kbd-external.desktop
Step 3
======
In my case this was already the case but if it isn't, make sure that XKB_DEFAULT_MODEL env variable is ppkb
echo $XKB_DEFAULT_MODEL
should return
ppkb
If NOT, add the following to /etc/systemd/system/phosh.service.d/override.conf:
override.conf
Step 4
======
In the Settings app in "Phosh -> Settings -> Keyboard -> Alternate Characters Key" select "Left Super"
to have the pinecone key act as Fn used to for the TOP ROW ONLY: Pinecone-[0-9]
The Fn key still worked/works for the arrow, Home, End keys.
Try setting some other special keys if you prefer something else as modifier.
Below is what I did when after the latest updates and OS upgrades I lost (completely in Mobian and partially in PostmarketOS) the PPKC functionality. The kb151 kernel module is not present anymore in either OS after all the above. It will get some top row functionality back.
These are the fixes for PostmarketOS. I used this wiki page for inspiration: https://wiki.mobian-project.org/doku.php...ccessories
Step 1
======
I changed the "kb151" to in "/sys/bus/i2c/drivers/kb151/2-0015" to "pinephone-keyboard" as below
/sys/bus/i2c/drivers/pinephone-keyboard/2-0015
In my home dir I created the "bin" subdir and in it I put the "kbd-external.sh" script. Make sure it's executable.
Code:
mkdir bin
<vim, nano, your_editor> bin/kbd-external.sh
chmod +x bin/kbd-external.sh
kbd-external.sh
Code:
#!/usr/bin/env bash
# a11y is "a one one y" aka a-eleven-y aka accessibility
# Turns off onscreen keyboard when PPKC is present
# Disable vibration
if [ -L "/sys/bus/i2c/drivers/pinephone-keyboard/2-0015" ]; then
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false
else
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
fi
# return status
echo "org.gnome.desktop.a11y.applications screen-keyboard-enabled is:"
gsettings get org.gnome.desktop.a11y.applications screen-keyboard-enabled
# disable vibration on mouse and key presses
gsettings set org.sigxcpu.feedback profile silent
echo "org.sigxcpu.feedback profile is:"
gsettings get org.sigxcpu.feedback profile
Step 2
======
Then, add this to “~/.config/autostart/kbd-external.desktop”
kbd-external.desktop
Code:
[Desktop Entry]
Name=Keyboard
Type=Application
Icon=object-rotate-left-symbolic
Exec=/home/user/bin/kbd-external.sh
Categories=Utility;
NoDisplay=true
Step 3
======
In my case this was already the case but if it isn't, make sure that XKB_DEFAULT_MODEL env variable is ppkb
echo $XKB_DEFAULT_MODEL
should return
ppkb
If NOT, add the following to /etc/systemd/system/phosh.service.d/override.conf:
override.conf
Code:
[Service]
Environment=XKB_DEFAULT_MODEL=ppkb
Step 4
======
In the Settings app in "Phosh -> Settings -> Keyboard -> Alternate Characters Key" select "Left Super"
to have the pinecone key act as Fn used to for the TOP ROW ONLY: Pinecone-[0-9]
The Fn key still worked/works for the arrow, Home, End keys.
Try setting some other special keys if you prefer something else as modifier.