在其他操作系统上没有问题。标准 PC 的默认预期行为是:
- NumLock在 bios 中设置初始状态
- 在引导加载程序中保持不变
- 登录屏幕保持不变
- 它在桌面会话中保持不变,直到你故意地更改。
因此,这似乎是一个问题,在某些“恶意”代码中,它会在启动过程中强制禁用它。问题是:是什么原因造成它的失效?什么二进制文件?或者什么源文件?我是否可以至少在本地从我的机器上删除它,以阻止 UbuntuNumLock在启动时更改状态?
或者也许这是一个调整,如Troubleshooting features
> [V] Force disable num lock at boot
,偶尔默认启用?
我进行了一些搜索,发现:
- 官方信息已过时。Ubuntu 18.04 LTS 中的“设置”中没有这样的菜单。
- 几条线索,这里和那里,也没有回答病情所在。
- 安装和使用
numlockx
只是个存根。为什么我们需要禁用(最初启用)它NumLock,然后使用其他软件来重新启用它?这样的建议听起来确实像是“概念上错误”的东西。
您能帮忙找出病源在哪里以及如何对抗它吗?
答案1
Ubuntu 20:
所有相同的推理都适用,但具体的键/值已经改变
org.gnome.desktop.peripherals.keyboard remember-numlock-state true
org.gnome.desktop.peripherals.keyboard numlock-state false
答案2
对于 Ubuntu Gnome 18.04+
当您在登录屏幕时,活动用户 ID 为gdm
(Gnome Desktop Manager)。要更改该配置文件,请使用您自己的用户 ID 登录并使用:
sudo -i
xhost +SI:localuser:gdm
su gdm -s /bin/bash
gsettings set org.gnome.settings-daemon.peripherals.keyboard numlock-state 'on'
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
更多选择:
对于 Ubuntu Unity 16.04+
安装该程序numlockx
:
$ sudo apt update && sudo apt install numlockx
$ numlockx -h
NumLockX 1.2
(C) 2000-2001 Lubos Lunak <[email protected]>
(C) 2001 Oswald Buddenhagen <[email protected]>
Usage: numlockx [on|off|toggle|status]
on - turns NumLock on in X ( default )
off - turns NumLock off in X
toggle - toggles the NumLock on and off in X
status - gets the NumLock status
下一步是在登录屏幕期间运行它:
$ locate 50-unity-greeter.conf
/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
$ sudo -H gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
在文件底部添加:
greeter-setup-script=/usr/bin/numlockx on
保存文件并再次登录。
当一切都失败时
numlockx
按照上面所示安装。然后
$ sudo -H gedit /etc/rc.local
在文件底部添加:
/usr/bin/numlockx on
保存文件并重新启动。
答案3
我实际上是想禁用数字锁定,但这也可能强制启用情况。
我numlockx
通过运行安装:
sudo apt install numlockx
并设置默认状态/etc/default/numlockx
:
# Configuration file for numlockx
# State of numlog on start of X session
# Accepts following options:
# auto - turns numlock on unless ran on laptop
# on - turns numlock on
# off - turns numlock off
# keep - does not change numlock state
# toggle - toggles numlock state
NUMLOCK=off
虽然这是一种强力手段,但却有效。