상태:NumLock 상태를 실제로 모니터링하는 것이 아니라 1초마다 켜는 스크립트가 있습니다. 스크립트는 백그라운드에서 실행됩니다.
추리:실수로 NumLock을 닫는 경우가 많습니다. 그리고 키보드에는 NumLock 상태 표시등이 없습니다.
운영 체제, 독일어, DM, WM xmodmap
:
$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18 Sarah
Release: 18
Codename: sarah
echo $DESKTOP_SESSION
cinnamon
cat /etc/X11/default-display-manager
/usr/sbin/mdm
wmctrl -m | head -n 1
Name: Mutter (Muffin)
xmodmap -pm
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
내 원래 Bash 스크립트는 다음과 같습니다.
#!/bin/bash
while true
do
numlockx on
sleep 1s
done
보시다시피 스크립트는 NumLock의 현재 상태에 관심이 없습니다. 계속해서 열리네요.
표적:대본이 어느 정도는 됐으면 좋겠다고 생각했어요CPU 효율성.
질문:가장 많은 것은 무엇입니까?CPU 효율성Linux(Mint 18)에서 NumLock이 켜져 있는지 확인하는 방법은 무엇입니까?
답변1
아니요, 이는 효율적이지 않습니다. 문제는 NumLock 상태를 쿼리하는 비용이 NumLock 상태를 설정하는 비용과 동일하다는 것입니다. 따라서 상태를 설정하기 전에 쿼리하려고 하면 로드가 두 배로 늘어납니다.
포크/실행 및 해석 비용을 피할 수 있으므로 컴파일된 C 코드를 작성하면 상황이 조금 더 나아질 수 있지만 여전히 끔찍한 해킹입니다.
당신이 할 수 있는 일은 NumLock을 켜기로 설정한 다음 NumLock 키를 비활성화하는 것입니다(또는 원하는 것이 숫자 키패드가 항상 숫자라면 그 상태를 무시할 수도 있습니다).
이것 좀 봐슈퍼유저 게시물자세한 방법xmodmap(1).
답변2
가장 CPU 효율적인 접근 방식은 NumLock
사용을 비활성화하는 것입니다. 그러면 xmodmap
상태를 전혀 폴링할 필요가 없습니다. NumLock
즉, CPU 시간이 전혀 사용되지 않습니다. 이는 다음을 통해 수행할 수 있습니다.
xmodmap -e "remove mod2 = Num_Lock"
다시 사용하고 싶다면 다음 명령어로 열어주세요
xmodmap -e "add mod2 = Num_Lock"
또는 ~/.Xmodmap
비슷한 줄이 포함된 파일을 만들고 X 시작이 이 파일을 읽는지 확인하십시오(일부 최신 데스크탑 환경에서는 읽지 않음).
man xmodmap
자세히보다.