aboutsummaryrefslogtreecommitdiffhomepage
path: root/X11/eww
diff options
context:
space:
mode:
authorHsieh Chin Fan <typebrook@topo.tw>2023-02-04 08:33:47 +0800
committerHsieh Chin Fan <typebrook@topo.tw>2023-02-04 08:33:47 +0800
commit825c29b5e0740b27439003f21e1a1a74e563cfd5 (patch)
tree97e398b856abe9571efeedbf17e81ccc80118952 /X11/eww
parent4496db3c021d735a324a28c46ce4a18f090270f5 (diff)
Add eww config from aditaya
Diffstat (limited to 'X11/eww')
-rw-r--r--X11/eww/eww.scss377
-rw-r--r--X11/eww/eww.yuck310
-rw-r--r--X11/eww/images/bg.pngbin0 -> 322427 bytes
-rw-r--r--X11/eww/images/icons/code.svg8
-rw-r--r--X11/eww/images/icons/discord.svg6
-rw-r--r--X11/eww/images/icons/files.svg16
-rw-r--r--X11/eww/images/icons/firefox.svg14
-rw-r--r--X11/eww/images/icons/geany.svg5
-rw-r--r--X11/eww/images/icons/gimp.svg22
-rw-r--r--X11/eww/images/icons/telegram.svg20
-rw-r--r--X11/eww/images/icons/terminal.svg14
-rw-r--r--X11/eww/images/icons/virtualbox.svg11
-rw-r--r--X11/eww/images/music.pngbin0 -> 113344 bytes
-rw-r--r--X11/eww/images/profile.jpgbin0 -> 218845 bytes
-rwxr-xr-xX11/eww/launch_dashboard33
-rwxr-xr-xX11/eww/scripts/mails7
-rwxr-xr-xX11/eww/scripts/music_info97
-rwxr-xr-xX11/eww/scripts/open_apps42
-rwxr-xr-xX11/eww/scripts/open_folders33
-rwxr-xr-xX11/eww/scripts/open_links31
-rwxr-xr-xX11/eww/scripts/sys_info78
-rwxr-xr-xX11/eww/scripts/weather_info147
22 files changed, 1271 insertions, 0 deletions
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 @@
1/** Global *******************************************/
2*{
3 all: unset;
4 font-family: feather;
5 font-family: Iosevka;
6}
7
8/** Background ***************************************/
9.bg {
10 background-image: url("images/bg.png");
11 background-color: #474D59;
12 opacity: 1;
13}
14
15/** Generic window ***********************************/
16.genwin {
17 background-color: #2E3440;
18 border-radius: 16px;
19}
20
21/** Profile ******************************************/
22.face {
23 background-size: 200px;
24 min-height: 200px;
25 min-width: 200px;
26 margin: 65px 0px 0px 0px;
27 border-radius: 100%;
28}
29
30.fullname {
31 color: #D46389;
32 font-size : 30px;
33 font-weight : bold;
34}
35
36.username {
37 color: #8FBCBB;
38 font-size : 22px;
39 font-weight : bold;
40 margin : -15px 0px 0px 0px;
41}
42
43/** System ********************************************/
44.iconcpu, .iconmem, .iconbright, .iconbat {
45 font-size : 32px;
46 font-weight : normal;
47}
48.iconcpu {
49 color: #BF616A;
50}
51.iconmem {
52 color: #A3BE8C;
53}
54.iconbright {
55 color: #EBCB8B;
56}
57.iconbat {
58 color: #88C0D0;
59}
60
61.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough {
62 all: unset;
63 background-color: #3A404C;
64 border-radius: 16px;
65 min-height: 28px;
66 min-width: 240px;
67}
68
69.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough highlight {
70 all: unset;
71 border-radius: 16px;
72}
73
74.cpu_bar scale trough highlight {
75 background-color: #BF616A;
76}
77.mem_bar scale trough highlight {
78 background-color: #A3BE8C;
79}
80.bright_bar scale trough highlight {
81 background-color: #EBCB8B;
82}
83.bat_bar scale trough highlight {
84 background-color: #88C0D0;
85}
86
87/** Clock ********************************************/
88.time_hour, .time_min {
89 color: #81A1C1;
90 font-size : 120px;
91 font-weight : bold;
92}
93.time_hour {
94 margin : 15px 0px 0px 20px;
95}
96.time_min {
97 margin : 0px 0px 10px 0px;
98}
99
100.time_mer {
101 color: #A3BE8C;
102 font-size : 80px;
103 font-weight : bold;
104 margin : 20px 0px 0px 0px;
105}
106
107.time_day {
108 color: #EBCB8B;
109 font-size : 70px;
110 font-weight : normal;
111 margin : 0px 0px 20px -20px;
112}
113
114/** Uptime ********************************************/
115.icontimer {
116 color: #B48EAD;
117 font-size : 90px;
118 font-weight : normal;
119}
120
121.uphour {
122 color: #E5E9F0;
123 font-size : 42px;
124 font-weight : bold;
125}
126
127.upmin {
128 color: #E5E9F0;
129 font-size : 32px;
130 font-weight : bold;
131}
132
133/** Music ***************************************/
134.album_art {
135 background-size: 240px;
136 min-height: 240px;
137 min-width: 240px;
138 margin: 20px;
139 border-radius: 14px;
140}
141
142.song {
143 color: #8FBCBB;
144 font-size : 24px;
145 font-weight : bold;
146 margin : 40px 0px 0px 0px;
147}
148
149.artist {
150 color: #EBCB8B;
151 font-size : 16px;
152 font-weight : normal;
153 margin : 0px 0px 15px 0px;
154}
155
156.btn_prev, .btn_play, .btn_next {
157 font-family: Iosevka Nerd Font;
158}
159.btn_prev {
160 color: #EBCB8B;
161 font-size : 32px;
162 font-weight : normal;
163}
164.btn_play {
165 color: #A3BE8C;
166 font-size : 48px;
167 font-weight : bold;
168}
169.btn_next {
170 color: #EBCB8B;
171 font-size : 32px;
172 font-weight : normal;
173}
174
175.music_bar scale trough highlight {
176 all: unset;
177 background-color: #B48EAD;
178 border-radius: 8px;
179}
180.music_bar scale trough {
181 all: unset;
182 background-color: #3A404C;
183 border-radius: 8px;
184 min-height: 20px;
185 min-width: 310px;
186 margin : 10px 0px 0px 0px;
187}
188
189/** Weather ***************************************/
190.iconweather {
191 font-family: Iosevka Nerd Font;
192 font-size : 120px;
193 font-weight : normal;
194 margin : 15px 0px 0px 30px;
195}
196
197.label_temp {
198 color : #A6D1DD;
199 font-size : 80px;
200 font-weight : bold;
201 margin : -15px 30px 0px 0px;
202}
203
204.label_stat {
205 color : #BF616A;
206 font-size : 38px;
207 font-weight : bold;
208}
209
210.label_quote {
211 color : #E5E5E5;
212 font-size : 18px;
213 font-weight : normal;
214}
215
216/** Applications ***************************************/
217.appbox {
218 margin : 15px 0px 0px 25px;
219}
220
221.app_fox, .app_telegram, .app_discord, .app_terminal,
222.app_files, .app_geany, .app_code, .app_gimp, .app_vbox {
223 background-repeat: no-repeat;
224 background-size: 64px;
225 min-height: 64px;
226 min-width: 64px;
227 margin: 8px 8px 0px 8px;
228}
229
230.app_fox {}
231.app_telegram {}
232.app_discord {}
233.app_terminal {}
234.app_files {}
235.app_geany {}
236.app_code {}
237.app_gimp {}
238.app_vbox {}
239
240/** Links ***************************************/
241.iconweb, .iconmail {
242 color: #FFFFFF;
243 font-family: Iosevka Nerd Font;
244 font-size : 70px;
245 font-weight : normal;
246}
247.iconmail {
248 color: #DF584E;
249}
250
251.github {
252 background-color: #24292E;
253 border-radius: 16px;
254}
255.reddit {
256 background-color: #E46231;
257 border-radius: 16px;
258}
259.twitter {
260 background-color: #61AAD6;
261 border-radius: 16px;
262}
263.youtube {
264 background-color: #DF584E;
265 border-radius: 16px;
266}
267.mail {
268 background-color: #FFFFFF;
269 border-radius: 16px;
270}
271
272.mailbox {
273 background-color: #E5E5E5;
274 border-radius: 10px;
275 margin: 48px 0px 48px 0px;
276}
277.label_mails {
278 color: #404040;
279 font-size : 32px;
280 font-weight : bold;
281 margin: 0px 12px 0px 12px;
282}
283
284/** Power buttons ***************************************/
285.btn_logout, .btn_sleep, .btn_reboot, .btn_poweroff {
286 font-size : 48px;
287 font-weight : bold;
288}
289
290.btn_logout {
291 color: #BF616A;
292}
293.btn_sleep {
294 color: #A3BE8C;
295}
296.btn_reboot {
297 color: #EBCB8B;
298}
299.btn_poweroff {
300 color: #88C0D0;
301}
302
303/** Home folders ***************************************/
304.hddbox {
305 background-color: #3A404C;
306 border-radius: 10px;
307 margin : 15px;
308}
309.hddicon {
310 color: #81A1C1;
311 font-family: Iosevka Nerd Font;
312 font-size : 70px;
313 font-weight : normal;
314 margin : 25px 20px 25px 40px;
315}
316.hdd_label {
317 color: #E5E9F0;
318 font-size : 48px;
319 font-weight : bold;
320 margin : 0px 0px 0px 15px;
321}
322.fs_sep {
323 color: #2E3440;
324 font-size : 36px;
325 font-weight : bold;
326}
327
328.iconfolder1, .iconfolder2, .iconfolder3, .iconfolder4, .iconfolder5, .iconfolder6 {
329 font-family: Iosevka Nerd Font;
330 font-size : 32px;
331 font-weight : normal;
332 margin : 0px 0px 0px 75px;
333}
334.iconfolder1 {
335 color: #BF616A;
336}
337.iconfolder2 {
338 color: #A3BE8C;
339}
340.iconfolder3 {
341 color: #EBCB8B;
342}
343.iconfolder4 {
344 color: #81A1C1;
345}
346.iconfolder5 {
347 color: #B48EAD;
348}
349.iconfolder6 {
350 color: #88C0D0;
351}
352
353.label_folder1, .label_folder2, .label_folder3, .label_folder4, .label_folder5, .label_folder6 {
354 font-size : 22px;
355 font-weight : normal;
356 margin : 0px 0px 0px 30px;
357}
358.label_folder1 {
359 color: #BF616A;
360}
361.label_folder2 {
362 color: #A3BE8C;
363}
364.label_folder3 {
365 color: #EBCB8B;
366}
367.label_folder4 {
368 color: #81A1C1;
369}
370.label_folder5 {
371 color: #B48EAD;
372}
373.label_folder6 {
374 color: #88C0D0;
375}
376
377/** 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 @@
1;; **
2;; ** Widgets config for EWW
3;; ** Created by : @adi1090x
4;; ** Converted by : @tripleo1
5;; **
6
7;; ** Variables ***********************************************************************
8
9;; Profile vars
10(defvar IMAGE "images/profile.jpg")
11(defvar NAME "YOUR NAME")
12(defpoll UNAME :interval "5m" `whoami`)
13
14;; System vars
15(defpoll HOST :interval "5s" `hostname`)
16(defpoll CPU_USAGE :interval "1s" `scripts/sys_info --cpu`)
17(defpoll MEM_USAGE :interval "1s" `scripts/sys_info --mem`)
18(defpoll BLIGHT :interval "1s" `scripts/sys_info --blight`)
19(defpoll BATTERY :interval "5s" `scripts/sys_info --bat`)
20
21;; Time vars
22(defpoll HOUR :interval "5s" `date +\"%I\"`)
23(defpoll MIN :interval "5s" `date +\"%M\"`)
24(defpoll MER :interval "5s" `date +\"%p\"`)
25(defpoll DAY :interval "5s" `date +\"%A\"`)
26
27;; Uptime vars
28(defpoll UPHOUR :interval "5s" `uptime -p | awk '{print $2 \" \" $3}' | sed 's/,//g'`)
29(defpoll UPMIN :interval "5s" `uptime -p | awk '{print $4 \" \" $5}'`)
30
31;; Music vars
32(defpoll SONG :interval "1s" `scripts/music_info --song`)
33(defpoll ARTIST :interval "1s" `scripts/music_info --artist`)
34(defpoll STATUS :interval "1s" `scripts/music_info --status`)
35(defpoll CURRENT :interval "1s" `scripts/music_info --time`)
36(defpoll COVER :interval "1s" `scripts/music_info --cover`)
37(defpoll CTIME :interval "1s" `scripts/music_info --ctime`)
38(defpoll TTIME :interval "1s" `scripts/music_info --ttime`)
39
40;; Weather vars
41(defpoll ICON :interval "15m" `scripts/weather_info --icon`)
42(defpoll STAT :interval "15m" `scripts/weather_info --stat`)
43(defpoll TEMP :interval "15m" `scripts/weather_info --temp`)
44(defpoll HEX :interval "15m" `scripts/weather_info --hex`)
45(defpoll QUOTE :interval "15m" `scripts/weather_info --quote`)
46(defpoll QUOTE2 :interval "15m" `scripts/weather_info --quote2`)
47
48;; Apps vars
49(defpoll MAILS :interval "5m" `scripts/mails`)
50
51;; Files vars
52(defpoll FREE :interval "5s" `df -h / | awk '{print $4}' | tail -n 1 | sed 's/G/GB/'`)
53
54
55;; ** Widgets *************************************************************************
56
57
58;; background
59(defwidget bg []
60 (box :class "bg")
61)
62
63;; profile
64(defwidget user []
65 (box :class "genwin" :orientation "v" :spacing 35 :space-evenly "false" :vexpand "false" :hexpand "false"
66 (box :style "background-image: url('${IMAGE}');" :class "face" :halign "center")
67 (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME)
68 (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME)))
69
70;; system
71(defwidget system []
72 (box :class "genwin" :vexpand "false" :hexpand "false"
73 (box :orientation "v" :spacing 35 :halign "center" :valign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
74 (box :class "cpu_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
75 (label :class "iconcpu" :text "")
76 (scale :min 0 :max 100 :value CPU_USAGE :active "false"))
77 (box :class "mem_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
78 (label :class "iconmem" :text "")
79 (scale :min 0 :max 100 :value MEM_USAGE :active "false"))
80 (box :class "bright_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
81 (label :class "iconbright" :text "")
82 (scale :min 0 :max 100 :value BLIGHT :active "false"))
83 (box :class "bat_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
84 (label :class "iconbat" :text BATTERY)
85 (scale :min 0 :max 100 :value BATTERY :active "false")))))
86
87;; clock
88(defwidget clock []
89 (box :class "genwin" :orientation "h" :spacing 50 :space-evenly false :vexpand "false" :hexpand "false"
90 (box :orientation "h" :spacing 0
91 (label :class "time_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR)
92 (label :class "time_min" :valign "end" :wrap "true" :limit-width 25 :text MIN))
93 (box :orientation "v" :spacing 0
94 (label :class "time_mer" :valign "start" :halign "end" :wrap "true" :limit-width 25 :text MER)
95 (label :class "time_day" :valign "end" :halign "end" :wrap "true" :limit-width 25 :text DAY))))
96
97;; uptime
98(defwidget uptime []
99 (box :class "genwin"
100 (box :orientation "h" :halign "center" :spacing 40 :space-evenly "false" :vexpand "false" :hexpand "false"
101 (label :class "icontimer" :valign "center" :text "祥")
102 (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false"
103 (label :class "uphour" :halign "start" :wrap "true" :limit-width 25 :text UPHOUR)
104 (label :class "upmin" :halign "start" :wrap "true" :limit-width 25 :text UPMIN)))))
105
106;; Music
107(defwidget music []
108 (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
109 (box :class "album_art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');")
110 (box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
111 (label :halign "center" :class "song" :wrap "true" :limit-width 20 :text SONG)
112 (label :halign "center" :class "artist" :wrap "true" :limit-width 15 :text ARTIST)
113 (box :orientation "h" :spacing 20 :halign "center" :space-evenly "true" :vexpand "false" :hexpand "false"
114 (button :class "btn_prev" :onclick "scripts/music_info --prev" "玲")
115 (button :class "btn_play" :onclick "scripts/music_info --toggle" STATUS)
116 (button :class "btn_next" :onclick "scripts/music_info --next" "怜"))
117 (box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false"
118 (scale :onscroll "mpc -q seek +1" :min 0 :active "true" :max 100 :value CURRENT)))))
119
120;; github
121(defwidget github []
122 (box :class "github" :vexpand "false" :hexpand "false"
123 (button :class "iconweb" :onclick "scripts/open_links --gh" "")))
124
125;; reddit
126(defwidget reddit []
127 (box :class "reddit" :vexpand "false" :hexpand "false"
128 (button :class "iconweb" :onclick "scripts/open_links --rd" "樓")))
129
130;; twitter
131(defwidget twitter []
132 (box :class "twitter" :vexpand "false" :hexpand "false"
133 (button :class "iconweb" :onclick "scripts/open_links --tw" "")))
134
135;; youtube
136(defwidget youtube []
137 (box :class "youtube" :vexpand "false" :hexpand "false"
138 (button :class "iconweb" :onclick "scripts/open_links --yt" "")))
139
140;; mail
141(defwidget mail []
142 (box :class "mail"
143 (box :orientation "h" :halign "center" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
144 (button :class "iconmail" :onclick "scripts/open_links --mail" "")
145 (box :class "mailbox" :space-evenly "false" :vexpand "false" :hexpand "false"
146 (button :class "label_mails" :onclick "scripts/open_links --mail" MAILS)))))
147
148;; weather
149(defwidget weather []
150 (box :class "genwin"
151 (box :orientation "v" :spacing 10 :space-evenly "false" :vexpand "false" :hexpand "false"
152 (box :orientation "h" :vexpand "false" :hexpand "false"
153 (label :class "iconweather" :halign "start" :style "color: ${HEX};" :text ICON)
154 (label :class "label_temp" :halign "end" :text TEMP))
155 (box :orientation "v" :spacing 10 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
156 (label :class "label_stat" :text STAT)
157 (label :class "label_quote" :text QUOTE)
158 (label :class "label_quote" :text QUOTE2)))))
159
160;; apps
161(defwidget apps []
162 (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
163 (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
164 (button :style "background-image: url('images/icons/firefox.svg');" :class "app_fox" :onclick "scripts/open_apps --ff")
165 (button :style "background-image: url('images/icons/telegram.svg');" :class "app_telegram" :onclick "scripts/open_apps --tg")
166 (button :style "background-image: url('images/icons/discord.svg');" :class "app_discord" :onclick "scripts/open_apps --dc"))
167 (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
168 (button :style "background-image: url('images/icons/terminal.svg');" :class "app_terminal" :onclick "scripts/open_apps --tr")
169 (button :style "background-image: url('images/icons/files.svg');" :class "app_files" :onclick "scripts/open_apps --fm")
170 (button :style "background-image: url('images/icons/geany.svg');" :class "app_geany" :onclick "scripts/open_apps --ge"))
171 (box :class "appbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
172 (button :style "background-image: url('images/icons/code.svg');" :class "app_code" :onclick "scripts/open_apps --cd")
173 (button :style "background-image: url('images/icons/gimp.svg');" :class "app_gimp" :onclick "scripts/open_apps --gp")
174 (button :style "background-image: url('images/icons/virtualbox.svg');" :class "app_vbox" :onclick "scripts/open_apps --vb"))))
175
176;; power buttons
177(defwidget logout []
178 (box :class "genwin" :vexpand "false" :hexpand "false"
179 (button :class "btn_logout" :onclick "openbox --exit" "")))
180(defwidget sleep []
181 (box :class "genwin" :vexpand "false" :hexpand "false"
182 (button :class "btn_sleep" :onclick "systemctl suspend" "")))
183(defwidget reboot []
184 (box :class "genwin" :vexpand "false" :hexpand "false"
185 (button :class "btn_reboot" :onclick "systemctl reboot" "")))
186(defwidget poweroff []
187 (box :class "genwin" :vexpand "false" :hexpand "false"
188 (button :class "btn_poweroff" :onclick "systemctl poweroff" "")))
189
190;; folders
191(defwidget folders []
192 (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
193 (box :class "hddbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
194 (box :space-evenly "false" :vexpand "false" :hexpand "false"
195 (button :class "hddicon" :onclick "scripts/open_apps --fm" "")
196 (label :class "fs_sep" :text "|"))
197 (box :space-evenly "false" :vexpand "false" :hexpand "false"
198 (label :class "hdd_label" :wrap "true" :limit-width 25 :text FREE)))
199 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
200 (button :class "iconfolder1" :onclick "scripts/open_folders --docs" "")
201 (button :class "label_folder1" :onclick "scripts/open_folders --docs" "Documents"))
202 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
203 (button :class "iconfolder2" :onclick "scripts/open_folders --dl" "")
204 (button :class "label_folder2" :onclick "scripts/open_folders --dl" "Downloads"))
205 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
206 (button :class "iconfolder3" :onclick "scripts/open_folders --music" "")
207 (button :class "label_folder3" :onclick "scripts/open_folders --music" "Music"))
208 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
209 (button :class "iconfolder4" :onclick "scripts/open_folders --pics" "")
210 (button :class "label_folder4" :onclick "scripts/open_folders --pics" "Pictures"))
211 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
212 (button :class "iconfolder5" :onclick "scripts/open_folders --cfg" "ﮛ")
213 (button :class "label_folder5" :onclick "scripts/open_folders --cfg" "~/.config"))
214 (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
215 (button :class "iconfolder6" :onclick "scripts/open_folders --local" "ﮛ")
216 (button :class "label_folder6" :onclick "scripts/open_folders --local" "~/.local"))))
217
218
219;; ** Windows *************************************************************************
220
221
222;; background
223(defwindow background :stacking "fg" :focusable "false" :screen 1
224 :geometry (geometry :x 0 :y 0 :width "1920px" :height "1080px")
225 (bg))
226
227;; profile
228(defwindow profile :stacking "fg" :focusable "false" :screen 1
229 :geometry (geometry :x 150 :y 150 :width 350 :height 440)
230 (user))
231
232;; system
233(defwindow system :stacking "fg" :focusable "false" :screen 1
234 :geometry (geometry :x 150 :y 150 :width 350 :height 325)
235 (system))
236
237;; clock
238(defwindow clock :stacking "fg" :focusable "false" :screen 1
239 :geometry (geometry :x 515 :y 150 :width 850 :height 325)
240 (clock))
241
242;; uptime
243(defwindow uptime :stacking "fg" :focusable "false" :screen 1
244 :geometry (geometry :x 1515 :y 320 :width 350 :height 155)
245 (uptime))
246
247;; music
248(defwindow music :stacking "fg" :focusable "false" :screen 1
249 :geometry (geometry :x 515 :y 490 :width 610 :height 280)
250 (music))
251
252;; github
253(defwindow github :stacking "fg" :focusable "false" :screen 1
254 :geometry (geometry :x 515 :y 785 :width 141 :height 145)
255 (github))
256
257;; reddit
258(defwindow reddit :stacking "fg" :focusable "false" :screen 1
259 :geometry (geometry :x 671 :y 785 :width 141 :height 145)
260 (reddit))
261
262;; twitter
263(defwindow twitter :stacking "fg" :focusable "false" :screen 1
264 :geometry (geometry :x 827 :y 785 :width 141 :height 145)
265 (twitter))
266
267;; youtube
268(defwindow youtube :stacking "fg" :focusable "false" :screen 1
269 :geometry (geometry :x 983 :y 785 :width 142 :height 145)
270 (youtube))
271
272;; weather
273(defwindow weather :stacking "fg" :focusable "false" :screen 1
274 :geometry (geometry :x 880 :y 150 :width 550 :height 325)
275 (weather))
276
277;; apps
278(defwindow apps :stacking "fg" :focusable "false" :screen 1
279 :geometry (geometry :x 1140 :y 490 :width 290 :height 280)
280 (apps))
281
282;; mail
283(defwindow mail :stacking "fg" :focusable "false" :screen 1
284 :geometry (geometry :x 1140 :y 785 :width 290 :height 145)
285 (mail))
286
287;; logout
288(defwindow logout :stacking "fg" :focusable "false" :screen 1
289 :geometry (geometry :x 1445 :y 150 :width 155 :height 155)
290 (logout))
291
292;; sleep
293(defwindow sleep :stacking "fg" :focusable "false" :screen 1
294 :geometry (geometry :x 1615 :y 150 :width 155 :height 155)
295 (sleep))
296
297;; reboot
298(defwindow reboot :stacking "fg" :focusable "false" :screen 1
299 :geometry (geometry :x 1445 :y 320 :width 155 :height 155)
300 (reboot))
301
302;; poweroff
303(defwindow poweroff :stacking "fg" :focusable "false" :screen 1
304 :geometry (geometry :x 1615 :y 320 :width 155 :height 155)
305 (poweroff))
306
307;; folders
308(defwindow folders :stacking "fg" :focusable "false" :screen 1
309 :geometry (geometry :x 1445 :y 490 :width 325 :height 440)
310 (folders))
diff --git a/X11/eww/images/bg.png b/X11/eww/images/bg.png
new file mode 100644
index 0000000..4a9b899
--- /dev/null
+++ b/X11/eww/images/bg.png
Binary files 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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <circle cx="8.4665" cy="8.4665" r="7.1436" fill="#f9f9f9" style="paint-order:stroke fill markers"/>
3 <g transform="matrix(1.1855 0 0 1.1855 -14.244 .37886)" fill-rule="evenodd" stroke-width=".26458">
4 <path d="m21.068 2.6024c-0.09052 0.010102-0.17861 0.04111-0.26664 0.099217 0.13772 0.17144-0.1403 1.7855 0.20785 2.004l0.2717 0.17053v3.8922l-0.42679 0.31977c-0.32895 0.24647 0.02978 1.6662-0.05651 1.8488 0.09533 0.05818 0.23775 0.12029 0.36237 0.10514 0.03992-0.0049 0.08033-0.01602 0.1204-0.03566l1.7368-0.85162c0.18929-0.09277 0.38033-0.16953 0.38033-0.38033v-5.9043c0-0.2108-0.19104-0.28757-0.38033-0.38033l-1.7368-0.85162c-0.04007-0.01964-0.08048-0.030802-0.1204-0.035657-0.03116-0.00379-0.06181-0.00337-0.09198 0z" fill="#35a0f3" style="paint-order:stroke fill markers"/>
5 <path d="m15.041 8.0035 5.6511-5.2228c0.25656-0.23712 0.58887-0.15304 0.58887 0.33742v1.7579l-5.2244 3.9957c-0.09136 0.07175-0.32943 0.24313-0.53715 0.04563l-0.52855-0.50252c-0.1387-0.13186-0.05988-0.30961 0.0501-0.41126z" fill="#115fb7" style="paint-order:stroke fill markers"/>
6 <path d="m15.041 5.6381 5.6511 5.2228c0.25656 0.23712 0.58887 0.15304 0.58887-0.33742v-1.7579l-5.2244-3.9957c-0.09136-0.071751-0.32943-0.24313-0.53715-0.045627l-0.52855 0.50251c-0.1387 0.13187-0.05988 0.30961 0.0501 0.41126z" fill="#1a81da" style="paint-order:stroke fill markers"/>
7 </g>
8</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <circle cx="8.4665" cy="8.4665" r="7.1436" fill="#867de0" style="paint-order:stroke fill markers"/>
3 <g transform="matrix(2.2415 0 0 2.2415 3.7221 -652.3)" fill="#fff" stroke-width=".44648">
4 <path d="m1.5689 293.37c-0.052606 2.2e-4 -0.4878 0.0126-0.94691 0.35371 0 0-0.48972 0.88082-0.48972 1.9657 0 0 0.28566 0.48973 1.0372 0.51353 0 0 0.12583-0.14963 0.22785-0.27887-0.4319-0.12923-0.59514-0.39788-0.59514-0.39788s0.034015 0.0238 0.09523 0.0578c0.003403 0 0.006787 4e-3 0.013593 7e-3 0.010203 7e-3 0.020408 0.0102 0.03061 0.017 0.08502 0.0476 0.17004 0.085 0.24826 0.11563 0.13943 0.0579 0.30608 0.10883 0.49992 0.14623 0.25506 0.0476 0.55433 0.0646 0.88081 4e-3 0.15984-0.0306 0.32309-0.0748 0.49313-0.14623 0.11903-0.0442 0.25166-0.10882 0.39109-0.20064 0 0-0.17004 0.27546-0.61554 0.4013 0.10202 0.12583 0.22446 0.27205 0.22446 0.27205 0.75158-0.0238 1.0372-0.51353 1.0372-0.51013 0-1.0849-0.48972-1.9657-0.48972-1.9657-0.48632-0.36388-0.95224-0.35368-0.95224-0.35368l-0.047602 0.0544c0.57814 0.17343 0.8468 0.42851 0.8468 0.42851-0.35369-0.19044-0.70056-0.28568-1.0236-0.32309-0.24486-0.0272-0.47952-0.0204-0.68697 7e-3 -0.020405 0-0.037404 4e-3 -0.05781 7e-3 -0.11903 0.0136-0.4081 0.0544-0.77198 0.21425-0.12583 0.0544-0.20065 0.0952-0.20065 0.0952s0.27887-0.26868 0.89101-0.44211l-0.034009-0.0408s-0.0018-3e-5 -0.00531-2e-5zm-0.086511 1.2549c0.19385 0 0.35029 0.16664 0.34689 0.37409 0 0.20745-0.15304 0.37409-0.34689 0.37409-0.19045 0-0.34689-0.16664-0.34689-0.37409s0.15304-0.37409 0.34689-0.37409zm1.2413 0c0.19045 0 0.34689 0.16664 0.34689 0.37409s-0.15304 0.37409-0.34689 0.37409c-0.19045 0-0.34689-0.16664-0.34689-0.37409s0.15304-0.37409 0.34689-0.37409z" fill="#fff" stroke-width=".44648"/>
5 </g>
6</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <defs>
3 <linearGradient id="b">
4 <stop offset="0"/>
5 <stop stop-opacity="0" offset="1"/>
6 </linearGradient>
7 <linearGradient id="c" x1="32" x2="32" y1="13" y2="9" gradientTransform="scale(.26458)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
8 <linearGradient id="a" x1="30" x2="57" y1="44" y2="44" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
9 </defs>
10 <circle cx="8.4665" cy="8.4665" r="6.6145" fill="#3578c7" style="paint-order:stroke markers fill"/>
11 <path transform="scale(.26458)" d="m19.398 14a22 22 0 0 0-9.3984 18 22 22 0 0 0 22 22 22 22 0 0 0 22-22 22 22 0 0 0-9.3711-18z" fill="#fff" stroke-width="3.7796" style="paint-order:stroke markers fill"/>
12 <path d="m8.4665 1.852a6.6145 6.6145 0 0 0-3.9444 1.3229h7.8976a6.6145 6.6145 0 0 0-3.9532-1.3229z" fill="url(#c)" opacity=".15" style="paint-order:stroke markers fill"/>
13 <path d="m8.466 4.2332c-0.29211 6.879e-4 -0.38134 0.27599-0.52916 0.52967l-0.30799 0.52812-5.5525 5.167e-4a7.1436 7.1436 0 0 0-0.75343 3.1749 7.1436 7.1436 0 0 0 7.1436 7.1436 7.1436 7.1436 0 0 0 7.1436-7.1436 7.1436 7.1436 0 0 0-1.3999-4.2332h-5.7432z" fill="#5294e2" style="paint-order:stroke markers fill"/>
14 <rect x="9.2599" y="4.762" width="3.969" height=".529" ry=".265" opacity=".25" style="paint-order:stroke markers fill"/>
15 <path transform="scale(.26458)" d="m59 32-27 27a27 27 0 0 0 27-27z" fill="url(#a)" opacity=".15" stroke-width="3.7796" style="paint-order:stroke markers fill"/>
16</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <circle cx="296.65" cy="5.7567" r="0" enable-background="new" fill="#d5d3cf" stroke-width=".87152"/>
3 <g stroke-width=".18455">
4 <path d="m15.093 5.809c-0.31078-0.74779-0.94116-1.5551-1.4349-1.8104a7.431 7.431 0 0 1 0.72435 2.1711l0.0013 0.012027c-0.80869-2.0162-2.1801-2.8291-3.3001-4.5993-0.056658-0.089506-0.11332-0.17919-0.16849-0.27387-0.03156-0.054034-0.05684-0.1028-0.0788-0.14764a1.3016 1.3016 0 0 1-0.10667-0.28328 0.018455 0.018455 0 0 0-0.01624-0.018476 0.025468 0.025468 0 0 0-0.01347 0c-9.59e-4 0-0.0024 0.001743-0.0035 0.001743-0.0011 3.6604e-4 -0.0035 0.001743-0.0051 0.002615l0.0028-0.005229c-1.7966 1.0519-2.4062 2.9993-2.4623 3.9734a3.5779 3.5779 0 0 0-1.9684 0.75868 2.1384 2.1384 0 0 0-0.18455-0.13989 3.316 3.316 0 0 1-0.020116-1.7483 5.2975 5.2975 0 0 0-1.7217 1.3306h-0.00332c-0.28355-0.35847-0.26362-1.5433-0.24738-1.7907a1.2785 1.2785 0 0 0-0.23881 0.12678 5.2089 5.2089 0 0 0-0.69907 0.59887 6.246 6.246 0 0 0-0.66862 0.80223v8.715e-4 -8.715e-4a6.0408 6.0408 0 0 0-0.95964 2.1671l-0.0096 0.047237c-0.013472 0.062924-0.062008 0.37814-0.070313 0.4466 0 0.00523-0.00111 0.010371-0.00166 0.015688a6.8167 6.8167 0 0 0-0.11608 0.98604v0.036865a7.1529 7.1529 0 0 0 14.201 1.2095c0.01199-0.092277 0.02178-0.18363 0.03248-0.27682a7.3556 7.3556 0 0 0-0.46395-3.5929zm-8.2438 5.5988c0.033403 0.01604 0.064777 0.03338 0.099101 0.04872l0.00499 0.0035q-0.052048-0.02494-0.10409-0.05187zm1.6385-4.314m5.8967-0.91057v-0.00697l0.0013 0.00784z" fill="#ff3944"/>
5 <path d="m11.618 6.6457c0.0155 0.010894 0.02989 0.021788 0.04447 0.032682a3.894 3.894 0 0 0-0.66438-0.86645c-2.2231-2.2234-0.58262-4.821-0.30598-4.953l0.0028-0.004358c-1.7966 1.0519-2.4062 2.9993-2.4622 3.9734 0.083416-0.0061 0.1661-0.012724 0.25136-0.012724a3.6098 3.6098 0 0 1 3.134 1.8302z" fill="#ffcd34"/>
6 <path d="m8.4881 7.0901c-0.011811 0.1779-0.64039 0.79153-0.86019 0.79153-2.0339 0-2.3641 1.2304-2.3641 1.2304 0.090063 1.0361 0.81202 1.8894 1.6847 2.3408 0.039863 0.02065 0.080279 0.03931 0.1207 0.05761q0.10501 0.04654 0.21002 0.08602a3.1807 3.1807 0 0 0 0.9307 0.17957c3.565 0.1672 4.2555-4.2631 1.6829-5.5486a2.4693 2.4693 0 0 1 1.7246 0.41874 3.6098 3.6098 0 0 0-3.134-1.8302c-0.084893 0-0.16794 0.00697-0.25136 0.012724a3.5779 3.5779 0 0 0-1.9684 0.75868c0.10907 0.092268 0.23217 0.21555 0.49145 0.47115 0.48536 0.47816 1.7301 0.97349 1.7329 1.0316z" fill="#9a46eb"/>
7 <path d="m5.9303 5.3471c0.057949 0.036865 0.10575 0.069025 0.14764 0.097994a3.316 3.316 0 0 1-0.020116-1.7483 5.2975 5.2975 0 0 0-1.7217 1.3306c0.03488-8.715e-4 1.0724-0.019522 1.5941 0.31964z" fill="#ff9633"/>
8 <path d="m1.3883 8.6327c0.55199 3.2617 3.5081 5.7521 6.8641 5.8471 3.1059 0.08784 5.0902-1.7152 5.91-3.4742a6.4777 6.4777 0 0 0 0.22257-4.8275v-0.00697c0-0.00523-0.0011-0.00872 0-0.00697l0.0013 0.012027c0.25375 1.6567-0.5889 3.2617-1.9062 4.3471l-0.0041 0.0092c-2.5667 2.0904-5.023 1.2612-5.5202 0.92277q-0.052031-0.024892-0.10407-0.051822c-1.4965-0.71531-2.1148-2.0788-1.9823-3.2481a1.8368 1.8368 0 0 1-1.6943-1.0658 2.6977 2.6977 0 0 1 2.6296-0.10557 3.5618 3.5618 0 0 0 2.6855 0.10557c-0.0027715-0.058131-1.2476-0.55364-1.7329-1.0316-0.25929-0.2556-0.38238-0.37869-0.49145-0.47115a2.1384 2.1384 0 0 0-0.18455-0.13989c-0.042447-0.028935-0.090246-0.06031-0.14764-0.097994-0.52172-0.3392-1.5592-0.32056-1.5936-0.31963h-0.00332c-0.28345-0.35907-0.26351-1.5439-0.24728-1.7913a1.2785 1.2785 0 0 0-0.23881 0.12678 5.2089 5.2089 0 0 0-0.69907 0.59886 6.246 6.246 0 0 0-0.67139 0.80039v8.715e-4 -8.715e-4a6.0408 6.0408 0 0 0-0.95964 2.1671c-0.0035061 0.014554-0.25763 1.1256-0.13232 1.7017z" fill="#ff6333"/>
9 <path d="m10.998 5.8177a3.894 3.894 0 0 1 0.66438 0.86738c0.0393 0.029719 0.07603 0.059264 0.10722 0.087841 1.6216 1.4948 0.77197 3.6079 0.70867 3.7584 1.3173-1.0853 2.1592-2.6904 1.9062-4.3471-0.80906-2.0171-2.1805-2.83-3.3005-4.6003-0.05666-0.089506-0.11332-0.17919-0.16849-0.27387-0.03156-0.054034-0.05684-0.1028-0.0788-0.14764a1.3016 1.3016 0 0 1-0.10667-0.28328 0.018455 0.018455 0 0 0-0.01624-0.018476 0.025468 0.025468 0 0 0-0.01347 0c-9.59e-4 0-0.0024 0.001743-0.0035 0.001743-0.0011 3.6604e-4 -0.0035 0.001743-0.0051 0.002615-0.27664 0.13121-1.9171 2.7287 0.30635 4.9522z" fill="#ff8619"/>
10 <path d="m11.768 6.7677c-0.03119-0.028586-0.06791-0.058131-0.10722-0.08785-0.01458-0.010894-0.02898-0.021788-0.04447-0.032682a2.4693 2.4693 0 0 0-1.7246-0.41874c2.5727 1.2863 1.8824 5.7158-1.6829 5.5486a3.1807 3.1807 0 0 1-0.9307-0.17955q-0.10501-0.039306-0.21002-0.08602c-0.040416-0.01848-0.080832-0.03687-0.1207-0.05761l0.00499 0.0035c0.49718 0.33938 2.9528 1.1685 5.5202-0.92277l0.0041-0.0092c0.06404-0.14948 0.91371-2.2631-0.70867-3.7574z" fill="#ffa316"/>
11 <path d="m5.2638 9.1121s0.33016-1.2304 2.3641-1.2304c0.2198 0 0.84893-0.61362 0.86019-0.79153a3.5618 3.5618 0 0 1-2.6855-0.10556 2.6977 2.6977 0 0 0-2.6296 0.10556 1.8368 1.8368 0 0 0 1.6943 1.0658c-0.13251 1.1695 0.48574 2.5329 1.9823 3.2481 0.033403 0.01604 0.064777 0.03338 0.099101 0.04872-0.87344-0.45122-1.5947-1.3046-1.6847-2.3407z" fill="#ffbb27"/>
12 </g>
13 <circle cx="-15.774" cy="13.461" r="0" enable-background="new" fill="#d5d3cf" stroke-width=".87152"/>
14</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <path d="m8.3803 1.3234a7.1436 7.1436 0 1 1 0 14.286 7.1436 7.1436 0 0 1 0-14.286z" fill="#f6d32e"/>
3 <path d="m8.467 2.646a5.82 5.82 0 1 1 0 11.641 5.82 5.82 0 0 1 0-11.641z" fill="#fff" opacity=".15"/>
4 <path d="M8.404 5.396c-.24.003-.471.108-.54.286-.02.056-.022.073-.008.155.03.17.138.383.265.52.087.094.145.133.228.155.069.018.116.012.192-.023.17-.08.372-.377.424-.629.033-.154-.013-.26-.152-.352a.728.728 0 0 0-.409-.112zm-.74.532c-.017-.01-.295.03-.494.072-.464.098-.793.235-.978.407-.1.093-.132.152-.132.24s.032.147.132.24c.297.277 1.019.476 1.867.515.419.02.916-.012 1.314-.084.765-.137 1.286-.435 1.236-.708-.048-.26-.571-.523-1.27-.64l-.18-.031-.033.092c-.146.398-.416.671-.682.69-.21.015-.416-.12-.593-.386a1.59 1.59 0 0 1-.17-.363c-.004-.02-.012-.04-.018-.044zm3.151.688l-.008.074c-.038.352-.536.657-1.322.81-1.43.278-3.139-.008-3.546-.594l-.04-.058-.01.064c-.017.131-.01.82.01 1.057.011.128.018.235.015.238-.01.01-.256-.097-.324-.142-.23-.153-.336-.383-.376-.815l-.015-.156-.224-.004-.225-.003.01.08c.077.703.328 1.375.704 1.886.582.79 1.51 1.3 2.576 1.418.184.02.562.023.718.006.586-.065 1.056-.28 1.405-.643.424-.44.66-1.018.752-1.841.01-.097.016-.31.015-.61-.002-.501-.008-.547-.079-.694zm1.093.41a.75.75 0 0 0-.692.312c-.064.09-.136.237-.136.28 0 .07.075.142.148.142.068 0 .098-.028.159-.146a.603.603 0 0 1 .249-.274c.296-.15.644.044.7.39.014.078.008.156-.051.715-.076.722-.066.686-.22.778-.199.12-.51.182-1.017.201-.231.01-.233.01-.268.045-.053.053-.05.117.008.175l.044.044h.199c.547 0 .982-.093 1.235-.262a.544.544 0 0 0 .223-.27c.017-.063.144-1.25.144-1.344 0-.1-.035-.235-.089-.343a.793.793 0 0 0-.636-.443zm-5.156.488c.004 0 .094.176.202.39l.196.392-.192.387c-.106.212-.196.388-.2.39a5.234 5.234 0 0 1-.206-.385l-.198-.391.195-.392c.108-.215.2-.391.203-.391zm3.426.007l.2.398.198.397-.194.389a8.469 8.469 0 0 1-.2.388c-.004 0-.096-.176-.203-.392l-.196-.391.198-.395zm-1.711.42c.012 0 .588.936.585.949-.002.007-.133.218-.29.47a8.99 8.99 0 0 1-.295.458c-.01 0-.577-.9-.585-.928-.004-.015.572-.95.585-.949zm1.737 2.137l-.07.059c-.382.318-.872.501-1.467.548a4.085 4.085 0 0 1-1.362-.155 3.677 3.677 0 0 1-.705-.274l-.152-.077-.086.04c-.193.087-.372.232-.426.346a.33.33 0 0 0-.008.253c.104.235.53.455 1.128.583.306.065.507.092.964.129.029.002.215.006.414.007.39.002.603-.01.939-.05 1.411-.175 2.058-.714 1.39-1.158a1.84 1.84 0 0 0-.432-.206l-.127-.044z" fill="#d11616"/>
5</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2 <defs>
3 <linearGradient id="d" x1="34.601" x2="34.601" y1="50.4" y2="45.086" gradientUnits="userSpaceOnUse">
4 <stop offset="0"/>
5 <stop stop-opacity="0" offset="1"/>
6 </linearGradient>
7 </defs>
8 <circle cx="8.4665" cy="8.4665" r="7.1436" fill="#f9f9f9" style="paint-order:stroke fill markers"/>
9 <g transform="matrix(.69229 0 0 .69229 2.5955 2.9766)">
10 <path d="m2.57 2.117s-0.982 0-0.982 0.977c0 0-0.053 4.779 0.982 6.838 0.62 1.236 3.927 3.908 3.927 3.908h3.928s3.306-2.672 3.927-3.908c1.035-2.06 0.982-6.838 0.982-6.838 0.139-0.968-0.982-0.977-0.982-0.977 0 1.954-1.964 1.954-1.964 1.954h-7.855s-1.963 0-1.963-1.954z" fill="#5c4e3c"/>
11 <g transform="matrix(.34395 0 0 .34223 -43.43 -80.23)">
12 <circle cx="159.87" cy="259.33" r="4" fill="#fff"/>
13 <path d="m159.74 257.33a3 3 0 0 0-2.874 2.995 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-2.85-2.992 1.5 1.5 0 0 1 1.35 1.492 1.5 1.5 0 0 1-1.5 1.5 1.5 1.5 0 0 1-1.5-1.5 1.5 1.5 0 0 1 1.374-1.495z" opacity=".8"/>
14 </g>
15 <g transform="matrix(.34395 0 0 .34223 -49.622 -80.23)">
16 <circle cx="159.87" cy="259.33" r="4" fill="#fff"/>
17 <path d="m159.74 257.33a3 3 0 0 0-2.874 2.995 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-2.85-2.992 1.5 1.5 0 0 1 1.35 1.492 1.5 1.5 0 0 1-1.5 1.5 1.5 1.5 0 0 1-1.5-1.5 1.5 1.5 0 0 1 1.374-1.495z" opacity=".8"/>
18 </g>
19 <path d="m6.497 13.84s0.575 0.977 1.964 0.977c1.388 0 1.964-0.977 1.964-0.977s-0.491-0.977-1.964-0.977-1.964 0.977-1.964 0.977z" fill="#252525" fill-rule="evenodd"/>
20 <path transform="matrix(.34395 0 0 .34223 -2.546 -2.432)" d="m34.537 45.086a5.5 5 0 0 1 0.072 0.791 5.5 5 0 0 1-3.117 4.502c0.167 0.01 0.332 0.021 0.508 0.021 4.037 0 5.709-2.855 5.709-2.855s-0.846-1.677-3.172-2.46z" fill="url(#d)" fill-rule="evenodd" opacity=".25"/>
21 </g>
22</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
2 <defs>
3 <linearGradient id="a" x1="135" x2="160" y1="120" y2="160" gradientTransform="matrix(.05623 0 0 .05623 .071601 -.05278)" gradientUnits="userSpaceOnUse">
4 <stop stop-color="#eff7fc" offset="0"/>
5 <stop stop-color="#fff" offset="1"/>
6 </linearGradient>
7 </defs>
8 <g transform="matrix(1.1739 0 0 1.1739 -5.5652 -5.5652)" stroke-width=".85185">
9 <g transform="translate(8,8)" fill="#3db0e3">
10 <path d="m24 1.0001c12.703 0 23 10.297 23 23 0 12.703-10.297 23-23 23-12.703 0-23-10.297-23-23 0-12.703 10.297-23 23-23z" stroke-width=".85186"/>
11 </g>
12 <g transform="matrix(3.5433 0 0 3.5433 27 6.8895)">
13 <g transform="translate(-5.0801)" stroke-width=".85185">
14 <path d="m5.582 9.787c-0.219 0-0.181-0.083-0.257-0.291l-0.643-2.116 3.981-2.487 0.465 0.122-0.386 1.058z" fill="#c8daea"/>
15 <path d="m5.582 9.787c0.169 0 0.243-0.077 0.337-0.169 0.145-0.142 2.024-1.968 2.024-1.968l-1.151-0.279-1.068 0.675-0.142 1.684z" fill="#a7c2d1"/>
16 <path d="m5.697 8.07 2.719 2.01c0.31 0.171 0.534 0.083 0.612-0.288l1.107-5.216c0.113-0.454-0.173-0.66-0.47-0.526l-6.5 2.507c-0.444 0.178-0.441 0.425-0.081 0.536l1.668 0.521 3.861-2.436c0.182-0.111 0.35-0.051 0.212 0.071z" fill="url(#a)"/>
17 </g>
18 </g>
19 </g>
20</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <defs>
3 <linearGradient id="a" x1="43" x2="49" y1="44" y2="50" gradientTransform="scale(.26458)" gradientUnits="userSpaceOnUse">
4 <stop offset="0"/>
5 <stop stop-opacity="0" offset="1"/>
6 </linearGradient>
7 </defs>
8 <g>
9 <circle cx="8.4665" cy="8.4665" r="7.1436" fill="#72787e" style="paint-order:stroke fill markers"/>
10 <rect x="5.821" y="9.525" width="4.233" height=".529" ry=".265" fill="#fff" style="paint-order:stroke markers fill"/>
11 <path d="m4.502 4.725a0.264 0.264 0 0 0-0.262 0.13 0.264 0.264 0 0 0 0.097 0.362l2.842 1.64-2.842 1.641a0.264 0.264 0 0 0-0.097 0.362c0.074 0.127 0.235 0.17 0.362 0.097l3.207-1.852a0.26 0.26 0 0 0 0.127-0.225c0.00201-8e-3 0.00101-0.014999 0.00201-0.022 0-8e-3 0-0.014999-0.00201-0.023a0.26 0.26 0 0 0-0.127-0.224l-3.207-1.853a0.266 0.266 0 0 0-0.1-0.033z" fill="#fff" style="paint-order:stroke markers fill"/>
12 </g>
13 <path d="m15.582 9.0235-6.5629 6.5629a7.1437 7.1437 0 0 0 6.5629-6.5629z" fill="url(#a)" opacity=".25" stroke-width=".26458" style="paint-order:stroke fill markers"/>
14</svg>
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 @@
1<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg">
2 <circle cx="8.4665" cy="8.4665" r="7.1436" fill="#f9f9f9" style="paint-order:stroke fill markers"/>
3 <g transform="matrix(.68 0 0 .68 2.7093 2.7093)">
4 <g fill-rule="evenodd" stroke-width=".015243">
5 <path d="m8.4658 15.671 6.6152-3.7386-0.04503-7.0332-6.5701 3.6002z" fill="#3585f3"/>
6 <path d="m8.4672 15.686-6.6152-3.7386 0.045025-7.0332 6.5701 3.6002z" fill="#1c69d0"/>
7 <path d="m1.878 4.9333 6.6205-3.6863 6.5618 3.6878-6.5973 3.6146z" fill="#5997f3"/>
8 </g>
9 <path d="m9.4829 5.2897c-0.051527 0.044681-0.14489 0.050032-0.20844 0.011627l-0.70395-0.4256c-0.057483-0.034751-0.071673-0.093824-0.032627-0.13855l0.60212-0.70525-2.1207 1.4692c-0.050056 0.034525-0.12916 0.038571-0.18765 0.00807-0.00344-0.00178-0.00641-0.0032-0.00985-0.00534-0.051323-0.031038-0.069143-0.082186-0.041974-0.12573l0.70895-1.1658-0.93877 0.2713c-0.056427 0.016385-0.12357 0.00653-0.16478-0.02698-0.042914-0.032769-0.053627-0.080369-0.027858-0.12004l0.40426-0.6147-0.86581-0.52345c-0.063261-0.038197-0.07299-0.10597-0.021522-0.15059 0.051705-0.044829 0.1453-0.049788 0.20853-0.011556l0.95538 0.57763c0.052678 0.031851 0.069763 0.085154 0.040742 0.12891l-0.28859 0.43888 0.92318-0.26653c0.05581-0.016515 0.12159-7e-3 0.16307 0.025497 0.042617 0.031702 0.054837 0.07859 0.031405 0.11841l-0.55304 0.9093 2.427-1.6807c0.052868-0.03685 0.13647-0.038571 0.19555-0.00394 0.060188 0.042972 0.073132 0.09461 0.034442 0.13999l-1.1542 1.3504 0.60392 0.36512c0.06332 0.038334 0.072669 0.10582 0.021202 0.15045zm0.70171 0.28666-0.36361-0.21983c-0.06319-0.038203-0.15702-0.033042-0.20849 0.011627-0.051527 0.044681-0.041739 0.1124 0.021451 0.1506l0.36361 0.21983c0.063059 0.038132 0.15695 0.033102 0.20849-0.011627 0.0515-0.044657 0.04162-0.11247-0.02145-0.1506zm0.78297 0.47337-0.38695-0.23394c-0.06306-0.038132-0.15702-0.033042-0.20848 0.011627-0.05154 0.044681-0.04162 0.11247 0.02145 0.1506l0.38695 0.23394c0.06302 0.038096 0.15695 0.033102 0.20848-0.011627 0.0515-0.044657 0.04157-0.1125-0.02145-0.1506z" fill="#fff" stroke-width=".044893"/>
10 </g>
11</svg>
diff --git a/X11/eww/images/music.png b/X11/eww/images/music.png
new file mode 100644
index 0000000..3ded333
--- /dev/null
+++ b/X11/eww/images/music.png
Binary files differ
diff --git a/X11/eww/images/profile.jpg b/X11/eww/images/profile.jpg
new file mode 100644
index 0000000..575528e
--- /dev/null
+++ b/X11/eww/images/profile.jpg
Binary files 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 @@
1#!/bin/bash
2
3## Files and cmd
4FILE="$HOME/.cache/eww_launch.dashboard"
5CFG="$HOME/.config/eww/dashboard"
6EWW=`which eww`
7
8## Run eww daemon if not running already
9if [[ ! `pidof eww` ]]; then
10 ${EWW} daemon
11 sleep 1
12fi
13
14## Open widgets
15run_eww() {
16 ${EWW} --config "$CFG" open-many \
17 background \
18 system \
19 clock \
20 uptime \
21 sleep
22}
23
24## Launch or close widgets accordingly
25if [[ ! -f "$FILE" ]]; then
26 touch "$FILE"
27 run_eww
28else
29 ${EWW} --config "$CFG" close \
30 background profile system clock uptime music github \
31 reddit twitter youtube weather apps mail logout sleep reboot poweroff folders
32 rm "$FILE"
33fi
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 @@
1#!/bin/python
2
3import imaplib
4obj = imaplib.IMAP4_SSL('imap.gmail.com',993)
5obj.login('username@gmail.com','PASSWORD') # write your email and password
6obj.select()
7print(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 @@
1#!/bin/bash
2
3## Get data
4STATUS="$(mpc status)"
5COVER="/tmp/.music_cover.jpg"
6MUSIC_DIR="$HOME/Music"
7
8## Get status
9get_status() {
10 if [[ $STATUS == *"[playing]"* ]]; then
11 echo ""
12 else
13 echo "喇"
14 fi
15}
16
17## Get song
18get_song() {
19 song=`mpc -f %title% current`
20 if [[ -z "$song" ]]; then
21 echo "Offline"
22 else
23 echo "$song"
24 fi
25}
26
27## Get artist
28get_artist() {
29 artist=`mpc -f %artist% current`
30 if [[ -z "$artist" ]]; then
31 echo "Offline"
32 else
33 echo "$artist"
34 fi
35}
36
37## Get time
38get_time() {
39 time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
40 if [[ -z "$time" ]]; then
41 echo "0"
42 else
43 echo "$time"
44 fi
45}
46get_ctime() {
47 ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
48 if [[ -z "$ctime" ]]; then
49 echo "0:00"
50 else
51 echo "$ctime"
52 fi
53}
54get_ttime() {
55 ttime=`mpc -f %time% current`
56 if [[ -z "$ttime" ]]; then
57 echo "0:00"
58 else
59 echo "$ttime"
60 fi
61}
62
63## Get cover
64get_cover() {
65 ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
66 STATUS=$?
67
68 # Check if the file has a embbeded album art
69 if [ "$STATUS" -eq 0 ];then
70 echo "$COVER"
71 else
72 echo "images/music.png"
73 fi
74}
75
76## Execute accordingly
77if [[ "$1" == "--song" ]]; then
78 get_song
79elif [[ "$1" == "--artist" ]]; then
80 get_artist
81elif [[ "$1" == "--status" ]]; then
82 get_status
83elif [[ "$1" == "--time" ]]; then
84 get_time
85elif [[ "$1" == "--ctime" ]]; then
86 get_ctime
87elif [[ "$1" == "--ttime" ]]; then
88 get_ttime
89elif [[ "$1" == "--cover" ]]; then
90 get_cover
91elif [[ "$1" == "--toggle" ]]; then
92 mpc -q toggle
93elif [[ "$1" == "--next" ]]; then
94 { mpc -q next; get_cover; }
95elif [[ "$1" == "--prev" ]]; then
96 { mpc -q prev; get_cover; }
97fi
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 @@
1#!/bin/bash
2
3## Open Applications
4FILE="$HOME/.cache/eww_launch.dashboard"
5CFG="$HOME/.config/eww/dashboard"
6EWW=`which eww`
7
8close_dash() {
9 ${EWW} --config "$CFG" close \
10 background profile system clock uptime music github \
11 reddit twitter youtube weather apps mail logout sleep reboot poweroff folders
12 rm -rf "$FILE"
13}
14
15if [[ "$1" == "--ff" ]]; then
16 close_dash && firefox &
17
18elif [[ "$1" == "--tg" ]]; then
19 close_dash && telegram-desktop &
20
21elif [[ "$1" == "--dc" ]]; then
22 close_dash && discord &
23
24elif [[ "$1" == "--tr" ]]; then
25 close_dash && alacritty --working-directory ~ &
26
27elif [[ "$1" == "--fm" ]]; then
28 close_dash && thunar ~ &
29
30elif [[ "$1" == "--ge" ]]; then
31 close_dash && geany &
32
33elif [[ "$1" == "--cd" ]]; then
34 close_dash && code &
35
36elif [[ "$1" == "--gp" ]]; then
37 close_dash && gimp &
38
39elif [[ "$1" == "--vb" ]]; then
40 close_dash && virtualbox &
41
42fi
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 @@
1#!/bin/bash
2
3## Open folders in thunar
4FILE="$HOME/.cache/eww_launch.dashboard"
5CFG="$HOME/.config/eww/dashboard"
6EWW=`which eww`
7
8close_dash() {
9 ${EWW} --config "$CFG" close \
10 background profile system clock uptime music github \
11 reddit twitter youtube weather apps mail logout sleep reboot poweroff folders
12 rm -rf "$FILE"
13}
14
15if [[ "$1" == "--dl" ]]; then
16 close_dash && thunar ~/Downloads &
17
18elif [[ "$1" == "--docs" ]]; then
19 close_dash && thunar ~/Documents &
20
21elif [[ "$1" == "--music" ]]; then
22 close_dash && thunar ~/Music &
23
24elif [[ "$1" == "--pics" ]]; then
25 close_dash && thunar ~/Pictures &
26
27elif [[ "$1" == "--cfg" ]]; then
28 close_dash && thunar ~/.config &
29
30elif [[ "$1" == "--local" ]]; then
31 close_dash && thunar ~/.local/share &
32
33fi
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 @@
1#!/bin/bash
2
3## Open links in firefox
4FILE="$HOME/.cache/eww_launch.dashboard"
5CFG="$HOME/.config/eww/dashboard"
6EWW=`which eww`
7cmd="firefox --new-tab"
8
9close_dash() {
10 ${EWW} --config "$CFG" close \
11 background profile system clock uptime music github \
12 reddit twitter youtube weather apps mail logout sleep reboot poweroff folders
13 rm -rf "$FILE"
14}
15
16if [[ "$1" == "--mail" ]]; then
17 close_dash && ${cmd} "https://mail.google.com"
18
19elif [[ "$1" == "--gh" ]]; then
20 close_dash && ${cmd} "https://github.com"
21
22elif [[ "$1" == "--rd" ]]; then
23 close_dash && ${cmd} "https://reddit.com"
24
25elif [[ "$1" == "--tw" ]]; then
26 close_dash && ${cmd} "https://twitter.com"
27
28elif [[ "$1" == "--yt" ]]; then
29 close_dash && ${cmd} "https://youtube.com"
30
31fi
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 @@
1#!/bin/bash
2
3## Files and Data
4PREV_TOTAL=0
5PREV_IDLE=0
6cpuFile="/tmp/.cpu_usage"
7
8## Get CPU usage
9get_cpu() {
10 if [[ -f "${cpuFile}" ]]; then
11 fileCont=$(cat "${cpuFile}")
12 PREV_TOTAL=$(echo "${fileCont}" | head -n 1)
13 PREV_IDLE=$(echo "${fileCont}" | tail -n 1)
14 fi
15
16 CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
17 unset CPU[0] # Discard the "cpu" prefix.
18 IDLE=${CPU[4]} # Get the idle CPU time.
19
20 # Calculate the total CPU time.
21 TOTAL=0
22
23 for VALUE in "${CPU[@]:0:4}"; do
24 let "TOTAL=$TOTAL+$VALUE"
25 done
26
27 if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then
28 # Calculate the CPU usage since we last checked.
29 let "DIFF_IDLE=$IDLE-$PREV_IDLE"
30 let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
31 let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
32 echo "${DIFF_USAGE}"
33 else
34 echo "?"
35 fi
36
37 # Remember the total and idle CPU times for the next check.
38 echo "${TOTAL}" > "${cpuFile}"
39 echo "${IDLE}" >> "${cpuFile}"
40}
41
42## Get Used memory
43get_mem() {
44 printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
45}
46
47## Get Brightness
48get_blight() {
49 CARD=`ls /sys/class/backlight | head -n 1`
50
51 if [[ "$CARD" == *"intel_"* ]]; then
52 BNESS=`xbacklight -get`
53 LIGHT=${BNESS%.*}
54 else
55 BNESS=`blight -d $CARD get brightness`
56 PERC="$(($BNESS*100/255))"
57 LIGHT=${PERC%.*}
58 fi
59
60 echo "$LIGHT"
61}
62
63## Get Battery
64get_battery() {
65 BAT=CMB0
66 cat /sys/class/power_supply/${BAT}/capacity
67}
68
69## Execute accordingly
70if [[ "$1" == "--cpu" ]]; then
71 get_cpu
72elif [[ "$1" == "--mem" ]]; then
73 get_mem
74elif [[ "$1" == "--blight" ]]; then
75 get_blight
76elif [[ "$1" == "--bat" ]]; then
77 get_battery
78fi
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 @@
1#!/bin/bash
2
3## Collect data
4cache_dir="$HOME/.cache/eww/weather"
5cache_weather_stat=${cache_dir}/weather-stat
6cache_weather_degree=${cache_dir}/weather-degree
7cache_weather_quote=${cache_dir}/weather-quote
8cache_weather_hex=${cache_dir}/weather-hex
9cache_weather_icon=${cache_dir}/weather-icon
10
11## Weather data
12KEY="YOUR_KEY"
13ID="CITY_ID"
14UNIT="metric" # Available options : 'metric' or 'imperial'
15
16## Make cache dir
17if [[ ! -d "$cache_dir" ]]; then
18 mkdir -p ${cache_dir}
19fi
20
21## Get data
22get_weather_data() {
23 weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID="$KEY"&id="$ID"&units="$UNIT""`
24 echo ${weather}
25
26 if [ ! -z "$weather" ]; then
27 weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1`
28 weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1`
29 weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"`
30
31 #Big long if statement of doom
32 if [ "$weather_icon_code" == "50d" ]; then
33 weather_icon=" "
34 weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
35 weather_hex="#84afdb"
36 elif [ "$weather_icon_code" == "50n" ]; then
37 weather_icon=" "
38 weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
39 weather_hex="#84afdb"
40 elif [ "$weather_icon_code" == "01d" ]; then
41 weather_icon=" "
42 weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..."
43 weather_hex="#ffd86b"
44 elif [ "$weather_icon_code" == "01n" ]; then
45 weather_icon=" "
46 weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..."
47 weather_hex="#fcdcf6"
48 elif [ "$weather_icon_code" == "02d" ]; then
49 weather_icon=" "
50 weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
51 weather_hex="#adadff"
52 elif [ "$weather_icon_code" == "02n" ]; then
53 weather_icon=" "
54 weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
55 weather_hex="#adadff"
56 elif [ "$weather_icon_code" == "03d" ]; then
57 weather_icon=" "
58 weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
59 weather_hex="#adadff"
60 elif [ "$weather_icon_code" == "03n" ]; then
61 weather_icon=" "
62 weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
63 weather_hex="#adadff"
64 elif [ "$weather_icon_code" == "04d" ]; then
65 weather_icon=" "
66 weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
67 weather_hex="#adadff"
68 elif [ "$weather_icon_code" == "04n" ]; then
69 weather_icon=" "
70 weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
71 weather_hex="#adadff"
72 elif [ "$weather_icon_code" == "09d" ]; then
73 weather_icon=" "
74 weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
75 weather_hex="#6b95ff"
76 elif [ "$weather_icon_code" == "09n" ]; then
77 weather_icon=" "
78 weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
79 weather_hex="#6b95ff"
80 elif [ "$weather_icon_code" == "10d" ]; then
81 weather_icon=" "
82 weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
83 weather_hex="#6b95ff"
84 elif [ "$weather_icon_code" == "10n" ]; then
85 weather_icon=" "
86 weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
87 weather_hex="#6b95ff"
88 elif [ "$weather_icon_code" == "11d" ]; then
89 weather_icon=""
90 weather_quote="There's storm for forecast today \nMake sure you don't get blown away..."
91 weather_hex="#ffeb57"
92 elif [ "$weather_icon_code" == "11n" ]; then
93 weather_icon=""
94 weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..."
95 weather_hex="#ffeb57"
96 elif [ "$weather_icon_code" == "13d" ]; then
97 weather_icon=" "
98 weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!"
99 weather_hex="#e3e6fc"
100 elif [ "$weather_icon_code" == "13n" ]; then
101 weather_icon=" "
102 weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..."
103 weather_hex="#e3e6fc"
104 elif [ "$weather_icon_code" == "40d" ]; then
105 weather_icon=" "
106 weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
107 weather_hex="#84afdb"
108 elif [ "$weather_icon_code" == "40n" ]; then
109 weather_icon=" "
110 weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
111 weather_hex="#84afdb"
112 else
113 weather_icon=" "
114 weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!"
115 weather_hex="#adadff"
116 fi
117 echo "$weather_icon" > ${cache_weather_icon}
118 echo "$weather_description" > ${cache_weather_stat}
119 echo "$weather_temp""°C" > ${cache_weather_degree}
120 echo -e "$weather_quote" > ${cache_weather_quote}
121 echo "$weather_hex" > ${cache_weather_hex}
122 else
123 echo "Weather Unavailable" > ${cache_weather_stat}
124 echo " " > ${cache_weather_icon}
125 echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote}
126 echo "-" > ${cache_weather_degree}
127 echo "#adadff" > ${tcache_weather_hex}
128 fi
129}
130
131## Execute
132if [[ "$1" == "--getdata" ]]; then
133 get_weather_data
134elif [[ "$1" == "--icon" ]]; then
135 cat ${cache_weather_icon}
136elif [[ "$1" == "--temp" ]]; then
137 cat ${cache_weather_degree}
138elif [[ "$1" == "--hex" ]]; then
139 cat ${cache_weather_hex}
140elif [[ "$1" == "--stat" ]]; then
141 cat ${cache_weather_stat}
142elif [[ "$1" == "--quote" ]]; then
143 cat ${cache_weather_quote} | head -n1
144elif [[ "$1" == "--quote2" ]]; then
145 cat ${cache_weather_quote} | tail -n1
146fi
147