# Colors .everforest: 0: &foreground d8caacff 1: &background 323d43dd 2: &black 4a555bff 3: &dark_grey 525c62ff 4: &dark_red e26c6eff 5: &red e68183ff 6: &dark_green 9bb86fff 7: &green a7c080ff 8: &dark_yellow d5b26bff 9: &yellow dbbc7fff 10: &dark_blue 6eb2a9ff 11: &blue 7fbbb3ff 12: &dark_magenta cf87a9ff 13: &magenta d699b6ff 14: &dark_cyan 72b783ff 15: &cyan 83c092ff 16: &light_grey d0bf9bff 17: &white d8caacff transparent_light_grey: &transparent_light_grey d0bf9baa transparent_black: &transparent_black 4a555baa # Fonts {{- if eq .chezmoi.hostname "helix" }} hack: &hack Hack:pixelsize=24 awesome: &awesome Font Awesome 6 Free:style=solid:pixelsize=24 {{- else}} hack: &hack Hack:pixelsize=13 awesome: &awesome Font Awesome 6 Free:style=solid:pixelsize=12 {{- end }} # Labels separator: &separator {string: {text: " ", font: *hack, foreground: *light_grey}} bar: {{- if eq .chezmoi.hostname "helix" }} height: 64 location: top {{- else if eq .chezmoi.hostname "hydrus" }} monitor: DP-1 height: 28 location: bottom {{- else }} height: 36 location: top {{- end }} layer: top spacing: 2 margin: 2 font: *hack foreground: *foreground background: *background border: {{- if eq .chezmoi.hostname "hydrus" }} bottom-margin: 4 left-margin: 8 right-margin: 8 {{- else }} top-margin: 8 left-margin: 16 right-margin: 16 {{- end }} width: 0 color: *transparent_light_grey left: - river: anchors: - base: &river_base {{- if eq .chezmoi.hostname "helix" }} left-margin: 56 right-margin: 56 {{- else }} left-margin: 22 right-margin: 22 {{- end }} text: "{id}" content: map: on-click: left: sh -c "riverctl set-focused-tags $((1 << ({id} - 1)))" middle: sh -c "riverctl toggle-view-tags $((1 << ({id} -1)))" right: sh -c "riverctl toggle-focused-tags $((1 << ({id} -1)))" {{- if eq .chezmoi.hostname "helix" }} conditions: urgent: string: <<: *river_base deco: {stack: [{background: {color: *dark_red}}, {border: {size: 6, color: *black}}]} foreground: *black focused: string: <<: *river_base deco: {stack: [{background: {color: *light_grey}}, {underline: {size: 6, color: *transparent_black}}]} foreground: *dark_grey visible && occupied: string: <<: *river_base deco: {stack: [{background: {color: *transparent_light_grey}}, {underline: {size: 6, color: *transparent_black}}]} foreground: *light_grey visible && ~occupied: string: <<: *river_base deco: {stack: [{background: {color: *transparent_light_grey}}, {underline: {size: 6, color: *transparent_black}}]} foreground: *light_grey ~visible && occupied: string: <<: *river_base deco: {stack: [{background: {color: *dark_grey}}, {underline: {size: 6, color: *transparent_light_grey}}]} foreground: *light_grey ~focused && occupied: string: <<: *river_base deco: {stack: [{background: {color: *dark_grey}}, {underline: {size: 6, color: *transparent_light_grey}}]} foreground: *light_grey id < 10 && ~visible && ~occupied: string: <<: *river_base foreground: *light_grey id >= 10 && ~visible && ~occupied: {empty: {}} {{- else }} conditions: urgent: string: <<: *river_base deco: {stack: [{background: {color: *dark_red}}, {border: {size: 2, color: *black}}]} foreground: *black focused: string: <<: *river_base deco: {stack: [{background: {color: *light_grey}}, {underline: {size: 2, color: *transparent_black}}]} foreground: *dark_grey visible && occupied: string: <<: *river_base deco: {stack: [{background: {color: *transparent_light_grey}}, {underline: {size: 2, color: *transparent_black}}]} foreground: *light_grey visible && ~occupied: string: <<: *river_base deco: {stack: [{background: {color: *transparent_light_grey}}, {underline: {size: 2, color: *transparent_black}}]} foreground: *light_grey ~visible && occupied: string: <<: *river_base deco: {stack: [{background: {color: *dark_grey}}, {underline: {size: 2, color: *transparent_light_grey}}]} foreground: *light_grey ~focused && occupied: string: <<: *river_base deco: {stack: [{background: {color: *dark_grey}}, {underline: {size: 2, color: *transparent_light_grey}}]} foreground: *light_grey id < 10 && ~visible && ~occupied: string: <<: *river_base deco: {underline: {size: 2, color: *transparent_light_grey}} foreground: *light_grey id >= 10 && ~visible && ~occupied: {empty: {}} {{ end }} center: - foreign-toplevel: content: map: conditions: activated: - string: {text: "{app-id}: {title}"} ~activated: {empty: {}} right: - pulse: content: map: on-click: left: sh -c "pactl set-sink-mute @DEFAULT_SINK@ toggle" wheel-up: sh -c "pactl set-sink-volume @DEFAULT_SINK@ +5%" wheel-down: sh -c "pactl set-sink-volume @DEFAULT_SINK@ -5%" conditions: sink_muted: - string: {text: , font: *awesome, foreground: *transparent_light_grey} - string: {text: " {sink_percent}% ({sink_port})", foreground: *transparent_light_grey} ~sink_muted: - ramp: tag: sink_percent items: - string: {text: , font: *awesome} - string: {text: , font: *awesome} - string: {text: , font: *awesome} - string: {text: " {sink_percent}% ({sink_port})"} {{- if ne .chezmoi.hostname "hydrus" }} - label: content: *separator - backlight: name: amdgpu_bl0 content: - ramp: tag: percent items: - string: {text: , font: *awesome} - string: {text: , font: *awesome} - string: {text: " {percent}%"} - label: content: *separator - network: name: wlan0 poll-interval: 2000 content: map: default: {string: {text: , font: *awesome}} conditions: state == down: {string: {text: , font: *awesome, foreground: *dark_grey}} state == up: map: default: - string: {text: , font: *awesome} - string: {text: " {name}: {state}"} conditions: ipv4 == "": - string: {text: , font: *awesome} - string: {text: " {name}: {state}"} - network: name: eth0 poll-interval: 2000 content: map: conditions: ~carrier: {empty: {}} carrier: map: default: - string: {text: , font: *awesome} - string: {text: " {name}: {state}"} conditions: state == down: {string: {text: , font: *awesome}} ipv4 == "": - string: {text: , font: *awesome} - string: {text: " {name}: {state}"} - label: content: *separator - battery: name: BAT0 poll-interval: 5000 anchors: discharging: &discharging list: items: - ramp: tag: capacity items: - string: {text: , foreground: *dark_red, font: *awesome} - string: {text: , foreground: *dark_yellow, font: *awesome} - string: {text: , font: *awesome} - string: {text: , font: *awesome} - string: {text: , font: *awesome} - string: {text: " {capacity}% {estimate}"} content: map: conditions: state == unknown: <<: *discharging state == discharging: <<: *discharging state == charging: - string: {text: , font: *awesome} - string: {text: " {capacity}% {estimate}"} state == full: - string: {text: , foreground: *dark_green, font: *awesome} - string: {text: " {capacity}% full", foreground: *dark_green} state == "not charging": - string: {text:  , font: *awesome} - string: {text: " {capacity}%"} {{- end }} - label: content: *separator - clock: date-format: "%Y-%m-%d" time-format: "%R" content: - string: {text: , font: *awesome} - string: {text: " {date} "} - string: {text: , font: *awesome} - string: {text: " {time} "}