少しずつボリュームを変更するにはどうすればよいですか?


53

キーボードの音量アップ/ダウンキーを押すと、音量が大きく変化します。より細かく制御できるように、ステップサイズを小さくするにはどうすればよいですか?

回答:


12

11.10 / 12.04

このバグレポートから、11.10でボリュームステップキーが消え、(まだ)再出現していないようです。

したがって、ボリュームのステップを減らすために行うことができる単純な単純な構成変更はありません。

リンクの投稿#18はalsamixer、デスクトップへの通知の送信とともにインクリメントおよびデクリメント機能を使用する興味深い回避策を提供します。

しかし、私はそれを機能させることができませんでした-したがって、ソリューションに対する私の見解はその投稿に基づいています。

このソリューションでは、デフォルトのボリュームステップが2パーセントステップに削減されます。


方法

xbindkeysパッケージをインストールします(Synapticを使用するか、withを使用sudo apt-get install xbindkeys)。

お気に入りのテキストエディターを使用して、ホームフォルダーにファイルを作成し、.volumeHack.sh以下の内容をコピーしてそのファイルに貼り付けます。

gedit ~/.volumeHack.sh

実行chmod a+x .volumeHack.shして実行可能にします。

次に、ファイル~/.xbindkeysrcを編集し、このファイルの下部にある以下のテキストをコピーして貼り付けます。すなわち

gedit ~/.xbindkeysrc

ログアウトとログイン

.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

.volumeHack.sh

#!/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"

音量を上げる/下げるためにgnomeのキーボードショートカットを無効にすると、deltyの答えがうまくいきました。xbindkeysからのこの警告は、私が必要とした手がかりでした:***警告*** xbindkeysによってキャプチャされたキーの1つをキャプチャする別のプログラムが実行されていないことを確認してください。競合があり、xbindkeysがその構成ファイルで定義されているすべてのキーを取得できないようです。

1
記録のために、犯人は実用的な解決策を提供するGnome開発者の不本意です:bugzilla.gnome.org/show_bug.cgi
id=650371

17

Ubuntu 14.04 / 15.04 / 15.10 / 16.04 / 16.10 / 17.04

私はついに、Trusty、Vivid、Wily、Xenial、Yakkety、Zestyユーザー向けの適切なソリューションを手に入れました。大量のハックやスクリプトを使用するのではなく、ソースコードの問題を修正することにしました。このパッチgnome-settings-daemongnome-settings-daemonをインストールしますおよびunity-settings-daemonunity-settings-daemonをインストールしますに適用しました(パッチにいくつかの些細な変更が加えられました)。

パッケージを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ずつ変化します。

ここに画像の説明を入力してください


3
このPPAは、将来アップストリームのgnome / unity-settings-daemonで最新のものになりますか?
starbeamrainbowlabs

1
@starbeamrainbowlabsはい、私はその上に留まることを望んでいます。
ネイサンオスマン

1
ありがとう!確認したかっただけです。メインPPAにマージされるまでPPAの使用に切り替えます(それが起こると仮定します)。
starbeamrainbowlabs

1
@NathanOsmanパッチを当ててパッケージ化できる可能性はありますmate-settings-daemonか?私は永遠に感謝します:-)
アレックスグリン

3
@AlexGrinの朗報-MATEは既にこの標準機能をサポートしています。増分値を変更するには、別のコマンドを使用するだけです。新しい値はdconf write /org/mate/settings-daemon/plugins/media-keys/volume-step <NUM>どこに<NUM>ありますか。これをMATE 16.04でテストしました。
ネイサンオスマン

11

10.04 / 10.10 / 11.04

gconf-editor「ボリュームのパーセンテージとしてのボリュームステップ」の設定があることを発見しました。

/apps/gnome_settings_daemon/volume_step

はるかにエレガントで、OSDボリューム通知で動作します。


10

この簡単なソリューションは(少なくとも)12.04で機能し、CCSMを必要としません。

キーボードショートカットを使用する場合、画面上のボリュームバーアクションはありませんが、必要に応じてきめ細かなボリュームコントロールを使用できます。

  1. [システム設定]> [キーボード]> [ショートカット]タブ> [サウンドとメディア]カテゴリ

  2. 既存の「音量を下げる」および「音量を上げる」ショートカットを無効にします。これを行うには、クリックするたびに選択し、Backspaceキーを押して、関連付けられているキーの組み合わせをクリアします。

  3. 「カスタムショートカット」カテゴリを選択し、「+」アイコンをクリックして、次の2つの新しいショートカットを作成します。

    名前:ボリュームアップ
    コマンド:amixer set Master 3%+
    名前:ボリュームダウン
    コマンド:amixer set Master 3%-

    (パーセンテージで実験します。非常にうまくいく必要がある場合は、%記号を省略し、パーセントではなく0〜255のスケールを使用します)。

  4. 次に、新しいショートカットをそれぞれキーまたはキーコンボに割り当てます。ショートカットを選択し、キーボードで目的のキーを入力します。

この後、キーボードのボリュームコントロールを使用するときは、指定した音量増分が必要です。カスタムショートカットを無効にして、「サウンドとメディア」カテゴリの既製のショートカットを再度有効にすることで、いつでも元の動作に戻すことができます。


これはコマンドラインと昨日のキーマッピングから機能しましたが、再起動後はコマンドラインまたはキーマッピングのいずれにも影響しません。
グレンペターソン

8

Ubuntu 17.10では、すでに(多少複雑ではありますが)この種のサポートが行われていることに注意してください。小さいステップサイズで音量を変更するには、Shift+ XF86AudioRaiseVolume(またはXF86AudioLowerVolume)を押します。

ここに画像の説明を入力してください


これはGNOMEで非常に素晴らしく、シナモンでは本当に見逃しています。:((GNOMEが私にとってクレイジーなようにメモリをリークしていたので、gnome-shellは最大6 GiBのRAM使用量でした。)
Per Lundberg

@PerLundberg興味深い。メモリリークによる悪影響は実際には経験していません。
ノニームース

どのくらいの頻度で再起動しますか?マシンを1週間以上稼働させたままにします。これは、問題が本当に加速するときです。
Per Lundberg

@PerLundberg笑一晩に一度。今理にかなっているXD
ノニームース

1
あ、なるほど。私は仕事でLinuxを実行しているので、通常、必要なとき以外はマシンをシャットダウンしません。夕方に寝て、翌朝元に戻します。
Per Lundberg

5

CompizConfig Settings Managerでこれを行うことができます。sudo apt-get install compizconfig-settings-manager まだインストールしていない場合は、コマンドを使用し ます。

今CompizConfig設定マネージャを開いて、に行くコマンド一般的なセクション。右側の[ コマンドを有効にする]チェックボックスをオンにします。ではコマンドタブ、二つのコマンドとして別途以下の2つのコマンドを入力します。

amixer set Master 5%+ -q

amixer set Master 5%- -q

[ キーバインド ]タブのコマンドに2つのキーボードショートカットを割り当てます。Super + [とSuper +]の組み合わせを使用します。CompizConfig Settings Managerを閉じると、これが機能するはずです。

ただし、コマンドをコンピューターの組み込みボリュームコントローラーに割り当てることができるかどうかはわかりません。


1
ミキサーにはCompizが必要ですか?
Takkat

環境設定のキーボードショートカットを使用してそれを行うこともできます。とにかくCompizのマネージャに1人がなど、クリックイベントを割り当てるなど、より多くのオプションを与える
thameera

2
このamixerコマンドは素晴らしいですが、読者にCompizConfig Settings Managerをインストールするように指示する必要はありません。
エンドリューク

2
最初はこれでうまくいきましたが、良い結果は安定していませんでした。明確な理由はありませんが、私の新しい設定はまだCCSMで設定および有効化されていましたが、私の12.04システムはボリュームの増分が大きすぎて元の動作に戻りました。また、それらを削除して再作成してみましたが、役に立ちませんでした。これを行う別の12.04フレンドリーな方法を見つけ、別の回答として投稿します。
cdaddr

3

12.04(および場合によっては11.10)

ALSAルートに行くのではなく、pulseaudioの音量を直接制御する場合は、次のスクリプトを使用できます。このStackoverflowの回答で詳述されているように、DBUSを介してボリュームを制御することも可能ですが、Ubuntu 12.04でこの機能を実現する方法は見つかりませんでした。

スクリプト自体で述べられているように、Ubuntuでプログラムでボリュームを変更する方法についてこの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 SettingsKeyboard設定に移動してShortcutsタブに切り替えます。そこをクリックしCustom Shortcutsて、プラスボタンで2つの新しいキーボードショートカットを作成します。

それぞれに名前を付けて、コマンドとして次のよう/home/username/pavol.sh "+3%"に入力しpavol.shます。スクリプトへのフルパスを入力することが重要です(スクリプトがPATH環境変数に含まれるフォルダーにない場合)。また""、ボリューム値を引用符で囲むと、キーボードショートカットが機能しなくなります。

その後、各エントリの右側をクリックして、キーの組み合わせまたはマルチメディアキーを設定します。目的の組み合わせまたはキーが既に別のショートカットに割り当てられている場合、プログラムはそれを再割り当てするかどうかを尋ねます。

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

これは、gnome-shellを使用するときにOSDのnotify-sendを蓄積することを除き、うまく機能します。プレスごとに新しいOSDが追加され、前のOSDは消えません。OSDは素晴らしいですが、私にとって不可欠ではありません。OSDの表示通知をコメントアウトしようとしましたが、スクリプトが壊れてしまいました。
ケンドール

@kendor、ごめんなさい。Unityでのみテストしました。このバグレポートのコメント(https://bugzilla.redhat.com/show_bug.cgi?id=693207#c3)からワークロードを試しましたか?notify-sendコマンドで行の--hint=int:transient:1"Volume"に追加するだけです(行番号130でなければなりません)。たぶんそれが役立ちます。

2

Kubuntu 17.04

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

0

Kubuntu 16.04

マスターボリュームレベル、個々の入力ソースと出力ソース、および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ルートにあるファイルを編集します。

そこの関数内の行のカップルだincreaseVolumedecreaseVolume、それは彼らがどのように見える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の変更を提出することにつながる可能性があります...両方が別の更新後に私になる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.