29 lines
1.6 KiB
Plaintext
29 lines
1.6 KiB
Plaintext
(defwidget volume_button [desktop]
|
|
(eventbox
|
|
:onscroll "widgets/volume/setvolume {}"
|
|
:onclick "amixer sset Master ${mute_save} && ${muted ? '${update_mute_save}\'0%\' && ${update_muted}false' : '${update_mute_save}${desktop ? volume_percent_desktop : volume_percent_laptop} && ${update_muted}true' }"
|
|
(box :class "volume_button"
|
|
(circular-progress :class "scale"
|
|
:value {replace(desktop ? volume_percent_desktop : volume_percent_laptop, "%", "")}
|
|
:start-at 75
|
|
:thickness 2.5
|
|
:clockwise true
|
|
:width 24
|
|
(image
|
|
:image-width 16
|
|
:path {replace(desktop ? volume_percent_desktop : volume_percent_laptop, "%", "") == 100 ? vol_high_icon : replace(desktop ? volume_percent_desktop : volume_percent_laptop, "%", "") <= 0 ? vol_mute_icon : replace(desktop ? volume_percent_desktop : volume_percent_laptop, "%", "") <= 25 ? vol_low_icon : replace(desktop ? volume_percent_desktop : volume_percent_laptop, "%", "") <= 75 ? vol_mid_icon : vol_high_icon})))))
|
|
|
|
(defpoll volume_percent_laptop :interval "0.1s" "awk -F\"[][]\" '/Mono:/ { print $2 }' <(amixer sget Master)")
|
|
(defpoll volume_percent_desktop :interval "0.1s" "awk -F\"[][]\" '/Left:/ { print $2 }' <(amixer sget Master)")
|
|
|
|
(defvar mute_save "0%")
|
|
(defvar muted false)
|
|
|
|
(defvar update_mute_save "eww update mute_save=")
|
|
(defvar update_muted "eww update muted=")
|
|
|
|
(defvar vol_high_icon "widgets/volume/high-icon.png")
|
|
(defvar vol_mute_icon "widgets/volume/mute-icon.png")
|
|
(defvar vol_low_icon "widgets/volume/low-icon.png")
|
|
(defvar vol_mid_icon "widgets/volume/mid-icon.png")
|