mirror of
https://github.com/elkowar/dots-of-war.git
synced 2024-11-06 03:12:24 +00:00
add eww bar
This commit is contained in:
parent
5946ad4314
commit
48850415d8
5 changed files with 227 additions and 0 deletions
10
eww-bar/.config/eww-bar/audio.sh
Normal file
10
eww-bar/.config/eww-bar/audio.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
speaker_sink_id=$(pamixer --list-sinks | grep "Komplete_Audio_6" | awk '{print $1}')
|
||||||
|
game_sink_id=$(pamixer --list-sinks | grep "stereo-game" | awk '{print $1}')
|
||||||
|
|
||||||
|
volume=$(pamixer --get-volume)
|
||||||
|
|
79
eww-bar/.config/eww-bar/eww.scss
Normal file
79
eww-bar/.config/eww-bar/eww.scss
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background: #282828;
|
||||||
|
color: #ebdbb2;
|
||||||
|
|
||||||
|
& > * {
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces {
|
||||||
|
button {
|
||||||
|
background: none;
|
||||||
|
margin: 3px;
|
||||||
|
&.inactive {
|
||||||
|
color: #888974;
|
||||||
|
}
|
||||||
|
&.active {
|
||||||
|
color: #8ec07c;
|
||||||
|
}
|
||||||
|
&.occupied {
|
||||||
|
font-size: 1.01rem;
|
||||||
|
}
|
||||||
|
&.empty {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.segment-top {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.segment-bottom {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume-metric {
|
||||||
|
background-color: #1d2021;
|
||||||
|
color: #ebdbb2;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.volume-top > scale {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
slider {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-color: #8ec07c;
|
||||||
|
border-bottom-right-radius: 5px;
|
||||||
|
}
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #1d2021;
|
||||||
|
min-width: 34px;
|
||||||
|
min-height: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-symbol {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metric {
|
||||||
|
background-color: #1d2021;
|
||||||
|
padding: 5px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
padding-top: 7px;
|
||||||
|
padding-bottom: 7px;
|
||||||
|
}
|
103
eww-bar/.config/eww-bar/eww.yuck
Normal file
103
eww-bar/.config/eww-bar/eww.yuck
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
(defwidget bar [screen]
|
||||||
|
(box :orientation "v"
|
||||||
|
(box
|
||||||
|
(box :valign "start"
|
||||||
|
:halign "center"
|
||||||
|
:class "segment-top"
|
||||||
|
(top :screen screen)))
|
||||||
|
(box
|
||||||
|
(box :valign "center"
|
||||||
|
:class "middle"
|
||||||
|
(middle)))
|
||||||
|
(box
|
||||||
|
(box :valign "end"
|
||||||
|
:class "segment-bottom"
|
||||||
|
(bottom)))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget top []
|
||||||
|
(workspaces :wsp_yuck {screen == 0 ? workspaces_0_yuck : screen == 1 ? workspaces_1_yuck : workspaces_2_yuck}))
|
||||||
|
|
||||||
|
(defwidget workspaces [wsp_yuck]
|
||||||
|
(literal :content wsp_yuck))
|
||||||
|
|
||||||
|
(defwidget middle [] (time))
|
||||||
|
(defwidget time []
|
||||||
|
(box :orientation "v"
|
||||||
|
:class "metric time"
|
||||||
|
hour min sec))
|
||||||
|
|
||||||
|
(defwidget bottom []
|
||||||
|
(box :orientation "v"
|
||||||
|
:valign "end"
|
||||||
|
:space-evenly true
|
||||||
|
:spacing "5"
|
||||||
|
(volume)
|
||||||
|
(box :class "metric" :orientation "v"
|
||||||
|
(large-sym :sym "" ) "${round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}%")
|
||||||
|
(box :class "metric" :orientation "v"
|
||||||
|
"" "${round(EWW_RAM, 0)}%")
|
||||||
|
(box :class "metric" :orientation "v"
|
||||||
|
"" "${round(EWW_CPU_USAGE.avg, 0)}%")
|
||||||
|
(box :class "metric"
|
||||||
|
(date))))
|
||||||
|
|
||||||
|
(defwidget volume []
|
||||||
|
(box :class "volume-metric"
|
||||||
|
:orientation "v"
|
||||||
|
:space-evenly false
|
||||||
|
:valign "fill"
|
||||||
|
:vexpand false
|
||||||
|
(scale :orientation "h"
|
||||||
|
:min 0
|
||||||
|
:max 100
|
||||||
|
:onchange "pamixer --set-volume $(echo {} | sed 's/\\..*//g')"
|
||||||
|
:value volume)
|
||||||
|
(box :orientation "v"
|
||||||
|
:valign "fill"
|
||||||
|
:vexpand true
|
||||||
|
(large-sym :sym "🎧")
|
||||||
|
"${volume}%")))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget large-sym [sym]
|
||||||
|
(label :class "large-symbol" :text sym))
|
||||||
|
|
||||||
|
(defwidget date []
|
||||||
|
(box :orientation "v"
|
||||||
|
:halign "center"
|
||||||
|
day_word day month year))
|
||||||
|
|
||||||
|
(deflisten volume
|
||||||
|
`
|
||||||
|
pamixer --get-volume;
|
||||||
|
pactl subscribe | grep --line-buffered "Event 'change' on sink " | while read -r evt;
|
||||||
|
do pamixer --get-volume;
|
||||||
|
done`)
|
||||||
|
|
||||||
|
(defpoll hour :interval "1s" "date +%H")
|
||||||
|
(defpoll min :interval "1s" "date +%M")
|
||||||
|
(defpoll sec :interval "1s" "date +%S")
|
||||||
|
|
||||||
|
(defpoll day_word :interval "10m" "date +%a")
|
||||||
|
(defpoll day :interval "10m" "date +%d")
|
||||||
|
(defpoll month :interval "1h" "date +%m")
|
||||||
|
(defpoll year :interval "1h" "date +%y")
|
||||||
|
|
||||||
|
(deflisten workspaces_0_yuck "./workspaces.sh 0")
|
||||||
|
(deflisten workspaces_1_yuck "./workspaces.sh 1")
|
||||||
|
(deflisten workspaces_2_yuck "./workspaces.sh 2")
|
||||||
|
|
||||||
|
(defwindow bar_1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x 0 :y 0 :width "40px" :height "100%")
|
||||||
|
:anchor "top left"
|
||||||
|
:reserve (struts :distance "40px" :side "left")
|
||||||
|
(bar :screen 1))
|
||||||
|
(defwindow bar_2
|
||||||
|
:monitor 2
|
||||||
|
:geometry (geometry :x 0 :y 0 :width "40px" :height "100%")
|
||||||
|
:anchor "top left"
|
||||||
|
:reserve (struts :distance "40px" :side "left")
|
||||||
|
(bar :screen 2))
|
34
eww-bar/.config/eww-bar/workspaces.sh
Executable file
34
eww-bar/.config/eww-bar/workspaces.sh
Executable file
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
monitor="$1"
|
||||||
|
|
||||||
|
gib_workspace_names() {
|
||||||
|
wmctrl -d \
|
||||||
|
| awk '{ print $1 " " $2 " " $9 }' \
|
||||||
|
| grep -v NSP \
|
||||||
|
| grep "${monitor}_"
|
||||||
|
}
|
||||||
|
|
||||||
|
gib_workspace_yuck() {
|
||||||
|
gib_workspace_names | while read -r id active name; do
|
||||||
|
name="${name#*_}"
|
||||||
|
if [ "$active" == '*' ]; then
|
||||||
|
active_class="active"
|
||||||
|
else
|
||||||
|
active_class="inactive"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if wmctrl -l | grep --regexp '.*\s\+'"$id"'\s\+.*' >/dev/null; then
|
||||||
|
button_class="occupied"
|
||||||
|
button_name="◆"
|
||||||
|
else
|
||||||
|
button_class="empty"
|
||||||
|
button_name="◇"
|
||||||
|
fi
|
||||||
|
echo -n '(button :class "'$button_class' '$active_class'" :onclick "wmctrl -s '$id'" "'$button_name'")'
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
xprop -spy -root _NET_CURRENT_DESKTOP | while read -r; do
|
||||||
|
echo '(box :orientation "v" :class "workspaces" :space-evenly true :halign "start" :valign "center" :vexpand true '"$(gib_workspace_yuck)"')'
|
||||||
|
done
|
|
@ -61,6 +61,7 @@
|
||||||
(init-lsp :hls {:settings {:languageServerHaskell {:formattingProvider "stylish-haskell"}}})
|
(init-lsp :hls {:settings {:languageServerHaskell {:formattingProvider "stylish-haskell"}}})
|
||||||
(init-lsp :ocamllsp)
|
(init-lsp :ocamllsp)
|
||||||
(init-lsp :vimls)
|
(init-lsp :vimls)
|
||||||
|
(init-lsp :gopls)
|
||||||
(init-lsp :bashls)
|
(init-lsp :bashls)
|
||||||
(init-lsp :erlangls)
|
(init-lsp :erlangls)
|
||||||
(init-lsp :yamlls)
|
(init-lsp :yamlls)
|
||||||
|
|
Loading…
Reference in a new issue