Амперсанд. Это помещает Вашу команду в фоновом режиме, таким образом, можно продолжить вводить.
$> sudo updatedb &
При работе вперед, и через некоторое время Вы видите:
[1] 17403
И Ваш процесс сделан! Большой для вещей, где Вы не должны ожидать их для завершения.
Принятие Вашего GUI основано на X (как почти все графический интерфейсы пользователя UNIX), использовать xinput
.
Во-первых, перечислите свои устройства:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Windows mouse id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Windows keyboard id=7 [slave keyboard (3)]
Перечислите детали для своей мыши (id=6 в нашем примере):
$ xinput --list-props 6
Device 'Windows mouse':
Device Enabled (112): 1
Coordinate Transformation Matrix (114): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (222): 0
Device Accel Constant Deceleration (223): 1.000000
Device Accel Adaptive Deceleration (224): 1.000000
Device Accel Velocity Scaling (225): 10.000000
Теперь отключите его:
$ export DISPLAY=:0
$ xinput set-int-prop 6 "Device Enabled" 8 0
Для включения его, сделайте:
$ xinput set-int-prop 6 "Device Enabled" 8 1
То же идет для клавиатуры, просто замените число международной опоры надлежащим идентификатором.
Протестированный и работал над cygwin.
Конечно, необходимо ли запланировать заранее, как Вы включите свои устройства снова. такой как расписание это на кроне, повторно включите его удаленно или отключите только одного из них в первом месте.
Ваш ответ является, вероятно, лучшим для Вашего второго варианта использования (выполнение чего-то удаленно), но вероятно не для Вашего первого (быть вдали от клавиатуры). Как Вы выполнили бы xinput снова для восстановления доступа, когда Вы возвращаетесь?
Стандартное решение блокировки системы коротает время от него, XScreenSaver, который установлен по умолчанию в большинстве дистрибутивов. Если настроено для блокировки клавиатуры это запросит пароль прежде, чем разблокировать его.
В зависимости от Ваших аппаратных средств можно удалить модули, управляя аппаратными средствами. У меня есть такой сценарий, touchpadtoggle
, включить и отключить мою сенсорную панель.
lsmod | grep -q psmouse && rmmod psmouse || modprobe psmouse
Но клавиатура, кажется, не связывает модуль, и psmouse-модуль будет только иногда работать.
Если Вы используете Настольную среду или входите в менеджера, (GNOME, KDE, XFCE, LXDE), у почти всех их есть экранная функция блокировки, где необходимо ввести в пароле для возвращения к программам.
Однако, так как это действительно просто, я распознаюсь, Ваша проблема более сложна / отличающийся.
Вопрос, которому отвечают, с помощью xinput является правильным, но здесь является быстрым, если все, что Вы ищете, является простой блокировкой типа экранной заставки. Я записал обратно это в 90-х и все, что это делает, едят события клавиатуры X-сервера и события от нажатия мыши, пока Вы не вводите пароль. Никакая обратная связь вообще кроме выхода, когда Вы вводите его правильно.
http://ishiboo.com/~danny/Projects/xl/
Я использую его в качестве экранной блокировки, точно как Вы хотите использовать его.
xinput --set-int-prop
удерживается от использования. Необходимо использовать --set-prop
вместо этого. Кроме того, xinput --enable [device]
и xinput --disable [device]
может использоваться, чтобы включить и отключить устройства соответственно.
Вот сценарий оболочки, который я использую, чтобы включить, отключить, и переключить сенсорную панель моего ноутбука:
#!/bin/bash
# Enables, disables, or toggles device
device='AlpsPS/2 ALPS GlidePoint'
if [[ $1 == -e ]] ; then
# Enable
#xinput --set-prop "$device" "Device Enabled" 1
xinput --enable "$device"
elif [[ $1 == -d ]] ; then
# Disable
#xinput --set-prop "$device" "Device Enabled" 0
xinput --disable "$device"
elif [[ $1 == -t ]] ; then
# Toggle
if [[ $(xinput list-props "$device" |
grep "Device Enabled") == *:*1 ]] ; then
#xinput --set-prop "$device" "Device Enabled" 0
xinput --disable "$device"
else
#xinput --set-prop "$device" "Device Enabled" 1
xinput --enable "$device"
fi
else
echo "usage: $0 [-edt]"
fi
xinput --disable 9
.
– Emanuel Berg
31.12.2012, 00:13
Я записал это (в .zshrc
, но должен работать в .bashrc
также), чтобы сделать это, с помощью ответов выше. Чтобы сделать соответствие с клавиатурой, измените параметр в grep Mouse
.
setmouse () {
xinput \
$1 \
`xinput | grep Mouse | tr -d " " | tr "\t" " " | cut -d" " -f2 | cut -d"=" -f2`
}
offmouse () { setmouse disable }
onmouse () { setmouse enable }
По крайней мере, в системах на базе Debian, таких как Ubuntu, есть утилита под названием xtrlock (1)
, доступная в репозиториях пакетов.
Эта утилита блокирует клавиатуру и мышь до тех пор, пока не будет введён пароль, оставляя видимыми окна. Я нахожу ее полезной для компьютеров, на которых запущены информационные дисплеи и тому подобное.
xinput set-int-prop 9 "Device Enabled" 8 0
- только, 1) я хотел бы скрыть указатель мыши также и 2) если я иду от X до tty (Linux console/VTs), и затем обратно к X, это сбрасывается (xinput list-props 9
подтверждает это). – Emanuel Berg 31.12.2012, 00:11