From e3e5c2546ebf2aa42c809cf9305f90cf395236a6 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Tue, 30 Apr 2024 12:43:32 -0400 Subject: fork to acer-chromebook --- src/usr/bin/hwset-acer-chromebook | 380 ++++++++++++++++++++++++++++++++++++++ src/usr/bin/hwset-thinkpad-p50s | 379 ------------------------------------- src/usr/bin/netmounts-trayicon | 4 +- src/usr/bin/vpn-trayicon | 4 +- 4 files changed, 384 insertions(+), 383 deletions(-) create mode 100755 src/usr/bin/hwset-acer-chromebook delete mode 100755 src/usr/bin/hwset-thinkpad-p50s (limited to 'src/usr/bin') diff --git a/src/usr/bin/hwset-acer-chromebook b/src/usr/bin/hwset-acer-chromebook new file mode 100755 index 0000000..0547aa0 --- /dev/null +++ b/src/usr/bin/hwset-acer-chromebook @@ -0,0 +1,380 @@ +#!/bin/sh +# File: /usr/bin/hwset-thinkpad-p50s +# Location: stackrpms-thinkpad-p50s package +# Author: bgstack15 +# SPDX-License-Identifier: GPL-3.0 +# Startdate: 2017-11-10 19:41:58 +# Title: Script that Adjusts Hardware Settings +# Package: stackrpms-thinkpad-p50s +# Purpose: Provide programmatic ways to adjust screen brightness, volume, etc. +# History: +# 2018-12-10 change directory +# 2019-12-26 adapted for Thinkpad P50s and add bright_set max/min/safe +# 2022-11-03 adapted for package +# 2024-04-29 adapted for Acer Chromebook C720 +# Usage: +# configure your display manager to react to key combinations, like vol-up to execute: hwset vol up +# Reference: ftemplate.sh 2017-11-10a; framework.sh 2017-11-10a +# Improve: +# Provide better 'screen 0' detection. Right now it is hard-coded to use display LVDS. +# Dependencies: +# dep-devuan: bgscripts-core +fiversion="2017-11-10a" +hwsetversion="2024-04-29a" # for Acer Chromebook C720 + +usage() { + less -F >&2 </dev/null )" + local current_level="$( mixer vol | awk '{print $NF}' )" + + debuglev 3 && ferror "saved: ${saved_level}\tcurrent: ${current_level}" + + # logic: if current level is other than "0:0", save current level and set to 0 + # logic: if current level is "0:0", set to saved level. + if echo "${current_level}" | grep -qE "^0:0$"; + then + # the current level is zero + if test -z "${saved_level}" || echo "${saved_level}" | grep -qvE "[0-9]+:[0-9]+"; + then + # nothing to revert to, so set to a basic level + mixer vol 70 + else + mixer vol "${saved_level}" + fi + else + # current level is not zero + echo "VOL_REGULAR_LEVEL=${current_level}" > "${HWSET_SND_TEMP_FILE}" + mixer vol "0:0" + fi +} + +bright_get() { + #local this_screen="$( xrandr --listactivemonitors | tail -n +2 | grep LVDS | awk '{print $NF}' )" + #xrandr --verbose --screen 0 | grep Brightness | awk '{print $NF}' + cat /sys/class/backlight/intel_backlight/brightness +} + +bright_safe() { + # call: new_brightness="$( bright_safe "${new_brightness}" )" + # this function makes sure the new brightness is not lower than the min and not higher than the max + local requested_brightness="${1}" + local output="$( echo "${requested_brightness}" | grep -oE '^-?[0-9]+(\.[0-9]{0,3})?$' )" + if test -n "${output}"; + then + # so it is a proper decimal number for a brightness value + local lt_min="$( printf '%f<%f\n' "${requested_brightness}" "${HWSET_BRIGHTNESS_MIN}" | bc )" + local gt_max="$( printf '%f>%f\n' "${requested_brightness}" "${HWSET_BRIGHTNESS_MAX}" | bc )" + test "${gt_max}" = "1" && output="${HWSET_BRIGHTNESS_MAX}" + test "${lt_min}" = "1" && output="${HWSET_BRIGHTNESS_MIN}" + #echo "lt=${lt} gt=${gt}" + echo "${output%%.*}" + else + # invalid input, so provide a safe number + echo "${HWSET_BRIGHTNESS_MAX:850}" + fi +} + +bright_up() { + # call: bright_up "${HWSET_BRIGHTNESS_INCREASE_SIZE}" + local current_brightness="$( bright_get )" + local increment="${1}" + local new_brightness="$( printf '%0.2f' "$( printf 'scale=3;%0.2f+%0.2f\n' "${current_brightness}" "${increment}" | bc )" )" + new_brightness="$( bright_safe "${new_brightness}" )" + debuglev 1 && ferror "current brightness:\"${current_brightness}\" new:\"${new_brightness}\"" + printf "${new_brightness}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null + #xrandr --output LVDS1 --brightness "${new_brightness}" +} + +bright_down() { + # call: bright_down "${HWSET_BRIGHTNESS_INCREASE_SIZE}" + local current_brightness="$( bright_get )" + local increment="${1}" + local new_brightness="$( printf '%0.2f' "$( printf 'scale=3;%0.2f-%0.2f\n' "${current_brightness}" "${increment}" | bc )" )" + new_brightness="$( bright_safe "${new_brightness}" )" + debuglev 1 && ferror "current brightness:\"${current_brightness}\" new:\"${new_brightness}\"" + printf "${new_brightness}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null + #xrandr --output LVDS1 --brightness "${new_brightness}" +} + +bright_set() { + # call: bright_set "${value}" + local value="${1}" + #xrandr --output LVDS1 --brightness "${value}" + local value_evaluated="$( echo "${value}" | tr '[a-z]' '[A-Z]' )" + case "${value_evaluated}" in + MAX*) test -n "${HWSET_BRIGHTNESS_MAX}" && value="${HWSET_BRIGHTNESS_MAX}" ;; + MIN*) test -n "${HWSET_BRIGHTNESS_MIN}" && value="${HWSET_BRIGHTNESS_MIN}" ;; + SAFE) test -n "${HWSET_BRIGHTNESS_SAFE}" && value="${HWSET_BRIGHTNESS_SAFE}" ;; + esac + debuglev 2 && ferror "setting to ${value}" + printf "${value}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null +} + +# DEFINE TRAPS + +clean_hwset() { + # use at end of entire script if you need to clean up tmpfiles + #rm -f ${tmpfile} 1>/dev/null 2>&1 + : +} + +CTRLC() { + # use with: trap "CTRLC" 2 + # useful for controlling the ctrl+c keystroke + : +} + +CTRLZ() { + # use with: trap "CTRLZ" 18 + # useful for controlling the ctrl+z keystroke + : +} + +parseFlag() { + flag="$1" + hasval=0 + case ${flag} in + # INSERT FLAGS HERE + "d" | "debug" | "DEBUG" | "dd" ) setdebug; ferror "debug level ${debug}";; + "u" | "usage" | "help" | "h" ) usage; exit 1;; + "V" | "fcheck" | "version" ) ferror "${scriptfile} version ${hwsetversion}"; exit 1;; + #"i" | "infile" | "inputfile" ) getval; infile1=${tempval};; + "c" | "conf" | "conffile" | "config" ) getval; conffile="${tempval}";; + esac + + debuglev 10 && { test ${hasval} -eq 1 && ferror "flag: ${flag} = ${tempval}" || ferror "flag: ${flag}"; } +} + +# DETERMINE LOCATION OF FRAMEWORK +while read flocation; do if test -e ${flocation} && test "$( sh ${flocation} --fcheck 2>/dev/null )" -ge 20170608; then frameworkscript="${flocation}"; break; fi; done <&2 && exit 4 + +# INITIALIZE VARIABLES +# variables set in framework: +# today server thistty scriptdir scriptfile scripttrim +# is_cronjob stdin_piped stdout_piped stderr_piped sendsh sendopts +. ${frameworkscript} || echo "$0: framework did not run properly. Continuing..." 1>&2 +infile1= +outfile1= +logfile=${scriptdir}/${scripttrim}.${today}.out +define_if_new interestedparties "bgstack15@gmail.com" +# SIMPLECONF +define_if_new default_conffile "/etc/hwset.conf" +define_if_new defuser_conffile ~/.config/hwset/hwset.conf + +# REACT TO OPERATING SYSTEM TYPE +case $( uname -s ) in + Linux) [ ];; + *) echo "${scriptfile}: 3. Indeterminate or unsupported OS: $( uname -s )" 1>&2 && exit 3;; +esac + +## REACT TO ROOT STATUS +#case ${is_root} in +# 1) # proper root +# [ ] ;; +# sudo) # sudo to root +# [ ] ;; +# "") # not root at all +# #ferror "${scriptfile}: 5. Please run as root or sudo. Aborted." +# #exit 5 +# [ ] +# ;; +#esac + +# SET CUSTOM SCRIPT AND VALUES +#setval 1 sendsh sendopts<&2 +} + +# make temp files +if test -n "${HWSET_SND_TEMP_FILE}" +then + tempdir="$( dirname "${HWSET_SND_TEMP_FILE}" )" + mkdir -p "${tempdir}" && touch "${HWSET_SND_TEMP_FILE}" +fi + +# MAIN LOOP +#{ + debuglev 2 && ferror "piece:\"${piece}\" action:\"${action}\" value:\"${value}\"" + case "${piece}" in + vol|volume) + case "${action}" in + up|down|mute) + debuglev 1 && ferror vol_${action} "${value:-$HWSET_SND_INCREMENT}" + vol_${action} "${value:-$HWSET_SND_INCREMENT}" + ;; + set) + if test -z "${value}"; + then + # you ran hwset vol set, without a value + # do nothing, silently + debuglev 1 && ferror "Cannot set vol to \"\". Skipped." + else + debuglev 1 && ferror vol_${action} "${value}" + vol_${action} "${value}" + fi + ;; + *) + ferror "${scripttrim}: piece ${piece} was given unknown action ${action}. Aborted." + exit 2 + ;; + esac + ;; + bright|brightness) + case "${action}" in + up|down) + debuglev 1 && ferror bright_${action} "${value:-${HWSET_BRIGHTNESS_INCREMENT}}" + bright_${action} "${value:-${HWSET_BRIGHTNESS_INCREMENT}}" + ;; + set) + if test -z "${value}"; + then + # you ran hwset bright set, without a value + # do nothing, silently + debuglev 1 && ferror "Cannot set brightness to \"\". Skipped." + else + debuglev 1 && ferror bright_${action} "${value}" + bright_${action} "${value}" + fi + ;; + *) + ferror "${scripttrim}: piece ${piece} was given unknown action ${action}. Aborted." + ;; + esac + ;; + *) + ferror "${scripttrim}: Unknown piece ${piece}. Aborted." + exit 2 + ;; + esac +#} | tee -a ${logfile} + +# EMAIL LOGFILE +#${sendsh} ${sendopts} "${server} ${scriptfile} out" ${logfile} ${interestedparties} + +## STOP THE READ CONFIG FILE +#exit 0 +#fi; done; } diff --git a/src/usr/bin/hwset-thinkpad-p50s b/src/usr/bin/hwset-thinkpad-p50s deleted file mode 100755 index 12e7c14..0000000 --- a/src/usr/bin/hwset-thinkpad-p50s +++ /dev/null @@ -1,379 +0,0 @@ -#!/bin/sh -# File: /usr/bin/hwset-thinkpad-p50s -# Location: stackrpms-thinkpad-p50s package -# Author: bgstack15 -# SPDX-License-Identifier: GPL-3.0 -# Startdate: 2017-11-10 19:41:58 -# Title: Script that Adjusts Hardware Settings -# Package: stackrpms-thinkpad-p50s -# Purpose: Provide programmatic ways to adjust screen brightness, volume, etc. -# History: -# 2018-12-10 change directory -# 2019-12-26 adapted for Thinkpad P50s and add bright_set max/min/safe -# 2022-11-03 adapted for package -# Usage: -# configure your display manager to react to key combinations, like vol-up to execute: hwset vol up -# Reference: ftemplate.sh 2017-11-10a; framework.sh 2017-11-10a -# Improve: -# Provide better 'screen 0' detection. Right now it is hard-coded to use display LVDS. -# Dependencies: -# dep-devuan: bgscripts-core -fiversion="2017-11-10a" -hwsetversion="2022-11-03a" # for Thinkpad P50s - -usage() { - less -F >&2 </dev/null )" - local current_level="$( mixer vol | awk '{print $NF}' )" - - debuglev 3 && ferror "saved: ${saved_level}\tcurrent: ${current_level}" - - # logic: if current level is other than "0:0", save current level and set to 0 - # logic: if current level is "0:0", set to saved level. - if echo "${current_level}" | grep -qE "^0:0$"; - then - # the current level is zero - if test -z "${saved_level}" || echo "${saved_level}" | grep -qvE "[0-9]+:[0-9]+"; - then - # nothing to revert to, so set to a basic level - mixer vol 70 - else - mixer vol "${saved_level}" - fi - else - # current level is not zero - echo "VOL_REGULAR_LEVEL=${current_level}" > "${HWSET_SND_TEMP_FILE}" - mixer vol "0:0" - fi -} - -bright_get() { - #local this_screen="$( xrandr --listactivemonitors | tail -n +2 | grep LVDS | awk '{print $NF}' )" - #xrandr --verbose --screen 0 | grep Brightness | awk '{print $NF}' - cat /sys/class/backlight/intel_backlight/brightness -} - -bright_safe() { - # call: new_brightness="$( bright_safe "${new_brightness}" )" - # this function makes sure the new brightness is not lower than the min and not higher than the max - local requested_brightness="${1}" - local output="$( echo "${requested_brightness}" | grep -oE '^-?[0-9]+(\.[0-9]{0,3})?$' )" - if test -n "${output}"; - then - # so it is a proper decimal number for a brightness value - local lt_min="$( printf '%f<%f\n' "${requested_brightness}" "${HWSET_BRIGHTNESS_MIN}" | bc )" - local gt_max="$( printf '%f>%f\n' "${requested_brightness}" "${HWSET_BRIGHTNESS_MAX}" | bc )" - test "${gt_max}" = "1" && output="${HWSET_BRIGHTNESS_MAX}" - test "${lt_min}" = "1" && output="${HWSET_BRIGHTNESS_MIN}" - #echo "lt=${lt} gt=${gt}" - echo "${output%%.*}" - else - # invalid input, so provide a safe number - echo "${HWSET_BRIGHTNESS_MAX:850}" - fi -} - -bright_up() { - # call: bright_up "${HWSET_BRIGHTNESS_INCREASE_SIZE}" - local current_brightness="$( bright_get )" - local increment="${1}" - local new_brightness="$( printf '%0.2f' "$( printf 'scale=3;%0.2f+%0.2f\n' "${current_brightness}" "${increment}" | bc )" )" - new_brightness="$( bright_safe "${new_brightness}" )" - debuglev 1 && ferror "current brightness:\"${current_brightness}\" new:\"${new_brightness}\"" - printf "${new_brightness}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null - #xrandr --output LVDS1 --brightness "${new_brightness}" -} - -bright_down() { - # call: bright_down "${HWSET_BRIGHTNESS_INCREASE_SIZE}" - local current_brightness="$( bright_get )" - local increment="${1}" - local new_brightness="$( printf '%0.2f' "$( printf 'scale=3;%0.2f-%0.2f\n' "${current_brightness}" "${increment}" | bc )" )" - new_brightness="$( bright_safe "${new_brightness}" )" - debuglev 1 && ferror "current brightness:\"${current_brightness}\" new:\"${new_brightness}\"" - printf "${new_brightness}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null - #xrandr --output LVDS1 --brightness "${new_brightness}" -} - -bright_set() { - # call: bright_set "${value}" - local value="${1}" - #xrandr --output LVDS1 --brightness "${value}" - local value_evaluated="$( echo "${value}" | tr '[a-z]' '[A-Z]' )" - case "${value_evaluated}" in - MAX*) test -n "${HWSET_BRIGHTNESS_MAX}" && value="${HWSET_BRIGHTNESS_MAX}" ;; - MIN*) test -n "${HWSET_BRIGHTNESS_MIN}" && value="${HWSET_BRIGHTNESS_MIN}" ;; - SAFE) test -n "${HWSET_BRIGHTNESS_SAFE}" && value="${HWSET_BRIGHTNESS_SAFE}" ;; - esac - debuglev 2 && ferror "setting to ${value}" - printf "${value}" | sudo tee /sys/class/backlight/intel_backlight/brightness 1>/dev/null -} - -# DEFINE TRAPS - -clean_hwset() { - # use at end of entire script if you need to clean up tmpfiles - #rm -f ${tmpfile} 1>/dev/null 2>&1 - : -} - -CTRLC() { - # use with: trap "CTRLC" 2 - # useful for controlling the ctrl+c keystroke - : -} - -CTRLZ() { - # use with: trap "CTRLZ" 18 - # useful for controlling the ctrl+z keystroke - : -} - -parseFlag() { - flag="$1" - hasval=0 - case ${flag} in - # INSERT FLAGS HERE - "d" | "debug" | "DEBUG" | "dd" ) setdebug; ferror "debug level ${debug}";; - "u" | "usage" | "help" | "h" ) usage; exit 1;; - "V" | "fcheck" | "version" ) ferror "${scriptfile} version ${hwsetversion}"; exit 1;; - #"i" | "infile" | "inputfile" ) getval; infile1=${tempval};; - "c" | "conf" | "conffile" | "config" ) getval; conffile="${tempval}";; - esac - - debuglev 10 && { test ${hasval} -eq 1 && ferror "flag: ${flag} = ${tempval}" || ferror "flag: ${flag}"; } -} - -# DETERMINE LOCATION OF FRAMEWORK -while read flocation; do if test -e ${flocation} && test "$( sh ${flocation} --fcheck 2>/dev/null )" -ge 20170608; then frameworkscript="${flocation}"; break; fi; done <&2 && exit 4 - -# INITIALIZE VARIABLES -# variables set in framework: -# today server thistty scriptdir scriptfile scripttrim -# is_cronjob stdin_piped stdout_piped stderr_piped sendsh sendopts -. ${frameworkscript} || echo "$0: framework did not run properly. Continuing..." 1>&2 -infile1= -outfile1= -logfile=${scriptdir}/${scripttrim}.${today}.out -define_if_new interestedparties "bgstack15@gmail.com" -# SIMPLECONF -define_if_new default_conffile "/etc/hwset.conf" -define_if_new defuser_conffile ~/.config/hwset/hwset.conf - -# REACT TO OPERATING SYSTEM TYPE -case $( uname -s ) in - Linux) [ ];; - *) echo "${scriptfile}: 3. Indeterminate or unsupported OS: $( uname -s )" 1>&2 && exit 3;; -esac - -## REACT TO ROOT STATUS -#case ${is_root} in -# 1) # proper root -# [ ] ;; -# sudo) # sudo to root -# [ ] ;; -# "") # not root at all -# #ferror "${scriptfile}: 5. Please run as root or sudo. Aborted." -# #exit 5 -# [ ] -# ;; -#esac - -# SET CUSTOM SCRIPT AND VALUES -#setval 1 sendsh sendopts<&2 -} - -# make temp files -if test -n "${HWSET_SND_TEMP_FILE}" -then - tempdir="$( dirname "${HWSET_SND_TEMP_FILE}" )" - mkdir -p "${tempdir}" && touch "${HWSET_SND_TEMP_FILE}" -fi - -# MAIN LOOP -#{ - debuglev 2 && ferror "piece:\"${piece}\" action:\"${action}\" value:\"${value}\"" - case "${piece}" in - vol|volume) - case "${action}" in - up|down|mute) - debuglev 1 && ferror vol_${action} "${value:-$HWSET_SND_INCREMENT}" - vol_${action} "${value:-$HWSET_SND_INCREMENT}" - ;; - set) - if test -z "${value}"; - then - # you ran hwset vol set, without a value - # do nothing, silently - debuglev 1 && ferror "Cannot set vol to \"\". Skipped." - else - debuglev 1 && ferror vol_${action} "${value}" - vol_${action} "${value}" - fi - ;; - *) - ferror "${scripttrim}: piece ${piece} was given unknown action ${action}. Aborted." - exit 2 - ;; - esac - ;; - bright|brightness) - case "${action}" in - up|down) - debuglev 1 && ferror bright_${action} "${value:-${HWSET_BRIGHTNESS_INCREMENT}}" - bright_${action} "${value:-${HWSET_BRIGHTNESS_INCREMENT}}" - ;; - set) - if test -z "${value}"; - then - # you ran hwset bright set, without a value - # do nothing, silently - debuglev 1 && ferror "Cannot set brightness to \"\". Skipped." - else - debuglev 1 && ferror bright_${action} "${value}" - bright_${action} "${value}" - fi - ;; - *) - ferror "${scripttrim}: piece ${piece} was given unknown action ${action}. Aborted." - ;; - esac - ;; - *) - ferror "${scripttrim}: Unknown piece ${piece}. Aborted." - exit 2 - ;; - esac -#} | tee -a ${logfile} - -# EMAIL LOGFILE -#${sendsh} ${sendopts} "${server} ${scriptfile} out" ${logfile} ${interestedparties} - -## STOP THE READ CONFIG FILE -#exit 0 -#fi; done; } diff --git a/src/usr/bin/netmounts-trayicon b/src/usr/bin/netmounts-trayicon index 72bf020..6f0ed59 100755 --- a/src/usr/bin/netmounts-trayicon +++ b/src/usr/bin/netmounts-trayicon @@ -1,11 +1,11 @@ #!/bin/sh # File: /usr/bin/netmounts-trayicon -# Location: stackrpms-thinkpad-p50s package +# Location: stackrpms-acer-chromebook package # Author: bgstack15 # SPDX-License-Identifier: GPL-3.0 # Startdate: 2022-01-07 14:15 # Title: Net mounts Trayicon utility -# Package: stackrpms-thinkpad-p50s +# Package: stackrpms-acer-chromebook # Purpose: Provide easy mount/unmount control for network shares from system tray # History: # 2022-11-03 adapted for package diff --git a/src/usr/bin/vpn-trayicon b/src/usr/bin/vpn-trayicon index ecae2de..e5dee28 100755 --- a/src/usr/bin/vpn-trayicon +++ b/src/usr/bin/vpn-trayicon @@ -1,11 +1,11 @@ #!/bin/sh # File: /usr/bin/vpn-trayicon -# Location: stackrpms-thinkpad-p50s package +# Location: stackrpms-acer-chromebook package # Author: bgstack15 # SPDX-License-Identifier: GPL-3.0 # Startdate: 2021-12-26 21:10 # Title: Vpn Trayicon utility -# Package: stackrpms-thinkpad-p50s +# Package: stackrpms-acer-chromebook # Purpose: Provide easy vpn control from system tray # History: # 2022-11-03 adapted for package -- cgit