mirror of
https://github.com/endeavouros-team/welcome.git
synced 2026-07-29 12:05:24 +00:00
136 lines
4.6 KiB
Bash
Executable File
136 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Enable or disable the REISUB feature on an EndeavourOS system.
|
|
|
|
Fail() {
|
|
local arg="$1"
|
|
notify-send --icon="dialog-error" --urgency=normal --expire-time=$REISUB_TIMEOUT_ERROR \
|
|
--app-name="$progname" \
|
|
"REISUB" \
|
|
"$progname: $arg: $(ltr updt_failure)"
|
|
exit 1
|
|
}
|
|
|
|
Main() {
|
|
local progname="${0##*/}"
|
|
local translations_dir=/usr/share/endeavouros/scripts # variable required!
|
|
local -r reisub_file=/etc/sysctl.d/99-reisub.conf
|
|
local -r lib_dir=/usr/share/endeavouros/scripts
|
|
local -r lib_file="$lib_dir/eos-script-lib-yad"
|
|
local REISUB_TIMEOUT_NOTIFY=5000
|
|
local REISUB_TIMEOUT_ERROR=10000
|
|
local configfile=/etc/$progname.conf
|
|
local body
|
|
|
|
# shellcheck disable=1090
|
|
[ -e "$configfile" ] && source "$configfile"
|
|
|
|
source "$translations_dir/translations.bash" || Fail "$translations_dir/translations.bash"
|
|
_init_translations ""
|
|
# shellcheck disable=1090
|
|
source "$lib_file" || Fail "$lib_file"
|
|
AssignIconVariables_in_eos_bash_shared
|
|
case "$1" in
|
|
-e | --enable) [ -e $reisub_file ] || echo 'kernel.sysrq=1' | pkexec tee $reisub_file > /dev/null ;;
|
|
-d | --disable) [ -e $reisub_file ] && pkexec rm -f $reisub_file ;;
|
|
--status | "") ;;
|
|
--edit-config) EditConfig ;;
|
|
-h | --help) Help 0 ;;
|
|
*) Fail "\$1 = '$1'" ;;
|
|
esac
|
|
if [ -e "$reisub_file" ] ; then
|
|
body="REISUB $(ltr _commonphrase_enabled)"
|
|
else
|
|
body="REISUB $(ltr _commonphrase_disabled)"
|
|
fi
|
|
notify-send -i "$ICO_INFO" -u normal -t "$REISUB_TIMEOUT_NOTIFY" -a "eos-reisub" "REISUB" "$body"
|
|
}
|
|
|
|
Help() {
|
|
cat <<EOF
|
|
Usage: $progname [options]
|
|
Options:
|
|
-e, --enable Enable REISUB support.
|
|
-d, --disable Disable REISUB support.
|
|
--edit-config Edit the configuration file.
|
|
--status Show the state of REISUB setting.
|
|
This is the default.
|
|
-h, --help This help.
|
|
EOF
|
|
[ "$1" ] && exit "$1"
|
|
}
|
|
|
|
EditConfig() {
|
|
local conf="/etc/$progname.conf"
|
|
[ -e "$conf" ] || sudo touch "$conf"
|
|
sudo xdg-open "$conf"
|
|
exit 0
|
|
}
|
|
|
|
Main "$@"
|
|
|
|
|
|
|
|
|
|
# echo2() {
|
|
# local reset=no
|
|
# while true ; do
|
|
# case "$1" in
|
|
# -red | -blue | -cyan | -magenta | -yellow | -green) eos-color "${1:1}" 2 ;;
|
|
# -error | -warning | -fail | -info | -tip | -ok) eos-color "${1:1}" 2 ;;
|
|
# -reset) eos-color "${1:1}" 2; reset=yes ;;
|
|
# *) break ;;
|
|
# esac
|
|
# shift
|
|
# done
|
|
# echo -e "$@" >&2
|
|
# [ "$reset" = no ] || eos-color reset 2
|
|
# }
|
|
|
|
# NotifySendHelp() { echo2 "${FUNCNAME[0]}: see the man page of notify-send"; [ "$1" ] && exit "$1"; }
|
|
# PrintId() { echo2 "${FUNCNAME[0]}}: TODO!"; }
|
|
# Wait() { echo2 "${FUNCNAME[0]}}: TODO!"; }
|
|
# Transient() { echo2 "${FUNCNAME[0]}}: TODO!"; }
|
|
|
|
# NotifySendOptions() {
|
|
# local opts
|
|
# local lopts="help,app-name:,action:,selected-action-fd:,activation-token-fd:,urgency:,expire-time:"
|
|
# lopts+=",icon:,app-icon:,category:,hint:,print-id,id-fd:,replace-id:,wait,transient"
|
|
# local sopts="?a:A:u:t:i:n:c:h:pr:we"
|
|
# opts=$(getopt -o="$sopts" --longoptions "$lopts" --name "$progname" -- "$@") || exit 1
|
|
# eval set -- "$opts"
|
|
|
|
# while true ; do
|
|
# case "$1" in
|
|
# -"?" | --help) NotifySendHelp 0 ;;
|
|
# -a | --app-name) appname="$2"; shift ;;
|
|
# -A | --action) action="$2"; shift ;;
|
|
# -u | --urgency) urgency="$2"; shift ;;
|
|
# -t | --expire-time) expiretime="$2"; shift ;;
|
|
# -i | --icon) icon="$2"; shift ;;
|
|
# -n | --app-icon) appicon="$2"; shift ;;
|
|
# -c | --category) category="$2"; shift ;;
|
|
# -h | --hint) hint="$2"; shift ;;
|
|
# -r | --replace-id) replace_id="$2"; shift ;;
|
|
|
|
# -p | --print-id) PrintId ;;
|
|
# -w | --wait) Wait ;;
|
|
# -e | --transient) Transient ;;
|
|
|
|
# --selected-action-fd) sel_action_fd="$2"; shift ;;
|
|
# --activation-token-fd) act_token_fd="$2"; shift ;;
|
|
# --id-fd) id_fd="$2"; shift ;;
|
|
|
|
# --) shift; break ;;
|
|
# esac
|
|
# shift
|
|
# done
|
|
# others=("$@")
|
|
# }
|
|
|
|
# NotifySend() {
|
|
# local sel_action_fd act_token_fd id_fd replace_id hint category appicon icon expiretime urgency action appname
|
|
# local others=()
|
|
# NotifySendOptions "$@"
|
|
# }
|