Материал из Tkabber Wiki
Содержание
- 1 В старпаке/старките нет звука
- 2 Изменение громкости звуковых оповещений
- 3 Не работает звук под линуксом в ALSA
В старпаке/старките нет звука
Официальные старкиты и старпаки не содержат пакета Snack, который обычно играет звук в Ткаббере.
(Далее мы будем говорить про старпак для краткости, но всё сказанное относится в равной мере и к старкитам.)
Решение: Возьмите один из готовых старкитов пакета Snack, доступных в архиве старкитов и положите его в тот же каталог, где у вас находится старпак Ткаббера.
При старте старпак Ткаббера ищет файлы, подходящие под маску snack*.kit
и
лежащие там же, где сам старпак, и загружает первый найденный.
В настоящий момент в архиве старкитов есть три версии старкита Snack:
- "виндовый" (snack-win.kit) — содержит библиотеки только для Windows;
- "полный" (snack.kit или локально) — содержит библиотеки для всех трёх платформ, на которых работает Tcl/Tk — при его загрузке будет выбрана нужная;
- "линуксовый" (snack-lin.kit или локально) — для Linux x86.
Системозависимые старкиты примерно вдвое меньше в размере, чем полный, но их нельзя таскать за собой в другую ОС.
Внимание! Кажущаяся разумной альтернатива — использовать внешнюю программу для проигрывания звука — работать не будет, так как звуковые файлы находятся на виртуальной файловой системе старпака и недоступны для внешних программ.
Изменение громкости звуковых оповещений
Дальнейшие советы касаются только случая использования встроенной звуковой библиотеки snack.
При помощи файла config.tcl
В раздел hook::add finload_hook { ... } нужно добавить следующие строки:
if {$sound::snack} {
::snack::audio scaling 0.4
}
Здесь 0.4 означает, что звуки в Ткаббере будут проигрываться в 4/10 от общей громкости системы. Значение может меняться от 0.0 до 1.0.
Во время работы Ткаббера
Открываем консоль через меню Помощь → Показать консоль. В ней вводим:
::snack::audio scaling 0.4
Делаем опцию в настройках Ткаббера
В файле tkabber/plugins/general/sound.tcl находим строчку:
custom::defvar options(mute) 0 \
сразу перед ней вставляем строки:
custom::defvar options(volume) 100 \
[::msgcat::mc "Sound volume (from 0 to 100)"] \
-command [list [namespace current]::volume_set] \
-type integer -group Sound
потом находим строчку:
proc ::sound::load_sound_file {name args} {
сразу перед ней вставляем строки:
proc ::sound::volume_set {args} {
variable options
if {$options(volume) < 0 } {set options(volume) 0}
if {$options(volume) > 100 } {set options(volume) 100}
::snack::audio scaling [expr {$options(volume) / 100.0}]
}
В опциях звука появится ещё один параметр Sound volume (from 0 to 100). Громкость меняется от минимальной (0) до максимальной (100). Если собираетесь использовать этот вариант настройки, то не забудьте убрать из config.tcl последствия настройки согласно первому пункту.
Не работает звук под линуксом в ALSA
[2009-12-22 13:52:00]<teo> kostix_: libsnack2-alsa не рекомендуется к использованию. libsnack2 и настройка эмуляции oss в alsa рекомендуется.
Также можно подключить внешнюю программу. Например, mplayer играет за милую душу.