Я не уверен, как можно сделать set
распечатайте только переменные. Однако путем рассмотрения вывода set
, Я смог придумать следующий, который, кажется, захватывает просто переменные:
$ set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+="
В основном я ищу строки, которые запускаются с букв, чисел или пунктуации, сопровождаемой "=". От вывода, который я видел, это захватывает все переменные; однако, я сомневаюсь, что это очень портативно.
Если, как Ваш заголовок предполагает, Вы хотите вычесть из этого списка переменные, которые экспортируются и таким образом получают список неэкспортируемых переменных, то Вы могли сделать что-то вроде этого
$ set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+=" | sort > ./setvars && env | sort | comm -23 ./setvars -
Для разрушения этого немного вот то, что это делает:
set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+=" | sort > ./setvars
: Это, надо надеяться, получает все переменные (как обсуждено прежде), сортирует их и засовывает результат в файл.&& env | sort
: После того, как предыдущая команда завершена, мы собираемся звонить env
и вид его вывод.| comm -23 ./setvars -
: Наконец, мы передаем отсортированный вывод по каналу env
в comm
и используйте -23
опция распечатать строки, которые уникальны для первого аргумента, в этом случае строки, уникальные для нашего вывода от набора.Когда Вы сделаны, Вы могли бы хотеть к очистке временный файл, который она создала с командой rm ./setvars
Первая вещь, которую мы должны выполнить, выключает мышь, но только в X. Для этого мы могли использовать xinput
.
Мы должны обнаружить устройства ввода данных, которые подключены к компьютеру (к X-серверу):
pbm@tauri ~ $ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ A4Tech USB Mouse id=10 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
[...]
Устройство, которое мы должны использовать, A4Tech USB Mouse
с id=10
. Затем мы должны проверить свойства того устройства:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Для выключения устройства, мы должны изменить свойство Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Включать его:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
Следующая вещь состоит в том, чтобы сделать это автоматически... ;) В этом примере мы будем отключать мышь сочетанием клавиш и включать его путем нажатия оставленный + правая кнопка мыши.
Для этого мы могли использовать actkbd - клавиатура (но не только) демон ярлыка, который работает за пределами X-сервера.
Сначала мы должны создать пустой конфигурационный файл для actkbd: touch /etc/actkbd.conf
. Следующая вещь состоит в том, чтобы обнаружить устройства, подключенные к компьютеру:
pbm@tauri ~ $ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10
[...]
В этой части, самой интересной для использования, имена и обработчики устройств клавиатуры и мыши.
Сначала мы обрабатываем выключение мыши сочетанием клавиш, таким образом, мы должны обнаружить ключевые идентификаторы:
pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `
Когда мы знаем то, что является идентификаторами ключей, мы должны поместить их в файл конфигурации (/etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Для проверения его, мы должны работать actkbd
в режиме демона:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
Таким же образом мы должны обработать, "включают" событие:
actkbd
actkbd.conf
Рабочие демоны могли быть поняты как init сценарий или автоматически выполненный сценарий в среде.
К автоматическому выключению мыши мы могли контролировать устройство ввода данных (cat /dev/input/event5
) и выключите его, когда не будет никакого входа...
Я надеюсь, что мое короткое введение поможет Вам... ;)
Вы попробовали "апплет панели Gnome" Получения Указателя?
Указатель мыши может быть заблокирован в область экрана, таким образом, манипулятор свободен для других задач. Например, эта возможность позволяет powerchair пользователю управлять и powerchair и указателем мыши с единственным powerchair джойстиком
Апплет панели Pointer Capture создает такую область на панели, в которую пользователь может заблокировать указатель, пока не выпущено решительным способом.
Апплет панели Pointer Capture может быть установлен путем щелчка правой кнопкой по строке меню GNOME Desktop / системная панель, выбор Добавляет к Панели, выбор Pointer Capture и нажимая кнопку Add
В случае, если описание из gnome.org не является четким, это создаст область в панели, где, когда мышь входит (или Вы clic), курсор исчезнет и не вновь появится, пока определенное действие не происходит, например, второй щелчок. Походит точно, в чем Вы нуждаетесь?
Alt + F1
открываться меню приложений. Я не знаю то, что вызвало это. Я - пользователь человечности.
– balki
04.08.2011, 20:17
actkbd
! После регистрации моего вопроса, я уже выяснил для использованияxinput
, но я не узнал, как я повторно включу мышь путем нажатия кнопок мыши. – igor 06.12.2010, 12:12