(defvar mic_rev false) (deflisten volume :initial '{ "speaker_vol": "100", "speaker_mute": false, "speaker_icon": "", "microphone_mute": false, "microphone_vol": "100", "microphone_icon": "" }' `scripts/volume loop`) (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}%") )) ))