-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathacpi-eeepc-generic-toggle-resolution.sh
60 lines (53 loc) · 1.9 KB
/
acpi-eeepc-generic-toggle-resolution.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
# Copyright 2009 Nicolas Bigaouette
# This file is part of acpi-eeepc-generic.
# http://code.google.com/p/acpi-eeepc-generic/
#
# acpi-eeepc-generic is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# acpi-eeepc-generic is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with acpi-eeepc-generic. If not, see <http://www.gnu.org/licenses/>.
. /etc/acpi/eeepc/acpi-eeepc-generic-functions.sh
tmp_xrandr="$EEEPC_VAR/lvds-modes"
if [ -e "$tmp_xrandr" ]; then
LVDS_XRANDR=$(cat $tmp_xrandr)
else
LVDS_XRANDR=$(xrandr > $tmp_xrandr)
fi
LVDS_MODES=$(cat $tmp_xrandr | grep -F -e LVDS -A 12 | grep [0-9]x[0-9] | grep -v -e LVDS | awk '{printf $1" "}')
LVDS_CURRENT=$(cat $tmp_xrandr | grep -F -e LVDS -A 12 | grep -F -e [0-9]x[0-9] -e "*" | awk '{print $1}')
function toggle_resolution {
for mode in $LVDS_MODES $LVDS_MODES; do
if [ "$mode" = "$LVDS_CURRENT" ]; then
NEXT=1;
elif [ "$NEXT" = "1" ]; then
xrandr -s $mode
eeepc_notify "Changing resolution to \"$mode\"" video-display
echo $mode > $EEEPC_VAR/resolution_saved
exit
fi
done
}
function restore_resolution {
if [ -e "$EEEPC_VAR/resolution_saved" ]; then
RESOLUTION=$(cat $EEEPC_VAR/resolution_saved)
xrandr -s $RESOLUTION
eeepc_notify "Changing resolution back to \"$RESOLUTION\"" video-display
fi
}
case $1 in
restore)
restore_resolution
;;
*)
toggle_resolution
;;
esac