답변:
이 버그 보고서 에서 볼륨 단계 키는 11.10에서 사라져서 아직 나타나지 않았습니다.
따라서 볼륨 단계를 줄이기 위해 간단하게 구성을 변경할 수 없습니다.
링크의 Post # 18은 alsamixer
알림을 데스크탑에 보내는 것과 함께 증가 및 감소 기능을 사용하는 흥미로운 해결 방법을 제공합니다 .
그러나 나는 그것을 작동시키지 못했습니다. 따라서 솔루션에 대한 나의 입장은 그 게시물을 기반으로합니다.
이 솔루션을 사용하면 기본 볼륨 단계가 2 % 단계로 줄어 듭니다.
xbindkeys
패키지를 설치하십시오 (Synaptic 사용 또는 사용 sudo apt-get install xbindkeys
).
자주 사용하는 텍스트 편집기를 사용하여 홈 폴더에 파일을 만들고 .volumeHack.sh
아래 내용을 복사하여 해당 파일에 붙여 넣습니다.
gedit ~/.volumeHack.sh
실행 가능 chmod a+x .volumeHack.sh
하도록 실행하십시오 .
그런 다음 파일을 편집 ~/.xbindkeysrc
하고이 파일의 맨 아래에 아래 텍스트를 복사하여 붙여 넣습니다. 즉
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"
마지막으로 Trusty, Vivid, Wily, Xenial, Yakkety 및 Zesty 사용자에게 적합한 솔루션이 있습니다. 많은 해킹이나 스크립트를 사용하는 대신 소스 코드에서 문제를 해결하기로 결정했습니다. 나는 적용 이 패치 에 그놈 - 설정 - 데몬 과 단결 - 설정 - 데몬 (일부 사소한 수정이 패치로 만들어졌다).
패키지를 PPA에 업로드했습니다.
ppa : george-edison55 / gnome-settings-daemon ( PPA 사용에 대한 지침을 보려면 여기를 클릭하십시오. )
PPA를 추가 한 후 다음을 실행하십시오.
sudo apt-get update
sudo apt-get upgrade
설치가 완료된 후 다시 시작해야합니다. 패키지가 업그레이드 된 후에는 사용할 수 명령을 볼륨 증가를 변경하려면 :dconf
dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2
(기본값은 6입니다.)
이제 볼륨 키를 누르면 볼륨이 2 씩 증가합니다.
mate-settings-daemon
도 가능합니까? 나는 영원히 감사 할 것이다 :-)
dconf write /org/mate/settings-daemon/plugins/media-keys/volume-step <NUM>
어디에 있습니까 <NUM>
? 나는 이것을 MATE 16.04에서 테스트했습니다.
바로 가기 키를 사용할 때는 화면 볼륨 막대 동작이 없지만 원하는대로 세밀하게 볼륨을 조절할 수 있습니다.
시스템 설정> 키보드> "바로 가기"탭> "사운드 및 미디어"범주
기존 "Volume Down"및 "Volume Up"바로 가기를 비활성화하십시오. 이렇게하려면 클릭 할 때마다 클릭하여 선택한 다음 백 스페이스 키를 눌러 연관된 키 조합을 지우십시오.
이제 "Custom Shortcuts"범주를 선택하고 "+"아이콘을 클릭하여 다음과 같이 두 개의 새로운 바로 가기를 만듭니다.
이름 : 볼륨 높이기
명령 : 믹서 세트 마스터 3 % +
이름 : 볼륨 작게
명령 : 믹서 세트 마스터 3 %-
(백분율을 사용한 실험. 극도로 잘 진행해야하는 경우 % 부호를 생략하면 백분율 대신 0-255 스케일이 사용됩니다).
이제 각각의 새로운 단축키를 키 또는 키 콤보에 할당하십시오 : 단축키를 선택하고 키보드에서 원하는 키를 입력하십시오.
그런 다음 키보드 볼륨 컨트롤을 사용할 때 지정한 볼륨을 늘려야합니다. 사용자 정의 바로 가기를 비활성화하고 "사운드 및 미디어"범주에서 미리 만든 바로 가기를 다시 활성화하여 항상 원래 동작으로 돌아갈 수 있습니다.
그것은 우분투 17.10에, (다소 복잡한이기는하지만) 이미이 있음을 언급하는 것은 가치 의 종류 이 지원. 더 작은 스텝 크기로 볼륨을 변경하려면 Shift+ XF86AudioRaiseVolume(또는 XF86AudioLowerVolume)를 누릅니다 .
CompizConfig 설정 관리자를 사용하여이 작업을 수행 할 수 있습니다. 명령 sudo apt-get install compizconfig-settings-manager
을 아직 설치하지 않은 경우 사용하십시오
.
이제 CompizConfig 설정 관리자를 열고 일반 섹션의 명령 으로 이동 하십시오. 오른쪽의 명령 사용 확인란을 선택 하십시오 . 에서 명령 탭, 두 개의 명령 별도로 다음과 같은 두 가지 명령을 입력 :
amixer set Master 5%+ -q
amixer set Master 5%- -q
키 바인딩 탭 에서 명령에 대한 두 개의 키보드 단축키를 지정 하십시오. Super + [와 Super +] 조합을 사용합니다. 이제 CompizConfig 설정 관리자를 닫으면 작동합니다.
그래도 컴퓨터의 내장 볼륨 컨트롤러에 명령을 할당 할 수 있는지 잘 모르겠습니다.
amixer
명령은 훌륭하지만 독자에게 CompizConfig 설정 관리자를 설치하도록 지시 할 필요는 없습니다.
ALSA 경로를 사용하지 않고 펄스 오디오 볼륨을 직접 제어하려면 다음 스크립트를 사용할 수 있습니다. 이 Stackoverflow 답변에 설명 된 것처럼 DBUS를 통해 볼륨을 제어 할 수도 있지만 우분투 12.04 에서이 작업을 수행 할 수있는 방법을 찾지 못했습니다.
스크립트 자체에서 말했듯이 우분투에서 볼륨을 프로그래밍 방식으로 변경하는 방법에 대한 이 Stackoverflow 답변을 사용 하고 볼륨 변경을 명령 줄 인수로 사용하고 OSD 알림을 표시하는 스크립트로 아이디어를 확장합니다. 기본 우분투 (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
더하기 버튼을 클릭 하여 두 개의 새로운 키보드 단축키를 만듭니다.
각각에 이름을 지정하고 명령으로 다음과 같이 입력하십시오 : 스크립트가 PATH 환경 변수에 포함 된 폴더에 있지 않는 한 스크립트 /home/username/pavol.sh "+3%"
의 전체 경로를 입력하는 것이 중요합니다 pavol.sh
. 또한 ""
볼륨 값 주위에 따옴표를 사용하십시오 . 그렇지 않으면 키보드 단축키가 작동하지 않습니다.
그런 다음 각 항목의 오른쪽을 클릭하여 키 조합 또는 멀티미디어 키를 설정하십시오. 원하는 조합 또는 키가 이미 다른 바로 가기에 할당되어 있으면 프로그램에서 다시 지정할 것인지 묻습니다.
#!/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
--hint=int:transient:1
하기 전에 "Volume"
알림 보내 명령 줄에 (행 번호 (130)를해야한다). 아마 도움이 될 것입니다.
main.xml
일반적으로
다음 위치에있는 파일 /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml
을 루트로 편집하십시오 .
volumeStep 항목을 찾으십시오.
<entry name="volumeStep" type="Int">
<default>2</default>
</entry>
단계 당 백분율을 원하는대로 변경하십시오. 보시다시피 2 %를 사용합니다.
Kubuntu 16.04에 작성된대로이 기능을 적용하려면 플라즈마를 다시 시작해야합니다.
killall plasmashell #to stop it
kstart plasmashell #to restart it
마스터 볼륨 레벨과 개별 입력 소스 및 출력 소스 및 3 % 증가 / 감소 단계 (나중에 5 %로 변경)가있는 14.04에서 업그레이드했습니다. 마스터 볼륨 단계를 보상하기 위해 출력 소스 볼륨 레벨을 간단히 조정하여 약 2 % 및 3 % 단계로 유지했습니다.
16.04가 이것을 6 %로 올렸을 때 당황스러워서 마스터 볼륨 컨트롤을 제거하는 대신 볼륨 버튼이 두 출력 소스를 모두 제어했습니다.
위의 Ubuntu 16.04 수정 프로그램은 KDE5에 사용 된 Plasma 5 인터페이스에서 작동하지 않으므로 Kubuntu 16.04에서 작동하지 않습니다-시도했지만 작동하지 않습니다.
따라서 온라인에서 빠른 검사를 수행했으며 프로세스에서 파일을 수동으로 변경해야하지만 매우 간단합니다.
ListItemBase.qml
일반적 /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml
으로 루트로 찾은 파일을 편집하십시오 .
이 함수 내에서 몇 줄이야 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/
그러나이를 적용하려면 플라즈마를 다시 시작해야합니다.
killall plasmashell #to stop it
kstart plasmashell #to restart it
잘하면 이것이 누군가를 도울 수도 있고 누군가 가이 구성을 구동하도록 플라즈마에 변경 사항을 제출하게 할 수도 있습니다 ... 둘 다 다른 업데이트 후에 나에게 끝날 수 있습니다.