当前位置: 代码网 > 服务器>服务器>Linux > Linux xset命令怎么用?X11用户偏好设置工具全解析

Linux xset命令怎么用?X11用户偏好设置工具全解析

2026年08月24日 Linux 我要评论
快速参考:xset 是x window 系统的用户偏好设置工具,用于控制键盘铃声、鼠标加速度、屏幕保护、显示器电源管理(dpms)、字体路径等 x 服务器参数。它通常在 ~/.xinitrc 或 ~/

快速参考

xsetx window 系统的用户偏好设置工具,用于控制键盘铃声、鼠标加速度、屏幕保护、显示器电源管理(dpms)、字体路径等 x 服务器参数。

它通常在 ~/.xinitrc~/.xprofile 中配置,是传统 x11 桌面环境定制的核心命令

现代桌面环境(gnome/kde)通过各自的设置面板管理这些选项,但 xset 在轻量级窗口管理器(i3、dwm、openbox)和自动化脚本中仍然不可或缺。

简介

x 服务器维护一系列运行时参数,影响用户与图形界面交互的体验。

xset 是修改这些参数的命令行工具,覆盖四个主要领域:

  1. 键盘(keyboard):按键音量、按键重复速率、铃声设置
  2. 鼠标(mouse):加速度阈值、加速度值
  3. 屏幕(screen):屏幕保护(screen saver)、dpms 电源管理
  4. 显示(display):字体路径、像素颜色.图

安装方式

# debian/ubuntu
$ sudo apt-get install x11-xserver-utils

# rhel/centos/fedora
$ sudo yum install xorg-x11-server-utils    # rhel 7
$ sudo dnf install xorg-x11-server-utils    # fedora / rhel 8+

# 验证安装
$ which xset
/usr/bin/xset

语法

xset [选项] [参数...]

选项分类

键盘(keyboard/bell)参数

参数说明
b [on/off]控制铃声总开关
b [音量] [音高] [持续时间]设置铃声参数:音量(0-100)、音高(hz)、持续时间(ms)
c [on/off]控制按键点击音量开关
c [音量]设置按键点击音量(0-100)
r [on/off]控制按键自动重复
r [速率] [延迟]设置自动重复:速率(字符/秒)、延迟(ms)

鼠标(mouse)参数

参数说明
m [阈值] [加速度]设置鼠标加速度:阈值(像素)、加速度(倍率)
m [阈值] [加速度] [阈值]设置独立 x/y 轴加速度
m default恢复鼠标默认设置

屏幕保护(screen saver)参数

参数说明
s [on/off]控制屏幕保护开关
s [超时] [周期]设置屏保:超时(秒)、周期(秒)
s default恢复屏保默认设置
s blank屏保模式:空白屏幕
s noblank屏保模式:不空白(仅节能)
s expose屏保模式:允许曝光事件
s noexpose屏保模式:禁止曝光事件
s activate立即激活屏幕保护
s reset重置屏幕保护计时器

dpms(display power management signaling)

参数说明
dpms 选项控制能源之星电源管理
+dpms启用 dpms
-dpms禁用 dpms
dpms [待机] [挂起] [关闭]设置三个阶段的超时时间(秒)
dpms standy立即进入待机模式
dpms suspend立即进入挂起模式
dpms off立即关闭显示器
dpms force off强制立即关闭显示器

显示(display)参数

参数说明
q查询状态(最常用):显示所有当前设置
fp [路径列表]设置字体路径
+fp 路径添加字体路径
-fp 路径删除字体路径
fp default恢复默认字体路径
fp rehash重新扫描字体路径
led [1-32] [on/off]控制键盘 led 灯
p [值] [颜色值]设置像素颜色.图
-display 显示器指定 x 显示器

示例

示例 1:查询当前状态

# xset q 是使用最频繁的命令——查看所有当前设置
$ xset q
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
  auto repeat delay:  500    repeat rate:  33
  auto repeating keys:  00ffffffdffffbbf
bell percent:  50    bell pitch:  400    bell duration:  100

pointer control:
  acceleration:  2/1    threshold:  4

screen saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600

colors:
  default colormap:  0x20    blackpixel:  0x0    whitepixel:  0xffffff

font path:
  /usr/share/fonts/x11/misc/,/usr/share/fonts/x11/type1/,
  /usr/share/fonts/x11/75dpi/,/usr/share/fonts/x11/100dpi/,built-ins

dpms (energy star):
  standby: 600    suspend: 900    off: 1200
  dpms is enabled
  monitor is on

# 逐项解读:
# keyboard: 按键重复开启,重复延迟 500ms,速率 33 字符/秒
# pointer:  鼠标加速度 2/1(2倍),阈值 4 像素
# screen saver: 600 秒(10分钟)后启动屏保
# dpms: 待机 10 分钟 → 挂起 15 分钟 → 关闭 20 分钟

示例 2:键盘和铃声设置

# ========== 关闭系统铃声(服务器环境必备!)==========
$ xset b off
# 验证
$ xset q | grep "bell percent"
  bell percent:  0    bell pitch:  400    bell duration:  100

# ========== 设置铃声参数 ==========
$ xset b on                               # 开启铃声
$ xset b 80 800 200                       # 音量 80%,音高 800hz,持续 200ms

# 测试铃声
$ xset b on && echo -e '\a'               # 终端中播放一声

# ========== 调整按键重复速率 ==========
# 适合快速滚动/移动光标的场景
$ xset r rate 250 30                       # 延迟 250ms,速率 30 字符/秒
$ xset r rate 200 50                       # 更快的重复(延迟 200ms,速率 50)

# 默认值通常为 rate 500 33
$ xset r rate 500 33                       # 恢复默认

# ========== 关闭按键重复(特殊场景)==========
$ xset r off                              # 按住键不自动重复
$ xset r on                               # 重新开启

# ========== 控制键盘 led ==========
$ xset led 3                              # 开启 led 3(通常为滚动锁定灯)
$ xset -led 3                             # 关闭 led 3

# 预期效果:
# 铃声关闭后,终端 bell 不再发出声音
# 按键速率调整后立即生效,无需重启 x

示例 3:鼠标加速度调节

# 鼠标加速度是影响操作手感的关键参数
# 语法: xset m [加速度分子/分母] [阈值像素]

# ========== 查看当前鼠标设置 ==========
$ xset q | grep -a 2 "pointer control"
pointer control:
  acceleration:  2/1    threshold:  4

# ========== 加速模式 ==========
# 鼠标移动超过 4 像素后,光标速度翻倍
$ xset m 2 4                              # 加速度 2x,阈值 4px

# 高灵敏度(适合大屏幕/多显示器)
$ xset m 4 2                              # 加速度 4x,阈值 2px(几乎立即加速)
$ xset m 3 3                              # 加速度 3x,阈值 3px

# 线性模式(不推荐,指针难以精确定位)
$ xset m 1 0                              # 无加速,完全线性

# 极度加速(游戏玩家偏好)
$ xset m 10 1                             # 加速度 10x,阈值 1px

# ========== 恢复默认 ==========
$ xset m default

# ========== 分轴加速(高级)==========
# xset m [分子] [分母] [阈值],更大的分母=更平滑
$ xset m 2 1 4                            # 加速度 2/1 = 2x,阈值 4px
$ xset m 5 2 6                            # 加速度 5/2 = 2.5x,阈值 6px
# 5/2 比 2/1 更精确,因为中间增量更多

# 预期效果:调整后可感受到鼠标指针速度变化,需尝试找到最适合的值

示例 4:屏幕保护和电源管理

# ========== 屏幕保护控制 ==========

# 关闭屏幕保护(演示/播放视频时)
$ xset s off
# 查询确认
$ xset q | grep "screen saver"

# 设置屏幕保护超时
$ xset s 300                              # 5 分钟后启动屏保
$ xset s 600 600                          # 10 分钟后启动,周期 10 分钟
$ xset s 0                                # 禁用屏保超时

# 屏幕保护模式
$ xset s blank                            # 屏保:空白屏幕
$ xset s noblank                          # 屏保:不空白(仅节能信号)
$ xset s expose                           # 允许屏保触发曝光事件
$ xset s noexpose                         # 禁止曝光事件

# 立即激活屏保(测试屏保效果)
$ xset s activate
$ xset s reset                            # 重置屏保计时器(从零开始)

# ========== dpms 显示器电源管理 ==========

# 启用/禁用 dpms
$ xset +dpms                              # 启用节能
$ xset -dpms                              # 禁用节能

# 设置三个阶段的时间(秒)
$ xset dpms 300 600 900                   # 待机5分钟 → 挂起10分钟 → 关闭15分钟
$ xset dpms 600 1200 1800                 # 待机10分钟 → 挂起20分钟 → 关闭30分钟

# 立即控制显示器
$ xset dpms force standby                 # 立即待机
$ xset dpms force suspend                 # 立即挂起
$ xset dpms force off                     # ==立即关闭显示器==
$ xset dpms force on                      # 立即打开显示器

# ========== 查询 dpms 状态 ==========
$ xset q | grep -a 5 dpms
dpms (energy star):
  standby: 600    suspend: 1200    off: 1800
  dpms is enabled
  monitor is on

# ========== 演示/看电影时禁用一切中断 ==========
$ xset s off                              # 关闭屏保
$ xset -dpms                              # 禁用显示器节能
$ xset s noblank                          # 屏保不空白

# 恢复电影结束后
$ xset s on                               # 开启屏保
$ xset +dpms                              # 开启节能
$ xset dpms 600 900 1200                  # 恢复默认时间

示例 5:~/.xinitrc 完整配置示例

#!/bin/sh
# ~/.xinitrc - x 会话启动时的自动化配置
# 此文件由 startx 或 xinit 在启动窗口管理器前执行

# ========== x 资源加载 ==========
[ -f ~/.xresources ] && xrdb -merge ~/.xresources

# ========== 键盘配置 ==========
# 关闭系统铃声(打扰他人)
xset b off

# 设置按键重复:延迟 250ms,速率 40 字符/秒
xset r rate 250 40

# 设置键盘布局(如果不在更早的阶段设置)
# setxkbmap us

# ========== 鼠标配置 ==========
# 鼠标加速度:2x,阈值 4px
xset m 2 4

# 如果使用触摸板,可以用 synclient 或 libinput 配置
# synclient tapbutton1=1 tapbutton2=3 2>/dev/null

# ========== 屏幕保护配置 ==========
# 10 分钟后启动屏保
xset s 600 600

# ========== dpms 显示器节能 ==========
# 启用 dpms
xset +dpms
# 待机 10 分钟 → 挂起 15 分钟 → 关闭 20 分钟
xset dpms 600 900 1200

# ========== 字体路径(如需要自定义字体)==========
# xset +fp /usr/local/share/fonts/custom
# xset fp rehash

# ========== 设置壁纸(根据窗口管理器选择工具)==========
# feh --bg-scale ~/pictures/wallpaper.jpg  # 使用 feh
# nitrogen --restore                         # 使用 nitrogen

# ========== 启动合成器(compositor,可选)==========
# picom -b &                                 # picom 合成器

# ========== 启动面板/系统托盘(可选)==========
# tint2 &                                    # tint2 面板

# ========== 启动窗口管理器(必须为最后一行)==========
exec i3
# 或 exec dwm
# 或 exec openbox-session
# exec 是关键:替换当前 shell,窗口管理器退出时 x 会话也结束

示例 6:自动控制显示器电源

#!/bin/bash
# 显示器自动电源管理脚本
# 场景:下载大文件/编译代码时关闭显示器节能,完成后恢复

monitor_sleep_disable() {
    echo "禁用显示器自动关闭..."
    xset s off
    xset -dpms
    echo "显示器将保持开启直到手动恢复"
}

monitor_sleep_enable() {
    echo "恢复显示器自动关闭..."
    xset s on
    xset +dpms
    xset dpms 600 900 1200
    echo "显示器将在 20 分钟无操作后关闭"
}

monitor_off_now() {
    echo "立即关闭显示器..."
    xset dpms force off
    echo "显示器已关闭,按任意键或移动鼠标唤醒"
}

# 长时间任务的包装函数
run_with_monitor_on() {
    local cmd="$*"
    echo "执行任务期间保持显示器开启: $cmd"
    monitor_sleep_disable
    eval "$cmd"
    local exit_code=$?
    monitor_sleep_enable
    echo "任务完成,退出码: $exit_code"
    return $exit_code
}

# 使用示例:
# run_with_monitor_on "wget https://example.com/large_file.iso"
# run_with_monitor_on "make -j$(nproc)"
# monitor_off_now    # 立即关闭显示器离开座位

# 快捷键绑定示例(在 i3 配置中):
# bindsym $mod+shift+d exec monitor_sleep_disable  # 禁用休眠
# bindsym $mod+shift+e exec monitor_sleep_enable   # 启用休眠
# bindsym $mod+shift+o exec monitor_off_now        # 立即关屏

注意

xset 与现代桌面环境的冲突

设置项xset 控制gnome 接管kde 接管
鼠标加速度✅ xset mgnome settingskde system settings
屏幕保护xset sgnome powerkde power management
dpmsxset dpmsgnome powerkde power management
按键重复xset rgnome accessibilitykde keyboard
铃声xset b已默认关闭已默认关闭

关键提示:

  1. 在 gnome/kde 中使用 xset 可能被覆盖:桌面环境的设置守护进程会定期重新应用其自己的配置,xset 的设置可能是暂时的。
  2. xset 设置不会跨会话持久化:重启 x 后所有设置恢复默认。持久化配置需写入 ~/.xinitrc~/.xprofile 或桌面环境的自启动脚本。
  3. wayland 不支持 xset:wayland 合成器有自己的配置工具。使用 gsettings(gnome wayland)或合成器配置文件。
  4. xset dpms force off 是"软关闭":显示器进入节能模式(led 指示灯闪烁或变橙),移动鼠标或按键盘会立即唤醒,不同于物理电源关闭。
  5. xset m 的阈值单位是像素:阈值越小,加速越早介入。设为 0 意味着始终加速(线性速度模式下指针移动非常快)。

相关命令

命令说明
xrandr屏幕分辨率、刷新率、多显示器管理
setxkbmap键盘布局设置
xmodmap键盘映射修改
xinput输入设备列表和属性管理
xrdbx 资源数据库管理
xdotoolx 自动化(模拟键盘/鼠标事件)
xsetroot设置根窗口属性(背景色、光标)
xhostx 访问控制
xauthx 认证管理

总结

xset 是 x11 用户偏好的统一配置入口,它将散落在 x 服务器各处的参数收拢到一个命令中:

  • 键盘:铃声开关(b on/off)、按键重复速率(r rate)——服务器和共享空间必备
  • 鼠标:加速度调优(m)——影响操作手感的隐形参数
  • 屏幕保护:超时和模式控制(s)——演示、观看视频时的关键设置
  • dpms:显示器节能(dpms)——省电和延长显示器寿命的有效手段

在轻量级窗口管理器(i3/dwm/openbox)中,xset~/.xinitrc 是定制桌面环境的核心组合

现代桌面用户虽然不直接使用它,但理解 xset 的工作方式有助于排查"显示器不自动关闭"或"鼠标速度异常"等问题。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com