How to set the Power Off key binding in i3wm for the Pinebook - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: Pinebook (https://forum.pine64.org/forumdisplay.php?fid=76) +--- Forum: Linux on Pinebook (https://forum.pine64.org/forumdisplay.php?fid=79) +--- Thread: How to set the Power Off key binding in i3wm for the Pinebook (/showthread.php?tid=5142) |
How to set the Power Off key binding in i3wm for the Pinebook - MarkHaysHarris777 - 09-16-2017 Greetings, The purpose of this blog post is to detail the steps necessary to set the Power Off key-binding for the Pinebook in i3 window manager. We don't want the Pinebook to come crashing down if we accidentally touch the poweroff button -- so we'll set a key-binding that makes sense requiring at least two other keys , for instance the $mod key and the Shift key. The following key-binding should bring the system down cleanly ( and power off properly ) without prompting for a password: $mod+Shift+XF86_PowerOff The key-binding will be placed in the i3 config; but I'm getting ahead of myself. The first step is to build the poweroff script in /usr/local/sbin/ Pb_poweroff.sh Code: #!/bin/sh The simple script above should be placed in /usr/local/sbin/ and should be made active with the following commands: sudo chown root:root Pb_poweroff.sh sudo chmod 0754 Pb_poweroff.sh The next step is to place a rule file in /etc/sudoers.d/ so that the command trigger will not prompt for the sudo password when the key-binding is pressed. Creat the following rule file in /etc/sudoers.d/ : Pb_power_rule Code: # Pb power rule Place the above rule file in the /etc/sudoers.d/ directory and activate with the following commands : sudo chown root:root Pb_power_rule sudo chmod 0440 Pb_power_rule The last step is to place the following bindsym entry in the i3 configuration ~/.config/i3/config , in your home directory: bindsym $mod+Shift+XF86_PowerOff exec sudo /usr/local/sbin/Pb_poweroff.sh Place the above bindsym entry somewhere near the end of your i3 config after the "resize" and before the "bar". The configuration file is ~/.config/i3/config Activate the key-binding by either pressing $mod+Shift+c to re-read the config, or $mod+Shift+r to restart i3wm. Theory Pressing the Pinebook power button returns scancode 124; key-sym XF86_PowerOff. This by default does nothing in i3wm; unlike other OS window manager | desktops , which typically pulls up the shutdown dialogue. With our keybinding in effect the Pb_poweroff.sh script will be called with sudo, and because the Pb_power_rule file exists in /etc/sudoers.d/ the command trigger will not prompt for the password, but the poweroff command will simply take effect: while holding down the mod key, and the Shift key together, press the power button and the i3 window manager will exit and the system will cleanly shutdown and power off. RE: How to set the Power Off key binding in i3wm for the Pinebook - MarkHaysHarris777 - 09-17-2017 Greetings, I'm going to expand a bit on the previous post by allowing for a parameter to be passed to the Pb_poweroff.sh script so that more than one key-binding may trigger the script for a different desired affect -- reboot for instance. So let's first make some minor changes to the script in /usr/local/sbin/ Pb_poweroff.sh Code: #!/bin/sh The default of the above script is to reboot the Pinebook, regardless of parameter. On the other hand, if the parameter passed is "OFF" then the command script will shutdown and power off the Pinebook as expected. To make the changes effective lets change our power off bindsym in ~/.config/i3/config to the following: bindsym $mod+Shift+XF86_PowerOff exec sudo /usr/local/sbin/Pb_poweroff.sh OFF To make the reboot change effective add the following bindsym to ~/.config/i3/config : bindsym $mod+Control+XF86_PowerOff exec sudo /usr/local/sbin/Pb_poweroff.sh REBOOT Notice I've changed the modifier key from Shift to Control, and I've changed the parameter to REBOOT. The effect is that the power button used with $mod+Shift will power off, while the power button used with $mod+Control will in fact reboot the system. Note: to make the changes active press $mod+Shift+c to re-read the config file, or press $mod+Shift+r to restart the i3 window manager. RE: How to set the Power Off key binding in i3wm for the Pinebook - MarkHaysHarris777 - 09-18-2017 Greetings, In this segment I'm pointing out that the sudo poweroff and sudo reboot commands are legacy commands ( see the man pages ). Since systemd the systemctl command should be used with either the poweroff or reboot parms. I have changed the Pb_poweroff.sh script to accommodate this change: Pb_poweroff.sh Code: #!/bin/sh RE: How to set the Power Off key binding in i3wm for the Pinebook - shirman - 09-20-2017 Thank you Now I'll try to find solution for lid-hibernating, only one thing why I still can't use i3 properly RE: How to set the Power Off key binding in i3wm for the Pinebook - binholz - 12-25-2018 Thanks Mark, I got this configured yesterday. Have you figured out how to hibernate the system in i3? I tried systemctl hibernate and it throws an error: Sleep verb not supported. hybrid-sleep gave me the same error via logind. With Trinity I just need to push the power button to hibernate. I'm using q4os with i3 right now. Any help and advice on hibernation with i3 on the pinebook would greatly be appreciated |