断开耳机时关闭音量的脚本

企鹅-159784_640

我发生的事情是,当人们在清晨睡觉时,我听了很重的音乐,然后错误地拔下了耳机,这导致它在整个房子里播放(我认为当时他们讨厌我)哈哈)。 因此,编写一个小脚本,使其在断开连接时将音量静音:

首先是要安装 alsa 实用程序 为了能够从命令轻松管理音量:

sudo pacman -S alsa-utils

接下来的事情是通过Google搜索发现它也保存在纯文本文件中(可以用任何文本编辑器读取,在Windows中这一切都将更加复杂),声卡的状态仅复制而已。文件,然后比较更改。

该文件是:
/proc/asound/card0/codec#0

在某些情况下,这可能会有所不同,例如,如果我们有多个声卡。 如果您想了解更多信息,请留下alsa文档的链接:http://alsa.opensrc.org/Proc_asound_documentation

我连接耳机并复制文件:
mkdir $HOME/.audifonos && cp "/proc/asound/card0/codec#0" "$HOME/.audifonos/con.txt"

然后拔下耳机,并使用diff命令显示两个文件之间的不同行:
diff "/proc/asound/card0/codec#0" ".audifonos/con.txt"

有一些我们不感兴趣的数据,因此我们必须使用grep进行过滤,以便仅显示带有单词“ Pin-ctls”的行。

diff "/proc/asound/card0/codec#0" ".audifonos/con" | grep Pin-ctls

如果命令没有在屏幕上显示任何内容,则意味着我们已经戴上了耳机。 由于它无法返回任何内容,因此会返回错误。

要查看此错误,我们输入:
echo $?

如果在每个屏幕上显示一个,则表明该错误。

安慰

另一方面,如果在执行此操作时返回了某些内容,则表示我们已断开了耳机的连接,在这种情况下,它不会返回错误:
echo $?

你好

考虑到这一点并了解bash即可轻松实现:

头戴式耳机

我下载了它,并授予了首次打开它的执行权限,以便它“安装”(它只要求连接耳机并复制开头说明的文件)。
wget http://paste.desdelinux.net/?dl=5178 && chmod +x audifonos.sh && ./audifonos.sh

最后,我每次打开电脑时都会自动启动

从Xfce,我转到应用程序>配置>会话和启动>应用程序自动启动>添加并放置脚本


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   瓷砖

    您碰巧使用WM吗? 至少在Arch with Gnome-Shell 3.16中,它保留了音量控件中的更改,例如,当我连接HDMI时,它显示了最大音量;当我连接耳机时,它显示了非常低的音量,并且内置-几乎是所有演讲者。

    尽管实际上我一直在想这样做,但必须降低音量才能使用扬声器,这是一个bit子,这样声音才不会对其他人造成刺耳或烦人的感觉。 非常感谢您的贡献。

    1.   

      一无所有🙂,我用xfce😛

      1.    瓷砖

        我只是记得我曾经看过一次p0rn,耳机和hdp都断开了,听到了Shyla的s吟:c
        好消息是,这只是至少一秒钟的片段,当妓女被杀时,这听起来像是恐怖电影。XD
        考虑一下,我将其添加到收藏夹

  2.   野野野洋

    哈哈哈哈哈哈,当我无意间在午夜断开连接并以全音量XD响起良好的Hard Core声音时,我的家人也感到害怕:v

  3.   诺信软件

    好的信息在某些时候对我很有用。 非常感谢

  4.   安德列瑟

    您没有在骗我,您在看*或西班牙同性恋,并且您的耳机未连接xD
    感谢您的贡献,例如,在Linux Mint中,音量被保留,例如,如果我将静音然后连接耳机,则在耳机中我会发出声音,而没有耳机则没有声音。
    问候。

    1.   

      哈哈哈,不,但是在那种情况下,它也可以工作(?)

      1.    安德列瑟

        是的,它在那些情况下也适用(͡°͜ʖ͡°)

  5.   杰尼

    好的信息,一个建议,如果系统支持'devd',我该如何继续复制或创建此文件?

    [代码] $ PREFIX /共享/示例/cups/ulpt-cupsd.conf改为$ PREFIX / etc / devd / [/代码]

    1.   

      我不能告诉你,cp命令不够吗?

      1.    杰尼

        不,它说该目录不存在,我也不知道如何创建。

  6.   费尔南多

    好吧,如果我告诉您,这件事不止一次发生在我身上,而且音乐相同,所以我写下来以后再安装。 问候和以重金属的名义谢谢。

  7.   David

    ……〜$ sudo pacman -S alsa-utils
    大卫的[sudo]密码:
    sudo:pacman:找不到命令