# daktilo ~ configuration
# Configuration file for custom sound presets and key events.
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.
#
# For detailed explanations and usage examples, visit:
# https://github.com/orhun/daktilo

# Default Typing Sounds
# The traditional typing feedback: a "ding" when the "Return" key is pressed,
# a general keystroke sound for other key presses, and a "keyup" sound when keys are released.
[[sound_preset]]
name = "default"
key_config = [
  { event = "press", keys = "Return", files = [
    { path = "ding.mp3", volume = 1.0 },
  ] },
  { event = "press", keys = ".*", variation = { volume = [0.1, 0.1], tempo = [0.05, 0.05] }, files = [
    { path = "keydown.mp3", volume = 1.0 },
  ] },
  { event = "release", keys = ".*", variation = { volume = [0.1, 0.1], tempo = [0.05, 0.05] }, files = [
    { path = "keyup.mp3", volume = 1.0 },
  ] },
]

# Basic Typing Sounds
# For the minimalist typist - just a simple "newline" sound on Return and "keystroke" for all other keys.
# Some arrow keys are muted for distraction-free typing.
[[sound_preset]]
name = "basic"
key_config = [
  { event = "press", keys = "Return", files = [
    { path = "newline.mp3" },
  ] },
  { event = "press", keys = ".*", files = [
    { path = "keystroke.mp3" },
  ] },
]
# Disabled arrow keys to keep focus: Up, Down, Left, Right, and Backspace.
disabled_keys = ["UpArrow", "DownArrow", "LeftArrow", "RightArrow", "Backspace"]

# It dings, and it dongs. Nuff' said.
# With this rather more calming experience maybe you will think twice
# before typing down passive aggressive emails.
[[sound_preset]]
name = "musicbox"
key_config = [
  { event = "press", keys = ".*", files = [
    { path = "mbox1.mp3" },
    { path = "mbox2.mp3" },
    { path = "mbox3.mp3" },
    { path = "mbox4.mp3" },
    { path = "mbox5.mp3" },
    { path = "mbox6.mp3" },
    { path = "mbox7.mp3" },
    { path = "mbox8.mp3" },
  ], strategy = "random" },
]

# The Ducktilo Experience
# When you type, you'll hear ducks! A quick quack for regular keys, and a special "quack2" for Return.
# Enjoy a unique typing journey with delightful duck sounds.
[[sound_preset]]
name = "ducktilo"
key_config = [
  { event = "press", keys = "Return", files = [
    { path = "quack2.mp3" },
  ] },
  { event = "press", keys = ".*", files = [
    { path = "quack1.mp3", volume = 10.0 },
  ] },
]

# Drumkit
# Dum, tss, cha!
[[sound_preset]]
name = "drumkit"
key_config = [
  { event = "press", keys = ".*", files = [
    { path = "kick.mp3" },
    { path = "hat.mp3" },
    { path = "snare.mp3" },
    { path = "kick.mp3" },
    { path = "hat.mp3" },
    { path = "kick.mp3" },
    { path = "snare.mp3" },
    { path = "hat.mp3" },
  ], strategy = "sequential" },
]

# Sparks
# For a high voltage high current typing experience
[[sound_preset]]
name = "sparks"
key_config = [
  { event = "press", keys = "Backspace", files = [
	{path = "derase.mp3"},
  ], strategy = "random" },
  { event = "press", keys = ".*", files = [
    { path = "dspark1.mp3" },
    { path = "dspark2.mp3" },
	{ path = "dspark3.mp3" },
	{ path = "dspark4.mp3" },
	{ path = "dspark5.mp3" },
	{ path = "dspark6.mp3" },
  ], strategy = "random" },
]

# Here is how you can define your custom preset:
# [[sound_preset]]
# # Custom sound preset named "custom"
# name = "custom"
# # Key configurations for various events
# key_config = [
#   # When a key starting with "Key" is pressed, play 1.mp3, 2.mp3, and 3.mp3 sequentially
#   { event = "press", keys = "Key*", files = [
#     { path = "1.mp3" },
#     { path = "2.mp3" },
#     { path = "3.mp3" },
#   ], strategy = "sequential" },
#   # When a key starting with "Key" is released, play 4.mp3
#   { event = "release", keys = "Key*", files = [
#     { path = "4.mp3" },
#   ] },
#   # When a key starting with "Num" is pressed, play num.mp3 at a very high volume (10.0)
#   { event = "press", keys = "Num*", files = [
#     { path = "num.mp3", volume = 10.0 },
#   ] },
#   # When any key is pressed, play a random sound from cat.mp3, dog.mp3, or bird.mp3
#   { event = "press", keys = ".*", files = [
#     { path = "cat.mp3" },
#     { path = "dog.mp3" },
#     { path = "bird.mp3" },
#   ], strategy = "random" },
# ]
# # Disabled keys that won't trigger any sound events
# disabled_keys = ["CapsLock", "NumLock"]
