From 0722a111adb93a988e8e8842cecdac3b372b2cd1 Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Tue, 31 Dec 2024 20:52:43 +0000 Subject: [PATCH] HDR-Helper v1.0.0.0 --- hdr-helper | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 hdr-helper diff --git a/hdr-helper b/hdr-helper new file mode 100644 index 0000000..0d5f556 --- /dev/null +++ b/hdr-helper @@ -0,0 +1,91 @@ +#!/bin/bash + +_VERSION=1.0.0.0 +# MONITOR= +# NATIVE_RES=<3440x1440@165 | Enter your native monitor resolution followed by the refresh rate> +# TEMP_RES=<2560x1440@144 | Enter a different resolution or refresh rate from your native> +MONITOR=DP-3 +NATIVE_RES=3440x1440@165 +TEMP_RES=2560x1440@144 + +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 this script." +} + +# 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 + +# 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