作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/
KDE中, 三个声音控制键, 现在mute是起作用的, 音量大小键只有unmute功能
1. 测试一下这三个声音键的键值
http://dl.bytesex.org/cvs-snapshots/
下载input-utils的源代码, 然后编译一下就可以用, 不用安装
1)
# ./lsinput
2) 在lsput输出中找到*keyboard*
(X61, kernel 2.6.24-rc7):
/dev/input/event0 bustype : BUS_I8042 vendor : 0x1 product : 0x1 version : 43860 name : "AT Translated Set 2 keyboard" phys : "isa0060/serio0/input0" bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP
3) 运行键测试
input-events <你的键盘设备的序号>.
如我的就是
# ./input-events 0
如果不能在X下面运行, 转换到一个字符终端, 运行试试
4) 按你想要测试的键 (volume up/down/mute), 会显示输入事件
5) 很奇怪的是, 音量高和低键有事件输出,静音键没有任何输出!
但是为什么能够静音呢, 是因为BIOS控制的原因
6) thinkpad-acpi的开发者建议, 在启动的时候, 给kernel加启动参数 acpi_osi=Linux, 会比较好,
在grub的menu.lst里面, 给kernel加上这个参数
kernel /boot/vmlinuz ro root=LABEL=/ acpi_sleep=s3_bios,s3_mode resume=/dev/sda6 vga=773 acpi_osi=Linux
7)重启之后, 重复上面1)-4)的测试, 会发现有输出了,
keycode 160 : Mute keycode 174 : LowerVolume keycode 176 : RaiseVolume
8) 但是现在的问题是, 虽然有按键事件了, 但是静音功能也不能用了!
因为BIOS现在是不控制了, 需要软件来控制音量和静音功能了
2. 给~/.Xmodmap加入下面三行, 让X知道这三个按键事件
keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume
3. 让.Xmodmap起作用, 执行xmodmap ~/.Xmodmap, 或者重启KDE, 也可以
4. 这时候按键, 发现屏幕有显示了, 有静音关, 静音开, 0%, 11%, 虽然有显示, 但是功能一点没有,
这个显示是kmilo的作用, 可以通过控制中心->KDE组件->启动服务,
看到有kmilo服务在运行
控制中心->系统管理->Thinkpad 便携电脑, 这个功能是kmilo的一个插件,
但是现在有bug, 虽然显示正常, 但音量控制功能不正常.
据说ubuntu的kde-utils已经修正了这个bug, 但我没有用升级的方式解决
原因是
其他的thinkpad快捷键, 是通过acpi事件控制, 然后通过osd_cat显示的,
干脆这个音量控制也统一用这种osd_cat方式
所以还是自己解决吧
5. 把kmilo服务停了, 把自动启动的勾勾掉
6. 写一个脚本volume.sh, 跟acpi事件处理脚本放在一起,用osd_cat控制屏幕显示, 用kmix控制音量
dcop真是个好东西, 刚发现这个功能是如此强大, 学习中, 正好试试
/etc/acpi/volume.sh
#!/bin/bash KMIX="dcop kmix Mixer0" osd() { pkill osd_cat echo $@ | osd_cat -p bottom -A center -c green -d 5 -O 1 -u black -f "-adobe-helvetica-bold-r-normal-*-*-320-*-*-p-*-iso8859-1" & } mute() { $KMIX setMute 0 $@ $KMIX setMute 13 $@ $KMIX setMute 14 $@ } case "$1" in mute) mute "on" osd "mute on" ;; up) mute "off" $KMIX setMasterVolume $(expr $($KMIX masterVolume) + 7) osd $($KMIX masterVolume) % ;; down) mute "off" $KMIX setMasterVolume $(expr $($KMIX masterVolume) - 3) osd $($KMIX masterVolume) % ;; esac sleep 5 pkill osd_cat exit 0
7. 添加这三个音量控制键的输入动作
KDE控制中心->区域和辅助功能->输入动作->Preset Actions
添加三个动作, 动作类型都为: 键盘快捷方式->命令/URL(简单),
1) mute XF86AudioMute /etc/acpi/volume.sh mute 2) volumeUp XF86AudioLowerVolume /etc/acpi/volume.sh down 3) volumeUp XF86AudioRaiseVolume /etc/acpi/volume.sh up
8. 脚本的mute函数中, 对应的0,13,14是kmix的deviceidx,
本来kmix中有setMasterVolume, toggleMasterMute等直接控制主声道的方法,
但是Intel的集成声卡一般都没有主声道, 即使用kmix主声道静音(喇叭是灰色, 有删除线), 还是有声音,
想静音只有控制kmix的Tab"开关"的喇叭和耳机这两个设备.
所以只能想办法找出对应的喇叭和耳机的deviceidx,
直接控制这些设备的状态
1) 写一个脚本, testmute.sh
#!/bin/sh i=0 while [ $(($i <= 20)) ] && [ $(dcop kmix Mixer0 isAvailableDevice $i) == "true" ]; do echo $i $(dcop kmix Mixer0 mute $i) i=$(($i+1)) done exit 0
2) 把kmix的Tab"开关"的喇叭和耳机这两个设备全部开启
3)
./testmute.sh > 1.txt
4) 把kmix的Tab"开关"的喇叭和耳机这两个设备全部关闭
5)
./testmute.sh > 2.txt
6)
diff 1.txt 2.txt
, 看看输出结果
1c1 < 0 false --- > 0 true 14c14 < 13 false --- > 13 true
7) 上面的结果说明0, 13分别是喇叭和耳机,
看看你的是什么数字, 替换一下volume.sh中对应的数字就可以了
9. 现在这三个音量控制键就可以使用了!
注意
1. osd_cat只支持点阵字体, 我还没有试能不能用中文点阵字体
2. AudioLowerVolume和AudioRaiseVolume这两个键的步长不一样, 亮度的也是, 很奇怪,
所以脚本中调整了一下数字, 步长都为约5%
3. 脚本中控制静音用了三个设备, 是发现有时候喇叭的这个13 deviceidx有时候会变成14, 干脆都设置
4. kdcop, 这个是dcop浏览器, 非常有用, 可以浏览和查询可用的dcop方法
发表评论
-
把Firefox的配置文件和Cache移到内存盘
2008-12-07 21:01 2599在使用Windows的时候, 可以用ramdisk虚拟一个内存 ... -
周末装XP和Slackware
2007-11-12 15:03 1298X61 安装Xp和Slackware双启 ... -
X61 Slackware的配置1
2007-11-12 23:00 1065我现在就是在KDE下面, ... -
X61 Slackware的配置2
2007-11-13 12:05 945上班中午休息一会儿, 继续配置网卡等信息. 1. 改网卡MA ... -
我为什么要写X61 Slackware文章
2007-11-13 20:02 859作者: forever steel(zhoun) ... -
X61 Slackware的配置3
2007-11-14 00:07 974作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置4
2007-11-14 23:05 1133作者: forever steel(zhoun) ... -
X61 Slackware的配置5
2007-11-15 17:05 1234作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置6
2007-11-15 21:03 822作者: forever steel(zhoun) ... -
X61 Slackware的配置7
2007-11-18 15:00 1488作者: forever steel(zhoun) ... -
X61 Slackware的配置8
2007-11-19 23:04 838作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置9
2007-11-20 22:01 805作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置10
2007-11-22 11:05 888作者: forever steel(zhoun) ... -
thinkpad T61/R61/X61的快捷键问题
2007-11-23 14:05 2833?作者: forever steel(zhoun) 原发: ... -
X61 Slackware的配置11
2007-11-26 13:00 830作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置12
2007-12-05 14:05 876作者: forever steel(zhoun) ... -
X61 Slackware的配置13
2007-12-19 17:05 1058作者: forever steel(zhoun) ... -
X61 Slackware的配置14
2007-12-21 23:00 901作者: forever steel(zhoun) 原发: h ... -
X61 Slackware的配置15
2008-01-03 16:00 1012作者: forever steel(zhoun) 原发: h ... -
Thinkpad X61开机高亮问题解决了
2008-01-07 16:00 1612在我以前的一篇文章 中提到的thinkpad x61开机高亮, ...
相关推荐
Slackware - Corrado "Conraid" Franco 的当前软件包。
### Slackware 设置详解 #### 一、概述 Slackware是一款知名的Linux发行版,以其简单性和稳定性著称。本文档将详细介绍如何在Slackware系统中进行基础设置,特别是关于语言环境配置以及如何使用Swaret工具进行...
Slackware 提供了丰富的文档和支持资源来帮助用户解决问题和学习新知识。这些资源包括官方文档、在线论坛、常见问题解答(FAQ)等。 ##### 2.2 在线帮助 除了本地文档外,Slackware 还提供了大量的在线资源。例如,...
- **在线帮助**资源则提供了快速解决问题的方式,如FAQ(常见问题解答)和社区论坛。 #### 三、安装指南 - **获取Slackware** - 可以通过官方网站或其他合法渠道下载到Slackware的安装镜像。 - **系统要求** - 在...
该项目致力于使用一种格式,使整个Slackware社区都能参与进来,并能够根据需要添加/编辑内容,从而使Slackware文档保持最新。
3. **初始化系统**:Slackware使用传统的sysvinit系统,通过运行级(runlevel)来控制服务的启动和停止。 4. **软件更新**:使用`slackpkg`或`slapt-get`工具进行软件包的更新和升级,保持系统安全。 ### 五、安装...
Slackware 用户手册的中文版,Slackware和Red Hat、Debian、Ubuntu等等主流发行版有很多不同。也许最明显的就是这些主流发行版缺乏Slackware对系统管理员提供的“关照”。许多发行版都有自己用于配置各种服务的图形...
**Slackware Linux 安装指南** 在深入探讨Slackware Linux的安装过程之前,我们首先需要理解Slackware Linux是什么。Slackware Linux是最古老的仍在维护的Linux发行版之一,由Patrick Volkerding在1993年创建。它的...
解决那些很少或没有GNU / Linux经验的人。 涵盖了Slackware Linux的安装,基本的GNU / Linux命令以及Slackware Linux的配置。
这种方法虽然比现代的基于图形的包管理器(如apt或yum)略显复杂,但其优势在于对系统的控制更加精细。 在 Slackware 1.01 中,用户可以预期找到一些基础的系统工具,如bash shell、gcc编译器、文本编辑器vi或emacs...
### Slackware Linux官方手册知识点概览 #### 一、引言 - **Slackware Linux**:Slackware是一款基于Intel架构计算机的强大操作系统,旨在提供一个稳定且安全的平台,适用于高端服务器及工作站。 #### 二、...
**简洁性**:Slackware的设计理念之一就是尽可能地减少自动化工具的使用,让系统管理员能够更好地控制整个系统。 **稳定性**:由于Slackware对软件包的选择非常谨慎,只包含经过长时间测试和验证的软件,因此它的...
4. **社区支持**: Slackware 拥有一个活跃的用户社区,提供丰富的文档和论坛支持,用户可以在其中找到解决问题的方法,分享经验,与其他开发者交流。 ** Slackbook-2.0.pdf** `slackbook-2.0.pdf` 是一本关于使用...
本文将详细介绍如何在Slackware Current 15.0操作系统上安装并使用非洲菊UPnP媒体服务器。 首先,让我们理解一下Slackware Linux。Slackware是最古老的仍在积极维护的Linux发行版之一,以其简洁、稳定和对自由软件...
码头服务 我在生产中使用的基于 slackware64-current 的各种服务
Linux Slackware是一款历史悠久且高度可定制的Linux发行版,它以其纯净、稳定和对自由软件的严格遵循而受到部分用户的喜爱。本教程将带你逐步了解如何安装Slackware Linux系统,确保你能够顺利地在你的计算机上搭建...
### Slackware Linux 9.0 安装教程详解 #### 一、准备工作 在开始安装前,你需要确保已经准备好以下工具: 1. **VMware 6.0**:一款功能强大的虚拟机软件,用于模拟真实计算机环境。 2. **Slackware Linux 9.0 ...
总之,理解Slackware Linux的启动过程和运行级别管理对于系统管理员来说至关重要,它能帮助优化系统性能,增强安全性,以及在出现问题时进行有效的故障排查。通过掌握这些知识,Linux用户可以更好地掌控自己的系统,...
slackware中文手册,希望可以帮助到您。感谢背后翻译的人员,谢谢你们。
### Slackware 服务器配置与SSH服务详解 #### 一、硬件信息 在开始配置Slackware服务器之前,首先需要了解服务器的基本硬件信息。这包括系统信息、处理器信息、内存信息、硬盘信息以及网络接口信息等。 **1.1 ...