Программа командной строки для управления скоростью трекпоинта, чувствительностью и т. Д. & Hellip; без перезапуска сеанса

Я нахожусь на Ubuntu 14.04 и Thinkpad T520. Это решение работает для установки значений после перезапуска, но я хотел бы иметь возможность устанавливать и получать значения на лету.

Примечание: я уже создал скрипт bash , чтобы сделать это после некоторого бесплодного исследования, поэтому я создаю этот вопрос на случай, если он кому-нибудь поможет.

1
задан 13 April 2017 в 15:24

1 ответ

Ниже сценарий удара, который я сделал для устанавливания значений на лету. Для использования поместите сценарий в ~/bin/trackpoint (пользовательское мусорное ведро) или/usr/bin/trackpoint (глобальное мусорное ведро) и сделайте это исполняемым файлом.

  • trackpoint <option> получить значение
  • trackpoint <option> <value> устанавливать значение
  • trackpoint --values для списка всех значений опции
  • trackpoint --help для списка опций (просто список файлов в $tp_root).

Протестированный на Ubuntu 14.04. Вызовы sudo записать значения в файл.

#!/bin/bash
# trackpoint
# Gets or sets a trackpoint configuration option
# Example - get sensitivity:
#    trackpoint sensitivity
# Example - set sensitivity to 160:
#    trackpoint sensitivity 160

# tp_root locator command from http://askubuntu.com/a/144185/151944
tp_root=`find /sys/devices/platform/i8042 -name name | xargs grep -Fl TrackPoint | sed 's/\/input\/input[0-9]*\/name$//'`

option=$1
value=$2
me=`basename $0`
fail() { echo "Error: $@" 1>&2; exit 1; }

[ -d ${tp_root} ] || fail "Invalid tp_root: ${tp_root}"

option_list=`find ${tp_root} -maxdepth 1 -type f -printf '%f '`;
[ ${option} ] || fail "please provide an option to set or get. Option must be one of: ${option_list}"
[[ ${option} == *--help*  ]] && { echo -e "Usage: ${me} option_name [value_to_set]\n\nGets or sets a trackpoint option.\n\nTo get a list of all values use:\n   ${me} --values\n\nAvailable options:\n   ${option_list}"; exit 0; }
[[ ${option} == *--values* ]] && { for f in `find ${tp_root} -maxdepth 1 -type f -printf '%f '`; do { echo $f; echo "   $(cat ${tp_root}/${f})"; } done; exit 0; }

file="${tp_root}/${option}"
[ -f ${file} ] || fail "option must be one of: ${option_list}"


[ -z ${value} ] && { cat ${file}; exit 0; }

[ ${value} -gt 255 ] && fail "$option cannot be greater than 255"

echo -n ${value}| sudo tee ${file}

echo ""
2
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: