(defvar mic_rev false)

(defwidget volume_module []
  (box
    :class "module volume"
    :space-evenly false

    (eventbox
      :onscroll "scripts/volume setvol SOURCE 0.5 {}"
      :onclick "scripts/volume togglemute SOURCE"
      :onrightclick "${terminal} pulsemixer &"
      :onhover "${EWW_CMD} update mic_rev=true"
      :onhoverlost "${EWW_CMD} update mic_rev=false"
      :class "microphone"
      (box
        (label
          :class "icon"
          :text {volume.microphone_icon})
        (label
          :visible {mic_rev && !volume.microphone_mute}
          :class "value"
          :text "${volume.microphone_vol}%")
    ))

    (eventbox
      :onscroll "scripts/volume setvol SINK 0.5 {}"
      :onclick "scripts/volume togglemute SINK"
      :onrightclick "${terminal} pulsemixer &"
      :class "speaker"
      (box
        (label
          :class "icon"
          :text {volume.speaker_icon})
        (label
          :visible {!volume.speaker_mute}
          :class "value"
          :text "${volume.speaker_vol}%")
      ))

  ))