Автор Тема: Команда за изключване на Touchpad?  (Прочетена 9539 пъти)

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Ще бъда благодарен, ако някой сподели команди за изкл./вкл. на touchpad и монитор. Ако има начин при закачане на мишка touchpad-а да се изключва сам, би било чудесно.   Става въпрос за DELL INSPIRON и Ubuntu 12.04.

Поздрави.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #1 -: Nov 05, 2012, 15:03 »
За touchpad-а можеш да ползваш командата
Цитат
xinput list
за да видиш id-то на touchpad-а (няма да е нужно да го правиш всеки път, id-то няма да се сменя), след което, за да го забраниш ще ползваш командата
Цитат
xinput --set-prop ID "Device Enabled" 0
а за да го позволиш
Цитат
xinput --set-prop ID "Device Enabled" 1
Замести ID с id-то на touchpad-а.
За да не изпълняваш тези команди ръчно всеки път, когато включиш или изключиш външната мишка, си ги вкарай в скрипт, и укажи този скрипт да се изпълнява във файла /etc/udev/rules.d/85-synaptics.rules. Пример за съдържанието на този файл с описано изпълнението на скрипта
Цитат
SUBSYSTEM=="usb", SYSFS{product}=="*Mouse*"
ACTION=="add", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/път/до/скрипта/при/включване"
ACTION=="remove", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/път/до/скрипта/при/изключване"
Тук вариантите за изпълнението на двете команди при двата случая се разделят на два - или да направиш отделни скриптове за всяка от командите за включване и за изключване, или да вкараш и двете команди в един скрипт, в който някакво условие да проверява коя от двете команди трябва да се изпълни.
За монитора случаят предполагам, че ще е подобен (даже командите ще влязат в същия скрипт), но трябва да кажеш каква точно ти е целта. Ако само искаш да приспиш монитора, когато включиш мишката, командата е
Цитат
xset dpms force off
Но имай предвид, че това е само заспиване - всяко действие с мишка, клавиатура, touchpad или там нещо подобно, ще го събуди. Или искаш перманентно изгасване на монитора, тъй като връзването на външна мишка е последвано от връзването и на външен монитор, та вграденият да не се пречка? Тук ще има играчка с настройките на X.org и зависимости от видео драйвера. Все ми се струва, че някъде в системните настройки на Ubuntu трябва да има такава настройка, но не гарантирам. Опиши точната ти цел за монитора и ще видим.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #2 -: Nov 05, 2012, 20:38 »
Ами аз мислех командите да ги вържа към някаква клавишна комбинация. Примерно: слушам музика и съм на батерия, ако изключа монитора би трябвало да има голямо значение за батерията. Как се прави, при натискане на ctrl+м  изключва монитора и после пак ctrl+m включва монитора.
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8792
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #3 -: Nov 05, 2012, 20:44 »
То за т'ва си служи Fn и F3.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #4 -: Nov 05, 2012, 20:44 »
това е изхода от xinput list. Кое трябва да е ID na touchpad?


iggeorgiev@Ivan-Inspiron-N5110:~$ xinput list
⎡ Virtual core pointer                       id=2   [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                 id=4   [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                         id=13   [slave  pointer  (2)]
⎜   ↳ Genius Optical Mouse                       id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                      id=3   [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                id=5   [slave  keyboard (3)]
    ↳ Power Button                               id=6   [slave  keyboard (3)]
    ↳ Video Bus                                  id=7   [slave  keyboard (3)]
    ↳ Video Bus                                  id=8   [slave  keyboard (3)]
    ↳ Power Button                               id=9   [slave  keyboard (3)]
    ↳ Sleep Button                               id=10   [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD                id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard               id=12   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                           id=14   [slave  keyboard (3)]
iggeorgiev@Ivan-Inspiron-N5110:~$
Активен

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #5 -: Nov 05, 2012, 20:45 »
Fn+f3 при мен не работи.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #6 -: Nov 05, 2012, 23:32 »
Хмм... интересно наистина кое ти е touchpad-а. Явно ще го търсиш с проби - с горните две команди за забраняване и позволяване пробваш различни id-та, докато намериш това на touchpad-а. По принцип би трябвало да е в секцията "Virtual core pointer". Едва ли е "Virtual core XTEST pointer" - това по принцип е системен виртуален запис, не е обвързан с хардуер. Това "Genius Optical Mouse" звучи като външна оптична мишка (можеш да пробваш с вкарване и изкарване на външната мишка), а "PS/2 Generic Mouse" изглежда като създаден запис пак от системата (по-точно от модула за мишка към ядрото) и може да не е обвързано директно с хардуер... Пробвай и трите едно по едно и гледай при някое ще спре ли да се движи курсора от touchpad-а. В секцията "Virtual core keyboard" няма (а и не би трябвало да има) интересни записи по въпроса, освен ако "AT Translated Set 2 keyboard" не се отнася едновременно и за клавиатурата ти, и за touchpad-а ти, което би било гадничко (не би трябвало да са с едно и също id, дори и някъде да минават през един и същи хардуер, ама знам ли какви ги вършат китайците), и ще трябва да забравиш за забрана на touchpad-а чрез xinput. Ако опреш до чуденка дали въпросното id=12 не се отнася и за клавиатурата, и за touchpad-а, може да пробваш със следната команда
Цитат
sleep 2 && xinput --set-prop 12 "Device Enabled" 0 && sleep 30 && xinput --set-prop 12 "Device Enabled" 1
и пробвай в тези 30 секунди (след като изчакаш първите 2 секунди), когато клавиатурата ще е блокирана, да движиш мишката с touchpad-а. В края на изпълнението командата ще позволи клавиатурата. Слагам първоначалното чакане от 2 секунди, за да не ти се блокира клавиатурата с натиснат Enter.
За монитора значи ти е достатъчно нормално заспиване на монитора с xset командата, която ти показах по-горе, само добави и един sleep, щом мислиш да го правиш от клавиатурата, за да не ти попречи отпускането на натиснатите клавиши на заспиването на монитора. Демек
Цитат
sleep 1 && xset dpms force off
Задаването на клавишни комбинации, които да изпълняват някакви команди, е добре да го зададеш в настройките на графичната среда. Как става това в твоята графична среда и дали въобще има настройки за това ще ти кажем, след като кажеш каква ти е графичната среда и каква е клавишната комбинация, която би искал да зададеш.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

longus

  • Напреднали
  • *****
  • Публикации: 34
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #7 -: Nov 06, 2012, 00:21 »
Здравей! Аз използвам syndaemon. Временно спира тъчпада. Разгледай параметрите на командата!
При мен „syndaemon -td" върши необходимата работа.
Активен

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #8 -: Nov 06, 2012, 16:34 »
Оказа се, че touchpad-a е представен като PS/2 Generic Mouse. xinput --set-prop 14 "Device Enabled" 0 - върши идеална работа.

За монитора, въпросът ми е, не как да се направи клавишна комбинация, а една и съща комбинация, напр. ctrl+m да изключва и включва?


Активен

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #9 -: Nov 06, 2012, 16:47 »
Netter,
извинявай, сега видях че си писал, че след     sleep 1 && xset dpms force off  , мониторът се активира при размърдване на мишката. Сигурно ли е че консумацията на ток от монитора е равна на 0?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #10 -: Nov 06, 2012, 17:39 »
Мониторът ще се активира не само при размърдване на мишката, но и при натискане на клавиш от клавиатурата. В случая не ти трябва скрипт, изпълняващ и двете действия (заспиване и събуждане). Ако питаш за логиката как по принцип би могло да стане, то начинът е с проверка на някакво условие, което да определя коя команда да се изпълни. В случая, можеше например да проверяваме какво е текущото състояние на монитора с "xset q". Например
Цитат
if [ $(xset q | awk '/Monitor is/ {print $3}') == 'On' ]; then
   xset dpms force off
else
   xset dpms force on
fi
Вече, какво ще е точното условие в if-а зависи от конкретната нужда.
За консумацията в заспало състояние... Самото заспало състояние има три режима - standby, suspend и off. Режимът "off" спестява най-много енергия, но е възможно при някои монитори събуждането да е малко по-бавно. Режимът "standby" спестява най-малко енергия, но и събуждането е най-бързо. В командите досега съм ти давал режимът "off", който явно ще те удовлетвори най-много. Възможно е да има монитори, които харчат 0 в това състояние, но при повечето монитори не е кръгла нула. В спецификацията на твоя монитор би трябвало да пише колко харчи в режим "off", но принципно, ако говорим за средностатистическо LCD, консумацията е под 1. Не е като да е 0, но е достатъчно малко, за да не го усетиш в сметката си за ток. Е, ако гледаме зелената страна на въпроса, най-хубаво си е пълно изключване на монитора (от копчето и контакта), но на лаптопа едва ли имаш такова копче :)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #11 -: Nov 06, 2012, 19:01 »
И аз да дам 5 стотинки :) Във fluxbox имам следното в ~/.fluxbox/keys
Код:
Mod1 q :Exec sleep 0.3 && xset dpms force off
С ALT+Q си гася дисплея. Видях че сте го дали с 1 секунда закъснение, при мен нямам спомен защо съм го сложил 0.3 и дали наистина sleep хваща float values :)
Активен

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #12 -: Nov 06, 2012, 19:10 »
man sleep
Цитат
Unlike most implementations that require NUMBER be an integer, here  NUMBER  may  be  an  arbitrary floating  point  number.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

iggeorgiev

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
Re: Команда за изключване на Touchpad?
« Отговор #13 -: Nov 06, 2012, 19:11 »
И аз точно си мислех, защо просто не само сложили едно копче, при положение, че без монитор сигурно ще искара 1ч. повече на батерия.

Темата може да я маркирате като решена.

Поздрави.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Команда за изключване на Touchpad?
« Отговор #14 -: Nov 06, 2012, 19:52 »
Видях че сте го дали с 1 секунда закъснение, при мен нямам спомен защо съм го сложил 0.3 и дали наистина sleep хваща float values :)
dejuren вече ти е отговорил, че се поддържат и такива стойности. Аз само да допълня историята защо ползвам "sleep 1" при тази команда. Преди време с едно такова скриптче при клавишна комбинация забелязах, че понякога (не беше всеки път) мониторът се включва пак, миг след като е угаснал. Имах предположения, че аз го събуждам, когато в тези случаи малко по-бавно съм отпуснал клавишите, сложих му точно такъв sleep (къде ще си играя с дробни числа при тази проба) и вече нямаше проблем, но се зарових да почета само на това ли се дължи. Тук попаднах на съвет, където пак са дали пример със "sleep 1", за да работи коректно заспиването, и така си го и оставих. Няма никакъв проблем да се зададе и по-малка, и по-голяма стойност, определя се от бързината или флегматичността на човека, който ще го ползва :) На мен една секунда ми покрива всички случаи на флегматичност (стига да не заспя върху клавиша), и тази една секунда не ме дразни. Субективна преценка ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти