;; date definitions ;; (defpoll clock_time :interval "1m" "date +\%I") (defpoll clock_minute :interval "5s" "date +\%M") (defpoll clock_date :interval "10h" "date '+%d/%m'") ;; volume definitions ;; (defpoll volume_percent :interval "1s" "pactl get-sink-volume @DEFAULT_SINK@ | awk -F '/' ' { print $2 } ' | tr -d ' %'") (defpoll mic_percent :interval "1s" "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'") (defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'") ;; battery definitions ;; (defpoll battery_status :interval "5s" "./scripts/battery stat") (defpoll battery-capacity :interval "5s" "scripts/battery percent") (defpoll battery :interval "5s" "scripts/battery icon") ;; memory definitions ;; (defpoll memory :interval "15s" "scripts/memory") (defpoll memory_used_mb :interval "2m" "scripts/mem-ad used") (defpoll memory_total_mb :interval "2m" "scripts/mem-ad total") (defpoll memory_free_mb :interval "2m" "scripts/mem-ad free") ;; wifi definitions ;; (defpoll COL_WLAN :interval "1m" "~/.config/eww/scripts/wifi --COL") (defpoll ESSID_WLAN :interval "1m" "~/.config/eww/scripts/wifi --ESSID") (defpoll WLAN_ICON :interval "1m" "~/.config/eww/scripts/wifi --ICON") ;; music definitions ;; (defpoll Song_info :interval "2s" "scripts/music_control") (defpoll Thumbnail :interval "2s" "scripts/music_control2") ;; current window ;; ;;(defpoll currentWindow :interval "100ms" "hyprctl activewindow | grep class | awk -F ':' '{ print $2 }'") ;; calendar definitions ;; (defpoll calendar_day :interval "20h" "date '+%d'") (defpoll calendar_year :interval "20h" "date '+%Y'") ;; Weather vars (defpoll weather-icon :interval "20m" "cat ~/.cache/weather/weather-icon") (defpoll temperature :interval "20m" "cat ~/.cache/weather/weather-degree") (defpoll weather-hex :interval "20m" "cat ~/.cache/weather/weather-hex") (defpoll weather-stat :interval "20m" "cat ~/.cache/weather/weather-stat") (defpoll weather-stat-side :interval "20m" "~/.config/eww/scripts/weather-trimmer") (defpoll weather-quote :interval "20m" "~/.config/eww/scripts/getwethquote") ;; simple variables ;; (defvar eww "$HOME/.local/bin/eww -c $HOME/.config/eww") (defvar vol_reveal false) (defvar br_reveal false) (defvar music_reveal false) (defvar wifi_rev false) (defvar time_rev false) (deflisten workspace "scripts/workspace") (deflisten currentName "scripts/current_name") ;; widgets ;; wifi ;; (defwidget wifi [] (eventbox :onhover "${eww} update wifi_rev=true" :onhoverlost "${eww} update wifi_rev=false" (box :vexpand "false" :hexpand "false" :space-evenly "false" (button :class "module-wif" :onclick "hyprctl dispatch exec 'alacritty -e nmtui' && ${eww} update wifi_rev=false" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON) (revealer :transition "slideright" :reveal wifi_rev :duration "350ms" (button :class "module_essid" :onclick "hyprctl dispatch exec 'alacritty -e nmtui' && ${eww} update wifi_rev=false" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" ESSID_WLAN))))) (defwidget bluetooth [] (box :vexpand "false" :hexpand "false" :space-evenly "false" (button :class "module-wif" :onclick "hyprctl dispatch exec 'blueman-manager'" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" "") )) ;; workspaces ;; (defwidget workspaces [] (literal :content workspace)) ;; Battery ;; (defwidget bat [] (box :class "bat_module" :vexpand "false" :hexpand "false" (button :class "iconbat" :tooltip "Battery: ${battery-capacity}%" :show_truncated false :onclick "$HOME/.config/eww/scripts/pop system" :wrap false "${battery}"))) ;; memory ;; (defwidget mem [] (box :class "mem_module" :vexpand "false" :hexpand "false" (button :class "iconmem" :onclick "$HOME/.config/eww/scripts/pop system" (circular-progress :value memory :class "membar" :thickness 4 :tooltip "using ${memory}% ram" :show_truncated false :wrap false (label :class "mem_padding" :text "") )))) ;; seperator ;; (defwidget sep [] (box :class "module-2" :vexpand "false" :hexpand "false" (label :class "separ" :text "|"))) ;; clock ;; (defwidget clock_module [] (eventbox :onhover "${eww} update time_rev=true" :onhoverlost "${eww} update time_rev=false" (button :onclick "scripts/pop calendar" (box :class "module" :space-evenly "false" :orientation "h" :spacing "3" (label :text clock_time :class "clock_time_class" ) (label :text "" :class "clock_time_sep" ) (label :text clock_minute :class "clock_minute_class") (revealer :class "clock_date_class" :transition "slideleft" :reveal time_rev :duration "350ms" clock_date ))))) ;; speaker volume ;; (defwidget volume [] (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" (button :onclick "scripts/pop audio" :class "volume_icon" ""))) ;; screen brightness ;; (defwidget bright [] (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" (button :onclick "scripts/pop brightness" :class "bright_icon" ""))) ;; brightness widget ;; (defwidget brightness_overlay [] (eventbox :onhover "scripts/pop hoverCreate" :onhoverlost "scripts/pop hoverGet brightness_window" (box :class "audio-box" :halign "center" :orientation "v" :vexpand "false" :hexpand "false" (label :class "speaker_text" :text "brightness" :halign "left" ) (box :class "brightbar" :halign "center" :vexpand "false" :hexpand "false" (label :class "bright_icon_overlay" :text "") (scale :value brightness_percent :space-evenly "false" :orientation "h" :onchange "brightnessctl set {}%" :tooltip "brightness on ${brightness_percent}%" :max 100 :min 0))))) ;; audio volume widget ;; (defwidget audio [] (eventbox :onhover "scripts/pop hoverCreate" :onhoverlost "scripts/pop hoverGet audio_ctl" (box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" (box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false" (box :class "speaker_icon" :orientation "v") (box :orientation "v" :halign "center" :vexpand "false" :hexpand "false" (label :class "speaker_text" :text "speaker" :valign "center" :halign "left" ) (box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false" (scale :value volume_percent :space-evenly "false" :orientation "h" :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%" :tooltip "volume on ${volume_percent}%" :max 100 :min 0)))) (label :text "" :class "audio_sep" :halign "center") (box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false" (box :class "mic_icon" :orientation "v") (box :orientation "v" :halign "center" :vexpand "false" :hexpand "false" (label :class "speaker_text" :text "mic" :valign "center" :halign "left" ) (box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false" (scale :value mic_percent :space-evenly "false" :orientation "h" :tooltip "mic on ${mic_percent}%" :onchange "pactl set-source-volume @DEFAULT_SOURCE@ {}%" :max 100 :min 0)))) (label :text "" :class "audio_sep" :halign "center") (box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false" (label :class "bright_icon_overlay" :orientation "v" :text "") (box :orientation "v" :halign "center" :vexpand "false" :hexpand "false" (label :class "bright_text" :text "lux" :valign "center" :halign "right" ) (box :class "brightbar" :halign "center" :vexpand "false" :hexpand "false" (scale :value brightness_percent :space-evenly "false" :orientation "h" :tooltip "brightness ${brightness_percent}%" :onchange "brightnessctl set {}%" :max 100 :min 0)))) (label :text "" :class "audio_sep" :halign "center") (box :class "change_audio_box" :halign "center" :spac`e-evenly "false" :hexpand "false" :vexpand "false" (box :class "change_audio" :orientation "v" :halign "left" (button :onclick "scripts/change-audio internal" "")) (box :class "change_audio" :orientation "v" :halign "right" (button :onclick "scripts/change-audio bluetooth" "")) )))) (defwidget cname [] (literal :content currentName)) ;; calendar ;; (defwidget cal [] (eventbox :onhover "scripts/pop hoverCreate" :onhoverlost "scripts/pop hoverGet calendar" (box :class "cal" :orientation "v" (box :class "cal-in" (calendar :class "cal" :day calendar_day :year calendar_year))))) (defwidget system [] (eventbox :onhover "scripts/pop hoverCreate" :onhoverlost "scripts/pop hoverGet system" (box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0 (box :class "sys_bat_box" :orientation "h" :space-evenly "false" (circular-progress :value battery-capacity :class "sys_bat" :thickness 9 (label :text "" :class "sys_icon_bat" :limit-width 2 :show_truncated false :wrap false)) (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false" (label :text "battery" :halign "start" :class "sys_text_bat" :limit-width 9 :show_truncated false :wrap false) (label :text "${battery-capacity}%" :halign "start" :class "sys_text_bat_sub" :limit-width 22 :show_truncated false :wrap false) (label :text "${battery_status}" :halign "start" :class "sys_text_bat_sub" :limit-width 22 :show_truncated false :wrap false))) (label :text "" :class "sys_sep" :halign "center") (box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start" (circular-progress :value memory :class "sys_mem" :thickness 9 (label :text "" :class "sys_icon_mem" :limit-width 2 :show_truncated false :wrap false :angle 0.0)) (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false" (label :text "memory" :halign "start" :class "sys_text_mem" :limit-width 9 :show_truncated false :wrap false) (label :text "${memory_used_mb} | ${memory_total_mb}mb " :halign "start" :class "sys_text_mem_sub" :limit-width 22 :show_truncated false :wrap false) (label :text "${memory_free_mb}mb free" :halign "start" :class "sys_text_mem_sub" :limit-width 22 :show_truncated false :wrap false)))))) ;; cockpit widget ;; (defwidget cockpit [] (box :orientation "h" (box :class "cockpit_class" :orientation "h" (box :orientation "v" (box :class "cockpit_box" :orientation "v" (box (button :class "cockpit_button_shutdown" :onclick "hyprctl dispatch exec 'shutdown now'" "") (button :class "cockpit_button_restart" :onclick "hyprctl dispatch exec reboot" "") (button :class "cockpit_button_sleep" :onclick "hyprctl dispatch exec 'playerctl -a pause & swaylock -c 000000 & systemctl suspend'" "")) (label :text "" :class "audio_sep" :halign "center") (box (button :class "cockpit_button_settings" :onclick "hyprctl dispatch exec 'pavucontrol'" "") (button :class "cockpit_button_settings" :onclick "scripts/change-audio bluetooth" ""))) (box :class "cockpit_box" :orientation "v" (button :class "cockpit_docs" :onclick "hyprctl dispatch exec nautilus $HOME/Documents" "Documents ") (label :text "" :class "cockpit_sep_top" :halign "center") (button :class "cockpit_pics" :onclick "hyprctl dispatch exec nautilus $HOME/Pictures" "Pictures ") (label :text "" :class "cockpit_sep_bottom" :halign "center") (button :class "cockpit_gits" :onclick "hyprctl dispatch exec 'alacritty --working-directory $HOME/gits'" "gits "))) (box :orientation "v" (box :class "cockpit_box" :orientation "v" (box :class "cockpit_clock" (label :text clock_time :class "cockpit_clock_left" ) (label :text "" :class "cockpit_clock_sep" ) (label :text clock_minute :class "cockpit_clock_right")) (label :text "" :class "audio_sep" :halign "center") (box :class "cockpit_clock" (label :text clock_date :class "cockpit_date") )) (box :class "cockpit_box" (weather))) (box :width 300 :height 200 :class "cockpit_box" :orientation "v" (box :class "song_info" (label :wrap true :text "${Song_info}")) (box :class "album_cover" :style 'background-image: url("${Thumbnail}")') ))) ) ;; weather ;; (defwidget weather [] (box :orientation "v" :space-evenly "false" (box :orientation "h" :space-evenly "false" (box :class "weather-icon" :style "color: ${weather-hex}" {weather-icon}) (box :class "temperature" "${temperature}")) (box :orientation "v" :space-evenly "false" (box :class "weather-stat" {weather-stat})) (box :class "weather-quote-head" (label :wrap true :text {weather-quote})))) ;; left side but displayed right? ;; (defwidget left [] (box :orientation "h" :space-evenly false :halign "end" :class "left_modules" (volume) (wifi) (bluetooth) (sep) (bat) (mem) (sep) (clock_module))) ;; right side but displayed left? ;; (defwidget right [] (box :orientation "h" :space-evenly false :halign "start" :class "right_modules" (workspaces))) ;; center widget ;; (defwidget center [] (box :orientation "h" :space-evenly false :halign "center" :class "center_modules" (cname))) ;; bar as widget;; (defwidget bar_1 [] (box :class "bar_class" :orientation "h" (right) (center) (left) )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Drawing Windows ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defwindow calendar :monitor 0 :geometry (geometry :x "20px" :y "2px" :anchor "top right" :width "270px" :height "60px") :stacking "overlay" (cal)) (defwindow audio_ctl :monitor 0 :geometry (geometry :x "120px" :y "2px" :anchor "top right" :width "250px" :height "330px") :stacking "overlay" (audio)) (defwindow brightness_window :monitor 0 :geometry (geometry :x "250px" :y "2px" :anchor "top right" :width "280px" :height "60px") :stacking "overlay" (brightness_overlay)) ;; music again .. ;; ;; (defwindow music_win :stacking "fg" :focusable "false" :screen 1 ;; :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center") ;; (music_pop)) (defwindow system :monitor 0 :geometry (geometry :x "50px" :y "2px" :anchor "top right" :width "290px" :height "120px") :stacking "overlay" (system)) ;; draw the bar ;; (defwindow bar :monitor 0 :geometry (geometry :x "0%" :y "1px" :width "99%" :height "20px" :anchor "top center") :stacking "bg" :wm-ignore false :exclusive true (bar_1)) ;; draw the bar ;; (defwindow cockpit_window_0 :monitor 0 :geometry (geometry :width "600px" :height "500px" :anchor "center") :stacking "overlay" :wm-ignore false :exclusive true (cockpit)) (defwindow calendar1 :monitor 1 :geometry (geometry :x "20px" :y "2px" :anchor "top right" :width "270px" :height "60px") :stacking "overlay" (cal)) (defwindow audio_ctl1 :monitor 1 :geometry (geometry :x "120px" :y "2px" :anchor "top right" :width "250px" :height "330px") :stacking "overlay" (audio)) (defwindow brightness_window1 :monitor 1 :geometry (geometry :x "250px" :y "2px" :anchor "top right" :width "280px" :height "60px") :stacking "overlay" (brightness_overlay)) ;; music again .. ;; ;; (defwindow music_win1 :stacking "fg" :focusable "false" :screen 1 ;; :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center") ;; (music_pop)) (defwindow system1 :monitor 1 :geometry (geometry :x "50px" :y "2px" :anchor "top right" :width "290px" :height "120px") :stacking "overlay" (system)) ;; draw the bar ;; (defwindow bar1 :monitor 1 :geometry (geometry :x "0%" :y "1px" :width "99%" :height "15px" :anchor "top center") :stacking "bg" :wm-ignore false :exclusive true (bar_1)) ;; draw the bar ;; (defwindow cockpit_window_1 :monitor 1 :geometry (geometry :width "600px" :height "500px" :anchor "center") :stacking "overlay" :wm-ignore false :exclusive true (cockpit))