web-dev-qa-db-ja.com

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

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

53
ændrük

11.10/12.04

このことから bug-report 11.10でボリュームステップキーが消え、(まだ)再出現していないように見えます。

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

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

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

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


方法

xbindkeysパッケージをインストールします(Synapticを使用するか、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"
12
fossfreedom

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

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

パッケージをPPAにアップロードしました。

ppa:george-edison55/gnome-settings-daemon Launchpad logoPPAの使用方法については、ここをクリックしてください。

PPAを追加したら、次を実行します。

Sudo apt-get update
Sudo apt-get upgrade

インストールが完了したら、再起動する必要があります。パッケージがアップグレードされたら、 dconfコマンドを使用できます Manpage icon ボリュームの増分を変更するには:

dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2

(デフォルト値は6です。)

音量キーを押すと、音量が2ずつ変化します。

enter image description here

17
Nathan Osman

10.04/10.10/11.04

gconf-editorには「ボリュームのパーセンテージとしてのボリュームステップ」の設定があることがわかりました。

/apps/gnome_settings_daemon/volume_step

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

11
ændrük

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

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

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

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

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

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

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

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

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

10
cdaddr

Ubuntu 17.10では、すでに(多少複雑ですが)種類のサポートが存在することに注意してください。押す Shift+XF86AudioRaiseVolume (または XF86AudioLowerVolume)より小さなステップサイズでボリュームを変更します。

enter image description here

7
Nonny Moose

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

CompizConfig Settings Managerを開き、一般セクションのコマンドに移動します。右側のEnable commandsチェックボックスをオンにします。 Commandsタブで、次の2つのコマンドを2つのコマンドとして個別に入力します。

amixer set Master 5%+ -q

amixer set Master 5%- -q

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

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

5
thameera

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

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

スクリプト自体で言われているように、これは buntuでプログラムでボリュームを変更する方法に関する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]をクリックし、プラスボタンを使用して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
3
Kuro

Kubuntu 17.04

通常、次の場所にあるファイル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で書かれているように、これを有効にするにはプラズマを再起動する必要があります。

killall plasmashell #to stop it
kstart plasmashell #to restart it
2
Bas

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をルートとして編集します。

関数内には、最大ボリュームを15で割ってステップを定義するincreaseVolumeおよびdecreaseVolumeの行があります。

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の変更を送信することにつながる可能性があります...両方が別の更新後に私になる可能性があります。

0
SEoF