มีวิธีการปรับระดับเสียงของระบบผ่าน commandline เพื่อให้ป๊อปอัพระดับเสียงเริ่มต้น (อันที่ปรากฏขึ้นเมื่อกดปุ่มสื่อบนโน๊ตบุ๊ค) ยังคงปรากฏ
ฉันต้องการสิ่งนี้สำหรับการควบคุมระยะไกลของฉัน มันจะทำงานโดยใช้ไฟล์ lircrc และ irexec
มีวิธีการปรับระดับเสียงของระบบผ่าน commandline เพื่อให้ป๊อปอัพระดับเสียงเริ่มต้น (อันที่ปรากฏขึ้นเมื่อกดปุ่มสื่อบนโน๊ตบุ๊ค) ยังคงปรากฏ
ฉันต้องการสิ่งนี้สำหรับการควบคุมระยะไกลของฉัน มันจะทำงานโดยใช้ไฟล์ lircrc และ irexec
คำตอบ:
ติดตั้งแพ็คเกจxdotoolและลองใช้งาน
xdotool key XF86AudioLowerVolume
และ
xdotool key XF86AudioRaiseVolume
DISPLAY=:0
(หรืออื่นถ้าจอแสดงผลของคุณแตกต่าง) เพื่อให้ผู้ใช้ lirc สามารถส่งไปยังสถานที่ที่เหมาะสม อาจไม่ได้
--clearmodifiers
พารามิเตอร์หลังจากคีย์เพื่อใช้กับการตั้งค่าแป้นพิมพ์ลัดของ Ubuntu
--clearmodifiers
แต่คุณต้องการ xbindkey แน่นอน
คุณสามารถผูกทางลัดกับสคริปต์นี้ที่ฉันพบในฟอรัม Arch (ต้องการแพ็คเกจlibnotify-bin
):
#!/bin/sh
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts i:m:h o
do case "$o" in
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
shift $(($OPTIND - 1))
command=$1
if [ "$command" = "" ]; then
echo "usage: $0 {up|down|mute} [increment]"
exit 0;
fi
display_volume=0
if [ "$command" = "up" ]; then
display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
if [ "$command" = "down" ]; then
display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
icon_name=""
if [ "$command" = "mute" ]; then
if amixer get Master | grep "\[on\]"; then
display_volume=0
icon_name="notification-audio-volume-muted"
amixer set $mixer mute
else
display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
fi
if [ "$icon_name" = "" ]; then
if [ "$display_volume" = "0" ]; then
icon_name="notification-audio-volume-off"
elif [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
elif [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
ดูเหมือนว่าจะทำงานได้ดีใน Ubuntu 10.10
คุณสามารถใช้amixer
เพื่อควบคุมระดับเสียงเช่น
amixer set 'Master' 50%
amixer set 'Master' 10%+
amixer set 'Master' 2dB-
คุณอาจจะต้องตั้งการ์ดเสียงโดยใช้เช่นสำหรับการ์ดเสียงที่สองดู-c 1
man amixer
เสียงสามารถเล่นได้โดยใช้ผู้เล่นที่ชอบaplay
หรือpaplay
เช่น
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
คุณอาจต้องการดูคำถามนี้: ฉันจะหาระบบเสียงที่ไหน
คุณสามารถสร้างการแจ้งเตือนบนหน้าจอได้อีกครั้งโดยใช้ไลบรารี X On-Screen Display XOSD แพคเกจเรียกว่าxosd-bin
และคำสั่งที่osd_cat
ใช้ในการแสดงข้อความแถบสถานะ ฯลฯ บนหน้าจอ
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
แสดง
ดูหน้า wiki ของเยอรมันนี้เพื่อดูตัวเลือกและตัวอย่างและman osd_cat
อื่น ๆ อีกมากมาย
ฉันติดตั้ง xmacro และเพิ่มบรรทัดต่อไปนี้ใน. lircrc :
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
นี้เป็นรุ่นปรับปรุงของสคริปต์htorque โพสต์
มันทำงานได้ดีสำหรับฉันที่ 14.04 แจ้งให้เราทราบว่ามันใช้งานได้กับ 16.04 หรือใหม่กว่า
มันต้องมีการlibnotify-bin
ติดตั้ง
#!/bin/sh
# Adjust the volume, play a sound, and show a notification.
#
# Replacement for default Ubuntu volume adjustment behaviour.
#
# Based on /ubuntu//a/12769/301745
command=""
device="pulse"
display_volume=0
icon_name="error"
increment=5
mixer="Master"
usage="usage: $0 [-d device] [-i increment] [-m mixer] (up|down|mute)"
# For compatibility with SSH sessions.
export DISPLAY=:0
_amixer(){
# amixer alias
local set_get="$1"
shift
amixer -D "$device" "$set_get" "$mixer" "$@"
}
_get_display_volume(){
# grep alias
grep -Pom 1 '(?<=\[)[0-9]+(?=%\])'
}
while getopts d:hi:m: opt; do
case "$opt" in
d)
device="$OPTARG"
;;
h)
echo "$usage"
exit 0
;;
i)
increment="$OPTARG"
;;
m)
mixer="$OPTARG"
;;
?)
echo "$usage"
exit 1
;;
esac
done
shift "$(($OPTIND - 1))"
command="$1"
case "$command" in
down)
display_volume="$(
_amixer set "$increment%-" unmute |
_get_display_volume
)"
;;
mute)
if _amixer get | grep -q "\[on\]"; then
display_volume=0
icon_name="notification-audio-volume-muted"
_amixer set mute > /dev/null
else
display_volume="$(
_amixer set unmute |
_get_display_volume
)"
fi
;;
up)
display_volume="$(
_amixer set "$increment%+" unmute |
_get_display_volume
)"
;;
*)
echo "$usage"
exit 1
;;
esac
if [ "$icon_name" = "error" ]; then
if [ "$display_volume" = "0" ]; then
icon_name="notification-audio-volume-off"
elif [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
elif [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
# In a subshell in the background to minimize latency.
( canberra-gtk-play --id=audio-volume-change & )
fi
notify-send "Volume: $display_volume%" -i "$icon_name" -h "string:synchronous:volume" -h "int:value:$display_volume"