sxmo: block suspend if go2tv is active
This commit is contained in:
parent
c54df8d9c4
commit
6fe195e2dd
|
@ -68,6 +68,11 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
hookPkgs = {
|
hookPkgs = {
|
||||||
|
block_suspend = pkgs.static-nix-shell.mkBash {
|
||||||
|
pname = "sxmo_hook_block_suspend.sh";
|
||||||
|
pkgs = [ "procps" ];
|
||||||
|
src = ./hooks;
|
||||||
|
};
|
||||||
inputhandler = pkgs.static-nix-shell.mkBash {
|
inputhandler = pkgs.static-nix-shell.mkBash {
|
||||||
pname = "sxmo_hook_inputhandler.sh";
|
pname = "sxmo_hook_inputhandler.sh";
|
||||||
pkgs = [ "coreutils" "playerctl" "pulseaudio" ];
|
pkgs = [ "coreutils" "playerctl" "pulseaudio" ];
|
||||||
|
@ -150,7 +155,7 @@ in
|
||||||
# by including hooks here, updating the sxmo package also updates the hooks
|
# by including hooks here, updating the sxmo package also updates the hooks
|
||||||
# without requiring any reboot
|
# without requiring any reboot
|
||||||
"sxmo_hook_apps.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_apps.sh";
|
"sxmo_hook_apps.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_apps.sh";
|
||||||
"sxmo_hook_block_suspend.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_block_suspend.sh";
|
# "sxmo_hook_block_suspend.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_block_suspend.sh";
|
||||||
"sxmo_hook_call_audio.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_call_audio.sh";
|
"sxmo_hook_call_audio.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_call_audio.sh";
|
||||||
"sxmo_hook_contextmenu_fallback.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_contextmenu_fallback.sh";
|
"sxmo_hook_contextmenu_fallback.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_contextmenu_fallback.sh";
|
||||||
"sxmo_hook_contextmenu.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_contextmenu.sh";
|
"sxmo_hook_contextmenu.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_contextmenu.sh";
|
||||||
|
@ -186,6 +191,7 @@ in
|
||||||
"sxmo_hook_tailtextlog.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_tailtextlog.sh";
|
"sxmo_hook_tailtextlog.sh" = "${package}/share/sxmo/default_hooks/sxmo_hook_tailtextlog.sh";
|
||||||
} // {
|
} // {
|
||||||
# default hooks for this nix module, not upstreamable
|
# default hooks for this nix module, not upstreamable
|
||||||
|
"sxmo_hook_block_suspend.sh" = "${hookPkgs.block_suspend}/bin/sxmo_hook_block_suspend.sh";
|
||||||
"sxmo_hook_inputhandler.sh" = "${hookPkgs.inputhandler}/bin/sxmo_hook_inputhandler.sh";
|
"sxmo_hook_inputhandler.sh" = "${hookPkgs.inputhandler}/bin/sxmo_hook_inputhandler.sh";
|
||||||
"sxmo_hook_postwake.sh" = "${hookPkgs.postwake}/bin/sxmo_hook_postwake.sh";
|
"sxmo_hook_postwake.sh" = "${hookPkgs.postwake}/bin/sxmo_hook_postwake.sh";
|
||||||
"sxmo_hook_rotate.sh" = "${hookPkgs.rotate}/bin/sxmo_hook_rotate.sh";
|
"sxmo_hook_rotate.sh" = "${hookPkgs.rotate}/bin/sxmo_hook_rotate.sh";
|
||||||
|
|
38
hosts/modules/gui/sxmo/hooks/sxmo_hook_block_suspend.sh
Executable file
38
hosts/modules/gui/sxmo/hooks/sxmo_hook_block_suspend.sh
Executable file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p procps
|
||||||
|
|
||||||
|
|
||||||
|
wait_item() {
|
||||||
|
while $1 > /dev/null 2>&1; do
|
||||||
|
waited=1
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
casting_go2tv() {
|
||||||
|
pgrep -f go2tv
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ "$waited" != "0" ]; do
|
||||||
|
waited=0
|
||||||
|
wait_item casting_go2tv
|
||||||
|
|
||||||
|
# forward to the next block_suspend.sh script (if any).
|
||||||
|
# have to handle the case where this script is on PATH, and also when it was called without being on PATH.
|
||||||
|
# the implementation here causes us to call ourselves exactly once, at most.
|
||||||
|
SXMO_HOOK_BLOCK_SUSPEND_DEPTH=$((${SXMO_HOOK_BLOCK_SUSPEND_DEPTH:-0} + 1))
|
||||||
|
echo "recurse counter: $SXMO_HOOK_BLOCK_SUSPEND_DEPTH"
|
||||||
|
|
||||||
|
FWD_COUNT=0
|
||||||
|
IFS=:
|
||||||
|
for p in $PATH ; do
|
||||||
|
echo "testing: $p/sxmo_hook_block_suspend.sh"
|
||||||
|
if $(test -x "$p/sxmo_hook_block_suspend.sh"); then
|
||||||
|
FWD_COUNT=$(($FWD_COUNT + 1))
|
||||||
|
fi
|
||||||
|
if [ "$FWD_COUNT" -eq "$SXMO_HOOK_BLOCK_SUSPEND_DEPTH" ]; then
|
||||||
|
echo "forwarding to: $p/sxmo_hook_block_suspend.sh"
|
||||||
|
"$p/sxmo_hook_block_suspend.sh"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user