สคริปต์เพื่อปิดระดับเสียงเมื่อถอดหูฟัง

เพนกวิน -159784_640

เกิดขึ้นกับฉันว่าในขณะที่ผู้คนกำลังนอนหลับตอนหัวค่ำฉันฟังเพลงหนัก ๆ เต็มระดับและด้วยความผิดพลาดฉันถอดหูฟังซึ่งทำให้มันเล่นได้ทั่วบ้าน (ฉันคิดว่าพวกเขาเกลียดฉันในตอนนั้น ฮ่า ๆ ). ดังนั้นเขียนสคริปต์เล็กน้อยว่าเมื่อตัดการเชื่อมต่อให้ปิดเสียง:

สิ่งแรกคือการติดตั้ง อัลซา-utils เพื่อให้สามารถจัดการระดับเสียงจากคำสั่งได้อย่างง่ายดาย:

sudo pacman -S alsa-utils

สิ่งต่อไปคือการค้นพบผ่านการค้นหาของ Google ซึ่ง alsa บันทึกเป็นไฟล์ข้อความธรรมดา (สามารถอ่านได้ด้วยโปรแกรมแก้ไขข้อความใด ๆ ใน 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 $?

สวัสดี

เมื่อคำนึงถึงสิ่งนี้และรู้จักทุบตีจึงเป็นเรื่องง่ายที่จะทำ:

Headphones.sh

ฉันดาวน์โหลดฉันให้สิทธิ์การดำเนินการเพื่อเปิดเป็นครั้งแรกเพื่อให้ "ติดตั้ง" (ขอให้เชื่อมต่อหูฟังและคัดลอกไฟล์ที่อธิบายไว้ในตอนต้นเท่านั้น)
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.   กระเบื้อง dijo

    คุณบังเอิญใช้ WM หรือไม่? อย่างน้อยที่สุดใน Arch ที่มี Gnome-Shell 3.16 จะรักษาการเปลี่ยนแปลงในตัวควบคุมระดับเสียงไว้เช่นเมื่อฉันเชื่อมต่อ HDMI มันจะแสดงระดับเสียงสูงสุดเมื่อฉันเชื่อมต่อหูฟังมันจะแสดงระดับเสียงที่ต่ำมากและในตัว - ในลำโพงเกือบส่วนใหญ่

    แม้ว่าในความเป็นจริงฉันกำลังมองหาที่จะทำเช่นนั้นในบางครั้ง แต่มันก็เป็นเรื่องเลวร้ายที่ต้องลดระดับเสียงเพื่อให้สามารถใช้ลำโพงได้เพื่อไม่ให้เสียงดังหรือน่ารำคาญสำหรับคนอื่น ขอบคุณมากที่อุดหนุน

    1.    ฝนตก dijo

      เพื่ออะไร🙂ฉันใช้ xfce 😛

      1.    กระเบื้อง dijo

        ฉันจำได้ว่าครั้งหนึ่งฉันเคยดู p0rn และมีหูฟังและ hdp ถูกตัดการเชื่อมต่อและได้ยินเสียงครางของ Shyla: c
        สิ่งที่ดีคือมันเป็นเพียงเศษเสี้ยววินาทีชั่วนิรันดร์และมันฟังดูเหมือนหนังสยองขวัญเมื่อโสเภณีถูกฆ่า XD
        คิดเกี่ยวกับเรื่องนี้ฉันจะเพิ่มในรายการโปรด

  2.   เยโยโมเรโน่ dijo

    ฮ่าฮ่าสิ่งเดียวกันนี้เกิดขึ้นกับฉันเมื่อฉันตัดการเชื่อมต่อโดยไม่ได้ตั้งใจในเวลาประมาณเที่ยงคืนและ Hard Core ที่ดีส่งเสียงที่ระดับเสียงเต็ม XD ครอบครัวของฉันกลัว: v

  3.   noxonsoftware dijo

    ข้อมูลที่ดีจะเป็นประโยชน์กับฉันในบางประเด็น ขอบคุณมาก

  4.   Andreser dijo

    คุณไม่ได้หลอกฉันคุณกำลังดู * หรือเกย์ในภาษาสเปนและหูฟังของคุณถูกตัดการเชื่อมต่อ xD
    ขอบคุณสำหรับการมีส่วนร่วมใน Linux Mint ระดับเสียงจะถูกเก็บรักษาไว้เช่นถ้าฉันปิดเสียงแล้วเชื่อมต่อหูฟังในหูฟังฉันจะมีเสียงและไม่มีมัน
    อาศิรพจน์

    1.    ฝนตก dijo

      ฮ่า ๆ ๆ ไม่ แต่ในกรณีเหล่านั้นมันก็ใช้ได้เช่นกัน (?)

      1.    Andreser dijo

        ใช่มันก็ใช้ได้เช่นกันในกรณีเหล่านั้น (͡°͜ʖ͡°)

  5.   Deni dijo

    ข้อมูลที่ดีข้อเสนอแนะหากระบบรองรับ 'devd' ฉันจะคัดลอกหรือสร้างไฟล์นี้ได้อย่างไร?

    [code] $ PREFIX / share / samples / cups / ulpt-cupsd.conf ถึง $ PREFIX / etc / devd / [/ code]

    1.    ฝนตก dijo

      ฉันไม่สามารถบอกคุณได้คำสั่ง cp ไม่เพียงพอหรือไม่

      1.    Deni dijo

        ไม่มันบอกว่าไม่มีไดเร็กทอรีและฉันไม่รู้วิธีสร้างเช่นกัน

  6.   เฟอร์นันโด dijo

    ถ้าฉันบอกคุณว่ามันเกิดขึ้นกับฉันมากกว่าหนึ่งครั้งและมีเพลงเดียวกันดังนั้นฉันจึงเขียนมันลงเพื่อติดตั้งในภายหลัง คำทักทายและในนามของ Heavy Metal ขอบคุณ

  7.   เดวิด dijo

    …… ~$ sudo pacman -S alsa-utils
    [sudo] รหัสผ่านสำหรับ david:
    sudo: pacman: ไม่พบคำสั่ง