Fix exit codes for error handling in hdr-helper and monitor-setup scripts
This commit is contained in:
+30
-32
@@ -9,7 +9,7 @@ CURR_BRIGHT_LVL_FILE="$CURR_BRIGHT_LVL_PATH/current-brightness-level"
|
|||||||
show_hdr_status() {
|
show_hdr_status() {
|
||||||
ICON="/usr/share/icons/breeze-dark/devices/64/monitor.svg"
|
ICON="/usr/share/icons/breeze-dark/devices/64/monitor.svg"
|
||||||
|
|
||||||
if [[ $(kscreen-doctor -o | grep -A 15 $MONITOR | grep HDR) == *"enabled"* ]]; then
|
if [[ $(kscreen-doctor -o | grep -A 15 "$MONITOR" | grep HDR) == *"enabled"* ]]; then
|
||||||
notify-send -a "HDR Helper" -i $ICON "HDR Enabled"
|
notify-send -a "HDR Helper" -i $ICON "HDR Enabled"
|
||||||
else
|
else
|
||||||
notify-send -a "HDR Helper" -i $ICON "HDR Disabled"
|
notify-send -a "HDR Helper" -i $ICON "HDR Disabled"
|
||||||
@@ -22,66 +22,66 @@ set_brightness() {
|
|||||||
mkdir $CURR_BRIGHT_LVL_PATH
|
mkdir $CURR_BRIGHT_LVL_PATH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
kscreen-doctor -o | \
|
kscreen-doctor -o |
|
||||||
grep Brightness | \
|
grep Brightness |
|
||||||
head -n 1 | \
|
head -n 1 |
|
||||||
grep -oP "(?<=set to )[0-9]+" \
|
grep -oP "(?<=set to )[0-9]+" \
|
||||||
> $CURR_BRIGHT_LVL_FILE
|
>$CURR_BRIGHT_LVL_FILE
|
||||||
|
|
||||||
if [ -v SDR_TARGET_BRIGHTNESS ]; then
|
if [ -v SDR_TARGET_BRIGHTNESS ]; then
|
||||||
kscreen-doctor output.$MONITOR.brightness.$SDR_TARGET_BRIGHTNESS
|
kscreen-doctor output."$MONITOR".brightness."$SDR_TARGET_BRIGHTNESS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -v SDR_TARGET_BRIGHTNESS_NITS ]; then
|
if [ -v SDR_TARGET_BRIGHTNESS_NITS ]; then
|
||||||
kscreen-doctor output.$MONITOR.sdr-brightness.$SDR_TARGET_BRIGHTNESS_NITS
|
kscreen-doctor output."$MONITOR".sdr-brightness."$SDR_TARGET_BRIGHTNESS_NITS"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
restore_brightness() {
|
restore_brightness() {
|
||||||
if [ -f $CURR_BRIGHT_LVL_FILE ]; then
|
if [ -f $CURR_BRIGHT_LVL_FILE ]; then
|
||||||
kscreen-doctor output.$MONITOR.brightness.$(cat $CURR_BRIGHT_LVL_FILE)
|
kscreen-doctor output."$MONITOR".brightness."$(cat $CURR_BRIGHT_LVL_FILE)"
|
||||||
rm $CURR_BRIGHT_LVL_FILE
|
rm $CURR_BRIGHT_LVL_FILE
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh_display() {
|
refresh_display() {
|
||||||
kscreen-doctor output.$MONITOR.mode.$TEMP_RES > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".mode."$TEMP_RES" >/dev/null 2>&1
|
||||||
kscreen-doctor output.$MONITOR.mode.$NATIVE_RES > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".mode."$NATIVE_RES" >/dev/null 2>&1
|
||||||
show_hdr_status
|
show_hdr_status
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_hdr () {
|
enable_hdr() {
|
||||||
kscreen-doctor output.$MONITOR.hdr.enable > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".hdr.enable >/dev/null 2>&1
|
||||||
kscreen-doctor output.$MONITOR.wcg.enable > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".wcg.enable >/dev/null 2>&1
|
||||||
refresh_display
|
refresh_display
|
||||||
set_brightness
|
set_brightness
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_hdr() {
|
disable_hdr() {
|
||||||
kscreen-doctor output.$MONITOR.hdr.disable > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".hdr.disable >/dev/null 2>&1
|
||||||
kscreen-doctor output.$MONITOR.wcg.disable > /dev/null 2>&1
|
kscreen-doctor output."$MONITOR".wcg.disable >/dev/null 2>&1
|
||||||
refresh_display
|
refresh_display
|
||||||
restore_brightness
|
restore_brightness
|
||||||
}
|
}
|
||||||
|
|
||||||
test_hdr_support() {
|
test_hdr_support() {
|
||||||
if [[ $XDG_SESSION_TYPE != "wayland" ]]; then
|
if [[ $XDG_SESSION_TYPE != "wayland" ]]; then
|
||||||
echo "⚠️ Warning: You are not running Wayland. HDR is not supported on X11."
|
echo "⚠️ Warning: You are not running Wayland. HDR is not supported on X11."
|
||||||
exit -5
|
exit 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
HDR_CONTEXT=$(kscreen-doctor -o | grep -A 15 $MONITOR | grep "HDR" | awk '{ print $3 }')
|
HDR_CONTEXT=$(kscreen-doctor -o | grep -A 15 "$MONITOR" | grep "HDR" | awk '{ print $3 }')
|
||||||
if [[ $HDR_CONTEXT == *"incapable"* ]]; then
|
if [[ $HDR_CONTEXT == *"incapable"* ]]; then
|
||||||
echo "❌ HDR capabilities are either disabled or not supported on your current display."
|
echo "❌ HDR capabilities are either disabled or not supported on your current display."
|
||||||
echo ""
|
echo ""
|
||||||
echo "Please check the correct display is configured in monitor.conf and that"
|
echo "Please check the correct display is configured in monitor.conf and that"
|
||||||
echo "HDR is both supported and enabled."
|
echo "HDR is both supported and enabled."
|
||||||
elif [[ $HDR_CONTEXT == *"enabled"* || *"disabled"* ]]; then
|
elif [[ $HDR_CONTEXT == *"abled"* ]]; then
|
||||||
echo "✅ HDR capabilities are supported on your current display."
|
echo "✅ HDR capabilities are supported on your current display."
|
||||||
else
|
else
|
||||||
echo "ERROR: Unhandled HDR status"
|
echo "ERROR: Unhandled HDR status"
|
||||||
exit -4
|
exit 4
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_conf_file() {
|
setup_conf_file() {
|
||||||
@@ -89,7 +89,7 @@ setup_conf_file() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto_hdr() {
|
auto_hdr() {
|
||||||
if [[ $(kscreen-doctor -o | grep -A 15 $MONITOR | grep HDR) == *"enabled"* ]]; then
|
if [[ $(kscreen-doctor -o | grep -A 15 "$MONITOR" | grep HDR) == *"enabled"* ]]; then
|
||||||
disable_hdr
|
disable_hdr
|
||||||
else
|
else
|
||||||
enable_hdr
|
enable_hdr
|
||||||
@@ -99,8 +99,7 @@ auto_hdr() {
|
|||||||
show_version() {
|
show_version() {
|
||||||
echo "HDR Helper v"$VERSION
|
echo "HDR Helper v"$VERSION
|
||||||
}
|
}
|
||||||
|
show_help() {
|
||||||
show_help () {
|
|
||||||
echo "=== Usage ==="
|
echo "=== Usage ==="
|
||||||
echo "The default behaviour will automatically enable or disable HDR"
|
echo "The default behaviour will automatically enable or disable HDR"
|
||||||
echo " hdr-helper (no args)"
|
echo " hdr-helper (no args)"
|
||||||
@@ -136,21 +135,20 @@ if [[ $(whereis kscreen-doctor) != *"kscreen-doctor" ]]; then
|
|||||||
echo "Error: kscreen-doctor cannot be detected, aborting."
|
echo "Error: kscreen-doctor cannot be detected, aborting."
|
||||||
echo "Please note that only KDE Plasma is currently supported on Wayland."
|
echo "Please note that only KDE Plasma is currently supported on Wayland."
|
||||||
echo ""
|
echo ""
|
||||||
exit -1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
import_config() {
|
import_config() {
|
||||||
if [[ -f "$CONFIG_FILE" ]]; then
|
if [[ -f "$CONFIG_FILE" ]]; then
|
||||||
source $CONFIG_FILE
|
source "$CONFIG_FILE"
|
||||||
if [[ $MONITOR == "" ]] || [[ $NATIVE_RES == "" ]] || [[ $TEMP_RES == "" ]]; then
|
if [[ $MONITOR == "" ]] || [[ $NATIVE_RES == "" ]] || [[ $TEMP_RES == "" ]]; then
|
||||||
echo "Error: monitor.conf has not been configured."
|
echo "Error: monitor.conf has not been configured."
|
||||||
exit -2
|
exit 2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "❌ Error: monitor.conf file not found. Please ensure it's been properly setup."
|
echo "❌ Error: monitor.conf file not found. Please ensure it's been properly setup."
|
||||||
echo "Try running 'hdr-helper -a' to try automatically generating one."
|
echo "Try running 'hdr-helper -a' to try automatically generating one."
|
||||||
exit -3
|
exit 3
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -96,7 +96,7 @@ class MonitorSetup():
|
|||||||
if _validation_check_cnt != 3:
|
if _validation_check_cnt != 3:
|
||||||
print("❌ Automation configuration failed, one or more settings could not be detected.")
|
print("❌ Automation configuration failed, one or more settings could not be detected.")
|
||||||
self.log_display_info()
|
self.log_display_info()
|
||||||
exit(-1)
|
exit(1)
|
||||||
|
|
||||||
if not os.path.isfile(self._stg_conf_file):
|
if not os.path.isfile(self._stg_conf_file):
|
||||||
print("❌ Error creating configuration file.")
|
print("❌ Error creating configuration file.")
|
||||||
|
|||||||
Reference in New Issue
Block a user