diff --git a/.config/dsk/run/g910 b/.config/dsk/run/g910 new file mode 100755 index 00000000..cded6282 --- /dev/null +++ b/.config/dsk/run/g910 @@ -0,0 +1,172 @@ +#! /bin/bash +# +# testg910.bash +# Copyright (C) 2019 Vintage Salt +# +# Distributed under terms of the MIT license. +# + +colorbase="002b36" + +colorblue="268bd2" +colorgreen="859900" +colormagenta="d33682" +colorred="dc322f" +coloryellow="b58900" + +# Basic functions +log() { + [ -z "$1" ] && return 1 + printf "g910: %s\\n" \ + "$1" +} +rsleep() { + [ -z "$1" ] && return 1 + exec 1023<> <(:) + read -t "$1" -u 1023 + return 0 +} + +# Main loop +loop-i3() { + while rsleep 1; do + : + done +} +loop-stats() { + while rsleep 1; do + # CPU stats on F1 and G6 + g910-led -kn f1 $colorblue + if (( $(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)/($2+$4+$5)} END {print (usage > 0.75)}') )); then + g910-led -kn g6 $colorred + else + g910-led -kn g6 $colorgreen + fi + # Memory stats on F2 and G7 + g910-led -kn f2 $colormagenta + if (( $(free | grep Mem | awk '{print ($3/$2 > 0.75)}') )); then + g910-led -kn g7 $colorred + else + g910-led -kn g7 $colorgreen + fi + # Root disk stats on F3 and G8 + g910-led -kn f3 $coloryellow + if (( $(df --output=pcent / | tr -dc '0-9') > 75 )); then + g910-led -kn g8 $colorred + else + g910-led -kn g8 $colorgreen + fi + # Home disk stats on F4 and G9 + g910-led -kn f4 $coloryellow + if (( $(df --output=pcent /home | tr -dc '0-9') > 75 )); then + g910-led -kn g9 $colorred + else + g910-led -kn g9 $colorgreen + fi + + # Commit + g910-led -c + done +} +initloops() { + # i3wm integration + if pgrep i3 > /dev/null 2>&1; then + g910-led -k logo ffffff + loop-i3 & + log "Starting i3 integration with PID $!" + else + g910-led -k logo 000000 + fi + # General loops + loop-stats & + log "Starting general stat display with PID $!" + wait +} +main() { + if ! command -v g910-led > /dev/null 2>&1; then + log "g910-led is not installed. Install it with the g810-led package" + exit 50 + fi + if ! g910-led -a 000000 > /dev/null 2>&1; then + log "Could not find keyboard" + log "Ensure it is plugged in and that you have the proper udev rules set up" + log "See https://raw.githubusercontent.com/MatMoul/g810-led/master/udev/g810-led.rules" + exit 51 + fi + log "Playing init animation" + log "Dimming all keys" + g910-led -a 000000 + log "Flickering logo on" + rsleep 0.25 + g910-led -k logo ffffff + rsleep 0.05 + g910-led -k logo 000000 + rsleep 0.025 + g910-led -k logo ffffff + rsleep 0.025 + g910-led -k logo 000000 + rsleep 0.025 + g910-led -k logo ffffff + rsleep 1 + + log "Flickering second logo on" + rsleep 0.025 + g910-led -k logo2 $colorblue + rsleep 0.025 + g910-led -k logo2 000000 + rsleep 0.025 + g910-led -k logo2 $colorred + + log "Flickering G-keys on" + g910-led -g gkeys ffffff + rsleep 0.05 + g910-led -g gkeys 000000 + rsleep 0.025 + g910-led -g gkeys 444444 + rsleep 0.25 + + log "Flickering F-keys on" + g910-led -g fkeys 222222 + rsleep 0.05 + g910-led -g fkeys 333333 + rsleep 0.025 + g910-led -g fkeys 444444 + + log "Flickering keys on" + g910-led -g keys aaaaaa + rsleep 0.05 + g910-led -g keys 888888 + rsleep 0.15 + + log "Flickering numpad on" + g910-led -g numeric 888888 + + log "Flickering arrow keys on" + g910-led -g arrows 222222 + rsleep 0.025 + g910-led -g arrows 444444 + rsleep 0.10 + + log "Flickering modifier keys on" + g910-led -g modifiers 444444 + rsleep 0.025 + g910-led -g modifiers 888888 + rsleep 0.05 + + log "Flickering multimedia keys on" + g910-led -g multimedia ffffff + rsleep 0.025 + g910-led -g multimedia 888888 + + log "Flickering functions on" + g910-led -g functions aaaaaa + rsleep 0.025 + g910-led -g functions 444444 + + g910-led -k logo2 $colorgreen + # Set up listeners as background processes + initloops +} + +main "$@" +