Как я могу использовать клавишу Scroll Lock для переключения подсветки на моей клавиатуре?

Не беспокойтесь всей этой проблемой. Просто yum install R; это находится в репозитории EPEL, который необходимо уже использовать.

4
13.04.2017, 15:36
2 ответа

(Этот ответ аналогичен ответу @ user18096, так как он создает сценарий вокруг ответа @ Jander.)

Я написал сценарий psig , чтобы взять PID (или все PID) и создать считываемый человеком вывод из сигнальных масок в /proc/< PID >/status

Пример вывода:

% ./psig -a
[     1] Signals Queued: 8/773737
[     1] Signals Pending:
[     1] Signals Pending (Shared):
[     1] Signals Blocked:
[     1] Signals Ignored: SIGPIPE
[     1] Signals Caught: SIGHUP,SIGINT,SIGABRT,SIGUSR1,SIGSEGV,SIGALRM,SIGTERM,SIGCHLD,SIGPWR
...
[ 31001] Signals Queued: 0/773737
[ 31001] Signals Pending:
[ 31001] Signals Pending (Shared):
[ 31001] Signals Blocked: SIGHUP,SIGINT,SIGQUIT,SIGILL,SIGTRAP,SIGABRT,SIGBUS,SIGFPE,SIGUSR1,SIGUSR2,SIGPIPE,SIGALRM,SIGTERM,SIGSTKFLT,SIGCHLD,SIGCONT,SIGTSTP,SIGTTIN,SIGTTOU,SIGURG,SIGXCPU,SIGXFSZ,SIGPROF,SIGWINCH,SIGIO,SIGPWR,SIGSYS,SIGRTMIN,SIGRTMIN+1,SIGRTMIN+2,SIGRTMIN+3,SIGRTMIN+4,SIGRTMIN+5,SIGRTMIN+6,SIGRTMIN+7,SIGRTMIN+8,SIGRTMIN+9,SIGRTMIN+10,SIGRTMIN+11,SIGRTMIN+12,SIGRTMIN+13,SIGRTMIN+14,SIGRTMIN+15,SIGRTMAX-14,SIGRTMAX-13,SIGRTMAX-12,SIGRTMAX-11,SIGRTMAX-10,SIGRTMAX-9,SIGRTMAX-8,SIGRTMAX-7,SIGRTMAX-6,SIGRTMAX-5,SIGRTMAX-4,SIGRTMAX-3,SIGRTMAX-2,SIGRTMAX-1,SIGRTMAX
[ 31001] Signals Ignored: SIGHUP,SIGINT,SIGQUIT,SIGPIPE,SIGXFSZ
[ 31001] Signals Caught: SIGBUS,SIGUSR1,SIGSEGV,SIGUSR2,SIGALRM,SIGTERM,SIGVTALRM

Предостережения:

  • Этот является специфическим ответом для Linux.
  • Для запуска скрипта может потребоваться относительно новая версия Python, она использует с и OrderedDict .
-121--5025-

Существует проект мониторинга журнала с открытым исходным кодом с именем Log.io . Если я правильно понимаю ваш вопрос, он делает именно то, что вы хотите («в реальном времени» веб-мониторинг и анализ журналов сервера, с возможностями фильтрации), и он основан на node.js, поэтому он, скорее всего, будет легче интегрироваться с вашим проектом.

Другая распространенная платформа мониторинга/анализа журналов, которую вам может быть интересно просмотреть, - Nagios .

Вам, вероятно, не нужно писать собственное приложение для мониторинга журналов, и даже если вы решите сделать это, просмотр кода вышеупомянутых проектов, вероятно, предоставит вам несколько хороших примеров того, как написать собственное программное обеспечение для мониторинга журналов.

-121--243015-

Обнаружил это после поиска аналогичной проблемы. Так как мне год, я могу ответить на него в любом случае.

Как и в вопросе, если вы используете xset led с именем «Scroll Lock» , это активирует lds, а xset с именем «Scroll Lock» отключит led клавиатуры. При проверке xset --help упоминается, что xset q распечатывает текущую информацию о состоянии.

Вот усеченный образец stdout в терминале:

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000002
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off

Строка Scroll lock: off будет присутствовать в выходных данных только тогда и только тогда, когда Scroll Lock выключен, поэтому мы можем использовать grep для проверки этой последовательности. xset q | grep «Scroll Lock: off» отлично работает для наших целей. Затем в сценарии оболочки мы можем проверить пустую последовательность, чтобы увидеть, когда она включена.

#!/bin/sh

result=$(xset q | grep "Scroll Lock: off")
if [ -z "$result" ]; then # Scroll Lock must be on
  echo "Off"
  xset -led named "Scroll Lock"
else
  echo "On"
  xset led named "Scroll Lock"
fi

Затем, если вы хотите, просто используйте диспетчер окон или конфигурацию среды рабочего стола, чтобы выполнить этот сценарий, когда вы нажимаете на блокировку прокрутки.

3
27.01.2020, 20:55

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

#!/usr/bin/env bash
if [[ $EUID -ne 0 ]]; then
    echo "this program requires root user" 2>&1
    exit 1
fi

dir1=$(find /sys/devices/ -name brightness | grep scrolllock)
while :
do
    var1=`cat $dir1`
    if [ $var1 == 0 ] ; then
        echo 1 > $dir1
    fi
    sleep 5
done

Я использую это в корневом crontab

@reboot sh ~/sh/backlight.sh &
1
27.01.2020, 20:55

Теги

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