From 825c29b5e0740b27439003f21e1a1a74e563cfd5 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sat, 4 Feb 2023 08:33:47 +0800 Subject: Add eww config from aditaya --- X11/eww/eww.scss | 377 ++++++++++++++++++++++++++++++++++++ X11/eww/eww.yuck | 310 +++++++++++++++++++++++++++++ X11/eww/images/bg.png | Bin 0 -> 322427 bytes X11/eww/images/icons/code.svg | 8 + X11/eww/images/icons/discord.svg | 6 + X11/eww/images/icons/files.svg | 16 ++ X11/eww/images/icons/firefox.svg | 14 ++ X11/eww/images/icons/geany.svg | 5 + X11/eww/images/icons/gimp.svg | 22 +++ X11/eww/images/icons/telegram.svg | 20 ++ X11/eww/images/icons/terminal.svg | 14 ++ X11/eww/images/icons/virtualbox.svg | 11 ++ X11/eww/images/music.png | Bin 0 -> 113344 bytes X11/eww/images/profile.jpg | Bin 0 -> 218845 bytes X11/eww/launch_dashboard | 33 ++++ X11/eww/scripts/mails | 7 + X11/eww/scripts/music_info | 97 ++++++++++ X11/eww/scripts/open_apps | 42 ++++ X11/eww/scripts/open_folders | 33 ++++ X11/eww/scripts/open_links | 31 +++ X11/eww/scripts/sys_info | 78 ++++++++ X11/eww/scripts/weather_info | 147 ++++++++++++++ 22 files changed, 1271 insertions(+) create mode 100644 X11/eww/eww.scss create mode 100644 X11/eww/eww.yuck create mode 100644 X11/eww/images/bg.png create mode 100644 X11/eww/images/icons/code.svg create mode 100644 X11/eww/images/icons/discord.svg create mode 100644 X11/eww/images/icons/files.svg create mode 100644 X11/eww/images/icons/firefox.svg create mode 100644 X11/eww/images/icons/geany.svg create mode 100644 X11/eww/images/icons/gimp.svg create mode 100644 X11/eww/images/icons/telegram.svg create mode 100644 X11/eww/images/icons/terminal.svg create mode 100644 X11/eww/images/icons/virtualbox.svg create mode 100644 X11/eww/images/music.png create mode 100644 X11/eww/images/profile.jpg create mode 100755 X11/eww/launch_dashboard create mode 100755 X11/eww/scripts/mails create mode 100755 X11/eww/scripts/music_info create mode 100755 X11/eww/scripts/open_apps create mode 100755 X11/eww/scripts/open_folders create mode 100755 X11/eww/scripts/open_links create mode 100755 X11/eww/scripts/sys_info create mode 100755 X11/eww/scripts/weather_info (limited to 'X11') diff --git a/X11/eww/eww.scss b/X11/eww/eww.scss new file mode 100644 index 0000000..e7fb3fa --- /dev/null +++ b/X11/eww/eww.scss @@ -0,0 +1,377 @@ +/** Global *******************************************/ +*{ + all: unset; + font-family: feather; + font-family: Iosevka; +} + +/** Background ***************************************/ +.bg { + background-image: url("images/bg.png"); + background-color: #474D59; + opacity: 1; +} + +/** Generic window ***********************************/ +.genwin { + background-color: #2E3440; + border-radius: 16px; +} + +/** Profile ******************************************/ +.face { + background-size: 200px; + min-height: 200px; + min-width: 200px; + margin: 65px 0px 0px 0px; + border-radius: 100%; +} + +.fullname { + color: #D46389; + font-size : 30px; + font-weight : bold; +} + +.username { + color: #8FBCBB; + font-size : 22px; + font-weight : bold; + margin : -15px 0px 0px 0px; +} + +/** System ********************************************/ +.iconcpu, .iconmem, .iconbright, .iconbat { + font-size : 32px; + font-weight : normal; +} +.iconcpu { + color: #BF616A; +} +.iconmem { + color: #A3BE8C; +} +.iconbright { + color: #EBCB8B; +} +.iconbat { + color: #88C0D0; +} + +.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough { + all: unset; + background-color: #3A404C; + border-radius: 16px; + min-height: 28px; + min-width: 240px; +} + +.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough highlight { + all: unset; + border-radius: 16px; +} + +.cpu_bar scale trough highlight { + background-color: #BF616A; +} +.mem_bar scale trough highlight { + background-color: #A3BE8C; +} +.bright_bar scale trough highlight { + background-color: #EBCB8B; +} +.bat_bar scale trough highlight { + background-color: #88C0D0; +} + +/** Clock ********************************************/ +.time_hour, .time_min { + color: #81A1C1; + font-size : 120px; + font-weight : bold; +} +.time_hour { + margin : 15px 0px 0px 20px; +} +.time_min { + margin : 0px 0px 10px 0px; +} + +.time_mer { + color: #A3BE8C; + font-size : 80px; + font-weight : bold; + margin : 20px 0px 0px 0px; +} + +.time_day { + color: #EBCB8B; + font-size : 70px; + font-weight : normal; + margin : 0px 0px 20px -20px; +} + +/** Uptime ********************************************/ +.icontimer { + color: #B48EAD; + font-size : 90px; + font-weight : normal; +} + +.uphour { + color: #E5E9F0; + font-size : 42px; + font-weight : bold; +} + +.upmin { + color: #E5E9F0; + font-size : 32px; + font-weight : bold; +} + +/** Music ***************************************/ +.album_art { + background-size: 240px; + min-height: 240px; + min-width: 240px; + margin: 20px; + border-radius: 14px; +} + +.song { + color: #8FBCBB; + font-size : 24px; + font-weight : bold; + margin : 40px 0px 0px 0px; +} + +.artist { + color: #EBCB8B; + font-size : 16px; + font-weight : normal; + margin : 0px 0px 15px 0px; +} + +.btn_prev, .btn_play, .btn_next { + font-family: Iosevka Nerd Font; +} +.btn_prev { + color: #EBCB8B; + font-size : 32px; + font-weight : normal; +} +.btn_play { + color: #A3BE8C; + font-size : 48px; + font-weight : bold; +} +.btn_next { + color: #EBCB8B; + font-size : 32px; + font-weight : normal; +} + +.music_bar scale trough highlight { + all: unset; + background-color: #B48EAD; + border-radius: 8px; +} +.music_bar scale trough { + all: unset; + background-color: #3A404C; + border-radius: 8px; + min-height: 20px; + min-width: 310px; + margin : 10px 0px 0px 0px; +} + +/** Weather ***************************************/ +.iconweather { + font-family: Iosevka Nerd Font; + font-size : 120px; + font-weight : normal; + margin : 15px 0px 0px 30px; +} + +.label_temp { + color : #A6D1DD; + font-size : 80px; + font-weight : bold; + margin : -15px 30px 0px 0px; +} + +.label_stat { + color : #BF616A; + font-size : 38px; + font-weight : bold; +} + +.label_quote { + color : #E5E5E5; + font-size : 18px; + font-weight : normal; +} + +/** Applications ***************************************/ +.appbox { + margin : 15px 0px 0px 25px; +} + +.app_fox, .app_telegram, .app_discord, .app_terminal, +.app_files, .app_geany, .app_code, .app_gimp, .app_vbox { + background-repeat: no-repeat; + background-size: 64px; + min-height: 64px; + min-width: 64px; + margin: 8px 8px 0px 8px; +} + +.app_fox {} +.app_telegram {} +.app_discord {} +.app_terminal {} +.app_files {} +.app_geany {} +.app_code {} +.app_gimp {} +.app_vbox {} + +/** Links ***************************************/ +.iconweb, .iconmail { + color: #FFFFFF; + font-family: Iosevka Nerd Font; + font-size : 70px; + font-weight : normal; +} +.iconmail { + color: #DF584E; +} + +.github { + background-color: #24292E; + border-radius: 16px; +} +.reddit { + background-color: #E46231; + border-radius: 16px; +} +.twitter { + background-color: #61AAD6; + border-radius: 16px; +} +.youtube { + background-color: #DF584E; + border-radius: 16px; +} +.mail { + background-color: #FFFFFF; + border-radius: 16px; +} + +.mailbox { + background-color: #E5E5E5; + border-radius: 10px; + margin: 48px 0px 48px 0px; +} +.label_mails { + color: #404040; + font-size : 32px; + font-weight : bold; + margin: 0px 12px 0px 12px; +} + +/** Power buttons ***************************************/ +.btn_logout, .btn_sleep, .btn_reboot, .btn_poweroff { + font-size : 48px; + font-weight : bold; +} + +.btn_logout { + color: #BF616A; +} +.btn_sleep { + color: #A3BE8C; +} +.btn_reboot { + color: #EBCB8B; +} +.btn_poweroff { + color: #88C0D0; +} + +/** Home folders ***************************************/ +.hddbox { + background-color: #3A404C; + border-radius: 10px; + margin : 15px; +} +.hddicon { + color: #81A1C1; + font-family: Iosevka Nerd Font; + font-size : 70px; + font-weight : normal; + margin : 25px 20px 25px 40px; +} +.hdd_label { + color: #E5E9F0; + font-size : 48px; + font-weight : bold; + margin : 0px 0px 0px 15px; +} +.fs_sep { + color: #2E3440; + font-size : 36px; + font-weight : bold; +} + +.iconfolder1, .iconfolder2, .iconfolder3, .iconfolder4, .iconfolder5, .iconfolder6 { + font-family: Iosevka Nerd Font; + font-size : 32px; + font-weight : normal; + margin : 0px 0px 0px 75px; +} +.iconfolder1 { + color: #BF616A; +} +.iconfolder2 { + color: #A3BE8C; +} +.iconfolder3 { + color: #EBCB8B; +} +.iconfolder4 { + color: #81A1C1; +} +.iconfolder5 { + color: #B48EAD; +} +.iconfolder6 { + color: #88C0D0; +} + +.label_folder1, .label_folder2, .label_folder3, .label_folder4, .label_folder5, .label_folder6 { + font-size : 22px; + font-weight : normal; + margin : 0px 0px 0px 30px; +} +.label_folder1 { + color: #BF616A; +} +.label_folder2 { + color: #A3BE8C; +} +.label_folder3 { + color: #EBCB8B; +} +.label_folder4 { + color: #81A1C1; +} +.label_folder5 { + color: #B48EAD; +} +.label_folder6 { + color: #88C0D0; +} + +/** EOF *************************************************/ diff --git a/X11/eww/eww.yuck b/X11/eww/eww.yuck new file mode 100644 index 0000000..8e0f47c --- /dev/null +++ b/X11/eww/eww.yuck @@ -0,0 +1,310 @@ +;; ** +;; ** Widgets config for EWW +;; ** Created by : @adi1090x +;; ** Converted by : @tripleo1 +;; ** + +;; ** Variables *********************************************************************** + +;; Profile vars +(defvar IMAGE "images/profile.jpg") +(defvar NAME "YOUR NAME") +(defpoll UNAME :interval "5m" `whoami`) + +;; System vars +(defpoll HOST :interval "5s" `hostname`) +(defpoll CPU_USAGE :interval "1s" `scripts/sys_info --cpu`) +(defpoll MEM_USAGE :interval "1s" `scripts/sys_info --mem`) +(defpoll BLIGHT :interval "1s" `scripts/sys_info --blight`) +(defpoll BATTERY :interval "5s" `scripts/sys_info --bat`) + +;; Time vars +(defpoll HOUR :interval "5s" `date +\"%I\"`) +(defpoll MIN :interval "5s" `date +\"%M\"`) +(defpoll MER :interval "5s" `date +\"%p\"`) +(defpoll DAY :interval "5s" `date +\"%A\"`) + +;; Uptime vars +(defpoll UPHOUR :interval "5s" `uptime -p | awk '{print $2 \" \" $3}' | sed 's/,//g'`) +(defpoll UPMIN :interval "5s" `uptime -p | awk '{print $4 \" \" $5}'`) + +;; Music vars +(defpoll SONG :interval "1s" `scripts/music_info --song`) +(defpoll ARTIST :interval "1s" `scripts/music_info --artist`) +(defpoll STATUS :interval "1s" `scripts/music_info --status`) +(defpoll CURRENT :interval "1s" `scripts/music_info --time`) +(defpoll COVER :interval "1s" `scripts/music_info --cover`) +(defpoll CTIME :interval "1s" `scripts/music_info --ctime`) +(defpoll TTIME :interval "1s" `scripts/music_info --ttime`) + +;; Weather vars +(defpoll ICON :interval "15m" `scripts/weather_info --icon`) +(defpoll STAT :interval "15m" `scripts/weather_info --stat`) +(defpoll TEMP :interval "15m" `scripts/weather_info --temp`) +(defpoll HEX :interval "15m" `scripts/weather_info --hex`) +(defpoll QUOTE :interval "15m" `scripts/weather_info --quote`) +(defpoll QUOTE2 :interval "15m" `scripts/weather_info --quote2`) + +;; Apps vars +(defpoll MAILS :interval "5m" `scripts/mails`) + +;; Files vars +(defpoll FREE :interval "5s" `df -h / | awk '{print $4}' | tail -n 1 | sed 's/G/GB/'`) + + +;; ** Widgets ************************************************************************* + + +;; background +(defwidget bg [] + (box :class "bg") +) + +;; profile +(defwidget user [] + (box :class "genwin" :orientation "v" :spacing 35 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :style "background-image: url('${IMAGE}');" :class "face" :halign "center") + (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME) + (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME))) + +;; system +(defwidget system [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (box :orientation "v" :spacing 35 :halign "center" :valign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "cpu_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconcpu" :text "") + (scale :min 0 :max 100 :value CPU_USAGE :active "false")) + (box :class "mem_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconmem" :text "") + (scale :min 0 :max 100 :value MEM_USAGE :active "false")) + (box :class "bright_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconbright" :text "") + (scale :min 0 :max 100 :value BLIGHT :active "false")) + (box :class "bat_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconbat" :text BATTERY) + (scale :min 0 :max 100 :value BATTERY :active "false"))))) + +;; clock +(defwidget clock [] + (box :class "genwin" :orientation "h" :spacing 50 :space-evenly false :vexpand "false" :hexpand "false" + (box :orientation "h" :spacing 0 + (label :class "time_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR) + (label :class "time_min" :valign "end" :wrap "true" :limit-width 25 :text MIN)) + (box :orientation "v" :spacing 0 + (label :class "time_mer" :valign "start" :halign "end" :wrap "true" :limit-width 25 :text MER) + (label :class "time_day" :valign "end" :halign "end" :wrap "true" :limit-width 25 :text DAY)))) + +;; uptime +(defwidget uptime [] + (box :class "genwin" + (box :orientation "h" :halign "center" :spacing 40 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "icontimer" :valign "center" :text "祥") + (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "uphour" :halign "start" :wrap "true" :limit-width 25 :text UPHOUR) + (label :class "upmin" :halign "start" :wrap "true" :limit-width 25 :text UPMIN))))) + +;; Music +(defwidget music [] + (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "album_art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');") + (box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :halign "center" :class "song" :wrap "true" :limit-width 20 :text SONG) + (label :halign "center" :class "artist" :wrap "true" :limit-width 15 :text ARTIST) + (box :orientation "h" :spacing 20 :halign "center" :space-evenly "true" :vexpand "false" :hexpand "false" + (button :class "btn_prev" :onclick "scripts/music_info --prev" "玲") + (button :class "btn_play" :onclick "scripts/music_info --toggle" STATUS) + (button :class "btn_next" :onclick "scripts/music_info --next" "怜")) + (box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" + (scale :onscroll "mpc -q seek +1" :min 0 :active "true" :max 100 :value CURRENT))))) + +;; github +(defwidget github [] + (box :class "github" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "scripts/open_links --gh" ""))) + +;; reddit +(defwidget reddit [] + (box :class "reddit" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "scripts/open_links --rd" "樓"))) + +;; twitter +(defwidget twitter [] + (box :class "twitter" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "scripts/open_links --tw" ""))) + +;; youtube +(defwidget youtube [] + (box :class "youtube" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "scripts/open_links --yt" ""))) + +;; mail +(defwidget mail [] + (box :class "mail" + (box :orientation "h" :halign "center" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconmail" :onclick "scripts/open_links --mail" "") + (box :class "mailbox" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "label_mails" :onclick "scripts/open_links --mail" MAILS))))) + +;; weather +(defwidget weather [] + (box :class "genwin" + (box :orientation "v" :spacing 10 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :orientation "h" :vexpand "false" :hexpand "false" + (label :class "iconweather" :halign "start" :style "color: ${HEX};" :text ICON) + (label :class "label_temp" :halign "end" :text TEMP)) + (box :orientation "v" :spacing 10 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "label_stat" :text STAT) + (label :class "label_quote" :text QUOTE) + (label :class "label_quote" :text QUOTE2))))) + +;; apps +(defwidget apps [] + (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :style "background-image: url('images/icons/firefox.svg');" :class "app_fox" :onclick "scripts/open_apps --ff") + (button :style "background-image: url('images/icons/telegram.svg');" :class "app_telegram" :onclick "scripts/open_apps --tg") + (button :style "background-image: url('images/icons/discord.svg');" :class "app_discord" :onclick "scripts/open_apps --dc")) + (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :style "background-image: url('images/icons/terminal.svg');" :class "app_terminal" :onclick "scripts/open_apps --tr") + (button :style "background-image: url('images/icons/files.svg');" :class "app_files" :onclick "scripts/open_apps --fm") + (button :style "background-image: url('images/icons/geany.svg');" :class "app_geany" :onclick "scripts/open_apps --ge")) + (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :style "background-image: url('images/icons/code.svg');" :class "app_code" :onclick "scripts/open_apps --cd") + (button :style "background-image: url('images/icons/gimp.svg');" :class "app_gimp" :onclick "scripts/open_apps --gp") + (button :style "background-image: url('images/icons/virtualbox.svg');" :class "app_vbox" :onclick "scripts/open_apps --vb")))) + +;; power buttons +(defwidget logout [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (button :class "btn_logout" :onclick "openbox --exit" ""))) +(defwidget sleep [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (button :class "btn_sleep" :onclick "systemctl suspend" ""))) +(defwidget reboot [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (button :class "btn_reboot" :onclick "systemctl reboot" ""))) +(defwidget poweroff [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (button :class "btn_poweroff" :onclick "systemctl poweroff" ""))) + +;; folders +(defwidget folders [] + (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "hddbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "hddicon" :onclick "scripts/open_apps --fm" "") + (label :class "fs_sep" :text "|")) + (box :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "hdd_label" :wrap "true" :limit-width 25 :text FREE))) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder1" :onclick "scripts/open_folders --docs" "") + (button :class "label_folder1" :onclick "scripts/open_folders --docs" "Documents")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder2" :onclick "scripts/open_folders --dl" "") + (button :class "label_folder2" :onclick "scripts/open_folders --dl" "Downloads")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder3" :onclick "scripts/open_folders --music" "") + (button :class "label_folder3" :onclick "scripts/open_folders --music" "Music")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder4" :onclick "scripts/open_folders --pics" "") + (button :class "label_folder4" :onclick "scripts/open_folders --pics" "Pictures")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder5" :onclick "scripts/open_folders --cfg" "ﮛ") + (button :class "label_folder5" :onclick "scripts/open_folders --cfg" "~/.config")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder6" :onclick "scripts/open_folders --local" "ﮛ") + (button :class "label_folder6" :onclick "scripts/open_folders --local" "~/.local")))) + + +;; ** Windows ************************************************************************* + + +;; background +(defwindow background :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 0 :y 0 :width "1920px" :height "1080px") + (bg)) + +;; profile +(defwindow profile :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 150 :y 150 :width 350 :height 440) + (user)) + +;; system +(defwindow system :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 150 :y 150 :width 350 :height 325) + (system)) + +;; clock +(defwindow clock :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 515 :y 150 :width 850 :height 325) + (clock)) + +;; uptime +(defwindow uptime :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1515 :y 320 :width 350 :height 155) + (uptime)) + +;; music +(defwindow music :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 515 :y 490 :width 610 :height 280) + (music)) + +;; github +(defwindow github :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 515 :y 785 :width 141 :height 145) + (github)) + +;; reddit +(defwindow reddit :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 671 :y 785 :width 141 :height 145) + (reddit)) + +;; twitter +(defwindow twitter :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 827 :y 785 :width 141 :height 145) + (twitter)) + +;; youtube +(defwindow youtube :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 983 :y 785 :width 142 :height 145) + (youtube)) + +;; weather +(defwindow weather :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 880 :y 150 :width 550 :height 325) + (weather)) + +;; apps +(defwindow apps :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1140 :y 490 :width 290 :height 280) + (apps)) + +;; mail +(defwindow mail :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1140 :y 785 :width 290 :height 145) + (mail)) + +;; logout +(defwindow logout :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1445 :y 150 :width 155 :height 155) + (logout)) + +;; sleep +(defwindow sleep :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1615 :y 150 :width 155 :height 155) + (sleep)) + +;; reboot +(defwindow reboot :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1445 :y 320 :width 155 :height 155) + (reboot)) + +;; poweroff +(defwindow poweroff :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1615 :y 320 :width 155 :height 155) + (poweroff)) + +;; folders +(defwindow folders :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1445 :y 490 :width 325 :height 440) + (folders)) diff --git a/X11/eww/images/bg.png b/X11/eww/images/bg.png new file mode 100644 index 0000000..4a9b899 Binary files /dev/null and b/X11/eww/images/bg.png differ diff --git a/X11/eww/images/icons/code.svg b/X11/eww/images/icons/code.svg new file mode 100644 index 0000000..b340b75 --- /dev/null +++ b/X11/eww/images/icons/code.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/X11/eww/images/icons/discord.svg b/X11/eww/images/icons/discord.svg new file mode 100644 index 0000000..a02373d --- /dev/null +++ b/X11/eww/images/icons/discord.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/X11/eww/images/icons/files.svg b/X11/eww/images/icons/files.svg new file mode 100644 index 0000000..8a2c892 --- /dev/null +++ b/X11/eww/images/icons/files.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/X11/eww/images/icons/firefox.svg b/X11/eww/images/icons/firefox.svg new file mode 100644 index 0000000..e14fafa --- /dev/null +++ b/X11/eww/images/icons/firefox.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/X11/eww/images/icons/geany.svg b/X11/eww/images/icons/geany.svg new file mode 100644 index 0000000..94029ba --- /dev/null +++ b/X11/eww/images/icons/geany.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/X11/eww/images/icons/gimp.svg b/X11/eww/images/icons/gimp.svg new file mode 100644 index 0000000..3a96df9 --- /dev/null +++ b/X11/eww/images/icons/gimp.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/X11/eww/images/icons/telegram.svg b/X11/eww/images/icons/telegram.svg new file mode 100644 index 0000000..37c62cf --- /dev/null +++ b/X11/eww/images/icons/telegram.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/X11/eww/images/icons/terminal.svg b/X11/eww/images/icons/terminal.svg new file mode 100644 index 0000000..ea2f949 --- /dev/null +++ b/X11/eww/images/icons/terminal.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/X11/eww/images/icons/virtualbox.svg b/X11/eww/images/icons/virtualbox.svg new file mode 100644 index 0000000..3883061 --- /dev/null +++ b/X11/eww/images/icons/virtualbox.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/X11/eww/images/music.png b/X11/eww/images/music.png new file mode 100644 index 0000000..3ded333 Binary files /dev/null and b/X11/eww/images/music.png differ diff --git a/X11/eww/images/profile.jpg b/X11/eww/images/profile.jpg new file mode 100644 index 0000000..575528e Binary files /dev/null and b/X11/eww/images/profile.jpg differ diff --git a/X11/eww/launch_dashboard b/X11/eww/launch_dashboard new file mode 100755 index 0000000..91e6441 --- /dev/null +++ b/X11/eww/launch_dashboard @@ -0,0 +1,33 @@ +#!/bin/bash + +## Files and cmd +FILE="$HOME/.cache/eww_launch.dashboard" +CFG="$HOME/.config/eww/dashboard" +EWW=`which eww` + +## Run eww daemon if not running already +if [[ ! `pidof eww` ]]; then + ${EWW} daemon + sleep 1 +fi + +## Open widgets +run_eww() { + ${EWW} --config "$CFG" open-many \ + background \ + system \ + clock \ + uptime \ + sleep +} + +## Launch or close widgets accordingly +if [[ ! -f "$FILE" ]]; then + touch "$FILE" + run_eww +else + ${EWW} --config "$CFG" close \ + background profile system clock uptime music github \ + reddit twitter youtube weather apps mail logout sleep reboot poweroff folders + rm "$FILE" +fi diff --git a/X11/eww/scripts/mails b/X11/eww/scripts/mails new file mode 100755 index 0000000..974d00a --- /dev/null +++ b/X11/eww/scripts/mails @@ -0,0 +1,7 @@ +#!/bin/python + +import imaplib +obj = imaplib.IMAP4_SSL('imap.gmail.com',993) +obj.login('username@gmail.com','PASSWORD') # write your email and password +obj.select() +print(len(obj.search(None, 'UnSeen')[1][0].split())) diff --git a/X11/eww/scripts/music_info b/X11/eww/scripts/music_info new file mode 100755 index 0000000..e5a7283 --- /dev/null +++ b/X11/eww/scripts/music_info @@ -0,0 +1,97 @@ +#!/bin/bash + +## Get data +STATUS="$(mpc status)" +COVER="/tmp/.music_cover.jpg" +MUSIC_DIR="$HOME/Music" + +## Get status +get_status() { + if [[ $STATUS == *"[playing]"* ]]; then + echo "" + else + echo "喇" + fi +} + +## Get song +get_song() { + song=`mpc -f %title% current` + if [[ -z "$song" ]]; then + echo "Offline" + else + echo "$song" + fi +} + +## Get artist +get_artist() { + artist=`mpc -f %artist% current` + if [[ -z "$artist" ]]; then + echo "Offline" + else + echo "$artist" + fi +} + +## Get time +get_time() { + time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'` + if [[ -z "$time" ]]; then + echo "0" + else + echo "$time" + fi +} +get_ctime() { + ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'` + if [[ -z "$ctime" ]]; then + echo "0:00" + else + echo "$ctime" + fi +} +get_ttime() { + ttime=`mpc -f %time% current` + if [[ -z "$ttime" ]]; then + echo "0:00" + else + echo "$ttime" + fi +} + +## Get cover +get_cover() { + ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null + STATUS=$? + + # Check if the file has a embbeded album art + if [ "$STATUS" -eq 0 ];then + echo "$COVER" + else + echo "images/music.png" + fi +} + +## Execute accordingly +if [[ "$1" == "--song" ]]; then + get_song +elif [[ "$1" == "--artist" ]]; then + get_artist +elif [[ "$1" == "--status" ]]; then + get_status +elif [[ "$1" == "--time" ]]; then + get_time +elif [[ "$1" == "--ctime" ]]; then + get_ctime +elif [[ "$1" == "--ttime" ]]; then + get_ttime +elif [[ "$1" == "--cover" ]]; then + get_cover +elif [[ "$1" == "--toggle" ]]; then + mpc -q toggle +elif [[ "$1" == "--next" ]]; then + { mpc -q next; get_cover; } +elif [[ "$1" == "--prev" ]]; then + { mpc -q prev; get_cover; } +fi diff --git a/X11/eww/scripts/open_apps b/X11/eww/scripts/open_apps new file mode 100755 index 0000000..57d3718 --- /dev/null +++ b/X11/eww/scripts/open_apps @@ -0,0 +1,42 @@ +#!/bin/bash + +## Open Applications +FILE="$HOME/.cache/eww_launch.dashboard" +CFG="$HOME/.config/eww/dashboard" +EWW=`which eww` + +close_dash() { + ${EWW} --config "$CFG" close \ + background profile system clock uptime music github \ + reddit twitter youtube weather apps mail logout sleep reboot poweroff folders + rm -rf "$FILE" +} + +if [[ "$1" == "--ff" ]]; then + close_dash && firefox & + +elif [[ "$1" == "--tg" ]]; then + close_dash && telegram-desktop & + +elif [[ "$1" == "--dc" ]]; then + close_dash && discord & + +elif [[ "$1" == "--tr" ]]; then + close_dash && alacritty --working-directory ~ & + +elif [[ "$1" == "--fm" ]]; then + close_dash && thunar ~ & + +elif [[ "$1" == "--ge" ]]; then + close_dash && geany & + +elif [[ "$1" == "--cd" ]]; then + close_dash && code & + +elif [[ "$1" == "--gp" ]]; then + close_dash && gimp & + +elif [[ "$1" == "--vb" ]]; then + close_dash && virtualbox & + +fi diff --git a/X11/eww/scripts/open_folders b/X11/eww/scripts/open_folders new file mode 100755 index 0000000..c5a5628 --- /dev/null +++ b/X11/eww/scripts/open_folders @@ -0,0 +1,33 @@ +#!/bin/bash + +## Open folders in thunar +FILE="$HOME/.cache/eww_launch.dashboard" +CFG="$HOME/.config/eww/dashboard" +EWW=`which eww` + +close_dash() { + ${EWW} --config "$CFG" close \ + background profile system clock uptime music github \ + reddit twitter youtube weather apps mail logout sleep reboot poweroff folders + rm -rf "$FILE" +} + +if [[ "$1" == "--dl" ]]; then + close_dash && thunar ~/Downloads & + +elif [[ "$1" == "--docs" ]]; then + close_dash && thunar ~/Documents & + +elif [[ "$1" == "--music" ]]; then + close_dash && thunar ~/Music & + +elif [[ "$1" == "--pics" ]]; then + close_dash && thunar ~/Pictures & + +elif [[ "$1" == "--cfg" ]]; then + close_dash && thunar ~/.config & + +elif [[ "$1" == "--local" ]]; then + close_dash && thunar ~/.local/share & + +fi diff --git a/X11/eww/scripts/open_links b/X11/eww/scripts/open_links new file mode 100755 index 0000000..a338847 --- /dev/null +++ b/X11/eww/scripts/open_links @@ -0,0 +1,31 @@ +#!/bin/bash + +## Open links in firefox +FILE="$HOME/.cache/eww_launch.dashboard" +CFG="$HOME/.config/eww/dashboard" +EWW=`which eww` +cmd="firefox --new-tab" + +close_dash() { + ${EWW} --config "$CFG" close \ + background profile system clock uptime music github \ + reddit twitter youtube weather apps mail logout sleep reboot poweroff folders + rm -rf "$FILE" +} + +if [[ "$1" == "--mail" ]]; then + close_dash && ${cmd} "https://mail.google.com" + +elif [[ "$1" == "--gh" ]]; then + close_dash && ${cmd} "https://github.com" + +elif [[ "$1" == "--rd" ]]; then + close_dash && ${cmd} "https://reddit.com" + +elif [[ "$1" == "--tw" ]]; then + close_dash && ${cmd} "https://twitter.com" + +elif [[ "$1" == "--yt" ]]; then + close_dash && ${cmd} "https://youtube.com" + +fi diff --git a/X11/eww/scripts/sys_info b/X11/eww/scripts/sys_info new file mode 100755 index 0000000..a168be3 --- /dev/null +++ b/X11/eww/scripts/sys_info @@ -0,0 +1,78 @@ +#!/bin/bash + +## Files and Data +PREV_TOTAL=0 +PREV_IDLE=0 +cpuFile="/tmp/.cpu_usage" + +## Get CPU usage +get_cpu() { + if [[ -f "${cpuFile}" ]]; then + fileCont=$(cat "${cpuFile}") + PREV_TOTAL=$(echo "${fileCont}" | head -n 1) + PREV_IDLE=$(echo "${fileCont}" | tail -n 1) + fi + + CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. + unset CPU[0] # Discard the "cpu" prefix. + IDLE=${CPU[4]} # Get the idle CPU time. + + # Calculate the total CPU time. + TOTAL=0 + + for VALUE in "${CPU[@]:0:4}"; do + let "TOTAL=$TOTAL+$VALUE" + done + + if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then + # Calculate the CPU usage since we last checked. + let "DIFF_IDLE=$IDLE-$PREV_IDLE" + let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" + let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" + echo "${DIFF_USAGE}" + else + echo "?" + fi + + # Remember the total and idle CPU times for the next check. + echo "${TOTAL}" > "${cpuFile}" + echo "${IDLE}" >> "${cpuFile}" +} + +## Get Used memory +get_mem() { + printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') +} + +## Get Brightness +get_blight() { + CARD=`ls /sys/class/backlight | head -n 1` + + if [[ "$CARD" == *"intel_"* ]]; then + BNESS=`xbacklight -get` + LIGHT=${BNESS%.*} + else + BNESS=`blight -d $CARD get brightness` + PERC="$(($BNESS*100/255))" + LIGHT=${PERC%.*} + fi + + echo "$LIGHT" +} + +## Get Battery +get_battery() { + BAT=CMB0 + cat /sys/class/power_supply/${BAT}/capacity +} + +## Execute accordingly +if [[ "$1" == "--cpu" ]]; then + get_cpu +elif [[ "$1" == "--mem" ]]; then + get_mem +elif [[ "$1" == "--blight" ]]; then + get_blight +elif [[ "$1" == "--bat" ]]; then + get_battery +fi diff --git a/X11/eww/scripts/weather_info b/X11/eww/scripts/weather_info new file mode 100755 index 0000000..6fee821 --- /dev/null +++ b/X11/eww/scripts/weather_info @@ -0,0 +1,147 @@ +#!/bin/bash + +## Collect data +cache_dir="$HOME/.cache/eww/weather" +cache_weather_stat=${cache_dir}/weather-stat +cache_weather_degree=${cache_dir}/weather-degree +cache_weather_quote=${cache_dir}/weather-quote +cache_weather_hex=${cache_dir}/weather-hex +cache_weather_icon=${cache_dir}/weather-icon + +## Weather data +KEY="YOUR_KEY" +ID="CITY_ID" +UNIT="metric" # Available options : 'metric' or 'imperial' + +## Make cache dir +if [[ ! -d "$cache_dir" ]]; then + mkdir -p ${cache_dir} +fi + +## Get data +get_weather_data() { + weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID="$KEY"&id="$ID"&units="$UNIT""` + echo ${weather} + + if [ ! -z "$weather" ]; then + weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1` + weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1` + weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"` + + #Big long if statement of doom + if [ "$weather_icon_code" == "50d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "50n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "01d" ]; then + weather_icon=" " + weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..." + weather_hex="#ffd86b" + elif [ "$weather_icon_code" == "01n" ]; then + weather_icon=" " + weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..." + weather_hex="#fcdcf6" + elif [ "$weather_icon_code" == "02d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "02n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "09d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "09n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "11d" ]; then + weather_icon="" + weather_quote="There's storm for forecast today \nMake sure you don't get blown away..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "11n" ]; then + weather_icon="" + weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "13d" ]; then + weather_icon=" " + weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!" + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "13n" ]; then + weather_icon=" " + weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..." + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "40d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "40n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + else + weather_icon=" " + weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!" + weather_hex="#adadff" + fi + echo "$weather_icon" > ${cache_weather_icon} + echo "$weather_description" > ${cache_weather_stat} + echo "$weather_temp""°C" > ${cache_weather_degree} + echo -e "$weather_quote" > ${cache_weather_quote} + echo "$weather_hex" > ${cache_weather_hex} + else + echo "Weather Unavailable" > ${cache_weather_stat} + echo " " > ${cache_weather_icon} + echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote} + echo "-" > ${cache_weather_degree} + echo "#adadff" > ${tcache_weather_hex} + fi +} + +## Execute +if [[ "$1" == "--getdata" ]]; then + get_weather_data +elif [[ "$1" == "--icon" ]]; then + cat ${cache_weather_icon} +elif [[ "$1" == "--temp" ]]; then + cat ${cache_weather_degree} +elif [[ "$1" == "--hex" ]]; then + cat ${cache_weather_hex} +elif [[ "$1" == "--stat" ]]; then + cat ${cache_weather_stat} +elif [[ "$1" == "--quote" ]]; then + cat ${cache_weather_quote} | head -n1 +elif [[ "$1" == "--quote2" ]]; then + cat ${cache_weather_quote} | tail -n1 +fi + -- cgit v1.2.3-70-g09d2