1#!/bin/sh
2#
3# $NetBSD: script,v 1.7 2021/11/02 21:55:38 abs Exp $
4#
5
6#
7# Link this script to /etc/apm/{suspend,standby,resume,line,battery}
8# to play some sounds on suspend/resume, and enable/shutdown the
9# network card:
10#
11#   mkdir /etc/apm
12#   cp script /etc/apm/suspend
13#   cd /etc/apm
14#   for i in standby resume line battery ; do ln suspend $i ; done
15#   chmod a+x suspend standby resume line battery
16#
17# See apmd(8) for more information.
18#
19
20
21PATH=/usr/pkg/bin:/sbin:$PATH
22export PATH
23
24# Where some sound files are stored:
25S=/usr/pkg/share/kde/sounds
26
27# What my network card's recognized as:
28if=ne0
29
30LOGGER='logger -t apm'
31
32
33noise() {
34          if [ -f $1 ]; then
35                    audioplay -q -f -s 22050 -c 1 $1
36          fi
37}
38
39case $0 in
40*suspend)
41          $LOGGER 'Suspending...'
42          noise $S/KDE_Window_UnMaximize.wav
43          # In case some NFS mounts still exist - we don't want them to hang:
44          umount -a    -t nfs
45          umount -a -f -t nfs
46          ifconfig $if down
47          sh /etc/rc.d/dhcpcd stop
48          $LOGGER 'Suspending done.'
49          ;;
50
51*standby)
52          $LOGGER 'Going to standby mode ....'
53          noise $S/KDE_Window_UnMaximize.wav
54          # In case some NFS mounts still exist - we don't want them to hang:
55          umount -a    -t nfs
56          umount -a -f -t nfs
57          ifconfig $if down
58          sh /etc/rc.d/dhcpcd stop
59          $LOGGER 'Standby done.'
60          ;;
61
62*resume)
63          $LOGGER 'Resuming...'
64          noise $S/KDE_Startup.wav
65          sh /etc/rc.d/dhcpcd start
66          # mount /home
67          # mount /data
68          $LOGGER 'Resuming done.'
69          ;;
70
71*line)
72          # noise $S/KDE_Window_DeIconify.wav
73          $LOGGER 'Running on power line.'
74          mount -u -o atime,devmtime -A -t ffs
75          atactl wd0 setidle 0
76          ;;
77
78*battery)
79          # noise $S/KDE_Window_DeIconify.wav
80          $LOGGER 'Running on battery.'
81          mount -u -o noatime,nodevmtime -A -t ffs
82          atactl wd0 setidle 5
83          ;;
84
85esac
86
87exit 0
88