#!/bin/bash
# 更新軟體庫
sudo apt update
# 安裝 xmodmap 和 numlockx
sudo apt install -y x11-xserver-utils numlockx
# 設定開機自動將 numlock 鍵設為 on
# 編輯或創建 ~/.xinitrc 檔案,確保 Num Lock 在登入時開啟
echo "numlockx on" >> ~/.xinitrc
# 使用 xmodmap 取消 numlock 按鍵的功能
xmodmap -e "keycode 77 = NoSymbol"
將這段程式碼儲存為 setup_numlock.sh,並賦予執行權限:
chmod +x setup_numlock.sh
可以在實體機上執行一個監控腳本,定期檢查虛擬機中的 Num Lock 狀態,並強制實體機保持一致。
#!/bin/bash
# 檢查並安裝 xdotool(若尚未安裝)
if ! command -v xdotool &> /dev/null; then
echo "xdotool 未安裝,正在安裝中..."
sudo apt-get update
sudo apt-get install -y xdotool
fi
# 持續監控 Num Lock 狀態
while true; do
# 獲取當前 Num Lock 狀態
numlock_status=$(xset q | grep "Num Lock:" | awk '{print $8}')
# 如果 Num Lock 為 off,則將其設為 on
if [ "$numlock_status" = "off" ]; then
xdotool key Num_Lock
echo "Num Lock 已被關閉,已重新開啟。"
fi
# 每秒檢查一次
sleep 1
done
設定開機自動執行
2. 將上述腳本內容儲存為 monitor_numlock.sh
3. 賦予執行權限:
chmod +x monitor_numlock.sh
sudo nano /etc/systemd/system/monitor_numlock.service
[Unit]
Description=Monitor Num Lock Status and Auto-enable if Disabled
After=graphical.target
[Service]
Type=simple
ExecStart=/path/to/monitor_numlock.sh
Restart=on-failure
User=your_username
[Install]
WantedBy=default.target
sudo systemctl daemon-reload
sudo systemctl enable monitor_numlock.service
sudo systemctl start monitor_numlock.service
sudo systemctl status monitor_numlock.service