This commit is contained in:
2023-10-22 06:12:10 +02:00
commit 314ff2f75d
69 changed files with 6951 additions and 0 deletions

216
.config/eww/eww.yuck Executable file
View File

@@ -0,0 +1,216 @@
;; TODO Update workspaces only when workspaces updated
;; TODO Camera access, Microphone access,.... -> indicator-mic-cam
(defwindow bar1
:monitor 0
:geometry (geometry :x "0%"
:y "0px"
:width "100%"
:height "35px"
:anchor "top center")
:stacking "fg"
:exclusive true
:focusable false
(content)
)
(defwindow bar2
:monitor 1
:geometry (geometry :x "0%"
:y "0px"
:width "100%"
:height "35px"
:anchor "top center")
:stacking "fg"
:exclusive true
:focusable false
(content)
)
(defwindow bar3
:monitor 2
:geometry (geometry :x "0%"
:y "0px"
:width "100%"
:height "35px"
:anchor "top center")
:stacking "fg"
:exclusive true
:focusable false
(content)
)
(defwidget content []
(centerbox :orientation "h" :class "root"
(box :space-evenly false :halign "start"
(workspaces)
(window_w)
)
(time :halign "center")
(box :space-evenly false :halign "end"
(systray :class "widget systray")
(player)
(cpu)
(memory)
(network)
(battery)
(audio)
(session)
)
)
)
;;PLAYER
(deflisten MUSIC :initial "" "playerctl -a metadata --follow --format '{\"text\":\"{{artist}} - {{markup_escape(title)}}\", \"state\":\"{{status}}\"}' || true")
(defwidget player []
(box :class "widget"
(eventbox
:onclick "playerctl play-pause"
:onmiddleclick "playerctl previous"
:onrightclick "playerctl next"
(label :tooltip "${MUSIC.text}" :class "${MUSIC.state}" :text "󰒮 󰐌 󰒭")
)
)
)
;;CPU
(defwidget cpu []
(box :class "widget"
(label :text "${round(EWW_CPU.avg, 0)}% ")
)
)
;;Memory
(defwidget memory []
(box :class "widget"
(label :text "${round(EWW_RAM.used_mem / (1024*1024*1024), 1)} " :tooltip "${round(EWW_RAM.used_mem_perc, 0)}%")
)
)
;;Network
(defpoll IS_WIRELESS :interval "10s" "~/.config/eww/scripts/net.sh iswlan")
(defpoll NET_INT :interval "10s" "~/.config/eww/scripts/net.sh getint")
(defpoll NET_NAME :interval "10s" "~/.config/eww/scripts/net.sh ssid")
(defwidget network []
(box :class "widget"
(eventbox :onclick "nm-connection-editor & disown"
(label :text "${round(EWW_NET[NET_INT].NET_UP / 1000, 1)}kB/s⇡ ${round(EWW_NET[NET_INT].NET_DOWN / 1000, 1)}kB/s⇣ ${IS_WIRELESS? "" : ""}" :tooltip "${NET_INT} ${IS_WIRELESS? ":${NET_NAME}" : ""}")
)
)
)
(defpoll BAT_INFO :interval "1m" "~/.config/eww/scripts/battery.sh")
(defwidget battery []
(box :class "widget" :visible "${BAT_INFO.has_battery}"
(label :text "${BAT_INFO.percentage}"
:tooltip "${BAT_INFO.time_remaining}"
)
)
)
(defwindow battery_warning
:monitor 0
:exclusive "false"
:stacking "overlay"
:geometry (geometry :anchor "center"
:width "10%"
:height "10%")
(box :class "widget" :orientation "v"
(label :text "${BAT_INFO.percentage}!"
:tooltip "${BAT_INFO.time_remaining}"
)
(button :onclick "${EWW_CMD} close battery_warning"
(label :text "")
)
)
)
;;Audio
(defpoll DEF_SINK :interval "10s" "~/.config/eww/scripts/audio.sh getdefaultsink")
(defpoll IS_MUTED_SOURCE :interval "10s" "~/.config/eww/scripts/audio.sh ismutedsource @DEFAULT_SOURCE@")
(defpoll IS_MUTED_SINK :interval "10s" "~/.config/eww/scripts/audio.sh ismutedsink @DEFAULT_SINK@")
(defpoll IS_BLUE :interval "10s" "~/.config/eww/scripts/audio.sh isblue @DEFAULT_SINK@")
(defpoll VOLUME_SOURCE :interval "10s" "~/.config/eww/scripts/audio.sh getvol @DEFAULT_SOURCE@")
(defpoll VOLUME_SINK :interval "10s" "~/.config/eww/scripts/audio.sh getvol @DEFAULT_SINK@")
(defwidget audio []
(box :class "widget"
(eventbox
:onclick "${EWW_CMD} open audio_popup"
:onmiddleclick "~/.config/eww/scripts/audio.sh mutesink @DEFAULT_SINK@"
:onrightclick "~/.config/eww/scripts/audio.sh mutesource @DEFAULT_SOURCE@"
:onscroll "~/.config/eww/scripts/audio.sh vol {}"
(label :text "${IS_MUTED_SINK? " ": "${round(VOLUME_SINK * 100, 0)}%"}${IS_BLUE? "" : ""} ${IS_MUTED_SOURCE? "" : "${round(VOLUME_SOURCE * 100, 0)}%"}"
:tooltip "${DEF_SINK}"
)
)
)
)
(defwindow audio_popup
:monitor 0
:exclusive "false"
:stacking "overlay"
:geometry (geometry :anchor "top right")
(audio_menu)
)
(defpoll audio_device :interval "10s" "~/.config/eww/scripts/audio.sh getdevices")
(defwidget audio_menu []
(eventbox :onhoverlost "${EWW_CMD} close audio_popup"
(box :class "widget" :orientation "v"
(for dev in audio_device
(button :onclick "pactl set-default-sink ${dev.id} & ${EWW_CMD} close audio_popup"
(label :text "${dev.name == DEF_SINK? "" : ""} ${dev.name}")
)
)
)
)
)
;;Session
(defwidget session []
(box :class "widget"
(eventbox :onclick "swaync-client -t -sw"
(label :class "session" :text "")
)
)
)
;; Time/Date
(defpoll TIME :interval "5s" `date +\"%H:%M\"`)
(defpoll DATE :interval "1m" `date +\"%d.%m.%Y\"`)
(defwidget time []
(box :class "widget" :space-evenly false
(eventbox :onclick "merkuro-calendar & disown"
(label :text "${TIME}  ${DATE} ")
)
)
)
;; Active Window Title
(deflisten window :initial "..." "sh ~/.config/eww/scripts/get_window_title.sh")
(defwidget window_w []
(box :class "widget" :visible {window != ""}
(label :limit-width 85 :text "${window}")
)
)
;; Workspaces
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get_workspaces.sh")
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get_active_workspace.sh")
(defwidget workspaces []
(box :class "widget workspaces" :space-evenly false
(for workspace in workspaces
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}" :class "workspace_entry_p"
(box :class "workspace_entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
(label :class "test" :text "${workspace.id}")
)
)
)
)
)