Я использую lubuntu. Я хочу добавить, что ярлык на переключатель (включает и выключает) мою сенсорную панель.
Я знаю, что должен отредактировать XML-файл в ~/.config/openbox (в моем случае, это - lubuntu-rc.xml), как описано здесь и здесь
Я хочу, чтобы это инициировало его, когда Fn и F5 нажимаются (на моей лощине существует значок сенсорной панели на нем, таким образом, я предполагаю, что это инициировало также x86 keybind, не знайте, имеет ли это значение),
на моей машине
synclient TouchPadOff=1
выключает сенсорную панель, и
synclient TouchPadOff=0
включает его снова.
Команда
synclient
без любых опций, возвращает этот список
Parameter settings:
LeftEdge = 300
RightEdge = 1700
TopEdge = 210
BottomEdge = 1190
FingerLow = 12
FingerHigh = 15
MaxTapTime = 180
MaxTapMove = 107
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 141
EmulateTwoFingerMinW = 7
VertScrollDelta = 48
HorizScrollDelta = 48
VertEdgeScroll = 1
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 0
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0819336
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 0
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 100
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 15
PressureMotionMaxZ = 80
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 12
VertHysteresis = 12
ClickPad = 0
как Вы видите, существует строка "TouchpadOff = 0".
Таким образом, то, что я в основном прошу, является кем-то, кто знает, как работать grep и регулярные выражения, чтобы сказать мне, как записать сценарий оболочки, который читает вывод snyclient и выполняет "synclient TochPadOff=0" или "synclient TochPadOff=1" соответственно.
Если найдено этот сценарий, который делает что-то очень похожее, но я - struggeling на grep части.
Если найдено универсальный сценарий переключателя, но я думаю, захватывая информацию, является более чистым.
Я также уже знаю, как связать сценарий оболочки с keyboardshortcut от того примера.
помогите значительно ценивший.
Это работает на меня:
#!/bin/sh
TOGGLE=$HOME/.toggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchPadOff=1 &
else
rm $TOGGLE
synclient TouchPadOff=0 &
fi
exit 0
, кажется, нет потребности в grep
. Кроме того, я не слишком уверен, что Openbox нравится Fn в любом rc.xml, но см. ответ Nivatius для того, как использовать нажатия клавиш, включающие Fn . Я только когда-либо использовал , Супер , Управление , Высокий звук и Сдвиг . Я могу связать тот сценарий с Управление + Сдвиг + F5 , например.
<keybind key="C-S-F5"> # Toggle touchpad
<action name="Execute"><command>/home/dkb/bin/toggle-touchpad</command></action>
</keybind>
Я согласился на это решение:
файл конфигурации сценария
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.
TOGGLE=$HOME/.touchpadtoggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchpadOff=1
else
rm $TOGGLE
synclient TouchpadOff=0
fi
<!-- toggle touchpad with fn key fn+F5 -->
<keybind key="XF86TouchpadToggle">
<action name="Execute">
<command>~/scripts/touchpadtoggle.sh</command>
</action>
</keybind>
путь в команде, конечно, должен указать на Ваш сценарий
, я использовал xev для обнаружения кода XF fn+F5:
выполняет xev, нажимают клавишу Fn, и F5 затем закрывают всплывающее окно, прокручивают в долгом выводе и высматривают код клавиши.
Вот то, что я поместил в свой ~/.config/openbox/lubuntu-rc.xml
<keybind key='XF86TouchpadToggle'>
<action name='Execute'>
<command>bash -c "synclient TouchpadOff=$(expr \( $(synclient | grep TouchpadOff | cut -d = -f 2) + 1 \) % 2)"</command>
</action>
</keybind>
КОММЕНТАРИЙ
synclient
(второй): перечисляет фактические параметры
grep
: выберите строку, относящуюся к Сенсорной панели
cut -d = -f 2
: получите только часть после "="
expr \( ... + 1 \) %2
: инкремент 1 и получает напоминание подразделения 2 (т.е. переключите 0/1),
synclient TouchpadOff=
: установите TouchpadOff на результат вышеупомянутых
bash -c "..."
: удостоверьтесь, что все вышеупомянутое выполняется в оболочке удара.
Таким образом, мне не нужен отдельный сценарий оболочки. Но можно легко поместить все в сценарий, если Вы предпочитаете.