Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

disable-powerbutton-daemon (Source)

#!/bin/sh
# File: /usr/bin/disable-powerbutton-daemon
# Location: stackrpms-acer-chromebook package
# Author: bgstack15
# SPDX-License-Identifier: GPL-3.0
# Startdate: 2024-04-29-2 20:22
# Title: Power Button Suppressor Daemon
# Project: disable-powerbutton
# Purpose: Runs elogind-inhibit so we can use the power button to run logout-manager
# History:
# Usage:
#   In ~/.fluxbox/startup:   disable-powerbutton-daemon &
#   Which enables this behavior to work:
#      In ~/.fluxbox/keys:   124 :Exec logout-manager-gtk
# Reference:
#    Enlightenment desktop, man elogind-inhibit
# Related:
#    /usr/libexec/stackrpms-acer-chromebook/disable-powerbutton-loop
#    /etc/stackrpms-acer-chromebook/fluxbox.keys
#    /etc/stackrpms-acer-chromebook/fluxbox.startup
#    /etc/default/disable-powerbutton
# Improve:
# Dependencies:
#    dep-devuan: logout-manager, elogind
# Documentation:
#    To run this manually:
#    elogind-inhibit --what shutdown:handle-suspend-key:handle-hibernate-key:handle-lid-switch:idle:sleep --who "stackrpms5" --why "i hate the power button" --mode=block '/bin/forever.sh'
DAEMON_NAME="disable-powerbutton"
test -f "/etc/default/${DAEMON_NAME}" && . "/etc/default/${DAEMON_NAME}"
test -f "/etc/sysconfig/${DAEMON_NAME}" && . "/etc/sysconfig/${DAEMON_NAME}"
test -z "${DP_WHAT}" && DP_WHAT="shutdown:sleep:idle:handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"
test -z "${DP_COMMAND}" && DP_COMMAND="/usr/libexec/stackrpms-acer-chromebook/disable-powerbutton-loop"
export DP_SAFETY_FILE
elogind-inhibit --what "${DP_WHAT}"--who "disable-powerbutton-daemon" --why "Let power button call logout-manager" --mode=block "${DP_COMMAND}"