- Made configuration portable by seperating variables into seperate monitor.conf file.
101 lines
2.6 KiB
Bash
Executable File
101 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
_VERSION=1.0.1.0
|
|
MONITOR= # MODIFY THESE VALUES INSIDE MONITOR.CONF #
|
|
NATIVE_RES= ###########################################
|
|
TEMP_RES= ###########################################
|
|
|
|
show_hdr_status() {
|
|
ICON="/usr/share/icons/breeze-dark/devices/64/monitor.svg"
|
|
|
|
if [[ $(kscreen-doctor -o | grep HDR) == *"enabled"* ]]; then
|
|
notify-send -a "HDR Helper" -i $ICON "HDR Enabled"
|
|
else
|
|
notify-send -a "HDR Helper" -i $ICON "HDR Disabled"
|
|
fi
|
|
}
|
|
|
|
refresh_display() {
|
|
kscreen-doctor output.$MONITOR.mode.$TEMP_RES
|
|
kscreen-doctor output.$MONITOR.mode.$NATIVE_RES
|
|
show_hdr_status
|
|
}
|
|
|
|
enable_hdr () {
|
|
kscreen-doctor output.$MONITOR.hdr.enable
|
|
refresh_display
|
|
}
|
|
|
|
disable_hdr() {
|
|
kscreen-doctor output.$MONITOR.hdr.disable
|
|
refresh_display
|
|
}
|
|
|
|
auto_hdr() {
|
|
if [[ $(kscreen-doctor -o | grep HDR) == *"enabled"* ]]; then
|
|
disable_hdr
|
|
else
|
|
enable_hdr
|
|
fi
|
|
}
|
|
|
|
show_version() {
|
|
echo "HDR Helper v"$_VERSION
|
|
}
|
|
|
|
show_help () {
|
|
echo "--- Usage ---"
|
|
echo "hdr-helper | The default behaviour will automatically enable or disable HDR"
|
|
echo "hdr-helper -e | Force enables HDR"
|
|
echo "hdr-helper -d | Force disables HDR"
|
|
echo "hdr-helper -s | Shows detected HDR status as a system notification"
|
|
echo "hdr-helper -v | Displays version information"
|
|
echo "hdr-helper -h | Displays this help screen"
|
|
echo ""
|
|
echo "--- Info ---"
|
|
echo "Currently only KDE Plasma is supported running Wayland. Ensure that kscreen-doctor"
|
|
echo "is present on your system for HDR Helper to function."
|
|
echo ""
|
|
echo "--- Config ---"
|
|
echo "Please modify the MONITOR, NATIVE_RES and TEMP_RES values in monitor.conf."
|
|
}
|
|
|
|
# Check Dependencies
|
|
if [[ $(whereis kscreen-doctor) != *"kscreen-doctor" ]]; then
|
|
echo "Error: kscreen-doctor cannot be detected, aborting."
|
|
echo "Please note that only KDE Plasma is currently supported on Wayland."
|
|
echo ""
|
|
show_version
|
|
|
|
exit -1
|
|
fi
|
|
|
|
# Import monitor.conf values
|
|
if [ -f monitor.conf ]; then
|
|
source monitor.conf
|
|
if [[ $MONITOR == "" ]] || [[ $NATIVE_RES == "" ]] || [[ $TEMP_RES == "" ]]; then
|
|
echo "Error: monitor.conf has not been configured."
|
|
exit -2
|
|
fi
|
|
else
|
|
echo "Error: monitor.conf file not found. Please ensure it's been properly setup."
|
|
exit -3
|
|
fi
|
|
|
|
# Handle Args
|
|
if [[ $1 == "-e" ]] || [ $1 == "--enable" ]; then
|
|
enable_hdr
|
|
elif [[ $1 == "-d" ]] || [ $1 == "--disable" ]; then
|
|
disable_hdr
|
|
elif [[ $1 == "-s" ]] || [ $1 == "--status" ]; then
|
|
show_hdr_status
|
|
elif [[ $1 == "-v" ]] || [ $1 == "--version" ]; then
|
|
show_version
|
|
elif [[ $1 == "-h" ]] || [ $1 == "--help" ]; then
|
|
show_help
|
|
elif [[ $# -eq 0 ]]; then # Automatically Toggle HDR | Default Behaviour
|
|
auto_hdr
|
|
else
|
|
show_help
|
|
fi
|