讓Linux插入USB裝置像Windows一樣發出提示音效 [論壇 - Ubuntu 非官方發行版討論]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



讓Linux插入USB裝置像Windows一樣發出提示音效
會員一級
註冊日期:
3/23 10:15:12
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 2
MP : 1 / 5
EXP: 10
離線
下載音效檔
https://github.com/Mint-Fans/linux-package/raw/kali/usb-sound.tar.gz
解壓縮後複製到 /usr/share/sounds/

在 /etc/udev/rules.d/ 建立一個 100-usb.rules 的文件
內容為:
ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", RUN+="/usr/bin/sudo -u 使用者名稱 /usr/bin/paplay /usr/share/sounds/Hardware-Insert.wav"
ACTION=="remove", SUBSYSTEM=="usb", RUN+="/usr/bin/sudo -u 使用者名稱 /usr/bin/paplay /usr/share/sounds/Hardware-Remove.wav"

重新啟動udev
sudo service udev restart

ACTION=="add" 為連接USB時的條件
ACTION=="remove" 為卸載USB時的條件

這樣拔插USB都會發出提示聲

查看更多條件
例如:
$ lsusb
Bus 002 Device 125: ID 05ac:12a0 Apple, Inc. iPhone 4S

$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/002/125)

  looking at device '/devices/pci0000:00/0000:00:14.0/usb2/2-2':
    KERNEL=="2-2"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    .....
    ATTR{configuration}=="PTP + Apple Mobile Device + Apple USB Ethernet"
    ....

    ATTR{manufacturer}=="Apple Inc."
    ATTR{maxchild}=="0"
    ATTR{product}=="iPhone"
    ATTR{quirks}=="0x0"
    ....


如果針對某個USB裝置,以上都可以設為偵測USB拔插的條件

usb.rules 的寫法可以為:
ACTION=="add", ATTR{manufacturer}=="Apple Inc.", ATTR{product}=="iPhone", RUN+="/usr/bin/sudo -u 使用者名稱 /usr/bin/paplay /usr/share/sounds/Hardware-Insert.wav"
....


如果還要加入畫面通知提示,將 100-usb.rules 內的 RUN+= 指定腳本,例如:
ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", RUN+="/usr/bin/sudo -u 使用者名稱 /usr/local/bin/usb-add"
ACTION=="remove", SUBSYSTEM=="usb", RUN+="/usr/bin/sudo -u 使用者名稱 /usr/local/bin/usb-Remove"

重新啟動udev
sudo service udev restart

/usr/local/bin/usb-add 內容:
-------------------------------------
#!/bin/bash

USERNAME="使用者名稱"
export DISPLAY=:0

/usr/bin/sudo -u $USERNAME /usr/bin/paplay /usr/share/sounds/Hardware-Insert.wav

/usr/bin/sudo -u $USERNAME /usr/bin/notify-send -i /usr/share/icons/gnome/256x256/devices/drive-removable-media.png '已連接USB裝置' --expire-time=4000
-------------------------------------

/usr/local/bin/usb-Remove 內容:
-------------------------------------
#!/bin/bash

USERNAME="使用者名稱"
export DISPLAY=:0

/usr/bin/sudo -u $USERNAME /usr/bin/paplay /usr/share/sounds/Hardware-Remove.wav

/usr/bin/sudo -u $USERNAME /usr/bin/notify-send -i /usr/share/icons/gnome/256x256/devices/drive-removable-media.png '已退出USB裝置' --expire-time=4000
-------------------------------------

預覽:


針對USB裝置回復模式與DFU模式範例

/usr/local/bin/usb-add 內容:
#!/bin/bash

USERNAME="kali"
# USERID="1000"

# export XAUTHORITY=/home/$USERNAME/.Xauthority
# export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$USERID/bus"
export DISPLAY=:0

/usr/bin/sudo -u $USERNAME /usr/bin/paplay /usr/share/sounds/Hardware-Insert.wav

IDEV=$(lsusb | grep Apple)
DFU_MODE=$(lsusb | grep Apple | grep "DFU Mode")
RECOVERY_MODE=$(lsusb | grep Apple | grep "Recovery Mode")

if [ "$IDEV" ]; then
    if [ "$DFU_MODE" ]; then
        /usr/bin/sudo -u $USERNAME /usr/bin/notify-send -i /usr/share/pixmaps/apple_logo.png 'DFU Mode' --expire-time=5000
    elif [ "$RECOVERY_MODE" ]; then
        /usr/bin/sudo -u $USERNAME /usr/bin/notify-send -i /usr/share/pixmaps/apple_logo.png 'Recovery Mode' --expire-time=5000
    fi
fi





8/28 12:49:52
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.