Portál AbcLinuxu, 5. prosince 2025 01:22
Aug 7 08:21:44 1201N martin: Touchpad is: Aug 7 08:21:44 1201N martin: Error in parsing synclient!!!
#!/bin/sh
case "$1" in
hotkey)
case "$3" in
00000037)
TOUCHPAD=`synclient -l | grep TouchpadOff | awk '{print $3}'`
logger "Touchpad: $TOUCHPAD"
case "$TOUCHPAD" in
0)
echo 0 > /sys/class/leds/eeepc::touchpad/brightness
synclient TouchpadOff=1
unclutter -idle 2 -root &
notify-send "Touchpad is OFF"
;;
1)
echo 1 > /sys/class/leds/eeepc::touchpad/brightness
synclient TouchpadOff=0
pkill unclutter
notify-send "Touchpad is ON"
;;
*)
logger "Error in parsing synclient !!!"
;;
esac
;;
*)
logger "Unknown Media Key: $1 / $2 / $3"
;;
..... atd, atd
#!/bin/sh
TOUCHPAD=`synclient -l | grep TouchpadOff | awk '{print $3}'`
echo $TOUCHPAD
Bolo by vhodne sem dat cely skript, tak ako je a nie len cast.
Ono to funguje, len si tam spravil chybu. Odkazujes na 3. (slovom treti) argument namiesto 2 v sekcii pre hotkey. :)
#!/bin/sh
# Default acpi script that takes an entry for all actions
minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
set $*
case "$1" in
hotkey)
# povodny zapis
# case "$3" in
case "$2" in
00000037)
TOUCHPAD=`synclient -l | grep TouchpadOff | awk '{print $3}'`
logger "Touchpad is: $TOUCHPAD"
case "$TOUCHPAD" in
0)
echo 0 > /sys/class/leds/eeepc::touchpad/brightness
synclient TouchpadOff=1
unclutter -idle 2 -root &
logger "Touchpad si ON"
;;
1)
echo 1 > /sys/class/leds/eeepc::touchpad/brightness
synclient TouchpadOff=0
pkill unclutter
logger "Touchpad is OFF"
;;
*)
logger "Error in parsing synclient!!!"
;;
esac
;;
*)
logger "Unknown mediakey $1 / $2 / $3 / $4"
;;
esac
;;
button/mute)
case "$2" in
MUTE)
logger "Mute button pressed: $2"
amixer set Master toggle
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
button/volumedown)
case "$2" in
VOLDN)
amixer set Master 2dB- unmute
;;
*)
logger "ACPI error volumedown"
;;
esac
;;
button/volumeup)
case "$2" in
VOLUP)
amixer set Master 2dB+ unmute
;;
*)
logger "ACPI Error volumeup"
;;
esac
;;
button/power)
case "$2" in
PBTN|PWRF)
logger "PowerButton pressed: $2"
poweroff
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
button/sleep)
case "$2" in
SLPB|SBTN)
echo -n mem >/sys/power/state
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
ac_adapter)
case "$2" in
AC|ACAD|ADP0)
case "$4" in
00000000)
echo -n $minspeed >$setspeed
#/etc/laptop-mode/laptop-mode start
;;
00000001)
echo -n $maxspeed >$setspeed
#/etc/laptop-mode/laptop-mode stop
;;
esac
;;
*)
logger "ACPI action undefined: $2"
;;
esac
;;
battery)
case "$2" in
BAT0)
case "$4" in
00000000)
logger 'Battery online'
;;
00000001)
logger 'Battery offline'
;;
esac
;;
CPU0)
;;
*) logger "ACPI action undefined: $2" ;;
esac
;;
button/lid)
case "$3" in
close)
logger 'LID closed'
;;
open)
logger 'LID opened'
;;
*)
logger "ACPI action undefined: $3"
;;
esac
;;
*)
logger "ACPI group/action undefined: $1 / $2 / $3 / $4"
;;
esac
# vim:set ts=4 sw=4 ft=sh et:
A mozno je to sprostost, co som napisal. Ale podstata je, ze by bolo viac nez vhodne skontrolovat, ake argumenty sa pouzivaju. Daj si tam kontrolne body, napr. echo $3 pred case a tak podobne, pripadne echo $@ alebo najlepsie obe.
synclient -l | grep TouchpadOff > /nekam/kde/lze/zapisovat/ttest1 2> /nekam/kde/lze/zapisovat/ttest1_err synclient -l > /nekam/kde/lze/zapisovat/ttest2 2> /nekam/kde/lze/zapisovat/ttest2_errpřed
TOUCHPAD=`synclient -l … a stisknout a juknout do těch souborů.case vypsal parametry, klidně třeba
echo "Vstupní parametry '$1' '$2' '$3'" > /nekam/kde/lze/zapisovat/ttest0Samozřejmně můžete všechno do jednoho souboru pomocí >> to už je na Vás.
/usr/bin/synclient, a vemte v potaz že ten acpi skript se pouští pod rootem.
export XAUTHORITY=/home/martin/.Xauthority export DISPLAY=":0"
ttest1_err a ttest2_err,synclient nastavuje touchpad pro X-ka a musí komunikovat z Xserverem a musí vědět komu to nastavuje, tedy i kterou xseesion, a v .xauthority je uložena cookie, přes kterou se synclient autorizuje vůči Xserveru a tím vlastně komunikuje pod rolí určenou v .xauthority a tím pádem nastaví touchpad pro vaši session.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.