Я полагаю, Ubuntu записывает данные на USB-накопитель, потому что он сохраняет выбранные конфигурации. Например, если я установлю Ubuntu на компьютер, выбрав «Португальский язык» в качестве языка, в следующий раз, когда я запустим Ubuntu с живого USB, он будет использовать «Португальский» в качестве языка по умолчанию.
Но я не знаю, где он записывает данные.
Установите пакет xdotool и попробуйте выполнить
xdotool key XF86AudioLowerVolume
и
xdotool key XF86AudioRaiseVolume
Это улучшенная версия скрипта 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 https://askubuntu.com/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"
Это улучшенная версия скрипта 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 https://askubuntu.com/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"
Это улучшенная версия скрипта 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 https://askubuntu.com/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"
Это улучшенная версия скрипта htorque отправлена .
Это работает для меня 14.04. Дайте мне знать, если он работает с 16.04 или новее.
Он требует установки libnotify-bin
.
#! / Bin / sh # Adjust громкость, воспроизведение звука и отображение уведомлений. # # Замена по умолчанию для регулировки громкости Ubuntu. # # На основании https://askubuntu.com/a/12769/301745 command = "" device = "pulse" display_volume = 0 icon_name = "error" increment = 5 mixer = "Master" usage = "use: $ 0 [- d device] [-i increment] [-m mixer] (up | down | mute) "# Для совместимости с сеансами SSH. 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 '(? & lt; = \ [) [0-9] + (? =% \])'}, а getopts d: hi: m: opt; do case "$ opt" в d) device = "$ OPTARG" ;; h) выход echo «$ usage» 0 ;; i) increment = "$ OPTARG" ;; m) mixer = "$ OPTARG" ;; ?) echo "$ usage" exit 1 ;; esac done shift "$ (($ OPTIND - 1))" command = "$ 1" case "$ command" в down) display_volume = "$ (_amixer set" $ increment% - "unmute | _get_display_volume" ";; немой), если _amixer get | grep -q "\ [on \]"; затем display_volume = 0 icon_name = "notification-audio-volume-muted" _mixer set mute & gt; / 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"]; тогда если ["$ display_volume" = "0"]; затем icon_name = "notification-audio-volume-off" elif ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" elif ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi # В подоболочке в фоновом режиме, чтобы минимизировать задержку. (canberra-gtk-play --id = изменение громкости звука & amp;) fi notify-send "Volume: $ display_volume%" -i "$ icon_name" -h "string: synchronous: volume" -h "int: значение : $ display_volume "
Это улучшенная версия скрипта htorque отправлена .
Это работает для меня 14.04. Дайте мне знать, если он работает с 16.04 или новее.
Он требует установки libnotify-bin
.
#! / Bin / sh # Adjust громкость, воспроизведение звука и отображение уведомлений. # # Замена по умолчанию для регулировки громкости Ubuntu. # # На основании https://askubuntu.com/a/12769/301745 command = "" device = "pulse" display_volume = 0 icon_name = "error" increment = 5 mixer = "Master" usage = "use: $ 0 [- d device] [-i increment] [-m mixer] (up | down | mute) "# Для совместимости с сеансами SSH. 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 '(? & lt; = \ [) [0-9] + (? =% \])'}, а getopts d: hi: m: opt; do case "$ opt" в d) device = "$ OPTARG" ;; h) выход echo «$ usage» 0 ;; i) increment = "$ OPTARG" ;; m) mixer = "$ OPTARG" ;; ?) echo "$ usage" exit 1 ;; esac done shift "$ (($ OPTIND - 1))" command = "$ 1" case "$ command" в down) display_volume = "$ (_amixer set" $ increment% - "unmute | _get_display_volume" ";; немой), если _amixer get | grep -q "\ [on \]"; затем display_volume = 0 icon_name = "notification-audio-volume-muted" _mixer set mute & gt; / 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"]; тогда если ["$ display_volume" = "0"]; затем icon_name = "notification-audio-volume-off" elif ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" elif ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi # В подоболочке в фоновом режиме, чтобы минимизировать задержку. (canberra-gtk-play --id = изменение громкости звука & amp;) fi notify-send "Volume: $ display_volume%" -i "$ icon_name" -h "string: synchronous: volume" -h "int: значение : $ display_volume "
Это улучшенная версия скрипта htorque отправлена .
Это работает для меня 14.04. Дайте мне знать, если он работает с 16.04 или новее.
Он требует установки libnotify-bin
.
#! / Bin / sh # Adjust громкость, воспроизведение звука и отображение уведомлений. # # Замена по умолчанию для регулировки громкости Ubuntu. # # На основании https://askubuntu.com/a/12769/301745 command = "" device = "pulse" display_volume = 0 icon_name = "error" increment = 5 mixer = "Master" usage = "use: $ 0 [- d device] [-i increment] [-m mixer] (up | down | mute) "# Для совместимости с сеансами SSH. 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 '(? & lt; = \ [) [0-9] + (? =% \])'}, а getopts d: hi: m: opt; do case "$ opt" в d) device = "$ OPTARG" ;; h) выход echo «$ usage» 0 ;; i) increment = "$ OPTARG" ;; m) mixer = "$ OPTARG" ;; ?) echo "$ usage" exit 1 ;; esac done shift "$ (($ OPTIND - 1))" command = "$ 1" case "$ command" в down) display_volume = "$ (_amixer set" $ increment% - "unmute | _get_display_volume" ";; немой), если _amixer get | grep -q "\ [on \]"; затем display_volume = 0 icon_name = "notification-audio-volume-muted" _mixer set mute & gt; / 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"]; тогда если ["$ display_volume" = "0"]; затем icon_name = "notification-audio-volume-off" elif ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" elif ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi # В подоболочке в фоновом режиме, чтобы минимизировать задержку. (canberra-gtk-play --id = изменение громкости звука & amp;) fi notify-send "Volume: $ display_volume%" -i "$ icon_name" -h "string: synchronous: volume" -h "int: значение : $ display_volume "
Это улучшенная версия скрипта htorque отправлена .
Это работает для меня 14.04. Дайте мне знать, если он работает с 16.04 или новее.
Он требует установки libnotify-bin
.
#! / Bin / sh # Adjust громкость, воспроизведение звука и отображение уведомлений. # # Замена по умолчанию для регулировки громкости Ubuntu. # # На основании https://askubuntu.com/a/12769/301745 command = "" device = "pulse" display_volume = 0 icon_name = "error" increment = 5 mixer = "Master" usage = "use: $ 0 [- d device] [-i increment] [-m mixer] (up | down | mute) "# Для совместимости с сеансами SSH. 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 '(? & lt; = \ [) [0-9] + (? =% \])'}, а getopts d: hi: m: opt; do case "$ opt" в d) device = "$ OPTARG" ;; h) выход echo «$ usage» 0 ;; i) increment = "$ OPTARG" ;; m) mixer = "$ OPTARG" ;; ?) echo "$ usage" exit 1 ;; esac done shift "$ (($ OPTIND - 1))" command = "$ 1" case "$ command" в down) display_volume = "$ (_amixer set" $ increment% - "unmute | _get_display_volume" ";; немой), если _amixer get | grep -q "\ [on \]"; затем display_volume = 0 icon_name = "notification-audio-volume-muted" _mixer set mute & gt; / 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"]; тогда если ["$ display_volume" = "0"]; затем icon_name = "notification-audio-volume-off" elif ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" elif ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi # В подоболочке в фоновом режиме, чтобы минимизировать задержку. (canberra-gtk-play --id = изменение громкости звука & amp;) fi notify-send "Volume: $ display_volume%" -i "$ icon_name" -h "string: synchronous: volume" -h "int: значение : $ display_volume "
DISPLAY =: 0
(или другое, если ваш дисплей отличается), чтобы пользователь lirc мог отправить его в нужное место. Не может быть.
– Oli♦
12 November 2010 в 04:59
- clearmodifiers
после нажатия клавиши, чтобы использовать его в настройках быстрых клавиш Ubuntu.
– Pablo Bianchi
18 January 2017 в 06:31
- clearmodifiers
, однако вам определенно нужно это для xbindkeys.
– wjandrea
28 September 2017 в 02:55
Вы можете связать ярлык с этим скриптом, который я нашел в форумах Arch (требуется пакет libnotify-bin
):
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer]" command = increment = 5% mixer = Master while getopts i: m: ho сделать случай «$ o» в i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done shift $ (($ OPTIND - 1)) command = $ 1, если ["$ command" = ""]; then echo "use: $ 0 {up | down | mute} [increment]" exit 0; fi display_volume = 0, если ["$ command" = "up"]; затем display_volume = $ (amixer set $ mixer $ increment + unmute | grep -m 1 "%]" | cut -d "[" -f2 | cut -d "%" -f1) fi if ["$ command" = "down "]; затем display_volume = $ (amixer set $ mixer $ increment-unmute | grep -m 1 "%]" | cut -d "[" -f2 | cut -d "%" -f1) fi icon_name = "", если ["$ command "=" mute "]; тогда, если amixer получит Мастер | grep "\ [on \]"; затем display_volume = 0 icon_name = "уведомление-звук-объем-приглушенный" amixer set $ mixer mute else display_volume = $ (amixer set $ mixer unmute | grep -m 1 "%]" | cut -d "[" -f2 | cut -d "%" -f1) fi fi, если ["$ icon_name" = ""]; тогда если ["$ display_volume" = "0"]; затем icon_name = "notification-audio-volume-off" elif ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" elif ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi notify-send "" -i $ icon_name -h int: значение: $ display_volume -h строка: synchronous: volume
Кажется хорошо работать в Ubuntu 10.10.
DISPLAY =: 0
(или другое, если ваш дисплей отличается), чтобы пользователь lirc мог отправить его в нужное место. Не может быть.
– Oli♦
12 November 2010 в 04:59
- clearmodifiers
после нажатия клавиши, чтобы использовать его в настройках быстрых клавиш Ubuntu.
– Pablo Bianchi
18 January 2017 в 06:31
- clearmodifiers
, однако вам определенно нужно это для xbindkeys.
– wjandrea
28 September 2017 в 02:55
Установите пакет xdotool и попробуйте выдавать
ключ xdotool XF86AudioLowerVolume
и
xdotool ключ XF86AudioRaiseVolume
DISPLAY =: 0
(или другое, если ваш дисплей отличается), чтобы пользователь lirc мог отправить его в нужное место. Не может быть.
– Oli♦
12 November 2010 в 04:59
- clearmodifiers
после нажатия клавиши, чтобы использовать его в настройках быстрых клавиш Ubuntu.
– Pablo Bianchi
18 January 2017 в 06:31
- clearmodifiers
, однако вам определенно нужно это для xbindkeys.
– wjandrea
28 September 2017 в 02:55
Вы можете связать ярлык с этим скриптом, который я нашел в форумах 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
Возможно, вы захотите посмотреть на этот вопрос: man amixer
Вы можете воспроизвести на экранном уведомлении, используя библиотеку X X-OS X-Screen Display. Пакет называется xosd-bin, а команда osd_cat используется для отображения на экране текста, столбцов состояния и т. Д.
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
отображает
Я установил 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 https://askubuntu.com/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"
Вы можете использовать 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
Возможно, вы захотите посмотреть на этот вопрос: man amixer
Вы можете воспроизвести на экранном уведомлении, используя библиотеку X X-OS X-Screen Display. Пакет называется xosd-bin, а команда osd_cat используется для отображения на экране текста, столбцов состояния и т. Д.
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
отображает
Я установил 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 https://askubuntu.com/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"
Вы можете использовать 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
Возможно, вы захотите посмотреть на этот вопрос: man amixer
Вы можете воспроизвести на экранном уведомлении, используя библиотеку X X-OS X-Screen Display. Пакет называется xosd-bin, а команда osd_cat используется для отображения на экране текста, столбцов состояния и т. Д.
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
отображает
Я установил 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
Вы можете использовать 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
Возможно, вы захотите посмотреть на этот вопрос: man amixer
Вы можете воспроизвести на экранном уведомлении, используя библиотеку X X-OS X-Screen Display. Пакет называется xosd-bin, а команда osd_cat используется для отображения на экране текста, столбцов состояния и т. Д.
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
отображает
Я установил 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
Вы можете использовать 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
Возможно, вы захотите посмотреть на этот вопрос: man amixer
Вы можете воспроизвести на экранном уведомлении, используя библиотеку X X-OS X-Screen Display. Пакет называется xosd-bin, а команда osd_cat используется для отображения на экране текста, столбцов состояния и т. Д.
osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"
отображает
Я установил 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
Я установил xmacro и добавил следующие строки в .lircrc :
begin prog = irexec button = KEY_VOLUMEUP repeat = 1 delay = 2 config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $ DISPLAY end begin prog = кнопка irexec = KEY_VOLUMEDOWN repeat = 1 delay = 2 config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $ DISPLAY end begin prog = кнопка irexec = KEY_MUTE config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $ DISPLAY end
Вы можете использовать amixer
для управления громкостью звука, например
набор амиксеров «Master» 50% -ный набор усилителей «Мастер» 10% + набор амиксеров «Мастер» 2dB-
Возможно, вам потребуется установить звуковую карту, используя, например, -c 1
для второй звуковой карты, см. man amixer .
Звуки могут воспроизводиться с помощью проигрывателя, такого как aplay
или paplay
, например
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
Возможно, вы захотите посмотреть на этот вопрос: Где я могу найти системные звуки?
Вы можете воспроизвести экранное уведомление с помощью X XDD-библиотеки X-Screen Display. Пакет называется xosd-bin
, а команда osd_cat
используется для отображения на экране текста, строк состояния и т. Д.
osd_cat -b% -P 20 -T Статус: -f "-adobe-helvetica-bold - * - * - 34 - * - * - * - *"
отображает
См. эту немецкую wiki-страницу для опций и примеров и man osd_cat для более.
Вы можете использовать amixer
для управления громкостью звука, например
набор амиксеров «Master» 50% -ный набор усилителей «Мастер» 10% + набор амиксеров «Мастер» 2dB-
Возможно, вам потребуется установить звуковую карту, используя, например, -c 1
для второй звуковой карты, см. man amixer .
Звуки могут воспроизводиться с помощью проигрывателя, такого как aplay
или paplay
, например
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
Возможно, вы захотите посмотреть на этот вопрос: Где я могу найти системные звуки?
Вы можете воспроизвести экранное уведомление с помощью X XDD-библиотеки X-Screen Display. Пакет называется xosd-bin
, а команда osd_cat
используется для отображения на экране текста, строк состояния и т. Д.
osd_cat -b% -P 20 -T Статус: -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 = KEY_VOLUMEDOWN repeat = 1 delay = 2 config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $ DISPLAY end begin prog = кнопка irexec = KEY_MUTE config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $ DISPLAY end
Я установил xmacro и добавил следующие строки в .lircrc :
begin prog = irexec button = KEY_VOLUMEUP repeat = 1 delay = 2 config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $ DISPLAY end begin prog = кнопка irexec = KEY_VOLUMEDOWN repeat = 1 delay = 2 config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $ DISPLAY end begin prog = кнопка irexec = KEY_MUTE config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $ DISPLAY end
Вы можете использовать amixer
для управления громкостью звука, например
набор амиксеров «Master» 50% -ный набор усилителей «Мастер» 10% + набор амиксеров «Мастер» 2dB-
Возможно, вам потребуется установить звуковую карту, используя, например, -c 1
для второй звуковой карты, см. man amixer .
Звуки могут воспроизводиться с помощью проигрывателя, такого как aplay
или paplay
, например
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
Возможно, вы захотите посмотреть на этот вопрос: Где я могу найти системные звуки?
Вы можете воспроизвести экранное уведомление с помощью X XDD-библиотеки X-Screen Display. Пакет называется xosd-bin
, а команда osd_cat
используется для отображения на экране текста, строк состояния и т. Д.
osd_cat -b% -P 20 -T Статус: -f "-adobe-helvetica-bold - * - * - 34 - * - * - * - *"
отображает
См. эту немецкую wiki-страницу для опций и примеров и man osd_cat для более.
Вы можете использовать amixer
для управления громкостью звука, например
набор амиксеров «Master» 50% -ный набор усилителей «Мастер» 10% + набор амиксеров «Мастер» 2dB-
Возможно, вам потребуется установить звуковую карту, используя, например, -c 1
для второй звуковой карты, см. man amixer .
Звуки могут воспроизводиться с помощью проигрывателя, такого как aplay
или paplay
, например
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
Возможно, вы захотите посмотреть на этот вопрос: Где я могу найти системные звуки?
Вы можете воспроизвести экранное уведомление с помощью X XDD-библиотеки X-Screen Display. Пакет называется xosd-bin
, а команда osd_cat
используется для отображения на экране текста, строк состояния и т. Д.
osd_cat -b% -P 20 -T Статус: -f "-adobe-helvetica-bold - * - * - 34 - * - * - * - *"
отображает
См. эту немецкую wiki-страницу для опций и примеров и man osd_cat для более.