状態: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 状態を設定するコストと同じであることです。したがって、状態を設定する前に照会しようとすると、負荷が2倍になります。
フォーク/実行と解釈のコストを避けることができるので、コンパイルされた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
詳細より。