Yanıtlar:
Bu hata raporundan , ses seviyesi adım anahtarının 11.10'da kaybolduğu ve (henüz) tekrar görünmediği anlaşılıyor.
Bu nedenle, ses düzeyini azaltmak için yapabileceğiniz basit bir basit yapılandırma değişikliği yoktur.
Bağlantıdaki 18 numaralı mesaj alsamixer
, masaüstüne bildirim gönderme ile birlikte artırma ve azaltma özelliğinin kullanılmasını içeren ilginç bir geçici çözüm sunar .
Ancak işe yaramadı - bu yüzden benim çözüme olan ilgim bu yazıya dayanıyor.
Bu çözümle, varsayılan ses adımı yüzde iki adıma indirgenir.
xbindkeys
Paketi kurun (Synaptic kullanarak veya ile sudo apt-get install xbindkeys
).
Favori metin düzenleyicinizi kullanarak, giriş klasörünüzde bir dosya oluşturun .volumeHack.sh
ve aşağıdaki içerikleri kopyalayıp bu dosyaya yapıştırın.
gedit ~/.volumeHack.sh
Çalıştırılabilir chmod a+x .volumeHack.sh
hale getirmek için çalıştırın.
Sonra dosyayı düzenleyin ~/.xbindkeysrc
ve aşağıdaki metni kopyalayıp bu dosyanın altına yapıştırın. yani
gedit ~/.xbindkeysrc
Çıkış yap ve giriş yap
# 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"
Sonunda Trusty, Vivid, Wily, Xenial, Yakkety ve Zesty kullanıcıları için uygun bir çözüm buldum. Bir grup kesmek veya bir komut dosyası kullanmak yerine, sorunu kaynak kodda çözmeye karar verdim. Ben uygulanan bu yama için gnome-settings-cini ve birlik-settings-cini (bazı önemsiz değişiklikler yama yapılmıştır).
Paketleri bir PPA'ya yükledim:
ppa: george-edison55 / gnome-settings-daemon ( PPA kullanma talimatı için tıklayınız. )
PPA'yı ekledikten sonra çalıştırın:
sudo apt-get update
sudo apt-get upgrade
Yükleme tamamlandıktan sonra yeniden başlatmanız gerekecek. Paketler yükseltildikten sonra, kullanabileceğiniz komutu hacim artımı değiştirmek için:dconf
dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2
(Varsayılan değer 6'dır.)
Şimdi ses seviyesi tuşlarına bastığınızda, ses seviyesi 2'lik artışlarla değişecektir:
mate-settings-daemon
mi? Sonsuza dek minnettar olurdum :-)
dconf write /org/mate/settings-daemon/plugins/media-keys/volume-step <NUM>
nerede <NUM>
. Bunu MATE 16.04 tarihinde test ettim.
Klavye kısayollarını kullanırken ekran üstü ses seviyesi çubuğunda işlem yapmayacaksınız, ancak istediğiniz şekilde ince ayarlı ses seviyesi kontrolüne sahip olacaksınız.
Sistem Ayarları> Klavye> "Kısayollar" sekmesi> "Ses ve Medya" kategorisi
Mevcut "Ses Kısma" ve "Ses Artırma" kısayollarını devre dışı bırakın. Bunu yapmak için, her birini seçmek için tıklayın ve ardından onunla ilişkili tüm anahtar kombinasyonlarını silmek için Geri tuşuna basın.
Şimdi "Özel Kısayollar" kategorisini seçin ve iki yeni kısayol oluşturmak için "+" simgesini tıklayın:
İsim: Ses Seviyesi
Komutu: amixer Master 3% + set
İsim: Ses Seviyesi
Komutu: amixer Master 3% ayarlı -
(Yüzdeleri deneyin. Son derece iyi gitmeniz gerekiyorsa% işaretini kaldırın ve yüzde yerine 0-255 ölçeğini kullanacaktır).
Şimdi yeni kısayollarınızın her birini bir tuşa veya bir tuş kombinasyonuna atayın: Bir kısayol seçin ve klavyenize istediğiniz tuş veya tuşları yazın.
Bundan sonra, klavye ses kontrollerinizi kullanırken, belirttiğiniz ses artış değerlerine sahip olmalısınız. Özel kısayollarınızı devre dışı bırakarak ve önceden oluşturulmuş olanları "Ses ve Medya" kategorisinde yeniden etkinleştirerek her zaman orijinal davranışa geri dönebilirsiniz.
Ubuntu 17.10'da bunun için (biraz da olsa) bir tür destek olduğunu belirtmekte fayda var . Sesi daha küçük adım boyutuyla değiştirmek için Shift+ XF86AudioRaiseVolume(veya XF86AudioLowerVolume) düğmesine basın .
Bunu CompizConfig Settings Manager ile yapabilirsiniz. sudo apt-get install compizconfig-settings-manager
Henüz yüklemediyseniz komutu kullanın
.
Şimdi CompizConfig Ayar Yöneticisini açın ve gidin Komutlar içinde Genel bölümünde. Kontrol etkinleştirme komutları sağındaki onay kutusunu. In Komutlar sekmesi, iki komutları olarak ayrı ayrı aşağıdaki iki komutları girin:
amixer set Master 5%+ -q
amixer set Master 5%- -q
Anahtar ciltleri sekmesindeki komutlar için iki klavye kısayolu atayın . Super + [ve Super +] kombinasyonunu kullanıyorum. Şimdi CompizConfig Ayarlar Yöneticisi'ni kapatın ve bu çalışmalıdır.
Komutları bilgisayarın yerleşik ses denetleyicilerine atayabiliyorsanız emin değilim.
amixer
Komut harika, ama sen CompizConfig Ayar Yöneticisi yüklemek için okuyuculara talimat gerek yoktur.
ALSA rotasına gitmek yerine pulseaudio ses seviyesini doğrudan kontrol etmek istiyorsanız, aşağıdaki betiği kullanabilirsiniz. Bu Stackoverflow yanıtında ayrıntılı olarak DBUS üzerinden birimin kontrol edilmesi de mümkün olsa da , bu işi Ubuntu 12.04'te yapmanın bir yolunu bulamadım.
Komut dosyasında da belirtildiği gibi, Ubuntu'da ses düzeyini programlı olarak nasıl değiştireceğinize ilişkin bu Stackoverflow cevabını kullanır ve fikri, birim değişikliğini komut satırı argümanı olarak alan ve ayrıca bir OSD bildirimi gösteren bir komut dosyasına genişletir. Varsayılan Ubuntu (12.04) davranışına olabildiğince modellemeye çalıştım.
Komut, birim değişikliklerini mutlak veya göreceli bir sayı veya yüzde değer olarak alır. Mesela:
pavol.sh 2000
Sesi 2000’e ayarlar,pavol.sh 30%
Sesi yüzde 30'a ayarlar,pavol.sh +1000
Sesi 1000 arttırır vepavol.sh -5%
Ses seviyesini yüzde 5 azaltır.Ayrıca, daha ileri düzeyde ince ayar yapmak için faydalı olduğu umuduyla liberal bir şekilde yorumlanmaktadır.
Ana klasörünüzde (veya gerçekten başka bir yerde - sadece yolu hatırlayın) bir dosya oluşturmak için favori metin düzenleyicinizi kullanın pavol.sh
ve aşağıdaki içerikleri kopyalayıp bu dosyaya yapıştırın, örn.
gedit ~/pavol.sh
Çalıştırılabilir chmod a+x ~/pavol.sh
hale getirmek için çalıştırın.
Sonra açın Sytem Settings
, Keyboard
ayarlara gidin ve Shortcuts
sekmeye geçin . Tıklayın Custom Shortcuts
ve artı düğmesiyle iki yeni klavye kısayolu oluşturun.
Her birine bir ad verin ve komut olarak böyle bir şey girin: Komut dosyasının /home/username/pavol.sh "+3%"
tam yolunu girmek önemlidir pavol.sh
(komut dosyası PATH ortam değişkeninde bulunan bir klasörde değilse). Ayrıca ""
, ses değerinin etrafında fiyat teklifi işaretleri kullanın , aksi takdirde klavye kısayolu çalışmaz.
Bundan sonra, bir tuş kombinasyonu veya multimedya tuşu ayarlamak için her girişin sağ tarafına tıklayın. İstenilen kombinasyon veya tuş zaten başka bir kısayola atanmışsa, program yeniden atamak isteyip istemediğinizi soracaktır.
#!/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
önce ekleyin "Volume"
(130 numaralı satır olmalıdır). Belki yardımcı olur.
main.xml
Genellikle bulunan dosyayı düzenleyin :
/usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml
root olarak.
VolumeStep girişini arayın:
<entry name="volumeStep" type="Int">
<default>2</default>
</entry>
ve adım başına yüzde değerini istediğiniz şekilde değiştirin. Gördüğünüz gibi% 2 kullanıyorum.
Kubuntu 16.04'te yazıldığı gibi, bunun etkili olması için Plazmayı yeniden başlatmanız gerekir:
killall plasmashell #to stop it
kstart plasmashell #to restart it
Bireysel giriş kaynakları ve çıkış kaynaklarının yanı sıra ana ses seviyesi olan 14.04'ten ve% 3'lük bir artış / azalış adımına (daha sonra% 5 olarak değiştirildi) yükselttim. Ana hacim adımlarını telafi etmek için çıkış kaynağı ses seviyelerini ayarlayarak bunu% 2 ve% 3 adımlarında tutmayı başardım.
Doğal olarak, 16.04 bunu% 6'ya yükselttiğinde ve ana ses kontrolünü çıkardığımda biraz rahatsız oldum, bunun yerine ses seviyesi düğmeleri her iki çıkış kaynağını da kontrol ediyor.
Ubuntu 16.04 için yukarıdaki düzeltme KDE5'te kullanılan Plasma 5 arayüzü ile çalışmıyor, bu yüzden Kubuntu 16.04 için çalışmayacak - Denedim ve çalışmıyor.
Bu yüzden çevrimiçi olarak hızlıca kontrol ettim ve işlemin bir dosyayı manuel olarak değiştirmesi gerekiyor, ancak bu oldukça basit.
ListItemBase.qml
Genellikle /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml
kök olarak bulunan dosyayı düzenleyin .
İşlevler içinde birkaç satır vardır increaseVolume
ve decreaseVolume
adımı maksimum sesi 15'e bölerek tanımlar.
var step = slider.maximumValue / 15;
Sayı ne kadar yüksek olursa adımlar o kadar küçüktür. Bu 1 ise, hacim% 0 veya% 100'dür, ancak bu 100 ise, hacim% 1'lik adımlarla artar.
Şahsen,% 2'yi hedefledim, bu yüzden bu iki çizgiyi de değiştirdim.
var step = slider.maximumValue / 50;
Kredi bu Reddit’e gider: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/
Ancak, bunun etkili olması için Plazmayı yeniden başlatmanız gerekir:
killall plasmashell #to stop it
kstart plasmashell #to restart it
Umarım bu, birisinin çıkmasına yardımcı olabilir veya belki bu yapılandırmayı gerçekleştirmek için Plazma değişikliği gönderen birisine yol açabilir ... her ikisi de başka bir güncellemeden sonra ben olabilirim.