जवाबों:
इस बग-रिपोर्ट से यह प्रतीत होता है कि वॉल्यूम-स्टेप कुंजी 11.10 में गायब हो गई है और (अभी तक) फिर से प्रकट नहीं हुई है।
इस प्रकार, एक सीधा सरल विन्यास परिवर्तन नहीं है जिसे आप वॉल्यूम चरण को कम करने के लिए कर सकते हैं।
लिंक में पोस्ट # 18 एक दिलचस्प समाधान देता है जिसमें alsamixer
डेस्कटॉप पर सूचनाएं भेजने के साथ वेतन वृद्धि और वेतन वृद्धि क्षमता का उपयोग करना शामिल है ।
हालाँकि, मैं इसे काम पर नहीं ला सका - इस प्रकार समाधान पर मेरा पद उस पद पर आधारित है।
इस समाधान के साथ, डिफ़ॉल्ट वॉल्यूम चरण दो-प्रतिशत चरणों में कम हो जाएगा।
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"
मेरे पास आखिरकार ट्रस्टी, विविड, विली, क्ज़ेनियल, यकक्ती, और ज़ेइटी उपयोगकर्ताओं के लिए एक उचित समाधान है। हैक या स्क्रिप्ट का एक गुच्छा का उपयोग करने के बजाय, मैंने स्रोत कोड में समस्या को ठीक करने का फैसला किया। मैंने इस पैच को सूक्ति-सेटिंग्स-डेमॉन और एकता-सेटिंग्स-डेमन (कुछ तुच्छ संशोधनों को पैच पर बनाया गया था) पर लागू किया।
मैंने पैकेज पीपीए में अपलोड कर दिए हैं:
ppa: george-edison55 / gnome-settings-daemon ( पीपीए का उपयोग करने के निर्देशों के लिए यहां क्लिक करें। )
पीपीए जोड़ने के बाद, रन करें:
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 को किया था।
जब आप कीबोर्ड शॉर्टकट का उपयोग करते हैं तो आपके पास ऑन-स्क्रीन वॉल्यूम बार कार्रवाई नहीं होगी, लेकिन आपकी इच्छानुसार आपके पास ठीक-ठाक वॉल्यूम नियंत्रण होगा।
सिस्टम सेटिंग्स> कीबोर्ड> "शॉर्टकट" टैब> "ध्वनि और मीडिया" श्रेणी
मौजूदा "वॉल्यूम डाउन" और "वॉल्यूम अप" शॉर्टकट अक्षम करें। ऐसा करने के लिए, हर एक इसे चुनने के लिए क्लिक करें और फिर इसके साथ जुड़े किसी भी कुंजी कॉम्बो को साफ़ करने के लिए बैकस्पेस दबाएं।
अब "कस्टम शॉर्टकट" श्रेणी का चयन करें और दो नए शॉर्टकट बनाने के लिए "+" आइकन पर क्लिक करें:
नाम: वॉल्यूम अप
कमांड: एमिक्सर सेट मास्टर 3% +
नाम: वॉल्यूम डाउन
कमांड: एमिक्सर सेट मास्टर 3% -
(प्रतिशत के साथ प्रयोग करें। यदि आपको बहुत बारीक जाने की आवश्यकता है तो% चिन्ह को छोड़ दें और यह प्रतिशत के बजाय 0-255 पैमाने का उपयोग करेगा)।
अब अपने प्रत्येक नए शॉर्टकट को एक कुंजी या कुंजी कॉम्बो पर असाइन करें: एक शॉर्टकट चुनें और अपने कीबोर्ड पर वांछित कुंजी या कुंजी टाइप करें।
इसके बाद, जब आप अपने कीबोर्ड वॉल्यूम कंट्रोल का उपयोग करते हैं, तो आपके पास आपके द्वारा निर्दिष्ट मात्रा में वृद्धि होनी चाहिए। आप हमेशा अपने कस्टम शॉर्टकट को अक्षम करके और "साउंड एंड मीडिया" श्रेणी में प्रीमियर वाले को फिर से सक्षम करके मूल व्यवहार पर वापस जा सकते हैं।
यह ध्यान देने योग्य बात है कि उबंटू 17.10 पर, इसके लिए पहले से ही (कुछ हद तक दोषी) तरह का समर्थन है। वॉल्यूम को छोटे चरण के आकार में बदलने के लिए Shift+ XF86AudioRaiseVolume(या XF86AudioLowerVolume) दबाएं ।
आप यह CompizConfig Settings Manager के साथ कर सकते हैं। sudo apt-get install compizconfig-settings-manager
यदि आपने इसे पहले से इंस्टॉल नहीं किया है तो कमांड का उपयोग करें
।
अब CompizConfig Settings Manager को खोलें और जनरल सेक्शन में Commands में जाएं । दाईं ओर सक्षम करें चेकबॉक्स को चेक करें । में आदेश टैब, दो आदेशों के रूप में अलग से निम्न दो आदेशों दर्ज करें:
amixer set Master 5%+ -q
amixer set Master 5%- -q
कुंजी बाइंडिंग टैब में कमांड के लिए दो कीबोर्ड शॉर्टकट असाइन करें । मैं सुपर + [और सुपर +] संयोजन का उपयोग करता हूं। अब CompizConfig Settings Manager को बंद करें और यह काम करना चाहिए।
मुझे यकीन नहीं है कि आप कंप्यूटर के इन-बिल्ट वॉल्यूम कंट्रोलर को कमांड दे सकते हैं।
amixer
आदेश अद्भुत है, लेकिन कोई जरूरत नहीं आप जमावट प्रबंधक स्थापित करने के लिए पाठकों को निर्देश देने के लिए नहीं है।
यदि आप ALSA मार्ग पर जाने के बजाय सीधे pulseaudio वॉल्यूम को नियंत्रित करना चाहते हैं, तो आप निम्न स्क्रिप्ट का उपयोग कर सकते हैं। हालांकि इस Stackoverflow के उत्तर में विस्तृत के रूप में DBUS के माध्यम से वॉल्यूम को नियंत्रित करना संभव है , लेकिन मुझे उबंटू 12.04 में इस काम को करने का एक तरीका नहीं मिल सकता है।
जैसा कि स्क्रिप्ट में ही कहा गया है, यह इस Stackoverflow जवाब का उपयोग करता है कि कैसे उबंटू में प्रोग्राम को वॉल्यूम में परिवर्तन करें और एक स्क्रिप्ट में विचार का विस्तार करें जो वॉल्यूम परिवर्तन को कमांड लाइन तर्क के रूप में लेता है और ओएसडी अधिसूचना भी दिखाता है। मैंने इसे डिफ़ॉल्ट उबंटू (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
(जब तक कि स्क्रिप्ट एक फ़ोल्डर में निहित नहीं है जो कि पाथ पर्यावरण चर में शामिल है)। ""
वॉल्यूम मान के आसपास उद्धरण चिह्नों का उपयोग करें या कीबोर्ड शॉर्टकट काम नहीं करेगा।
उसके बाद कुंजी संयोजन या मल्टीमीडिया कुंजी सेट करने के लिए प्रत्येक प्रविष्टि के दाईं ओर क्लिक करें। यदि वांछित संयोजन या कुंजी पहले से ही किसी अन्य शॉर्टकट को सौंपा गया है, तो प्रोग्राम पूछेगा कि क्या आप इसे फिर से असाइन करना चाहते हैं।
#!/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"
। शायद यह मदद करता है।
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% का उपयोग करता हूं जैसा कि आप देख सकते हैं।
कुबंटु 16.04 में लिखा गया है, आपको प्रभावी होने के लिए प्लाज्मा को फिर से शुरू करना होगा:
killall plasmashell #to stop it
kstart plasmashell #to restart it
मैंने 14.04 से अपग्रेड किया, जिसमें एक मास्टर वॉल्यूम स्तर के साथ-साथ व्यक्तिगत इनपुट स्रोत और आउटपुट स्रोत थे, और 3% वेतन वृद्धि / गिरावट कदम (जो बाद में 5% में बदल गया)। मैंने इसे मास्टर वॉल्यूम चरणों की भरपाई के लिए आउटपुट स्रोत वॉल्यूम स्तरों को समायोजित करके लगभग 2% और 3% चरणों में रखने में कामयाब रहा।
इसलिए स्वाभाविक रूप से, मैं थोड़ा नाराज हो गया जब 16.04 ने इसे 6% पर छोड़ दिया, और मास्टर वॉल्यूम नियंत्रण को हटा दिया, इसके बजाय वॉल्यूम बटन दोनों आउटपुट स्रोतों को नियंत्रित करते हैं।
उबंटू 16.04 के लिए उपरोक्त फिक्स KDE5 पर उपयोग किए गए प्लाज्मा 5 इंटरफ़ेस के साथ काम नहीं करता है, इसलिए कुबंटु 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
उम्मीद है कि यह किसी को बाहर निकालने में मदद करेगा, या शायद किसी को भी इस कॉन्फिगर को संचालित करने के लिए प्लाज़्मा में बदलाव लाने की ओर ले जाएगा ... दोनों एक और अपडेट के बाद मुझे समाप्त कर सकते हैं।