Когда я нажимаю клавиши увеличения / уменьшения громкости на моей клавиатуре, громкость изменяется слишком сильно. Как уменьшить размер шага, чтобы у меня было более точное управление?
Из этого отчета об ошибке появляется, что ключ шага объема исчез в 11.10 и еще не появился (пока).
Таким образом, нет простое простое изменение конфигурации, которое вы можете сделать, чтобы уменьшить шаг объема.
Сообщение № 18 в ссылке дает интересное обходное решение, которое включает в себя использование возможности alsamixer увеличения и уменьшения, а также отправки уведомлений на рабочий стол.
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С помощью этого решения шаг по умолчанию будет уменьшен до двухзначного, проценты шагов
Установите пакет xbindkeys (используя Synaptic или с sudo apt-get install xbindkeys).
Используя ваш любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh и скопируйте и вставьте содержимое ниже в этот файл, т. Е.
gedit ~/.volumeHack.sh
Запустите chmod a+x .volumeHack.sh, чтобы сделать его исполняемым.
Затем отредактируйте файл ~/.xbindkeysrc и скопируйте & amp; вставьте текст ниже в нижней части этого файла. то есть
gedit ~/.xbindkeysrc
Выход из системы и вход в систему
# Increase volume
#"amixer set Master playback 1+"
"sh ~/.volumeHack.sh -c up -i 2% -m Master"
m:0x0 + c:123
XF86AudioRaiseVolume
# Decrease volume
"sh ~/.volumeHack.sh -c down -i 2% -m Master"
m:0x0 + c:122
XF86AudioLowerVolume
# Toggle mute - this is not used here
#"amixer set Master toggle"
# m:0x0 + c:121
# XF86AudioMute
#!/bin/sh
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts c:i:m:h o
do case "$o" in
c) command=$OPTARG;;
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
#echo "command:$command"
#echo "increment:$increment"
#echo "mixer:$mixer"
if [ "$command" = "" ]; then
shift $(($OPTIND - 1))
command=$1
exit 0;
fi
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"
else
if [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
else
if [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
fi
fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
#echo "icon: $icon_name and $display_volume"
Из этого отчета об ошибке появляется, что ключ шага объема исчез в 11.10 и еще не появился (пока).
Таким образом, нет простое простое изменение конфигурации, которое вы можете сделать, чтобы уменьшить шаг объема.
Сообщение № 18 в ссылке дает интересное обходное решение, которое включает в себя использование возможности alsamixer увеличения и уменьшения, а также отправки уведомлений на рабочий стол.
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С помощью этого решения шаг по умолчанию будет уменьшен до двухзначного, проценты шагов
Установите пакет xbindkeys (используя Synaptic или с sudo apt-get install xbindkeys).
Используя ваш любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh и скопируйте и вставьте содержимое ниже в этот файл, т. Е.
gedit ~/.volumeHack.sh
Запустите chmod a+x .volumeHack.sh, чтобы сделать его исполняемым.
Затем отредактируйте файл ~/.xbindkeysrc и скопируйте & amp; вставьте текст ниже в нижней части этого файла. то есть
gedit ~/.xbindkeysrc
Выход из системы и вход в систему
# Increase volume
#"amixer set Master playback 1+"
"sh ~/.volumeHack.sh -c up -i 2% -m Master"
m:0x0 + c:123
XF86AudioRaiseVolume
# Decrease volume
"sh ~/.volumeHack.sh -c down -i 2% -m Master"
m:0x0 + c:122
XF86AudioLowerVolume
# Toggle mute - this is not used here
#"amixer set Master toggle"
# m:0x0 + c:121
# XF86AudioMute
#!/bin/sh
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts c:i:m:h o
do case "$o" in
c) command=$OPTARG;;
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
#echo "command:$command"
#echo "increment:$increment"
#echo "mixer:$mixer"
if [ "$command" = "" ]; then
shift $(($OPTIND - 1))
command=$1
exit 0;
fi
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"
else
if [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
else
if [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
fi
fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
#echo "icon: $icon_name and $display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Из этого отчета об ошибке появляется ключ шага объема, который исчез в 11.10 и еще не появился (пока).
] Таким образом, нет простого простого изменения конфигурации, которое вы можете сделать для уменьшения шага громкости.
Сообщение № 18 в ссылке дает интересное обходное решение, которое предполагает использование alsamixer
(! d17)
Однако я не мог заставить его работать, поэтому мое решение основано на этом сообщении.
С этим
Установите пакет xbindkeys
(используя Synaptic, или с помощью sudo apt-get install xbindkeys
).
Используя свой любимый текстовый редактор, создайте файл в домашней папке с именем .volumeHack.sh
и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~ / .volumeHack.sh
[ ! d25]Запустите
chmod a + x .volumeHack.sh
, чтобы сделать его исполняемым.Затем отредактируйте файл
~ / .xbindkeysrc
и копировать & amp; вставьте текст ниже в нижней части этого файла. т.е.gedit ~ / .xbindkeysrc
Выйти и войти в систему
.xbindkeysrc
# Увеличить громкость # "amixer set Мастер-воспроизведение 1+" "sh ~ / .volumeHack.sh -c up -i 2% -m Master" m: 0x0 + c: 123 XF86AudioRaiseVolume # Уменьшить громкость "sh ~ / .volumeHack.sh - c down -i 2% -m Master "m: 0x0 + c: 122 XF86AudioLowerVolume # Toggle mute - здесь не используется #" amixer set Master toggle "# m: 0x0 + c: 121 # XF86AudioMute
.volumeHack.sh
#! / bin / sh usage = "use: $ 0 -c {up | down | mute} [-i increment] [-m mixer] "command = increment = 5% mixer = Master while getopts c: i: m: ho do case" $ o "в c) command = $ OPTARG ;; i) increment = $ OPTARG ;; m) mixer = $ OPTARG ;; h) echo "$ usage"; выход 0 ;; ?) echo "$ usage"; выход 0 ;; esac done #echo ": $ command" #echo "increment: $ increment" #echo "mixer: $ mixer" if ["$ command" = ""]; затем сдвиг $ (($ OPTIND - 1)) command = $ 1 exit 0; fi, если ["$ 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"]; then icon_name = "уведомление-аудио-громкость-off" else if ["$ display_volume" -lt "33"]; then icon_name = "notification-audio-volume-low" else if ["$ display_volume" -lt "67"]; затем icon_name = "notification-audio-volume-medium" else icon_name = "notification-audio-volume-high" fi fi fi fi notify-send "" -i $ icon_name -h int: value: $ display_volume -h строка: синхронный : volume #echo ": $ icon_name и $ display_volume"
Отредактируйте файл main.xml, как правило, найденный по адресу: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml в качестве пользователя root.
Ищите запись volumeStep:
<entry name="volumeStep" type="Int">
<default>2</default>
</entry>
и измените процентный шаг на все, что вы хотите. Я использую 2%, как вы можете видеть.
Как написано на Kubuntu 16.04, вам нужно перезапустить Plasma, чтобы это вступило в силу:
killall plasmashell #to stop it
kstart plasmashell #to restart it
У вас не будет действий на панели громкости на экране при использовании сочетаний клавиш, но у вас будет,
Системные настройки> Клавиатура> Вкладка «Ярлыки»> «Звук и мультимедиа» категории Отключите существующие сочетания «Уменьшение громкости» и «Уменьшить громкость». Чтобы сделать это, нажмите каждый раз, чтобы выбрать его, а затем нажмите Backspace, чтобы очистить любую комбинацию клавиш, связанную с ним. Теперь выберите категорию «Пользовательские ярлыки» и щелкните значок «+», чтобы создать два новых ярлыка следующим образом: Name: Volume UpПосле этого, когда вы используете свои регуляторы громкости клавиатуры, вы должны иметь любые приращения объема, которые вы указали. Вы всегда можете вернуться к исходному поведению, отключив свои собственные ярлыки и снова включив готовые в категории «Звук и мультимедиа».
Если вы хотите напрямую управлять томом pulseaudio, а не идти по маршруту ALSA, вы можете использовать следующий скрипт. Хотя также можно контролировать громкость через DBUS, как описано в этом ответе Stackoverflow, однако я не смог найти способ сделать эту работу в Ubuntu 12.04.
Как сказано в самом скрипте, это использует этот ответ Stackoverflow и расширяет идею в сценарий, который принимает изменение объема в качестве аргумента командной строки, а также показывает уведомление OSD. Я попытался как можно более точно его моделировать по умолчанию Ubuntu (12.04).
Сценарий принимает изменения объема как абсолютное, или относительное число или процентное значение. Так, например:
pavol.sh 2000 устанавливает громкость в 2000, pavol.sh 30% устанавливает громкость на 30 процентов, pavol.sh +1000 увеличивает громкость на 1000, а pavol.sh -5% уменьшает громкость на 5 процентов.Это также довольно либерально комментируется в надежде на то, что оно полезно для дальнейшей настройки.
Используйте свой любимый текстовый редактор для создания файла в своем (или где-нибудь еще - просто запомните путь) под названием pavol.sh и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~/pavol.sh
Запустите chmod a+x ~/pavol.sh, чтобы сделать его исполняемым.
Затем откройте Sytem Settings, перейдите к настройкам Keyboard и перейдите на вкладку Shortcuts. Нажмите Custom Shortcuts и создайте два новых сочетания клавиш с помощью кнопки плюс.
Дайте каждому имя и как команду введите что-то вроде этого: /home/username/pavol.sh "+3%" Важно ввести полный путь к pavol.sh (если скрипт не находится в папке, включенной в переменную среды PATH). Также используйте знаки котировки "" вокруг значения тома или сочетание клавиш не будет работать.
После этого щелкните по правой стороне каждой записи, чтобы установить комбинацию клавиш или мультимедийный ключ. Если желаемая комбинация или клавиша уже назначена другому ярлыку, программа спросит, хотите ли вы переназначить ее.
#!/bin/bash --
## This script expands upon this answer on stackoverflow:
## https://stackoverflow.com/a/10739764
##
## GLOBAL VARIABLES
# restrict usable commands
PATH="/bin:/usr/bin"
# this script changes the volume of the default sink (as set, for instance, via the Ubuntu sound menu);
# use "pactl info" to display these settings neatly in a terminal
DEFAULT_SINK=$(pacmd dump | grep 'set-default-sink' | cut -d ' ' -f 2)
# get max. volume from the DEFAULT_SINK
MAX_VOL=$(pacmd list-sinks | grep -A 20 "name: <${DEFAULT_SINK}>" | grep "volume steps:" | tr -d '[:space:]' | cut -d ':' -f 2)
# show debug messages?
# 0 means no debug messages; 1 prints the current volume to the console at the end of the script; 2 switches on bash debugging via "set -x"
DEBUG=0
## FUNCTIONS
# generate trace output if DEBUG is 2 or higher
if [ ${DEBUG} -gt 1 ]; then set -x; fi
# use poor man's return buffer via this variable (This is not stackable!)
RETVAL=""
# print simple usage text to console
show_usage() {
echo "Usage: $(basename ${0}) [+|-][number|percentage]"
}
# return (via RETVAL) the current pulseaudio volume as hexadecimal value
get_cur_vol() {
RETVAL=$(pacmd dump | grep "set-sink-volume ${DEFAULT_SINK}" | cut -d ' ' -f 3)
}
# change the pulseaudio volume as set in the first parameter variable, i.e. ${1};
# this can either be an absolute percentage or normal value, for instance 20% or 2000,
# or a relative percentage or normal value, for instance +3% or -5% or +200 or -1000
change_vol() {
step=${1}
relative=${step:0:1} # extract first character
percent=${step: -1} # extract last character
# cut off first character for easier calculations, if it is either a "+" or "-"
if [ "${relative}" = "+" -o "${relative}" = "-" ]; then step=${step:1}; fi
# if the last character of ${step} was, in fact, a percent sign...
if [ "${percent}" = "%" ]; then
step=${step:0:-1} # cut off last character for easier calculations
step=$[step*MAX_VOL/100] # change percentage into fixed value via MAX_VOL
fi
# save current volume in ${old_vol}
get_cur_vol
old_vol=$[RETVAL+0] # the dummy calculation turns the hexadecimal number to a decimal one
# calculate the new volume value ${new_vol} with the operand that was extracted earlier
if [ "${relative}" = "+" ]; then
new_vol=$[old_vol+step]
else
if [ "${relative}" = "-" ]; then
new_vol=$[old_vol-step]
else
# no operand found, so ${step} must be an absolute value
new_vol=${step}
fi
fi
# check boundaries - don't go below 0 and above MAX_VOL
if [ ${new_vol} -lt 0 ]; then new_vol=0; fi
if [ ${new_vol} -gt ${MAX_VOL} ]; then new_vol=${MAX_VOL}; fi
# set the new volume
pactl -- set-sink-volume "${DEFAULT_SINK}" "${new_vol}"
# mute the sink if the new volume drops to 0 ...
if [ ${new_vol} -le 0 ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" yes
else
# ... or unmute the sink if the new volume is greater than the old
if [ ${new_vol} -gt ${old_vol} ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" no
fi
fi
}
# show an OSD notification
notify_osd() {
# get current volume
get_cur_vol
cur_vol_percent=$[RETVAL*100/MAX_VOL]
# get mute state (gives "yes" or "no")
muted=$(pacmd dump | grep "set-sink-mute ${DEFAULT_SINK}" | cut -d ' ' -f 3)
# choose suitable icon (modeled after the default Ubuntu 12.04 behavior):
# muted-icon if volume is muted
if [ "${muted}" = "yes" ]; then
icon="notification-audio-volume-muted"
else
# icon with loudspeaker and 1 of the 3 circle segments filled if volume is less than 34%
if [ ${cur_vol_percent} -lt 34 ]; then
icon="notification-audio-volume-low"
else
# icon with loudspeaker and 2 of the 3 circle segments filled if volume is between 34% and 66%
if [ ${cur_vol_percent} -lt 67 ]; then
icon="notification-audio-volume-medium"
else
# icon with loudspeaker and all 3 of the 3 circle segments filled if volume is higher than 66%
icon="notification-audio-volume-high"
fi
fi
fi
# show notification
notify-send "Volume" -i ${icon} -h int:value:${cur_vol_percent} -h string:synchronous:volume
}
# fake main function, that gets called first and kicks off all the other functions
main() {
# only change volume if input is a number with either a +/- prefix and/or a % suffix
if [[ "${1}" =~ ^[+-]?[0-9]+[%]?$ ]]; then
change_vol ${1}
else
show_usage
fi
# show volume osd
notify_osd
# show the new - now current - volume in hexadecimal, decimal and percentage if DEBUG is greater than 0
if [ ${DEBUG} -gt 0 ]; then
get_cur_vol
echo "${RETVAL} - $[RETVAL+0] - $[RETVAL*100/MAX_VOL]%"
fi
}
## REAL MAIN
# run the fake main function and pass on all command line arguments; then exit the script
main ${@}
exit 0
Я только что обнаружил, что gconf-editor имеет настройку «Громкость в процентах от объема»:
/apps/gnome_settings_daemon/volume_step
Гораздо более элегантно, и он работает с уведомлениями тома OSD.
Наконец-то я получил правильное решение для пользователей Trusty, Vivid, Wily, Xenial, Yakkety и Zesty. Вместо того, чтобы использовать кучу хаков или скриптов, я решил исправить проблему в исходном коде. Я применил этот патч к gnome-settings-daemon и unique-settings-daemon (некоторые тривиальные модификации были внесены в патч).
Я загрузил пакеты в PPA:
ppa: george-edison55 / gnome-settings-daemon (Нажмите здесь, чтобы получить инструкции по использованию PPA.)После того, как вы добавили PPA, запустите:
sudo apt-get update
sudo apt-get upgrade
необходимо перезапустить после завершения установки. После обновления пакетов вы можете использовать этот патч для изменения приращения объема:
dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2
(значение по умолчанию - 6.)
Теперь, когда вы нажимаете клавиши регулировки громкости, громкость изменяется с шагом 2:
Стоит отметить, что на Ubuntu 17.10 уже есть (хотя и несколько запутанная) поддержка. Нажмите Shift + XF86AudioRaiseVolume (или XF86AudioLowerVolume), чтобы изменить громкость с меньшим размером шага.
Я обновил с 14.04, где был уровень мастер-уровня, а также отдельные источники входного сигнала и источники вывода и шаг увеличения / уменьшения 3% (который позже изменился на 5%), , Мне удалось удержать его до 2% и 3% шагов, просто отрегулировав уровни громкости выходного источника, чтобы компенсировать шаги мастер-уровня.
Так что, естественно, я немного разозлился, когда 16.04 поднял это до 6 %, и удалили главный регулятор громкости, вместо этого кнопки регулировки громкости управляют обоими источниками.
Вышеописанное исправление для Ubuntu 16.04 не работает с интерфейсом Plasma 5, используемым на KDE5, поэтому не будет работать Kubuntu 16.04 - я пробовал, и он не работает.
Итак, я сделал быструю проверку онлайн, и процесс требует ручного изменения файла, но это довольно просто.
Отредактируйте файл ListItemBase.qml, обычно найденный в /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml как root.
В функциях increaseVolume и decreaseVolume есть несколько строк, которые определяют шаг, деля максимальный объем на 15. Они смотрят например:
var step = slider.maximumValue / 15;
Чем выше число, тем меньше шагов. Если это было 1, объем равен 0% или 100%, но если бы это было 100, объем увеличивался бы с шагом 1%.
Лично я нацелился на 2%, поэтому я изменил обе эти строки относятся к
var step = slider.maximumValue / 50;
Кредит относится к этому Reddit: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/
Однако, вам нужно будет перезапустить Plasma, чтобы это вступило в силу:
killall plasmashell #to stop it
kstart plasmashell #to restart it
Надеюсь, это поможет кому-то выйти или, возможно, даже приведет к тому, что кто-то представит изменение в Plasma, чтобы сделать эту конфигурацию ... как может закончиться тем, что я после другого обновления.
Вы можете сделать это с помощью диспетчера настроек CompizConfig. Используйте команду sudo apt-get install compizconfig-settings-manager, если вы ее еще не установили.
Теперь откройте диспетчер настроек CompizConfig и перейдите в «Команды» в разделе «Общие». Установите флажок Включить команды справа. На вкладке «Команды» введите следующие две команды отдельно в качестве двух команд:
amixer set Master 5%+ -q
amixer set Master 5%- -q
Назначьте два сочетания клавиш для команд в вкладка . Я использую комбинацию Super + [и Super +]. Теперь закройте диспетчер настроек CompizConfig, и это должно работать.
Я не уверен, что вы можете назначить команды встроенным контроллерам томов на компьютере.
Отредактируйте файл main.xml, как правило, найденный по адресу: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml в качестве пользователя root.
Ищите запись volumeStep:
<entry name="volumeStep" type="Int">
<default>2</default>
</entry>
и измените процентный шаг на все, что вы хотите. Я использую 2%, как вы можете видеть.
Как написано на Kubuntu 16.04, вам нужно перезапустить Plasma, чтобы это вступило в силу:
killall plasmashell #to stop it
kstart plasmashell #to restart it
У вас не будет действий на панели громкости на экране при использовании сочетаний клавиш, но у вас будет,
Системные настройки> Клавиатура> Вкладка «Ярлыки»> «Звук и мультимедиа» категории Отключите существующие сочетания «Уменьшение громкости» и «Уменьшить громкость». Чтобы сделать это, нажмите каждый раз, чтобы выбрать его, а затем нажмите Backspace, чтобы очистить любую комбинацию клавиш, связанную с ним. Теперь выберите категорию «Пользовательские ярлыки» и щелкните значок «+», чтобы создать два новых ярлыка следующим образом: Name: Volume UpПосле этого, когда вы используете свои регуляторы громкости клавиатуры, вы должны иметь любые приращения объема, которые вы указали. Вы всегда можете вернуться к исходному поведению, отключив свои собственные ярлыки и снова включив готовые в категории «Звук и мультимедиа».
Если вы хотите напрямую управлять томом pulseaudio, а не идти по маршруту ALSA, вы можете использовать следующий скрипт. Хотя также можно контролировать громкость через DBUS, как описано в этом ответе Stackoverflow, однако я не смог найти способ сделать эту работу в Ubuntu 12.04.
Как сказано в самом скрипте, это использует этот ответ Stackoverflow и расширяет идею в сценарий, который принимает изменение объема в качестве аргумента командной строки, а также показывает уведомление OSD. Я попытался как можно более точно его моделировать по умолчанию Ubuntu (12.04).
Сценарий принимает изменения объема как абсолютное, или относительное число или процентное значение. Так, например:
pavol.sh 2000 устанавливает громкость в 2000, pavol.sh 30% устанавливает громкость на 30 процентов, pavol.sh +1000 увеличивает громкость на 1000, а pavol.sh -5% уменьшает громкость на 5 процентов.Это также довольно либерально комментируется в надежде на то, что оно полезно для дальнейшей настройки.
Используйте свой любимый текстовый редактор для создания файла в своем (или где-нибудь еще - просто запомните путь) под названием pavol.sh и скопируйте и вставьте содержимое ниже в этот файл, т. е.
gedit ~/pavol.sh
Запустите chmod a+x ~/pavol.sh, чтобы сделать его исполняемым.
Затем откройте Sytem Settings, перейдите к настройкам Keyboard и перейдите на вкладку Shortcuts. Нажмите Custom Shortcuts и создайте два новых сочетания клавиш с помощью кнопки плюс.
Дайте каждому имя и как команду введите что-то вроде этого: /home/username/pavol.sh "+3%" Важно ввести полный путь к pavol.sh (если скрипт не находится в папке, включенной в переменную среды PATH). Также используйте знаки котировки "" вокруг значения тома или сочетание клавиш не будет работать.
После этого щелкните по правой стороне каждой записи, чтобы установить комбинацию клавиш или мультимедийный ключ. Если желаемая комбинация или клавиша уже назначена другому ярлыку, программа спросит, хотите ли вы переназначить ее.
#!/bin/bash --
## This script expands upon this answer on stackoverflow:
## https://stackoverflow.com/a/10739764
##
## GLOBAL VARIABLES
# restrict usable commands
PATH="/bin:/usr/bin"
# this script changes the volume of the default sink (as set, for instance, via the Ubuntu sound menu);
# use "pactl info" to display these settings neatly in a terminal
DEFAULT_SINK=$(pacmd dump | grep 'set-default-sink' | cut -d ' ' -f 2)
# get max. volume from the DEFAULT_SINK
MAX_VOL=$(pacmd list-sinks | grep -A 20 "name: <${DEFAULT_SINK}>" | grep "volume steps:" | tr -d '[:space:]' | cut -d ':' -f 2)
# show debug messages?
# 0 means no debug messages; 1 prints the current volume to the console at the end of the script; 2 switches on bash debugging via "set -x"
DEBUG=0
## FUNCTIONS
# generate trace output if DEBUG is 2 or higher
if [ ${DEBUG} -gt 1 ]; then set -x; fi
# use poor man's return buffer via this variable (This is not stackable!)
RETVAL=""
# print simple usage text to console
show_usage() {
echo "Usage: $(basename ${0}) [+|-][number|percentage]"
}
# return (via RETVAL) the current pulseaudio volume as hexadecimal value
get_cur_vol() {
RETVAL=$(pacmd dump | grep "set-sink-volume ${DEFAULT_SINK}" | cut -d ' ' -f 3)
}
# change the pulseaudio volume as set in the first parameter variable, i.e. ${1};
# this can either be an absolute percentage or normal value, for instance 20% or 2000,
# or a relative percentage or normal value, for instance +3% or -5% or +200 or -1000
change_vol() {
step=${1}
relative=${step:0:1} # extract first character
percent=${step: -1} # extract last character
# cut off first character for easier calculations, if it is either a "+" or "-"
if [ "${relative}" = "+" -o "${relative}" = "-" ]; then step=${step:1}; fi
# if the last character of ${step} was, in fact, a percent sign...
if [ "${percent}" = "%" ]; then
step=${step:0:-1} # cut off last character for easier calculations
step=$[step*MAX_VOL/100] # change percentage into fixed value via MAX_VOL
fi
# save current volume in ${old_vol}
get_cur_vol
old_vol=$[RETVAL+0] # the dummy calculation turns the hexadecimal number to a decimal one
# calculate the new volume value ${new_vol} with the operand that was extracted earlier
if [ "${relative}" = "+" ]; then
new_vol=$[old_vol+step]
else
if [ "${relative}" = "-" ]; then
new_vol=$[old_vol-step]
else
# no operand found, so ${step} must be an absolute value
new_vol=${step}
fi
fi
# check boundaries - don't go below 0 and above MAX_VOL
if [ ${new_vol} -lt 0 ]; then new_vol=0; fi
if [ ${new_vol} -gt ${MAX_VOL} ]; then new_vol=${MAX_VOL}; fi
# set the new volume
pactl -- set-sink-volume "${DEFAULT_SINK}" "${new_vol}"
# mute the sink if the new volume drops to 0 ...
if [ ${new_vol} -le 0 ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" yes
else
# ... or unmute the sink if the new volume is greater than the old
if [ ${new_vol} -gt ${old_vol} ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" no
fi
fi
}
# show an OSD notification
notify_osd() {
# get current volume
get_cur_vol
cur_vol_percent=$[RETVAL*100/MAX_VOL]
# get mute state (gives "yes" or "no")
muted=$(pacmd dump | grep "set-sink-mute ${DEFAULT_SINK}" | cut -d ' ' -f 3)
# choose suitable icon (modeled after the default Ubuntu 12.04 behavior):
# muted-icon if volume is muted
if [ "${muted}" = "yes" ]; then
icon="notification-audio-volume-muted"
else
# icon with loudspeaker and 1 of the 3 circle segments filled if volume is less than 34%
if [ ${cur_vol_percent} -lt 34 ]; then
icon="notification-audio-volume-low"
else
# icon with loudspeaker and 2 of the 3 circle segments filled if volume is between 34% and 66%
if [ ${cur_vol_percent} -lt 67 ]; then
icon="notification-audio-volume-medium"
else
# icon with loudspeaker and all 3 of the 3 circle segments filled if volume is higher than 66%
icon="notification-audio-volume-high"
fi
fi
fi
# show notification
notify-send "Volume" -i ${icon} -h int:value:${cur_vol_percent} -h string:synchronous:volume
}
# fake main function, that gets called first and kicks off all the other functions
main() {
# only change volume if input is a number with either a +/- prefix and/or a % suffix
if [[ "${1}" =~ ^[+-]?[0-9]+[%]?$ ]]; then
change_vol ${1}
else
show_usage
fi
# show volume osd
notify_osd
# show the new - now current - volume in hexadecimal, decimal and percentage if DEBUG is greater than 0
if [ ${DEBUG} -gt 0 ]; then
get_cur_vol
echo "${RETVAL} - $[RETVAL+0] - $[RETVAL*100/MAX_VOL]%"
fi
}
## REAL MAIN
# run the fake main function and pass on all command line arguments; then exit the script
main ${@}
exit 0
Я только что обнаружил, что gconf-editor имеет настройку «Громкость в процентах от объема»:
/apps/gnome_settings_daemon/volume_step
Гораздо более элегантно, и он работает с уведомлениями тома OSD.
Наконец-то я получил правильное решение для пользователей Trusty, Vivid, Wily, Xenial, Yakkety и Zesty. Вместо того, чтобы использовать кучу хаков или скриптов, я решил исправить проблему в исходном коде. Я применил этот патч к gnome-settings-daemon и unique-settings-daemon (некоторые тривиальные модификации были внесены в патч).
Я загрузил пакеты в PPA:
ppa: george-edison55 / gnome-settings-daemon (Нажмите здесь, чтобы получить инструкции по использованию PPA.)После того, как вы добавили PPA, запустите:
sudo apt-get update
sudo apt-get upgrade
необходимо перезапустить после завершения установки. После обновления пакетов вы можете использовать этот патч для изменения приращения объема:
dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2
(значение по умолчанию - 6.)
Теперь, когда вы нажимаете клавиши регулировки громкости, громкость изменяется с шагом 2:
Стоит отметить, что на Ubuntu 17.10 уже есть (хотя и несколько запутанная) поддержка. Нажмите Shift + XF86AudioRaiseVolume (или XF86AudioLowerVolume), чтобы изменить громкость с меньшим размером шага.
Я обновил с 14.04, где был уровень мастер-уровня, а также отдельные источники входного сигнала и источники вывода и шаг увеличения / уменьшения 3% (который позже изменился на 5%), , Мне удалось удержать его до 2% и 3% шагов, просто отрегулировав уровни громкости выходного источника, чтобы компенсировать шаги мастер-уровня.
Так что, естественно, я немного разозлился, когда 16.04 поднял это до 6 %, и удалили главный регулятор громкости, вместо этого кнопки регулировки громкости управляют обоими источниками.
Вышеописанное исправление для Ubuntu 16.04 не работает с интерфейсом Plasma 5, используемым на KDE5, поэтому не будет работать Kubuntu 16.04 - я пробовал, и он не работает.
Итак, я сделал быструю проверку онлайн, и процесс требует ручного изменения файла, но это довольно просто.
Отредактируйте файл ListItemBase.qml, обычно найденный в /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml как root.
В функциях increaseVolume и decreaseVolume есть несколько строк, которые определяют шаг, деля максимальный объем на 15. Они смотрят например:
var step = slider.maximumValue / 15;
Чем выше число, тем меньше шагов. Если это было 1, объем равен 0% или 100%, но если бы это было 100, объем увеличивался бы с шагом 1%.
Лично я нацелился на 2%, поэтому я изменил обе эти строки относятся к
var step = slider.maximumValue / 50;
Кредит относится к этому Reddit: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/
Однако, вам нужно будет перезапустить Plasma, чтобы это вступило в силу:
killall plasmashell #to stop it
kstart plasmashell #to restart it
Надеюсь, это поможет кому-то выйти или, возможно, даже приведет к тому, что кто-то представит изменение в Plasma, чтобы сделать эту конфигурацию ... как может закончиться тем, что я после другого обновления.
Вы можете сделать это с помощью диспетчера настроек CompizConfig. Используйте команду sudo apt-get install compizconfig-settings-manager, если вы ее еще не установили.
Теперь откройте диспетчер настроек CompizConfig и перейдите в «Команды» в разделе «Общие». Установите флажок Включить команды справа. На вкладке «Команды» введите следующие две команды отдельно в качестве двух команд:
amixer set Master 5%+ -q
amixer set Master 5%- -q
Назначьте два сочетания клавиш для команд в вкладка . Я использую комбинацию Super + [и Super +]. Теперь закройте диспетчер настроек CompizConfig, и это должно работать.
Я не уверен, что вы можете назначить команды встроенным контроллерам томов на компьютере.
Отредактируйте файл main.xml
, который обычно находится по адресу: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents /config/main.xml
как root.
Ищите запись volumeStep:
& lt; entry name = "volumeStep" type = "Int" & gt; ; & Lt; & умолчанию GT; 2 & Lt; / по умолчанию & GT; & Lt; / запись & GT;
и измените процентный шаг на все, что захотите. Я использую 2%, как вы можете видеть.
Как написано на Kubuntu 16.04, вам нужно перезапустить Plasma, чтобы это вступило в силу:
killall plasmashell #to stop это kstart plasmashell #, чтобы перезапустить его
Вы можете сделать это с помощью Диспетчера настроек CompizConfig. Используйте команду sudo apt-get install compizconfig-settings-manager
, если вы еще не установили ее.
Теперь откройте диспетчер настроек CompizConfig и перейдите в «Команды» в разделе «Общие» , Установите флажок Включить команды справа. На вкладке «Команды» введите следующие две команды отдельно в виде двух команд:
amixer set Master 5% + -q
amixer set Master 5% -q
Назначьте два сочетания клавиш для команд на вкладке «Связывание клавиш». Я использую комбинацию Super + [и Super +]. Теперь закройте диспетчер настроек CompizConfig, и это должно работать.
Я не уверен, что вы можете назначать команды встроенным контроллерам томов на компьютере.
I обновлен с 14.04, который имел уровень мастер-уровня, а также отдельные источники входного сигнала и источники вывода и шаг увеличения / уменьшения 3% (который позже изменился на 5%), , Мне удалось удержать его примерно на 2% и 3%, просто отрегулировав уровни громкости выходного источника, чтобы компенсировать шаги мастер-уровня.
Так, естественно, я немного разозлился, когда 16.04 поднял это до 6 %, и удалили главный регулятор громкости, вместо этого кнопки регулировки громкости управляют обоими выходными источниками.
Вышеописанное исправление для Ubuntu 16.04 не работает с интерфейсом Plasma 5, используемым на KDE5, поэтому не будет работать Kubuntu 16.04 - я пробовал, и он не работает.
Итак, я сделал быструю проверку онлайн, и процесс требует ручного изменения файла, но это довольно просто.
Отредактируйте файл ListItemBase.qml
, как правило, найденный в /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml
как root.
Существует несколько строк внутри функций : увеличение VOLUMUM
и уменьшает объем
, которые определяют шаг, деля максимальный объем на 15. Они выглядят так:
var step = slider.maximumValue / 15;
Чем выше число, тем меньше шагов. Если это было 1, объем равен 0% или 100%, но если бы это было 100, объем увеличивался бы с шагом 1%.
Лично я нацелился на 2%, поэтому я изменил обе эти строки относятся к
var step = slider.maximumValue / 50;
Кредит относится к этому Reddit: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/
] Однако для этого вам нужно будет перезапустить Plasma:
killall plasmashell # остановить его kstart plasmashell # перезапустить его
Надеюсь, это поможет кому-то выйти или, может быть, даже привести к тому, что кто-то внесет изменения в Plasma, чтобы настроить эту конфигурацию ... оба могут стать мной после другого обновления.
Стоит отметить, что на Ubuntu 17.10 уже существует (хотя и несколько запутанная) поддержка для этого. Нажмите Shift + XF86AudioRaiseVolume (или XF86AudioLowerVolume), чтобы изменить громкость с меньшим размером шага.
У меня наконец есть правильное решение для пользователей Trusty, Vivid, Wily, Xenial, Yakkety и Zesty. Вместо того, чтобы использовать кучу хаков или скриптов, я решил исправить проблему в исходном коде. Я применил этот патч к gnome-settings-daemon и unity-settings-daemon (некоторые тривиальные модификации были внесены в патч).
Я загрузил пакеты в PPA:
ppa: george-edison55 / gnome-settings-daemon ( Нажмите здесь для получения инструкций )
blockquote>После того, как вы добавили PPA, запустите:
sudo apt-get update sudo apt-get upgrade
После завершения установки вам необходимо перезапустить. После обновления пакетов вы можете использовать команду dconf для изменения приращения темпа:
dconf write / org / gnome / settings-daemon / plugins / sound / volume-step 2
(Значение по умолчанию - 6.)
Теперь, когда вы нажимаете клавиши регулировки громкости, громкость изменяется с шагом 2: