ฉันจะทำให้ปริมาณการเปลี่ยนแปลงเพิ่มขึ้นทีละน้อยได้อย่างไร


53

เมื่อฉันกดปุ่มเพิ่ม / ลดระดับเสียงบนแป้นพิมพ์ระดับเสียงจะเปลี่ยนไปมากเกินไป ฉันจะทำให้ขนาดขั้นตอนเล็กลงเพื่อให้ฉันมีการควบคุมที่ดีขึ้นได้อย่างไร

คำตอบ:


12

11.10 / 12.04

จากรายงานข้อผิดพลาดนี้จะปรากฏขึ้นที่ปุ่มปรับระดับเสียงหายไปใน 11.10 และยังไม่ปรากฏ (เหมือนเดิม) อีกครั้ง

ดังนั้นจึงไม่มีการเปลี่ยนแปลงการตั้งค่าที่เรียบง่ายตรงไปตรงมาที่คุณสามารถลดขั้นตอนเสียง

โพสต์ # 18 ในลิงก์ช่วยให้การแก้ปัญหาที่น่าสนใจซึ่งเกี่ยวข้องกับการใช้alsamixerความสามารถในการเพิ่มและลดลงพร้อมกับส่งการแจ้งเตือนไปยังเดสก์ท็อป

อย่างไรก็ตามฉันไม่สามารถใช้งานได้ - ดังนั้นการแก้ปัญหาของฉันจึงขึ้นอยู่กับโพสต์นั้น

ด้วยโซลูชันนี้ขั้นตอนระดับเสียงเริ่มต้นจะลดลงเหลือสองขั้นตอน


ทำอย่างไร

ติดตั้ง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"

คำตอบของ delty ใช้ได้กับฉันเมื่อฉันปิดการใช้งานแป้นพิมพ์ลัดของ gnome เพื่อเพิ่มระดับเสียงขึ้น / ลง คำเตือนจาก xbindkeys นี้เป็นเบาะแสที่ฉันต้องการ: *** คำเตือน *** โปรดตรวจสอบว่าไม่มีโปรแกรมอื่นทำงานอยู่ซึ่งรวบรวมหนึ่งในคีย์ที่ถูก xbindkeys จับ ดูเหมือนว่ามีข้อขัดแย้งและ xbindkeys ไม่สามารถรับคีย์ทั้งหมดที่กำหนดในไฟล์กำหนดค่า

1
สำหรับบันทึกนั้นผู้กระทำผิดคือความไม่เต็มใจของนักพัฒนา Gnome ในการจัดหาโซลูชั่นที่ใช้งานได้จริง: bugzilla.gnome.org/show_bug.cgi?id=650371
Jakub Kotowski

17

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

ในที่สุดฉันก็มีทางออกที่เหมาะสมสำหรับผู้ใช้ Trusty, Vivid, Wily, Xenial, Yakkety และ Zesty แทนที่จะใช้พวงแฮ็คหรือสคริปต์ฉันตัดสินใจที่จะแก้ไขปัญหาในซอร์สโค้ด ฉันใช้โปรแกรมปะแก้นี้กับgnome-settings-daemonติดตั้ง gnome-settings-daemonและunity-settings-daemonติดตั้ง unity-settings-daemon (การแก้ไขเล็กน้อยทำกับ patch)

ฉันได้อัปโหลดแพ็คเกจไปยัง PPA:

ppa: george-edison55 / gnome-settings-daemonโลโก้ Launchpad ( คลิกที่นี่สำหรับคำแนะนำเกี่ยวกับการใช้ PPAs )

เมื่อคุณเพิ่ม PPA แล้วให้เรียกใช้:

sudo apt-get update
sudo apt-get upgrade

คุณจะต้องรีสตาร์ทหลังจากติดตั้งเสร็จสมบูรณ์ เมื่อแพคเกจได้รับการอัพเกรดคุณสามารถใช้คำสั่งในการเปลี่ยนแปลงเพิ่มระดับเสียง:dconfไอคอน Manpage

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

(ค่าเริ่มต้นคือ 6)

ตอนนี้เมื่อคุณกดปุ่มปรับระดับเสียงระดับเสียงจะเปลี่ยนทีละ 2:

ป้อนคำอธิบายรูปภาพที่นี่


3
ppa นี้จะอัปเดตด้วย gnome / unity-settings-daemon upstream ในอนาคตหรือไม่
starbeamrainbowlabs

1
@ starbeamrainbowlabs ใช่ฉันหวังว่าจะได้อยู่เหนือสิ่งนั้น
Nathan Osman

1
ขอบคุณ! แค่ต้องการตรวจสอบ ฉันจะเปลี่ยนไปใช้ ppa ของคุณจนกว่าจะรวมเป็น ppa หลัก (สมมติว่าเคยเกิดขึ้น)
starbeamrainbowlabs

1
@NathanOsman โอกาสใด ๆ ที่คุณสามารถแก้ไขและแพคเกจmate-settings-daemonเช่นกัน? ฉันจะขอบคุณ :-) ชั่วนิรันดร์
อเล็กซ์ Grin

3
@AlexGrin ข่าวดี - MATE รองรับการใช้งานนอกกรอบนี้อยู่แล้ว คุณเพียงแค่ต้องใช้คำสั่งอื่นเพื่อเปลี่ยนค่าที่เพิ่มขึ้น: dconf write /org/mate/settings-daemon/plugins/media-keys/volume-step <NUM>ซึ่ง<NUM>เป็นค่าใหม่ ฉันเพิ่งทดสอบสิ่งนี้ใน MATE 16.04
Nathan Osman

11

10.04 / 10.10 / 11.04

ฉันเพิ่งค้นพบว่าgconf-editorมีการตั้งค่าสำหรับ "ระดับเสียงเป็นเปอร์เซ็นต์ของปริมาณ":

/apps/gnome_settings_daemon/volume_step

สวยงามมากขึ้นและใช้งานได้กับการแจ้งเตือนปริมาณ OSD


10

โซลูชันที่ง่ายนี้ใช้งานได้ (อย่างน้อย) 12.04 และไม่จำเป็นต้องใช้ CCSM

คุณจะไม่มีการทำงานของแถบระดับเสียงบนหน้าจอเมื่อคุณใช้แป้นพิมพ์ลัด แต่คุณจะต้องควบคุมระดับเสียงตามที่คุณต้องการ

  1. การตั้งค่าระบบ> คีย์บอร์ด> แท็บ "ทางลัด"> หมวดหมู่ "เสียงและสื่อ"

  2. ปิดใช้งานทางลัด "Volume Down" และ "Volume Up" ที่มีอยู่ ในการทำเช่นนี้ในแต่ละคลิกเพื่อเลือกจากนั้นกด Backspace เพื่อล้างคำสั่งผสมที่สำคัญที่เกี่ยวข้องกับมัน

  3. ตอนนี้เลือกหมวดหมู่ "ทางลัดที่กำหนดเอง" แล้วคลิกไอคอน "+" เพื่อสร้างทางลัดใหม่สองรายการดังนี้:

    ชื่อ: Volume Up 
    Command: amixer ตั้งค่า Master 3% +
    ชื่อ: Volume Down 
    Command: amixer set Master 3% -

    (ทดลองกับเปอร์เซ็นต์ถ้าคุณต้องการปรับให้สุดสุดแล้วละเว้นเครื่องหมาย% และจะใช้สเกล 0-255 แทนเปอร์เซ็นต์)

  4. ตอนนี้กำหนดทางลัดใหม่ของคุณให้กับคีย์หรือคำสั่งผสมคีย์: เลือกทางลัดและพิมพ์คีย์หรือคีย์ที่ต้องการบนคีย์บอร์ดของคุณ

หลังจากนี้เมื่อคุณใช้ตัวควบคุมระดับเสียงของคีย์บอร์ดคุณควรเพิ่มระดับเสียงตามที่คุณระบุ คุณสามารถกลับไปสู่พฤติกรรมดั้งเดิมได้ตลอดเวลาโดยปิดใช้งานทางลัดที่กำหนดเองและเปิดใช้งานสิ่งที่สร้างไว้ล่วงหน้าในหมวดหมู่ "เสียงและสื่อ"


สิ่งนี้ทำงานจากบรรทัดคำสั่งและจากการแมปคีย์ของฉันเมื่อวานนี้ แต่หลังจากรีบูตเครื่องจะไม่มีผลที่บรรทัดคำสั่งหรือการจับคู่คีย์
GlenPeterson

8

มันเป็นที่น่าสังเกตว่าบน Ubuntu 17.10 มีอยู่แล้ว (แม้จะค่อนข้างซับซ้อน) ชนิดของการสนับสนุนสำหรับการนี้ กดShift+ XF86AudioRaiseVolume(หรือXF86AudioLowerVolume) เพื่อเปลี่ยนระดับเสียงด้วยขนาดขั้นตอนที่เล็กลง

ป้อนคำอธิบายรูปภาพที่นี่


นี่เป็นสิ่งที่ยอดเยี่ยมมากใน GNOME และฉันคิดถึงมันใน Cinnamon :( (ต้องเปลี่ยนเพราะ GNOME หน่วยความจำรั่วอย่างบ้าคลั่งสำหรับฉัน gnome-shell ใช้งานได้ถึง 6 GiB RAM มากที่สุด)
ต่อ Lundberg

@PerLundberg ที่น่าสนใจ ฉันไม่ได้รับผลกระทบจากการรั่วไหลของหน่วยความจำจริงๆ
Nonny Moose

คุณรีบูตบ่อยแค่ไหน? ฉันปล่อยให้เครื่องทำงานเป็นเวลาหนึ่งสัปดาห์หรือมากกว่านั้นซึ่งเมื่อปัญหาเร่งขึ้นอย่างแท้จริง
ต่อ Lundberg

@PerLundberg ฮ่า ๆ วันละครั้ง เข้าท่าตอนนี้ XD
Nonny Moose

1
ฉันเห็นแล้ว ฉันรัน Linux ในที่ทำงานดังนั้นโดยปกติฉันจะไม่ปิดเครื่องยกเว้นเมื่อจำเป็น นำไปนอนในตอนเย็นคืนค่าในเช้าวันรุ่งขึ้น
ต่อ Lundberg

5

คุณสามารถทำได้ด้วย CompizConfig Settings Manager ใช้คำสั่ง sudo apt-get install compizconfig-settings-manager หากคุณยังไม่ได้ติดตั้ง

ตอนนี้เปิดตัวจัดการการตั้งค่า CompizConfig แล้วไปที่คำสั่งในส่วนทั่วไป ตรวจสอบการเปิดใช้งานคำสั่งช่องทำเครื่องหมายด้านขวา ในแท็บคำสั่งป้อนคำสั่งสองคำสั่งต่อไปนี้แยกกันเป็นสองคำสั่ง:

amixer set Master 5%+ -q

amixer set Master 5%- -q

กำหนดแป้นพิมพ์ลัดสองปุ่มสำหรับคำสั่งในแท็บการผูกคีย์ ฉันใช้ชุดค่าผสม Super + [และ Super +] ตอนนี้ปิดตัวจัดการการตั้งค่า CompizConfig และสิ่งนี้จะทำงาน

ฉันไม่แน่ใจว่าคุณสามารถกำหนดคำสั่งให้กับตัวควบคุมระดับเสียงของคอมพิวเตอร์ได้หรือไม่


1
Amixer ต้องการ Compiz หรือไม่
Takkat

คุณสามารถทำได้โดยใช้แป้นพิมพ์ลัดในการตั้งค่าเช่นกัน อย่างไรก็ตามหนึ่งในตัวจัดการ Compiz ให้ตัวเลือกเพิ่มเติมรวมถึงการกำหนดกิจกรรมการคลิก ฯลฯ
thameera

2
amixerคำสั่งเป็นที่ยอดเยี่ยม แต่มีความจำเป็นสำหรับคุณที่จะสั่งให้ผู้อ่านที่จะติดตั้งตัวจัดการการตั้งค่า CompizConfig
ændrük

2
ตอนแรกมันใช้งานได้สำหรับฉัน แต่ผลลัพธ์ที่ดีนั้นไม่มั่นคง ไม่มีเหตุผลที่ชัดเจนว่าระบบ 12.04 ของฉันกลับไปสู่การทำงานดั้งเดิมด้วยการเพิ่มระดับเสียงที่มากเกินไปแม้ว่าการตั้งค่าใหม่ของฉันยังคงตั้งค่าและเปิดใช้งานใน CCSM ฉันยังพยายามลบและสร้างใหม่อีกครั้งโดยไม่มีประโยชน์ ฉันพบวิธีที่เป็นมิตรอีก 12.04 การทำเช่นนี้และจะโพสต์เป็นคำตอบอื่น
cdaddr

3

12.04 (และอาจเป็น 11.10)

หากคุณต้องการควบคุมระดับเสียง pulseaudio โดยตรงแทนที่จะไปตามเส้นทาง ALSA คุณสามารถใช้สคริปต์ต่อไปนี้ แม้ว่ามันควรจะเป็นไปได้ที่จะควบคุมระดับเสียงผ่าน DBUS ตามรายละเอียดในคำตอบ Stackoverflowนี้แต่ฉันไม่สามารถหาวิธีที่จะทำให้งานนี้ใน Ubuntu 12.04

ตามที่ได้กล่าวไว้ในสคริปต์มันใช้คำตอบของ 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และสร้างแป้นพิมพ์ลัดใหม่สองปุ่มพร้อมปุ่มบวก

ตั้งชื่อและคำสั่งให้ป้อนชื่อดังนี้: /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

ใช้งานได้ดียกเว้นว่าจะเป็นการรวบรวมการแจ้งเตือนการส่ง OSD เมื่อใช้ gnome-shell ทุกกดเพิ่ม OSD ใหม่และก่อนหน้านี้ไม่หายไป OSD เป็นสิ่งที่ดี แต่ไม่จำเป็นสำหรับฉัน ฉันพยายามแสดงความคิดเห็นออกการแจ้งเตือนการแสดง OSD แต่นั่นทำให้สคริปต์เสียหายสำหรับฉัน
Kendor

ขออภัย @kendor นั้นไม่ได้ผลสำหรับคุณ ฉันทดสอบด้วย Unity เท่านั้น คุณได้ลองวิธีแก้ไขปัญหาจากความคิดเห็นในรายงานข้อผิดพลาดนี้: https://bugzilla.redhat.com/show_bug.cgi?id=693207#c3หรือไม่ เพียงเพิ่ม--hint=int:transient:1มาก่อน"Volume"ในบรรทัดด้วยคำสั่งแจ้งเตือนการส่ง (ควรเป็นหมายเลขบรรทัด 130) อาจช่วยได้
Kuro

2

Kubuntu 17.04

แก้ไขไฟล์ที่main.xmlพบโดยทั่วไปที่: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xmlas root

ค้นหารายการ volumeStep:

<entry name="volumeStep" type="Int">
  <default>2</default>
</entry>

และเปลี่ยนเปอร์เซ็นต์ต่อขั้นตอนเป็นสิ่งที่คุณต้องการ ฉันใช้ 2% เท่าที่คุณเห็น

ตามที่เขียนไว้ที่ Kubuntu 16.04 คุณจะต้องเริ่ม Plasma ใหม่เพื่อให้สิ่งนี้มีผล:

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

0

Kubuntu 16.04

ฉันอัปเกรดจาก 14.04 ซึ่งมีระดับเสียงหลักเช่นเดียวกับแหล่งอินพุตและแหล่งเอาต์พุตแต่ละรายการและขั้นตอนที่เพิ่มขึ้น / ลดลง 3% (ซึ่งต่อมาเปลี่ยนเป็น 5%) ฉันจัดการเพื่อให้อยู่ที่ประมาณ 2% และ 3% ขั้นตอนโดยเพียงแค่ปรับระดับเสียงของแหล่งสัญญาณออกเพื่อชดเชยขั้นตอนระดับเสียงหลัก

ดังนั้นโดยธรรมชาติฉันรู้สึกรำคาญเล็กน้อยเมื่อ 16.04 เพิ่มขึ้นเป็น 6% และลบตัวควบคุมระดับเสียงหลักออกแทนปุ่มระดับเสียงจะควบคุมทั้งแหล่งสัญญาณออก

การแก้ไขข้างต้นสำหรับ Ubuntu 16.04 ไม่สามารถใช้งานได้กับส่วนต่อประสาน Plasma 5 ที่ใช้กับ KDE5 ดังนั้นจะไม่สามารถใช้งานได้กับ 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/

อย่างไรก็ตามคุณจะต้องเริ่ม Plasma ใหม่เพื่อให้สิ่งนี้มีผล:

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

หวังว่านี่จะช่วยให้ใครบางคนออกไปหรืออาจนำไปสู่คนที่ส่งการเปลี่ยนแปลงในพลาสมาเพื่อให้การกำหนดค่านี้ขับเคลื่อน ... ทั้งคู่อาจจบลงด้วยการเป็นฉันหลังจากการอัปเดตอื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.