From 2e5a7d93476c0819b5a23f5740e4c843eaedc73a Mon Sep 17 00:00:00 2001 From: Nippy Date: Mon, 1 Jun 2026 18:57:29 +0200 Subject: Raveos gnome update --- raveos-gnome-theme/PKGBUILD | 2 +- .../installed/Vitals@CoreCoding.com/extension.js | 299 ++++++++- .../Vitals@CoreCoding.com/icons/flags/1x1/ad.svg | 148 +++++ .../Vitals@CoreCoding.com/icons/flags/1x1/ae.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/af.svg | 81 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/ag.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/ai.svg | 29 + .../Vitals@CoreCoding.com/icons/flags/1x1/al.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/am.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/ao.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/aq.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/ar.svg | 32 + .../Vitals@CoreCoding.com/icons/flags/1x1/arab.svg | 109 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/as.svg | 73 +++ .../icons/flags/1x1/asean.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/at.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/au.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/aw.svg | 186 ++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/ax.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/az.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/ba.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/bb.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/bd.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/be.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/bf.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/bg.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/bh.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/bi.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/bj.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/bl.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/bm.svg | 97 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/bn.svg | 36 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/bo.svg | 674 ++++++++++++++++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/bq.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/br.svg | 45 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/bs.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/bt.svg | 89 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/bv.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/bw.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/by.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/bz.svg | 145 +++++ .../Vitals@CoreCoding.com/icons/flags/1x1/ca.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/cc.svg | 19 + .../Vitals@CoreCoding.com/icons/flags/1x1/cd.svg | 12 + .../icons/flags/1x1/cefta.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/cf.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/cg.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/ch.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/ci.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/ck.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/cl.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/cm.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/cn.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/co.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/cp.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/cr.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/cu.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/cv.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/cw.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/cx.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/cy.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/cz.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/de.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/dg.svg | 130 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/dj.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/dk.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/dm.svg | 152 +++++ .../Vitals@CoreCoding.com/icons/flags/1x1/do.svg | 122 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/dz.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/eac.svg | 48 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/ec.svg | 138 +++++ .../Vitals@CoreCoding.com/icons/flags/1x1/ee.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/eg.svg | 38 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/eh.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/er.svg | 13 + .../icons/flags/1x1/es-ct.svg | 4 + .../icons/flags/1x1/es-ga.svg | 187 ++++++ .../icons/flags/1x1/es-pv.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/es.svg | 547 ++++++++++++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/et.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/eu.svg | 28 + .../Vitals@CoreCoding.com/icons/flags/1x1/fi.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/fj.svg | 123 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/fk.svg | 89 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/fm.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/fo.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/fr.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/ga.svg | 7 + .../icons/flags/1x1/gb-eng.svg | 5 + .../icons/flags/1x1/gb-nir.svg | 131 ++++ .../icons/flags/1x1/gb-sct.svg | 4 + .../icons/flags/1x1/gb-wls.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/gb.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/gd.svg | 27 + .../Vitals@CoreCoding.com/icons/flags/1x1/ge.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/gf.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/gg.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/gh.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/gi.svg | 32 + .../Vitals@CoreCoding.com/icons/flags/1x1/gl.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/gm.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/gn.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/gp.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/gq.svg | 23 + .../Vitals@CoreCoding.com/icons/flags/1x1/gr.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/gs.svg | 132 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/gt.svg | 204 ++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/gu.svg | 19 + .../Vitals@CoreCoding.com/icons/flags/1x1/gw.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/gy.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/hk.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/hm.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/hn.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/hr.svg | 56 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/ht.svg | 116 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/hu.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/ic.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/id.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/ie.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/il.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/im.svg | 36 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/in.svg | 25 + .../Vitals@CoreCoding.com/icons/flags/1x1/io.svg | 130 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/iq.svg | 10 + .../Vitals@CoreCoding.com/icons/flags/1x1/ir.svg | 219 +++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/is.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/it.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/je.svg | 62 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/jm.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/jo.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/jp.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/ke.svg | 23 + .../Vitals@CoreCoding.com/icons/flags/1x1/kg.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/kh.svg | 61 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/ki.svg | 36 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/km.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/kn.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/kp.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/kr.svg | 17 + .../Vitals@CoreCoding.com/icons/flags/1x1/kw.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/ky.svg | 103 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/kz.svg | 36 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/la.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/lb.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/lc.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/li.svg | 43 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/lk.svg | 22 + .../Vitals@CoreCoding.com/icons/flags/1x1/lr.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/ls.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/lt.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/lu.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/lv.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/ly.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/ma.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/mc.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/md.svg | 71 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/me.svg | 118 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/mf.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/mg.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/mh.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/mk.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/ml.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/mm.svg | 10 + .../Vitals@CoreCoding.com/icons/flags/1x1/mn.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/mo.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/mp.svg | 86 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/mq.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/mr.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/ms.svg | 25 + .../Vitals@CoreCoding.com/icons/flags/1x1/mt.svg | 56 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/mu.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/mv.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/mw.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/mx.svg | 377 +++++++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/my.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/mz.svg | 21 + .../Vitals@CoreCoding.com/icons/flags/1x1/na.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/nc.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/ne.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/nf.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/ng.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/ni.svg | 129 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/nl.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/no.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/np.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/nr.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/nu.svg | 10 + .../Vitals@CoreCoding.com/icons/flags/1x1/nz.svg | 36 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/om.svg | 115 ++++ .../Vitals@CoreCoding.com/icons/flags/1x1/pa.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/pc.svg | 33 + .../Vitals@CoreCoding.com/icons/flags/1x1/pe.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/pf.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/pg.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/ph.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/pk.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/pl.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/pm.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/pn.svg | 53 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/pr.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/ps.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/pt.svg | 57 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/pw.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/py.svg | 156 +++++ .../Vitals@CoreCoding.com/icons/flags/1x1/qa.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/re.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/ro.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/rs.svg | 296 +++++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/ru.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/rw.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/sa.svg | 25 + .../Vitals@CoreCoding.com/icons/flags/1x1/sb.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/sc.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/sd.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/se.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/sg.svg | 13 + .../icons/flags/1x1/sh-ac.svg | 690 +++++++++++++++++++++ .../icons/flags/1x1/sh-hl.svg | 164 +++++ .../icons/flags/1x1/sh-ta.svg | 76 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/sh.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/si.svg | 18 + .../Vitals@CoreCoding.com/icons/flags/1x1/sj.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/sk.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/sl.svg | 12 + .../Vitals@CoreCoding.com/icons/flags/1x1/sm.svg | 73 +++ .../Vitals@CoreCoding.com/icons/flags/1x1/sn.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/so.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/sr.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/ss.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/st.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/sv.svg | 593 ++++++++++++++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/sx.svg | 56 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/sy.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/sz.svg | 34 + .../Vitals@CoreCoding.com/icons/flags/1x1/tc.svg | 50 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/td.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/tf.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/tg.svg | 14 + .../Vitals@CoreCoding.com/icons/flags/1x1/th.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/tj.svg | 26 + .../Vitals@CoreCoding.com/icons/flags/1x1/tk.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/tl.svg | 13 + .../Vitals@CoreCoding.com/icons/flags/1x1/tm.svg | 205 ++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/tn.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/to.svg | 10 + .../Vitals@CoreCoding.com/icons/flags/1x1/tr.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/tt.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/tv.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/tw.svg | 32 + .../Vitals@CoreCoding.com/icons/flags/1x1/tz.svg | 15 + .../Vitals@CoreCoding.com/icons/flags/1x1/ua.svg | 6 + .../Vitals@CoreCoding.com/icons/flags/1x1/ug.svg | 30 + .../Vitals@CoreCoding.com/icons/flags/1x1/um.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/un.svg | 16 + .../Vitals@CoreCoding.com/icons/flags/1x1/us.svg | 9 + .../Vitals@CoreCoding.com/icons/flags/1x1/uy.svg | 28 + .../Vitals@CoreCoding.com/icons/flags/1x1/uz.svg | 30 + .../Vitals@CoreCoding.com/icons/flags/1x1/va.svg | 190 ++++++ .../Vitals@CoreCoding.com/icons/flags/1x1/vc.svg | 8 + .../Vitals@CoreCoding.com/icons/flags/1x1/ve.svg | 26 + .../Vitals@CoreCoding.com/icons/flags/1x1/vg.svg | 59 ++ .../Vitals@CoreCoding.com/icons/flags/1x1/vi.svg | 28 + .../Vitals@CoreCoding.com/icons/flags/1x1/vn.svg | 11 + .../Vitals@CoreCoding.com/icons/flags/1x1/vu.svg | 21 + .../Vitals@CoreCoding.com/icons/flags/1x1/wf.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/ws.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/xk.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/xx.svg | 4 + .../Vitals@CoreCoding.com/icons/flags/1x1/ye.svg | 7 + .../Vitals@CoreCoding.com/icons/flags/1x1/yt.svg | 5 + .../Vitals@CoreCoding.com/icons/flags/1x1/za.svg | 17 + .../Vitals@CoreCoding.com/icons/flags/1x1/zm.svg | 27 + .../Vitals@CoreCoding.com/icons/flags/1x1/zw.svg | 21 + .../icons/flags/flag-icons.LICENSE | 23 + .../locale/ka/LC_MESSAGES/vitals.mo | Bin 0 -> 18533 bytes .../installed/Vitals@CoreCoding.com/menuItem.js | 9 +- .../installed/Vitals@CoreCoding.com/metadata.json | 2 +- .../installed/Vitals@CoreCoding.com/prefs.js | 7 +- .../installed/Vitals@CoreCoding.com/prefs.ui | 68 +- .../schemas/gschemas.compiled | Bin 1972 -> 2084 bytes .../org.gnome.shell.extensions.vitals.gschema.xml | 8 + .../installed/Vitals@CoreCoding.com/sensors.js | 10 +- .../installed/Vitals@CoreCoding.com/values.js | 63 +- .../components/applications.js | 51 +- .../blur-my-shell@aunetx/components/overview.js | 5 +- .../blur-my-shell@aunetx/components/panel.js | 49 +- .../conveniences/dummy_pipeline.js | 9 +- .../blur-my-shell@aunetx/conveniences/keys.js | 7 +- .../conveniences/settings_updater.js | 3 +- .../blur-my-shell@aunetx/conveniences/utils.js | 6 +- .../blur-my-shell@aunetx/effects/corner.glsl | 5 +- .../blur-my-shell@aunetx/effects/corner.js | 13 + .../blur-my-shell@aunetx/effects/effects.js | 66 +- .../blur-my-shell@aunetx/effects/luminosity.glsl | 33 + .../blur-my-shell@aunetx/effects/luminosity.js | 141 +++++ .../effects/monte_carlo_blur.glsl | 4 +- .../effects/native_dynamic_gaussian_blur.js | 36 +- .../installed/blur-my-shell@aunetx/extension.js | 25 + .../locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 7989 -> 7817 bytes .../locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16821 -> 17338 bytes .../locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16153 -> 15897 bytes .../locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17615 -> 17426 bytes .../locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16877 -> 16716 bytes .../locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17826 -> 17602 bytes .../locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 15541 -> 15294 bytes .../locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 0 -> 367 bytes .../locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17367 -> 17198 bytes .../locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 10156 -> 9980 bytes .../locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17531 -> 17362 bytes .../locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 25812 -> 25486 bytes .../locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 8690 -> 8514 bytes .../locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17520 -> 17350 bytes .../locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16481 -> 16293 bytes .../locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17361 -> 17199 bytes .../locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 18455 -> 18237 bytes .../locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 6964 -> 6826 bytes .../locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 14985 -> 14804 bytes .../nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 7966 -> 7795 bytes .../locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17331 -> 17158 bytes .../locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 15190 -> 15041 bytes .../locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16967 -> 16752 bytes .../pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17153 -> 16986 bytes .../locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 10249 -> 10058 bytes .../locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 22437 -> 22226 bytes .../locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 11678 -> 11489 bytes .../locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 16934 -> 16753 bytes .../locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 28773 -> 28451 bytes .../locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 17288 -> 17095 bytes .../locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 21663 -> 21475 bytes .../locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 18415 -> 18184 bytes .../zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 15517 -> 15371 bytes .../zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo | Bin 15248 -> 15054 bytes .../installed/blur-my-shell@aunetx/metadata.json | 2 +- .../preferences/applications.js | 19 +- .../blur-my-shell@aunetx/preferences/dash.js | 11 +- .../blur-my-shell@aunetx/preferences/panel.js | 11 +- .../preferences/pipelines_management/effect_row.js | 12 +- .../installed/blur-my-shell@aunetx/prefs.js | 12 + .../blur-my-shell@aunetx/schemas/gschemas.compiled | Bin 9976 -> 10240 bytes ...nome.shell.extensions.blur-my-shell.gschema.xml | 24 +- .../blur-my-shell@aunetx/ui/applications.ui | 47 ++ .../installed/blur-my-shell@aunetx/ui/dash.ui | 34 +- .../blur-my-shell@aunetx/ui/effects-dialog.ui | 5 + .../installed/blur-my-shell@aunetx/ui/panel.ui | 32 + .../src/ProfileManager.js | 186 ++++++ .../src/Shader.js | 231 +++++++ .../src/ShaderFactory.js | 94 +++ .../src/WindowPicker.js | 93 +++ .../src/effects/Apparition.js | 103 +++ .../src/effects/AuraGlow.js | 163 +++++ .../src/effects/BrokenGlass.js | 155 +++++ .../src/effects/Doom.js | 112 ++++ .../src/effects/EnergizeA.js | 95 +++ .../src/effects/EnergizeB.js | 96 +++ .../src/effects/Fire.js | 277 +++++++++ .../src/effects/Focus.js | 99 +++ .../src/effects/Glide.js | 101 +++ .../src/effects/Glitch.js | 103 +++ .../src/effects/Hexagon.js | 107 ++++ .../src/effects/Incinerate.js | 149 +++++ .../src/effects/Matrix.js | 125 ++++ .../src/effects/Mushroom.js | 384 ++++++++++++ .../src/effects/PaintBrush.js | 115 ++++ .../src/effects/PixelWheel.js | 95 +++ .../src/effects/PixelWipe.js | 120 ++++ .../src/effects/Pixelate.js | 95 +++ .../src/effects/Portal.js | 105 ++++ .../src/effects/RGBWarp.js | 100 +++ .../src/effects/SnapOfDisintegration.js | 126 ++++ .../src/effects/TRexAttack.js | 128 ++++ .../src/effects/TVEffect.js | 93 +++ .../src/effects/TVGlitch.js | 104 ++++ .../src/effects/TeamRocket.js | 114 ++++ .../src/effects/Wisps.js | 120 ++++ .../src/migrate.js | 227 +++++++ .../src/utils.js | 206 ++++++ .../installed/customreboot@nova1545/extension.js | 29 +- .../installed/customreboot@nova1545/grub.js | 6 +- .../installed/customreboot@nova1545/metadata.json | 5 +- .../dash-to-dock@micxgx.gmail.com/appIcons.js | 15 +- .../appIconsDecorator.js | 61 +- .../dash-to-dock@micxgx.gmail.com/dash.js | 56 +- .../dash-to-dock@micxgx.gmail.com/docking.js | 208 +++---- .../dash-to-dock@micxgx.gmail.com/extension.js | 1 + .../dash-to-dock@micxgx.gmail.com/intellihide.js | 13 +- .../dash-to-dock@micxgx.gmail.com/launcherAPI.js | 4 +- .../locale/cs/LC_MESSAGES/dashtodock.mo | Bin 10315 -> 13925 bytes .../locale/pl/LC_MESSAGES/dashtodock.mo | Bin 10837 -> 10904 bytes .../locale/pt_BR/LC_MESSAGES/dashtodock.mo | Bin 11998 -> 14431 bytes .../dash-to-dock@micxgx.gmail.com/metadata.json | 2 +- .../dash-to-dock@micxgx.gmail.com/theming.js | 42 +- .../NEWS | 17 + .../extension.js | 6 +- .../gnome-shell-extension-drive-menu.mo | Bin 839 -> 837 bytes .../metadata.json | 4 +- .../metadata.json | 5 +- .../installed/no-overview@fthx/metadata.json | 4 +- .../CHANGELOG.md | 6 + .../extension.js | 86 +-- .../metadata.json | 8 +- .../NEWS | 17 + .../extension.js | 9 +- .../metadata.json | 4 +- .../NEWS | 17 + .../metadata.json | 4 +- 405 files changed, 16607 insertions(+), 359 deletions(-) create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/af.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/al.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/am.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/as.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/at.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/au.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/az.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/be.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/br.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/by.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/co.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/de.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/do.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/er.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/et.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/id.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/il.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/im.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/in.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/io.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/is.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/it.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/je.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/km.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/la.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/li.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/md.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/me.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/my.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/na.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/no.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/np.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/om.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/py.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/re.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/se.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/si.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/so.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/st.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/td.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/th.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/to.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/um.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/un.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/us.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/va.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/za.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.glsl create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ProfileManager.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/Shader.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ShaderFactory.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/WindowPicker.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Apparition.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/AuraGlow.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/BrokenGlass.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Doom.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeA.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeB.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Fire.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Focus.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glide.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glitch.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Hexagon.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Incinerate.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Matrix.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Mushroom.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PaintBrush.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWheel.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWipe.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Pixelate.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Portal.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/RGBWarp.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/SnapOfDisintegration.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TRexAttack.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVEffect.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVGlitch.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TeamRocket.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Wisps.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/migrate.js create mode 100644 raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/utils.js (limited to 'raveos-gnome-theme') diff --git a/raveos-gnome-theme/PKGBUILD b/raveos-gnome-theme/PKGBUILD index c4e2d80..564bca5 100644 --- a/raveos-gnome-theme/PKGBUILD +++ b/raveos-gnome-theme/PKGBUILD @@ -1,6 +1,6 @@ pkgname=raveos-gnome-theme pkgver=0.0.0 -pkgrel=19 +pkgrel=20 pkgdesc="RaveOS GNOME theme payload and installer" arch=('any') url="https://raveos.local" diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js index 642c4d7..0900707 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/extension.js @@ -38,13 +38,263 @@ var VitalsMenuButton = GObject.registerClass({ 'system' : { 'icon': 'system-symbolic.svg' }, 'network' : { 'icon': 'network-symbolic.svg', 'icon-rx': 'network-download-symbolic.svg', - 'icon-tx': 'network-upload-symbolic.svg' }, + 'icon-tx': 'network-upload-symbolic.svg', + 'icon-ad': '../flags/1x1/ad.svg', + 'icon-ae': '../flags/1x1/ae.svg', + 'icon-af': '../flags/1x1/af.svg', + 'icon-ag': '../flags/1x1/ag.svg', + 'icon-ai': '../flags/1x1/ai.svg', + 'icon-al': '../flags/1x1/al.svg', + 'icon-am': '../flags/1x1/am.svg', + 'icon-ao': '../flags/1x1/ao.svg', + 'icon-ar': '../flags/1x1/ar.svg', + 'icon-at': '../flags/1x1/at.svg', + 'icon-au': '../flags/1x1/au.svg', + 'icon-aw': '../flags/1x1/aw.svg', + 'icon-ax': '../flags/1x1/ax.svg', + 'icon-az': '../flags/1x1/az.svg', + 'icon-ba': '../flags/1x1/ba.svg', + 'icon-bb': '../flags/1x1/bb.svg', + 'icon-bd': '../flags/1x1/bd.svg', + 'icon-be': '../flags/1x1/be.svg', + 'icon-bf': '../flags/1x1/bf.svg', + 'icon-bg': '../flags/1x1/bg.svg', + 'icon-bh': '../flags/1x1/bh.svg', + 'icon-bi': '../flags/1x1/bi.svg', + 'icon-bj': '../flags/1x1/bj.svg', + 'icon-bl': '../flags/1x1/bl.svg', + 'icon-bm': '../flags/1x1/bm.svg', + 'icon-bn': '../flags/1x1/bn.svg', + 'icon-bo': '../flags/1x1/bo.svg', + 'icon-bq': '../flags/1x1/bq.svg', + 'icon-br': '../flags/1x1/br.svg', + 'icon-bs': '../flags/1x1/bs.svg', + 'icon-bt': '../flags/1x1/bt.svg', + 'icon-bv': '../flags/1x1/bv.svg', + 'icon-bw': '../flags/1x1/bw.svg', + 'icon-by': '../flags/1x1/by.svg', + 'icon-bz': '../flags/1x1/bz.svg', + 'icon-ca': '../flags/1x1/ca.svg', + 'icon-cc': '../flags/1x1/cc.svg', + 'icon-cd': '../flags/1x1/cd.svg', + 'icon-cf': '../flags/1x1/cf.svg', + 'icon-cg': '../flags/1x1/cg.svg', + 'icon-ch': '../flags/1x1/ch.svg', + 'icon-ci': '../flags/1x1/ci.svg', + 'icon-ck': '../flags/1x1/ck.svg', + 'icon-cl': '../flags/1x1/cl.svg', + 'icon-cm': '../flags/1x1/cm.svg', + 'icon-cn': '../flags/1x1/cn.svg', + 'icon-co': '../flags/1x1/co.svg', + 'icon-cr': '../flags/1x1/cr.svg', + 'icon-cu': '../flags/1x1/cu.svg', + 'icon-cv': '../flags/1x1/cv.svg', + 'icon-cw': '../flags/1x1/cw.svg', + 'icon-cx': '../flags/1x1/cx.svg', + 'icon-cy': '../flags/1x1/cy.svg', + 'icon-cz': '../flags/1x1/cz.svg', + 'icon-de': '../flags/1x1/de.svg', + 'icon-dj': '../flags/1x1/dj.svg', + 'icon-dk': '../flags/1x1/dk.svg', + 'icon-dm': '../flags/1x1/dm.svg', + 'icon-do': '../flags/1x1/do.svg', + 'icon-dz': '../flags/1x1/dz.svg', + 'icon-ec': '../flags/1x1/ec.svg', + 'icon-ee': '../flags/1x1/ee.svg', + 'icon-eg': '../flags/1x1/eg.svg', + 'icon-eh': '../flags/1x1/eh.svg', + 'icon-er': '../flags/1x1/er.svg', + 'icon-es': '../flags/1x1/es.svg', + 'icon-et': '../flags/1x1/et.svg', + 'icon-eu': '../flags/1x1/eu.svg', + 'icon-fi': '../flags/1x1/fi.svg', + 'icon-fj': '../flags/1x1/fj.svg', + 'icon-fk': '../flags/1x1/fk.svg', + 'icon-fm': '../flags/1x1/fm.svg', + 'icon-fo': '../flags/1x1/fo.svg', + 'icon-fr': '../flags/1x1/fr.svg', + 'icon-ga': '../flags/1x1/ga.svg', + 'icon-gb': '../flags/1x1/gb.svg', + 'icon-gd': '../flags/1x1/gd.svg', + 'icon-ge': '../flags/1x1/ge.svg', + 'icon-gf': '../flags/1x1/gf.svg', + 'icon-gg': '../flags/1x1/gg.svg', + 'icon-gh': '../flags/1x1/gh.svg', + 'icon-gi': '../flags/1x1/gi.svg', + 'icon-gl': '../flags/1x1/gl.svg', + 'icon-gm': '../flags/1x1/gm.svg', + 'icon-gn': '../flags/1x1/gn.svg', + 'icon-gp': '../flags/1x1/gp.svg', + 'icon-gq': '../flags/1x1/gq.svg', + 'icon-gr': '../flags/1x1/gr.svg', + 'icon-gs': '../flags/1x1/gs.svg', + 'icon-gt': '../flags/1x1/gt.svg', + 'icon-gu': '../flags/1x1/gu.svg', + 'icon-gw': '../flags/1x1/gw.svg', + 'icon-gy': '../flags/1x1/gy.svg', + 'icon-hk': '../flags/1x1/hk.svg', + 'icon-hm': '../flags/1x1/hm.svg', + 'icon-hn': '../flags/1x1/hn.svg', + 'icon-hr': '../flags/1x1/hr.svg', + 'icon-ht': '../flags/1x1/ht.svg', + 'icon-hu': '../flags/1x1/hu.svg', + 'icon-id': '../flags/1x1/id.svg', + 'icon-ie': '../flags/1x1/ie.svg', + 'icon-il': '../flags/1x1/il.svg', + 'icon-im': '../flags/1x1/im.svg', + 'icon-in': '../flags/1x1/in.svg', + 'icon-io': '../flags/1x1/io.svg', + 'icon-iq': '../flags/1x1/iq.svg', + 'icon-ir': '../flags/1x1/ir.svg', + 'icon-is': '../flags/1x1/is.svg', + 'icon-it': '../flags/1x1/it.svg', + 'icon-je': '../flags/1x1/je.svg', + 'icon-jm': '../flags/1x1/jm.svg', + 'icon-jo': '../flags/1x1/jo.svg', + 'icon-jp': '../flags/1x1/jp.svg', + 'icon-ke': '../flags/1x1/ke.svg', + 'icon-kg': '../flags/1x1/kg.svg', + 'icon-kh': '../flags/1x1/kh.svg', + 'icon-ki': '../flags/1x1/ki.svg', + 'icon-km': '../flags/1x1/km.svg', + 'icon-kn': '../flags/1x1/kn.svg', + 'icon-kp': '../flags/1x1/kp.svg', + 'icon-kr': '../flags/1x1/kr.svg', + 'icon-kw': '../flags/1x1/kw.svg', + 'icon-ky': '../flags/1x1/ky.svg', + 'icon-kz': '../flags/1x1/kz.svg', + 'icon-la': '../flags/1x1/la.svg', + 'icon-lb': '../flags/1x1/lb.svg', + 'icon-lc': '../flags/1x1/lc.svg', + 'icon-li': '../flags/1x1/li.svg', + 'icon-lk': '../flags/1x1/lk.svg', + 'icon-lr': '../flags/1x1/lr.svg', + 'icon-ls': '../flags/1x1/ls.svg', + 'icon-lt': '../flags/1x1/lt.svg', + 'icon-lu': '../flags/1x1/lu.svg', + 'icon-lv': '../flags/1x1/lv.svg', + 'icon-ly': '../flags/1x1/ly.svg', + 'icon-ma': '../flags/1x1/ma.svg', + 'icon-mc': '../flags/1x1/mc.svg', + 'icon-md': '../flags/1x1/md.svg', + 'icon-me': '../flags/1x1/me.svg', + 'icon-mf': '../flags/1x1/mf.svg', + 'icon-mg': '../flags/1x1/mg.svg', + 'icon-mh': '../flags/1x1/mh.svg', + 'icon-mk': '../flags/1x1/mk.svg', + 'icon-ml': '../flags/1x1/ml.svg', + 'icon-mm': '../flags/1x1/mm.svg', + 'icon-mn': '../flags/1x1/mn.svg', + 'icon-mo': '../flags/1x1/mo.svg', + 'icon-mp': '../flags/1x1/mp.svg', + 'icon-mq': '../flags/1x1/mq.svg', + 'icon-mr': '../flags/1x1/mr.svg', + 'icon-ms': '../flags/1x1/ms.svg', + 'icon-mt': '../flags/1x1/mt.svg', + 'icon-mu': '../flags/1x1/mu.svg', + 'icon-mv': '../flags/1x1/mv.svg', + 'icon-mw': '../flags/1x1/mw.svg', + 'icon-mx': '../flags/1x1/mx.svg', + 'icon-my': '../flags/1x1/my.svg', + 'icon-mz': '../flags/1x1/mz.svg', + 'icon-na': '../flags/1x1/na.svg', + 'icon-nc': '../flags/1x1/nc.svg', + 'icon-ne': '../flags/1x1/ne.svg', + 'icon-nf': '../flags/1x1/nf.svg', + 'icon-ng': '../flags/1x1/ng.svg', + 'icon-ni': '../flags/1x1/ni.svg', + 'icon-nl': '../flags/1x1/nl.svg', + 'icon-no': '../flags/1x1/no.svg', + 'icon-np': '../flags/1x1/np.svg', + 'icon-nr': '../flags/1x1/nr.svg', + 'icon-nu': '../flags/1x1/nu.svg', + 'icon-nz': '../flags/1x1/nz.svg', + 'icon-om': '../flags/1x1/om.svg', + 'icon-pa': '../flags/1x1/pa.svg', + 'icon-pe': '../flags/1x1/pe.svg', + 'icon-pf': '../flags/1x1/pf.svg', + 'icon-pg': '../flags/1x1/pg.svg', + 'icon-ph': '../flags/1x1/ph.svg', + 'icon-pk': '../flags/1x1/pk.svg', + 'icon-pl': '../flags/1x1/pl.svg', + 'icon-pm': '../flags/1x1/pm.svg', + 'icon-pn': '../flags/1x1/pn.svg', + 'icon-pr': '../flags/1x1/pr.svg', + 'icon-ps': '../flags/1x1/ps.svg', + 'icon-pt': '../flags/1x1/pt.svg', + 'icon-pw': '../flags/1x1/pw.svg', + 'icon-py': '../flags/1x1/py.svg', + 'icon-qa': '../flags/1x1/qa.svg', + 'icon-re': '../flags/1x1/re.svg', + 'icon-ro': '../flags/1x1/ro.svg', + 'icon-rs': '../flags/1x1/rs.svg', + 'icon-ru': '../flags/1x1/ru.svg', + 'icon-rw': '../flags/1x1/rw.svg', + 'icon-sa': '../flags/1x1/sa.svg', + 'icon-sb': '../flags/1x1/sb.svg', + 'icon-sc': '../flags/1x1/sc.svg', + 'icon-sd': '../flags/1x1/sd.svg', + 'icon-se': '../flags/1x1/se.svg', + 'icon-sg': '../flags/1x1/sg.svg', + 'icon-sh': '../flags/1x1/sh.svg', + 'icon-si': '../flags/1x1/si.svg', + 'icon-sj': '../flags/1x1/sj.svg', + 'icon-sk': '../flags/1x1/sk.svg', + 'icon-sl': '../flags/1x1/sl.svg', + 'icon-sm': '../flags/1x1/sm.svg', + 'icon-sn': '../flags/1x1/sn.svg', + 'icon-so': '../flags/1x1/so.svg', + 'icon-sr': '../flags/1x1/sr.svg', + 'icon-ss': '../flags/1x1/ss.svg', + 'icon-st': '../flags/1x1/st.svg', + 'icon-sv': '../flags/1x1/sv.svg', + 'icon-sx': '../flags/1x1/sx.svg', + 'icon-sy': '../flags/1x1/sy.svg', + 'icon-sz': '../flags/1x1/sz.svg', + 'icon-tc': '../flags/1x1/tc.svg', + 'icon-td': '../flags/1x1/td.svg', + 'icon-tf': '../flags/1x1/tf.svg', + 'icon-tg': '../flags/1x1/tg.svg', + 'icon-th': '../flags/1x1/th.svg', + 'icon-tj': '../flags/1x1/tj.svg', + 'icon-tk': '../flags/1x1/tk.svg', + 'icon-tl': '../flags/1x1/tl.svg', + 'icon-tm': '../flags/1x1/tm.svg', + 'icon-tn': '../flags/1x1/tn.svg', + 'icon-to': '../flags/1x1/to.svg', + 'icon-tr': '../flags/1x1/tr.svg', + 'icon-tt': '../flags/1x1/tt.svg', + 'icon-tv': '../flags/1x1/tv.svg', + 'icon-tw': '../flags/1x1/tw.svg', + 'icon-tz': '../flags/1x1/tz.svg', + 'icon-ua': '../flags/1x1/ua.svg', + 'icon-ug': '../flags/1x1/ug.svg', + 'icon-um': '../flags/1x1/um.svg', + 'icon-us': '../flags/1x1/us.svg', + 'icon-uy': '../flags/1x1/uy.svg', + 'icon-uz': '../flags/1x1/uz.svg', + 'icon-va': '../flags/1x1/va.svg', + 'icon-vc': '../flags/1x1/vc.svg', + 'icon-ve': '../flags/1x1/ve.svg', + 'icon-vg': '../flags/1x1/vg.svg', + 'icon-vi': '../flags/1x1/vi.svg', + 'icon-vn': '../flags/1x1/vn.svg', + 'icon-vu': '../flags/1x1/vu.svg', + 'icon-wf': '../flags/1x1/wf.svg', + 'icon-ws': '../flags/1x1/ws.svg', + 'icon-xk': '../flags/1x1/xk.svg', + 'icon-ye': '../flags/1x1/ye.svg', + 'icon-yt': '../flags/1x1/yt.svg', + 'icon-za': '../flags/1x1/za.svg', + 'icon-zm': '../flags/1x1/zm.svg', + 'icon-zw': '../flags/1x1/zw.svg' + }, 'storage' : { 'icon': 'storage-symbolic.svg' }, 'battery' : { 'icon': 'battery-symbolic.svg' }, 'gpu' : { 'icon': 'gpu-symbolic.svg' } } - // list with the prefixes for the according themes, the index of each + // list with the prefixes for the according themes, the index of each // item must match the index on the combo box this._sensorsIconPathPrefix = ['/icons/original/', '/icons/gnome/']; @@ -81,7 +331,12 @@ var VitalsMenuButton = GObject.registerClass({ this._addSettingChangedSignal('menu-centered', this._positionInPanelChanged.bind(this)); this._addSettingChangedSignal('icon-style', this._iconStyleChanged.bind(this)); - let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros', 'fixed-widths', 'hide-icons', 'unit', 'memory-measurement', 'include-public-ip', 'network-speed-format', 'storage-measurement', 'include-static-info', 'include-static-gpu-info' ]; + let settings = [ 'use-higher-precision', 'alphabetize', 'hide-zeros', + 'fixed-widths', 'hide-icons', 'unit', + 'memory-measurement', 'include-public-ip', 'network-public-ip-interval', + 'network-public-ip-show-flag', 'network-speed-format', 'storage-measurement', + 'include-static-info', 'include-static-gpu-info' ]; + for (let setting of Object.values(settings)) this._addSettingChangedSignal(setting, this._redrawMenu.bind(this)); @@ -252,7 +507,7 @@ var VitalsMenuButton = GObject.registerClass({ ); } - _createHotItem(key, value) { + _createHotItem(key, value, gicon) { let item = new St.BoxLayout({ style_class: 'vitals-panel-item', }); @@ -261,6 +516,7 @@ var VitalsMenuButton = GObject.registerClass({ if (!this._settings.get_boolean('hide-icons') || key == '_default_icon_') { let icon = this._defaultIcon(key); + if (gicon) icon.gicon = gicon; item.add_child(icon); } @@ -311,7 +567,7 @@ var VitalsMenuButton = GObject.registerClass({ } _redrawDetailsMenuIcons() { - // updates the icons on the 'details' menu, the one + // updates the icons on the 'details' menu, the one // you have to click to appear this._sensors.resetHistory(); for (const sensor in this._sensorIcons) { @@ -323,7 +579,7 @@ var VitalsMenuButton = GObject.registerClass({ const gpuKeys = Object.keys(this._groups).filter(key => key.startsWith("gpu#")); gpuKeys.forEach((gpuKey) => { this._groups[gpuKey].icon.gicon = Gio.icon_new_for_string(this._sensorIconPath("gpu")); - }); + }); } _iconStyleChanged() { @@ -443,7 +699,7 @@ var VitalsMenuButton = GObject.registerClass({ if (self.checked) { // add selected sensor to panel hotSensors.push(self.key); - this._createHotItem(self.key, self.value); + this._createHotItem(self.key, self.value, self.gicon); } else { // remove selected sensor from panel hotSensors.splice(hotSensors.indexOf(self.key), 1); @@ -573,7 +829,8 @@ var VitalsMenuButton = GObject.registerClass({ this._last_query = now; this._sensors.query((label, value, type, format) => { - const typeKey = type.replace('-group', ''); + let typeKey = type.replace('-group', ''); + if (/^network-(?!rx$|tx$)/.test(typeKey)) typeKey = 'network'; let key = '_' + typeKey + '_' + label.replace(' ', '_').toLowerCase() + '_'; // if a sensor is disabled, gray it out @@ -585,7 +842,7 @@ var VitalsMenuButton = GObject.registerClass({ } // add/initialize any gpu groups that we haven't added yet - if(typeKey.startsWith('gpu') && typeKey !== 'gpu#1') { + if (typeKey.startsWith('gpu') && typeKey !== 'gpu#1') { const split = typeKey.split('#'); if(split.length == 2 && this._numGpus < parseInt(split[1])) { // occasionally two lines from nvidia-smi will be read at once @@ -608,8 +865,24 @@ var VitalsMenuButton = GObject.registerClass({ } let items = this._values.returnIfDifferent(dwell, label, value, type, format, key); - for (let item of Object.values(items)) - this._updateDisplay(_(item[0]), item[1], item[2], item[3]); + for (let item of items) { + if (item.type.startsWith('network-') && item.type.length == 10 && item.type != 'network-rx' && item.type != 'network-tx') { + // Geo / flags: stable key (no country in key); type stays network- for icon-us etc. + const stem = item.type.slice('network-'.length); + let flagGIcon = Gio.icon_new_for_string(this._sensorIconPath('network', 'icon-' + stem)); + if (this._hotItems[item.key] && !this._settings.get_boolean('hide-icons')) { + // change icon in menu bar + let icon = this._hotItems[item.key].get_first_child(); + if (icon instanceof St.Icon) + icon.gicon = flagGIcon; + } + // change icon in dropdown + let menuRow = this._sensorMenuItems[item.key]; + if (menuRow) menuRow.gicon = flagGIcon; + } + + this._updateDisplay(_(item.label), item.value, item.type, item.key); + } }, dwell); //if a new gpu has been detected during the last query, then increment the amount of times we've detected a new gpu @@ -644,6 +917,10 @@ var VitalsMenuButton = GObject.registerClass({ export default class VitalsExtension extends Extension { enable() { + if (Main.panel.statusArea['vitalsMenu']) { + Main.panel.statusArea['vitalsMenu'].destroy(); + delete Main.panel.statusArea['vitalsMenu']; + } vitalsMenu = new VitalsMenuButton(this); let position = vitalsMenu._positionInPanel(); Main.panel.addToStatusArea('vitalsMenu', vitalsMenu, position[1], position[0]); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg new file mode 100644 index 0000000..f10067e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ad.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg new file mode 100644 index 0000000..b59e113 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/af.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/af.svg new file mode 100644 index 0000000..9f382e0 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/af.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg new file mode 100644 index 0000000..9b951b6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ag.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg new file mode 100644 index 0000000..dfde89a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ai.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/al.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/al.svg new file mode 100644 index 0000000..1056793 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/am.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/am.svg new file mode 100644 index 0000000..a188adf --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg new file mode 100644 index 0000000..067ffc4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg new file mode 100644 index 0000000..28acee5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg new file mode 100644 index 0000000..1cfbbd9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg new file mode 100644 index 0000000..aa7c958 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/arab.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/as.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/as.svg new file mode 100644 index 0000000..4c7a9bc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/as.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg new file mode 100644 index 0000000..8536142 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/asean.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/at.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/at.svg new file mode 100644 index 0000000..758ced6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/at.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/au.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/au.svg new file mode 100644 index 0000000..38bb245 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/au.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg new file mode 100644 index 0000000..1f03d61 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg new file mode 100644 index 0000000..481d2a3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/az.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/az.svg new file mode 100644 index 0000000..d692e22 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg new file mode 100644 index 0000000..456ca12 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg new file mode 100644 index 0000000..9a42841 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg new file mode 100644 index 0000000..86fcfba --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/be.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/be.svg new file mode 100644 index 0000000..31d6210 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg new file mode 100644 index 0000000..a5078df --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg new file mode 100644 index 0000000..78412c5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bg.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg new file mode 100644 index 0000000..2d131aa --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg new file mode 100644 index 0000000..36a0d3a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg new file mode 100644 index 0000000..bb27414 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg new file mode 100644 index 0000000..65550d9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg new file mode 100644 index 0000000..0274d14 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bm.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg new file mode 100644 index 0000000..8cb06d1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg new file mode 100644 index 0000000..b4830ed --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bo.svg @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg new file mode 100644 index 0000000..4b9168e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/br.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/br.svg new file mode 100644 index 0000000..d6095d7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg new file mode 100644 index 0000000..0faa4bb --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg new file mode 100644 index 0000000..15eafc7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg new file mode 100644 index 0000000..dcc6ad1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg new file mode 100644 index 0000000..328e13c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/by.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/by.svg new file mode 100644 index 0000000..7d2ef67 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/by.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg new file mode 100644 index 0000000..913392e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/bz.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg new file mode 100644 index 0000000..1c0864c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg new file mode 100644 index 0000000..73fc800 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg new file mode 100644 index 0000000..ea17728 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg new file mode 100644 index 0000000..ff1a19b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cefta.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg new file mode 100644 index 0000000..b0625db --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg new file mode 100644 index 0000000..f786884 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg new file mode 100644 index 0000000..52578bf --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg new file mode 100644 index 0000000..2abf641 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg new file mode 100644 index 0000000..43a1057 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg new file mode 100644 index 0000000..5fb6096 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg new file mode 100644 index 0000000..ed4952b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg new file mode 100644 index 0000000..e152f01 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/co.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/co.svg new file mode 100644 index 0000000..5804bfe --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg new file mode 100644 index 0000000..ea3bfdc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg new file mode 100644 index 0000000..4e7889e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg new file mode 100644 index 0000000..a284902 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg new file mode 100644 index 0000000..1170cd7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg new file mode 100644 index 0000000..57062ab --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg new file mode 100644 index 0000000..73c0240 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg new file mode 100644 index 0000000..3165d2d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg new file mode 100644 index 0000000..dcd0a6b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/cz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/de.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/de.svg new file mode 100644 index 0000000..05a0a69 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg new file mode 100644 index 0000000..8085a08 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dg.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg new file mode 100644 index 0000000..f5534d2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg new file mode 100644 index 0000000..5aaaa19 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg new file mode 100644 index 0000000..cb7c958 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/do.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/do.svg new file mode 100644 index 0000000..727d669 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/do.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg new file mode 100644 index 0000000..8abcd25 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg new file mode 100644 index 0000000..ee6905e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eac.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg new file mode 100644 index 0000000..e11e6ef --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ec.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg new file mode 100644 index 0000000..5a6a7e3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ee.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg new file mode 100644 index 0000000..0ce9c65 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg new file mode 100644 index 0000000..ae509fa --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eh.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/er.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/er.svg new file mode 100644 index 0000000..1a4891e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/er.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg new file mode 100644 index 0000000..a06a2e3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg new file mode 100644 index 0000000..ccbb9f5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-ga.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg new file mode 100644 index 0000000..7d383ed --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es-pv.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es.svg new file mode 100644 index 0000000..6bfa092 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/es.svg @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/et.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/et.svg new file mode 100644 index 0000000..eb7f3c4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg new file mode 100644 index 0000000..4a07fbe --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg new file mode 100644 index 0000000..aba2ef3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg new file mode 100644 index 0000000..e1c44ee --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fj.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg new file mode 100644 index 0000000..352eb51 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fk.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg new file mode 100644 index 0000000..4f7d313 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg new file mode 100644 index 0000000..eec9945 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg new file mode 100644 index 0000000..0f60170 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/fr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg new file mode 100644 index 0000000..113a5b5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg new file mode 100644 index 0000000..ee48fed --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg new file mode 100644 index 0000000..b92e69f --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-nir.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg new file mode 100644 index 0000000..44d38cc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg new file mode 100644 index 0000000..5115b59 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg new file mode 100644 index 0000000..ce4d1e0 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg new file mode 100644 index 0000000..3159c67 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg new file mode 100644 index 0000000..d3dc729 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg new file mode 100644 index 0000000..9cf5aa2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg new file mode 100644 index 0000000..480f550 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg new file mode 100644 index 0000000..a64271b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg new file mode 100644 index 0000000..fe465ea --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg new file mode 100644 index 0000000..eaa817b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg new file mode 100644 index 0000000..2a8f724 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg new file mode 100644 index 0000000..ae81f9d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg new file mode 100644 index 0000000..9dd8e3b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gp.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg new file mode 100644 index 0000000..3a991a1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg new file mode 100644 index 0000000..a268830 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gr.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg new file mode 100644 index 0000000..cf596f6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gs.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg new file mode 100644 index 0000000..b736d28 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg new file mode 100644 index 0000000..3f4d3da --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gu.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg new file mode 100644 index 0000000..61a0548 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg new file mode 100644 index 0000000..35e2f08 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg new file mode 100644 index 0000000..eef02a1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hk.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg new file mode 100644 index 0000000..1f4d007 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg new file mode 100644 index 0000000..847df20 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg new file mode 100644 index 0000000..d8719a4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hr.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg new file mode 100644 index 0000000..101bd59 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ht.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg new file mode 100644 index 0000000..088242d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg new file mode 100644 index 0000000..096603d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/id.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/id.svg new file mode 100644 index 0000000..df08018 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/id.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg new file mode 100644 index 0000000..e13de22 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/il.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/il.svg new file mode 100644 index 0000000..0a2a6d9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/im.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/im.svg new file mode 100644 index 0000000..05c3fa4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/in.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/in.svg new file mode 100644 index 0000000..26a02cf --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/io.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/io.svg new file mode 100644 index 0000000..9ce776a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/io.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg new file mode 100644 index 0000000..d354c99 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg new file mode 100644 index 0000000..66537b6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/is.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/is.svg new file mode 100644 index 0000000..26510b9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/it.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/it.svg new file mode 100644 index 0000000..b9596d0 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/je.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/je.svg new file mode 100644 index 0000000..52c6645 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/je.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg new file mode 100644 index 0000000..07f023c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg new file mode 100644 index 0000000..fbbd681 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg new file mode 100644 index 0000000..118686a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg new file mode 100644 index 0000000..09168c2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg new file mode 100644 index 0000000..732b2f1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kg.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg new file mode 100644 index 0000000..567577a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kh.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg new file mode 100644 index 0000000..02d7569 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/km.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/km.svg new file mode 100644 index 0000000..b19fd10 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg new file mode 100644 index 0000000..42d5adf --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg new file mode 100644 index 0000000..67f3338 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg new file mode 100644 index 0000000..af3d35e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kr.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg new file mode 100644 index 0000000..b2fe54f --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg new file mode 100644 index 0000000..72e5164 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ky.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg new file mode 100644 index 0000000..c65c5d5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/kz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/la.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/la.svg new file mode 100644 index 0000000..af70d0d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg new file mode 100644 index 0000000..a5ffc76 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg new file mode 100644 index 0000000..aa18fac --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/li.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/li.svg new file mode 100644 index 0000000..436dfc5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg new file mode 100644 index 0000000..2ac8183 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg new file mode 100644 index 0000000..74382ab --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg new file mode 100644 index 0000000..605c087 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg new file mode 100644 index 0000000..52ada94 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg new file mode 100644 index 0000000..037c315 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg new file mode 100644 index 0000000..5af883c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg new file mode 100644 index 0000000..4375a9e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg new file mode 100644 index 0000000..8041667 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg new file mode 100644 index 0000000..04173a4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/md.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/md.svg new file mode 100644 index 0000000..f204511 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/md.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/me.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/me.svg new file mode 100644 index 0000000..25c6b28 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/me.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg new file mode 100644 index 0000000..8d3285b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg new file mode 100644 index 0000000..4f901ca --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg new file mode 100644 index 0000000..1db268d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mh.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg new file mode 100644 index 0000000..0ee923a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg new file mode 100644 index 0000000..665d6b2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg new file mode 100644 index 0000000..391f0c7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mm.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg new file mode 100644 index 0000000..0df5211 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg new file mode 100644 index 0000000..50624d7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg new file mode 100644 index 0000000..27e8980 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg new file mode 100644 index 0000000..dcf0054 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg new file mode 100644 index 0000000..d06c5b8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg new file mode 100644 index 0000000..53baf7c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ms.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg new file mode 100644 index 0000000..bcc01dd --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mt.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg new file mode 100644 index 0000000..2afe1d3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg new file mode 100644 index 0000000..c9a6c5b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg new file mode 100644 index 0000000..576ba8c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg new file mode 100644 index 0000000..2b371e7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mx.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/my.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/my.svg new file mode 100644 index 0000000..4f62c7d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/my.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg new file mode 100644 index 0000000..e1e1569 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/na.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/na.svg new file mode 100644 index 0000000..36ac8d7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg new file mode 100644 index 0000000..6226ebc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg new file mode 100644 index 0000000..a96b027 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg new file mode 100644 index 0000000..c9e5743 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nf.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg new file mode 100644 index 0000000..62813e8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg new file mode 100644 index 0000000..7ea3eb6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ni.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg new file mode 100644 index 0000000..49ca5bc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/no.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/no.svg new file mode 100644 index 0000000..939920d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/np.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/np.svg new file mode 100644 index 0000000..f0e0b5d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/np.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg new file mode 100644 index 0000000..c8c827e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg new file mode 100644 index 0000000..ce31672 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nu.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg new file mode 100644 index 0000000..ee617d6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/nz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/om.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/om.svg new file mode 100644 index 0000000..038631f --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/om.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg new file mode 100644 index 0000000..108c40b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pa.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg new file mode 100644 index 0000000..e0d561b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg new file mode 100644 index 0000000..9ba4c61 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pe.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg new file mode 100644 index 0000000..2580dd2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pf.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg new file mode 100644 index 0000000..1b6e536 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg new file mode 100644 index 0000000..390f1fd --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg new file mode 100644 index 0000000..1a573af --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg new file mode 100644 index 0000000..8c43577 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg new file mode 100644 index 0000000..950c6e8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg new file mode 100644 index 0000000..886abca --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pn.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg new file mode 100644 index 0000000..eb302ad --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg new file mode 100644 index 0000000..5d28cc8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ps.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg new file mode 100644 index 0000000..6c8334b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg new file mode 100644 index 0000000..ef6be79 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/py.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/py.svg new file mode 100644 index 0000000..107bd1d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/py.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg new file mode 100644 index 0000000..897a21b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/re.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/re.svg new file mode 100644 index 0000000..41d87d9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/re.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg new file mode 100644 index 0000000..e6cf0f6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg new file mode 100644 index 0000000..3610fd1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rs.svg @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg new file mode 100644 index 0000000..f428b0c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ru.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg new file mode 100644 index 0000000..3d484fd --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg new file mode 100644 index 0000000..8bf5eda --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sa.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg new file mode 100644 index 0000000..398c708 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg new file mode 100644 index 0000000..2996bac --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg new file mode 100644 index 0000000..0b9abdc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/se.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/se.svg new file mode 100644 index 0000000..8f3f134 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/se.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg new file mode 100644 index 0000000..60625e9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg new file mode 100644 index 0000000..5f82d66 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ac.svg @@ -0,0 +1,690 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg new file mode 100644 index 0000000..179fed6 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg new file mode 100644 index 0000000..619301b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh-ta.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg new file mode 100644 index 0000000..2fd3727 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/si.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/si.svg new file mode 100644 index 0000000..ba67e19 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg new file mode 100644 index 0000000..ecb9c79 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg new file mode 100644 index 0000000..4846127 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg new file mode 100644 index 0000000..b649f1b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sl.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg new file mode 100644 index 0000000..7fe8b14 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sm.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg new file mode 100644 index 0000000..ff9cf2e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/so.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/so.svg new file mode 100644 index 0000000..4848dbe --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg new file mode 100644 index 0000000..0ca3596 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg new file mode 100644 index 0000000..bb50fac --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/st.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/st.svg new file mode 100644 index 0000000..c5e7c5c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg new file mode 100644 index 0000000..110f78d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sv.svg @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg new file mode 100644 index 0000000..fbf7468 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg new file mode 100644 index 0000000..b2fdc2f --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg new file mode 100644 index 0000000..bd5e237 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/sz.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg new file mode 100644 index 0000000..52a2452 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tc.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/td.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/td.svg new file mode 100644 index 0000000..8201312 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg new file mode 100644 index 0000000..1ab7f6a --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg new file mode 100644 index 0000000..6ed03c5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/th.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/th.svg new file mode 100644 index 0000000..35141d3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg new file mode 100644 index 0000000..9232ec1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tj.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg new file mode 100644 index 0000000..9ff92e5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg new file mode 100644 index 0000000..4fbb245 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg new file mode 100644 index 0000000..0272d71 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tm.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg new file mode 100644 index 0000000..ab3e36e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/to.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/to.svg new file mode 100644 index 0000000..3f1b600 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg new file mode 100644 index 0000000..0fe9017 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg new file mode 100644 index 0000000..0f7f26e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg new file mode 100644 index 0000000..098b916 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tv.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg new file mode 100644 index 0000000..83f4e44 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tw.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg new file mode 100644 index 0000000..846cbb5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/tz.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg new file mode 100644 index 0000000..7ceb894 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg new file mode 100644 index 0000000..fd377df --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/um.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/um.svg new file mode 100644 index 0000000..b8d4502 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/um.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/un.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/un.svg new file mode 100644 index 0000000..fc75c91 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/us.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/us.svg new file mode 100644 index 0000000..a722047 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/us.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg new file mode 100644 index 0000000..f6b08b2 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg new file mode 100644 index 0000000..3385bc5 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/va.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/va.svg new file mode 100644 index 0000000..04e6d50 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/va.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg new file mode 100644 index 0000000..21d41a8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg new file mode 100644 index 0000000..665135b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg new file mode 100644 index 0000000..31fcae3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vg.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg new file mode 100644 index 0000000..4509ac9 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vi.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg new file mode 100644 index 0000000..49a68f0 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg new file mode 100644 index 0000000..3dbcf95 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/vu.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg new file mode 100644 index 0000000..5ba64e4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/wf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg new file mode 100644 index 0000000..ab08fdb --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg new file mode 100644 index 0000000..b5403e3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg new file mode 100644 index 0000000..5a44cb7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/xx.svg @@ -0,0 +1,4 @@ + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg new file mode 100644 index 0000000..2ccb23b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg new file mode 100644 index 0000000..41a4408 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/yt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/za.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/za.svg new file mode 100644 index 0000000..397696e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg new file mode 100644 index 0000000..9b20601 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg new file mode 100644 index 0000000..f9f65ee --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/1x1/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE new file mode 100644 index 0000000..22bf5cf --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/icons/flags/flag-icons.LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) 2013 Panayiotis Lipiridis + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Vendored from https://github.com/lipis/flag-icons (MIT License). diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo new file mode 100644 index 0000000..ad5d7e3 Binary files /dev/null and b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/locale/ka/LC_MESSAGES/vitals.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js index cf112ab..81b6eab 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/menuItem.js @@ -21,7 +21,8 @@ export const MenuItem = GObject.registerClass({ this._gIcon = icon; // add icon - this.add_child(new St.Icon({ style_class: 'popup-menu-icon', gicon : this._gIcon })); + this._iconActor = new St.Icon({ style_class: 'popup-menu-icon', gicon : this._gIcon }); + this.add_child(this._iconActor); // add label this._labelActor = new St.Label({ text: label }); @@ -49,6 +50,12 @@ export const MenuItem = GObject.registerClass({ return this._gIcon; } + set gicon(icon) { + this._gIcon = icon; + if (this._iconActor) + this._iconActor.gicon = icon; + } + set value(value) { this._valueLabel.text = value; } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/metadata.json index bb2e767..0bb8476 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/metadata.json @@ -17,5 +17,5 @@ ], "url": "https://github.com/corecoding/Vitals", "uuid": "Vitals@CoreCoding.com", - "version": 75 + "version": 76 } \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.js index 07916bd..bdeb9a8 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.js @@ -47,8 +47,8 @@ const Settings = new GObject.Class({ 'show-memory', 'show-processor', 'show-system', 'show-network', 'show-storage', 'use-higher-precision', 'alphabetize', 'hide-zeros', 'include-public-ip', - 'show-battery', 'fixed-widths', 'hide-icons', - 'menu-centered', 'include-static-info', + 'network-public-ip-show-flag', 'show-battery', 'fixed-widths', + 'hide-icons', 'menu-centered', 'include-static-info', 'show-gpu', 'include-static-gpu-info' ]; for (let key in sensors) { @@ -75,6 +75,9 @@ const Settings = new GObject.Class({ this._settings.bind('update-time', this.builder.get_object('update-time'), 'value', Gio.SettingsBindFlags.DEFAULT); + this._settings.bind('network-public-ip-interval', this.builder.get_object('network-public-ip-interval'), + 'value', Gio.SettingsBindFlags.DEFAULT); + // process individual text entry sensor preferences sensors = [ 'storage-path', 'monitor-cmd' ]; for (let key in sensors) { diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.ui b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.ui index 950c1b0..156799b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.ui +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/prefs.ui @@ -8,7 +8,7 @@ 10 - 0 + 1 12 12 6 @@ -16,10 +16,10 @@ vertical - 0 + 1 - 0 + 1 none @@ -52,6 +52,68 @@ + + + 1 + + + horizontal + 12 + 6 + + + 1 + start + Update in minutes + + + + + + 1 + 1 + if-valid + + + 15 + 1440 + 1 + + + + + + + + + + + True + + + True + 10 + 10 + 10 + 10 + + + True + Show country flag + 0 + + + + + True + end + True + + + + + + 100 diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/gschemas.compiled b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/gschemas.compiled index 936fdb3..b84716f 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/gschemas.compiled and b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/gschemas.compiled differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml index 7a0decd..fef102d 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/schemas/org.gnome.shell.extensions.vitals.gschema.xml @@ -81,6 +81,14 @@ Include public IP address Display public IP address of internet connection + + 60 + Public IP refresh interval in minutes + + + true + Show country flag for public IP + 0 Network speed format diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/sensors.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/sensors.js index be8df5d..d61b090 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/sensors.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/sensors.js @@ -53,6 +53,7 @@ export const Sensors = GObject.registerClass({ this._settingChangedSignals = []; this._addSettingChangedSignal('show-gpu', this._reconfigureNvidiaSmiProcess.bind(this)); this._addSettingChangedSignal('update-time', this._reconfigureNvidiaSmiProcess.bind(this)); + this._addSettingChangedSignal('network-public-ip-interval', () => {this._lastPublicIPCheck = 0;}); //this._addSettingChangedSignal('include-static-gpu-info', this._reconfigureNvidiaSmiProcess.bind(this)); this._gpu_drm_vendors = null; @@ -85,7 +86,11 @@ export const Sensors = GObject.registerClass({ // check IP address new FileModule.File('https://ipv4.corecoding.com').read().then(contents => { let obj = JSON.parse(contents); - this._returnValue(callback, 'Public IP', obj['IPv4'], 'network', 'string'); + let cc = (obj && typeof obj['countryCode'] === 'string') ? obj['countryCode'].trim().toLowerCase() : ''; + let ip = (obj && typeof obj['IPv4'] === 'string') ? obj['IPv4'].trim() : ''; + const showFlag = this._settings.get_boolean('network-public-ip-show-flag'); + let typeOut = (showFlag && /^[a-z]{2}$/.test(cc)) ? ('network-' + cc) : 'network'; + this._returnValue(callback, 'Public IP', ip, typeOut, 'string'); }).catch(err => { }); } @@ -309,7 +314,8 @@ export const Sensors = GObject.registerClass({ if (this._settings.get_boolean('include-public-ip')) { // check the public ip every hour or when waking from sleep if (this._next_public_ip_check <= 0) { - this._next_public_ip_check = 3600; + let intervalMinutes = this._settings.get_int('network-public-ip-interval'); + this._next_public_ip_check = intervalMinutes * 60; this._refreshIPAddress(callback); } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/values.js b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/values.js index f16778c..110d0fd 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/values.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/Vitals@CoreCoding.com/values.js @@ -221,30 +221,33 @@ export const Values = GObject.registerClass({ returnIfDifferent(dwell, label, value, type, format, key) { let output = []; + // Use one history bucket for network- types (geo IP), except for rx/tx. + let historyType = (/^network-(?!rx$|tx$)[a-z]{2}(?:-group)?$/.test(type)) ? 'network' : type; + // make sure the keys exist - if (!(type in this._history)) this._history[type] = {}; + if (!(historyType in this._history)) this._history[historyType] = {}; // no sense in continuing when the raw value has not changed - if (type != 'network-rx' && type != 'network-tx' && - key in this._history[type] && this._history[type][key][1] == value) + if (historyType != 'network-rx' && historyType != 'network-tx' && + key in this._history[historyType] && this._history[historyType][key][1] == value) return output; // is the value different from last time? let legible = this._legible(value, format); // don't return early when dealing with network traffic - if (type != 'network-rx' && type != 'network-tx') { + if (historyType != 'network-rx' && historyType != 'network-tx') { // only update when we are coming through for the first time, or if a value has changed - if (key in this._history[type] && this._history[type][key][0] == legible) + if (key in this._history[historyType] && this._history[historyType][key][0] == legible) return output; - // add label as it was sent from sensors class - output.push([label, legible, type, key]); + // add label as it was sent from sensors class; type stays e.g. network-us for display/icons + output.push({ label, value: legible, type, key }); } // save previous values to update screen on changes only - let previousValue = this._history[type][key]; - this._history[type][key] = [legible, value]; + let previousValue = this._history[historyType][key]; + this._history[historyType][key] = [legible, value]; // process average, min and max values if (type == 'temperature' || type == 'voltage' || type == 'fan') { @@ -253,21 +256,21 @@ export const Values = GObject.registerClass({ // show value in group even if there is one value present let sum = vals.reduce((a, b) => a + b); let avg = this._legible(sum / vals.length, format); - output.push([type, avg, type + '-group', '']); + output.push({ label: type, value: avg, type: type + '-group', key: '' }); // If only one value is present, don't display avg, min and max if (vals.length > 1) { - output.push(['Average', avg, type, '__' + type + '_avg__']); + output.push({ label: 'Average', value: avg, type, key: '__' + type + '_avg__' }); // calculate Minimum value let min = Math.min(...vals); min = this._legible(min, format); - output.push(['Minimum', min, type, '__' + type + '_min__']); + output.push({ label: 'Minimum', value: min, type, key: '__' + type + '_min__' }); // calculate Maximum value let max = Math.max(...vals); max = this._legible(max, format); - output.push(['Maximum', max, type, '__' + type + '_max__']); + output.push({ label: 'Maximum', value: max, type, key: '__' + type + '_max__' }); } } else if (type == 'network-rx' || type == 'network-tx') { let direction = type.split('-')[1]; @@ -276,18 +279,18 @@ export const Values = GObject.registerClass({ let vals = Object.values(this._history[type]).map(x => parseFloat(x[1])); let sum = vals.reduce((partialSum, a) => partialSum + a, 0); const memUnit = this._settings.get_int('memory-measurement') ? 1000 : 1024; - output.push(['Boot ' + direction, this._legible(sum, format), type, '__' + type + '_boot__']); + output.push({ label: 'Boot ' + direction, value: this._legible(sum, format), type, key: '__' + type + '_boot__' }); // keeps track of session start point if (!(key in this._networkSpeedOffset) || this._networkSpeedOffset[key] <= 0) this._networkSpeedOffset[key] = sum; // outputs session upload and download for all interfaces for #234 - output.push(['Session ' + direction, this._legible(sum - this._networkSpeedOffset[key], format), type, '__' + type + '_ses__']); + output.push({ label: 'Session ' + direction, value: this._legible(sum - this._networkSpeedOffset[key], format), type, key: '__' + type + '_ses__' }); // calculate speed for this interface let speed = (value - previousValue[1]) / dwell; - output.push([label, this._legible(speed, 'speed'), type, key]); + output.push({ label, value: this._legible(speed, 'speed'), type, key }); // store speed for Device report if (!(direction in this._networkSpeeds)) this._networkSpeeds[direction] = {}; @@ -304,36 +307,12 @@ export const Values = GObject.registerClass({ sumNum += parseFloat(this._networkSpeeds[direction][iface]); let sum = this._legible(sumNum, 'speed'); - output.push(['Device ' + direction, sum, 'network-' + direction, '__network-' + direction + '_max__']); + output.push({ label: 'Device ' + direction, value: sum, type: 'network-' + direction, key: '__network-' + direction + '_max__' }); // append download speed to group itself - if (direction == 'rx') output.push([type, sum, type + '-group', '']); - } - } - -/* - global.log('before', JSON.stringify(output)); - for (let i = output.length - 1; i >= 0; i--) { - let sensor = output[i]; - // sensor[0]=label, sensor[1]=value, sensor[2]=type, sensor[3]=key) - - //["CPU Core 5","46°C","temperature","_temperature_hwmon8temp7_"] - - // make sure the keys exist - if (!(sensor[2] in this._history2)) this._history2[sensor[2]] = {}; - - if (sensor[3] in this._history2[sensor[2]]) { - if (this._history2[sensor[2]][sensor[3]] == sensor[1]) { - output.splice(i, 1); - } + if (direction == 'rx') output.push({ label: type, value: sum, type: type + '-group', key: '' }); } - - this._history2[sensor[2]][sensor[3]] = sensor[1]; } - global.log(' after', JSON.stringify(output)); - global.log('***************************'); -*/ - return output; } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js index e783046..5280b55 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js @@ -166,7 +166,7 @@ export const ApplicationsBlur = class ApplicationsBlur { let window_actor = meta_window.get_compositor_private(); if ( - (!meta_window.get_workspace().active) || meta_window.minimized + (!meta_window.get_workspace().active) || meta_window.minimized ) window_actor.hide(); }); @@ -385,10 +385,27 @@ export const ApplicationsBlur = class ApplicationsBlur { // set the window actor's opacity this.set_window_opacity(window_actor, this.settings.applications.OPACITY); + // update corner radius based on window state + this.update_corner_radius(meta_window); + // now set up the signals, for the window actor only: they are disconnected // in `remove_blur`, whereas the signals for the meta window are disconnected // only when the whole component is disabled + // listen for window state changes (maximized/fullscreen) + this.connections.connect( + meta_window, 'notify::maximized-horizontally', + _ => this.update_corner_radius(meta_window) + ); + this.connections.connect( + meta_window, 'notify::maximized-vertically', + _ => this.update_corner_radius(meta_window) + ); + this.connections.connect( + meta_window, 'notify::fullscreen', + _ => this.update_corner_radius(meta_window) + ); + // update the window opacity when it changes, else we don't control it fully this.connections.connect( window_actor, 'notify::opacity', @@ -472,6 +489,33 @@ export const ApplicationsBlur = class ApplicationsBlur { ); } + /// Update the corner radius based on window state (0 for maximized/fullscreen) + /// if the preferences say so. + update_corner_radius(meta_window) { + const is_maximized = meta_window.maximized_horizontally || meta_window.maximized_vertically; + const is_fullscreen = meta_window.fullscreen; + + let use_0_radius = !this.settings.applications.CORNER_WHEN_MAXIMIZED && (is_maximized || is_fullscreen); + + if (this.settings.applications.STATIC_BLUR) { + meta_window.bg_manager?._bms_pipeline?.effects.forEach(effect => { + if (effect.constructor.name === "CornerEffect") + effect.straight_corners = use_0_radius; + }) + } else { + if (meta_window.bg_manager?._bms_pipeline?.effect) + meta_window.bg_manager._bms_pipeline.effect.corner_radius = use_0_radius ? + 0 : this.settings.applications.CORNER_RADIUS; + } + } + + /// Update all corners, to use when the setting has been changed. + update_all_corner_radii() { + this.meta_window_map.forEach( + (meta_window, _pid) => this.update_corner_radius(meta_window) + ) + } + /// Set the opacity of the window actor that sits on top of the blur effect. set_window_opacity(window_actor, opacity) { window_actor?.get_children().forEach(child => { @@ -503,10 +547,7 @@ export const ApplicationsBlur = class ApplicationsBlur { this.mutter_gsettings .get_strv('experimental-features') .includes('scale-monitor-framebuffer'); - const is_wayland = gnome_shell_major_version >= 50 || - (typeof Meta.is_wayland_compositor === 'function' - ? Meta.is_wayland_compositor() - : global.display?.is_wayland_compositor?.() ?? true); + const is_wayland = gnome_shell_major_version >= 50 || Meta.is_wayland_compositor(); const monitor_index = meta_window.get_monitor(); // check if the window is using wayland, or xwayland/xorg for rendering return !scale_monitor_framebuffer && is_wayland && meta_window.get_client_type() == 0 diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/overview.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/overview.js index 50a625e..3bbde61 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/overview.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/overview.js @@ -149,11 +149,14 @@ export const OverviewBlur = class OverviewBlur { // add the container widget for the overview only to the overview group Main.layoutManager.overviewGroup.insert_child_at_index(this.overview_background_group, 0); // make sure it stays below + let _reordering = false; this.connections.connect(Main.layoutManager.overviewGroup, "child-added", (_, child) => { - if (child !== this.overview_background_group) { + if (!_reordering && child !== this.overview_background_group) { + _reordering = true; if (this.overview_background_group.get_parent()) Main.layoutManager.overviewGroup.remove_child(this.overview_background_group); Main.layoutManager.overviewGroup.insert_child_at_index(this.overview_background_group, 0); + _reordering = false; } }); } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/panel.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/panel.js index 6c084cf..bd39166 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/panel.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/panel.js @@ -63,11 +63,34 @@ export const PanelBlur = class PanelBlur { // the blur when a window is near a panel this.connect_to_windows_and_overview(); - // connect to workareas change - this.connections.connect(global.display, 'workareas-changed', - _ => this.reset() + // connect to monitors change, and set a dirty flag to tell the extension that it should be + // reset on 'workareas-changed' signal + this._dirty = false; + this.connections.connect(Main.layoutManager, 'monitors-changed', + _ => this._dirty = true ); + this.connections.connect(global.display, 'workareas-changed', _ => { + if (this._dirty) { + // the monitors chaned + this.reset(); + this._dirty = false; + } + else { + // blur panels created by extension multi-monitors-bar@frederykabryan + // I would like to connect directly to Main.uiGroup 'child-added' but it seems + // like the name is updated too late... + Main.uiGroup.get_children().forEach(child => { + if (child.get_name() === "panelBox" && + child != Main.layoutManager.panelBox && + child.get_n_children() == 1 + ) { + this.maybe_blur_panel(child.get_child_at_index(0)); + } + }); + } + }) + this.enabled = true; } @@ -95,8 +118,18 @@ export const PanelBlur = class PanelBlur { if (this.settings.dash_to_panel.BLUR_ORIGINAL_PANEL && isMainPanelAlive) this.maybe_blur_panel(Main.panel); } else { - // if no dash-to-panel, blur the main and only panel - this.maybe_blur_panel(Main.panel); + // if no dash-to-panel, blur the main panel + if (isMainPanelAlive) + this.maybe_blur_panel(Main.panel); + + // blur panels already created by extension multi-monitors-bar@frederykabryan + Main.uiGroup.get_children().forEach(actor => { + if (actor.get_name() === "panelBox" && actor.get_n_children() === 1) { + let multi_monitor_panel = actor.get_child_at_index(0); + if (isMainPanelAlive && multi_monitor_panel != Main.panel) + this.maybe_blur_panel(multi_monitor_panel); + } + }) } } @@ -385,10 +418,8 @@ export const PanelBlur = class PanelBlur { /// Update the css classname of the panel for light theme update_light_text_classname(disable = false) { - if (!isMainPanelAlive) { - this._log("cannot update light text classname, Main.panel is not alive"); + if (!isMainPanelAlive) return; - } if (this.settings.panel.FORCE_LIGHT_TEXT && !disable) Main.panel.add_style_class_name("panel-light-text"); @@ -561,6 +592,8 @@ export const PanelBlur = class PanelBlur { immutable_actors_list.forEach(actors => this.destroy_blur(actors, false)); this.actors_list = []; + this._dirty = true; + this.connections.disconnect_all(); this.enabled = false; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/dummy_pipeline.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/dummy_pipeline.js index 544d68c..02b2d13 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/dummy_pipeline.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/dummy_pipeline.js @@ -43,6 +43,7 @@ export const DummyPipeline = class DummyPipeline { this.build_effect({ unscaled_radius: 2 * this.settings.SIGMA, brightness: this.settings.BRIGHTNESS, + corner_radius: this.settings.CORNER_RADIUS, }); this.actor_destroy_id = this.actor.connect( @@ -75,6 +76,9 @@ export const DummyPipeline = class DummyPipeline { this._brightness_changed_id = this.settings.settings.connect( 'changed::brightness', () => this.effect.brightness = this.settings.BRIGHTNESS ); + this._corner_radius_changed_id = this.settings.settings.connect( + 'changed::corner-radius', () => this.effect.corner_radius = this.settings.CORNER_RADIUS + ); } repaint_effect() { @@ -92,8 +96,11 @@ export const DummyPipeline = class DummyPipeline { this.settings.settings.disconnect(this._sigma_changed_id); if (this._brightness_changed_id) this.settings.settings.disconnect(this._brightness_changed_id); + if (this._corner_radius_changed_id) + this.settings.settings.disconnect(this._corner_radius_changed_id); delete this._sigma_changed_id; delete this._brightness_changed_id; + delete this._corner_radius_changed_id; } /// Do nothing for this dummy pipeline. @@ -109,4 +116,4 @@ export const DummyPipeline = class DummyPipeline { _warn(str) { console.warn(`[Blur my Shell > dummy pip] ${str}`); } -}; \ No newline at end of file +}; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/keys.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/keys.js index fcde72b..d821b88 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/keys.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/keys.js @@ -6,6 +6,7 @@ export const KEYS = [ component: "general", schemas: [ { type: Type.PIPELINES, name: "pipelines" }, { type: Type.I, name: "hacks-level" }, + { type: Type.B, name: "rounded-blur-found" }, { type: Type.B, name: "debug" }, ] }, @@ -31,6 +32,7 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, { type: Type.B, name: "unblur-in-overview" }, { type: Type.B, name: "force-light-text" }, { type: Type.B, name: "override-background" }, @@ -45,6 +47,7 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, { type: Type.B, name: "unblur-in-overview" }, { type: Type.B, name: "override-background" }, { type: Type.I, name: "style-dash-to-dock" }, @@ -57,6 +60,8 @@ export const KEYS = [ { type: Type.S, name: "pipeline" }, { type: Type.I, name: "sigma" }, { type: Type.D, name: "brightness" }, + { type: Type.I, name: "corner-radius" }, + { type: Type.B, name: "corner-when-maximized" }, { type: Type.I, name: "opacity" }, { type: Type.B, name: "dynamic-opacity" }, { type: Type.B, name: "blur-on-overview" }, @@ -187,4 +192,4 @@ export const DEPRECATED_KEYS = [ { type: Type.D, name: "noise-lightness" }, ] }, -]; \ No newline at end of file +]; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/settings_updater.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/settings_updater.js index 2affbc1..f81ce7d 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/settings_updater.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/settings_updater.js @@ -29,6 +29,7 @@ export function update_from_old_settings(gsettings) { if (!deprecated_component.CUSTOMIZE) { new_component.SIGMA = deprecated_preferences.SIGMA; new_component.BRIGHTNESS = deprecated_preferences.BRIGHTNESS; + new_component.CORNER_RADIUS = deprecated_preferences.CORNER_RADIUS; } }); @@ -37,4 +38,4 @@ export function update_from_old_settings(gsettings) { } preferences.settings.set_int('settings-version', CURRENT_SETTINGS_VERSION); -} \ No newline at end of file +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/utils.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/utils.js index 0277e0e..20def0b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/utils.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/conveniences/utils.js @@ -9,7 +9,11 @@ export const IS_IN_PREFERENCES = typeof global === 'undefined'; export async function import_in_shell_only(module) { if (IS_IN_PREFERENCES) return null; - return (await import(module)).default; + try { + return (await import(module)).default; + } catch (e) { + return null; + } } // In use for the effects, to prevent boilerplate code diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.glsl b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.glsl index 760798a..0b7b0fb 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.glsl +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.glsl @@ -7,6 +7,7 @@ uniform float width; uniform float height; uniform bool corners_top; uniform bool corners_bottom; +uniform bool straight_corners; uniform float clip_x0; uniform float clip_y0; @@ -65,7 +66,9 @@ float rounded_rect_coverage(vec2 p, vec4 bounds, float clip_radius) { float center_top = bounds.y + clip_radius; float center_bottom = bounds.w - clip_radius; - if (corners_top && p.y < center_top) + if (straight_corners) + return 1.0; + else if (corners_top && p.y < center_top) center.y = center_top + 2.; else if (corners_bottom && p.y > center_bottom) center.y = center_bottom - 1.; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.js index 109be12..1727e30 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/corner.js @@ -77,6 +77,7 @@ export const CornerEffect = utils.IS_IN_PREFERENCES ? this._clip_height = null; utils.setup_params(this, params); + this.straight_corners = false; // set shader source this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); @@ -165,6 +166,18 @@ export const CornerEffect = utils.IS_IN_PREFERENCES ? } } + get straight_corners() { + return this._straight_corners; + } + + set straight_corners(value) { + if (this._straight_corners !== value) { + this._straight_corners = value; + + this.set_uniform_value('straight_corners', this._straight_corners ? 1 : 0); + } + } + get clip() { return [this._clip_x0, this._clip_y0, this._clip_width, this._clip_height]; } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/effects.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/effects.js index e35588d..4ab5a71 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/effects.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/effects.js @@ -11,6 +11,7 @@ import { PixelizeEffect } from './pixelize.js'; import { DerivativeEffect } from './derivative.js'; import { RgbToHslEffect } from './rgb_to_hsl.js'; import { HslToRgbEffect } from './hsl_to_rgb.js'; +import { LuminosityEffect } from './luminosity.js'; // We do in this way because I've not found another way to store our preferences in a dictionnary // while calling `gettext` on it while in preferences. Not so pretty, but works. @@ -33,6 +34,7 @@ export function get_effects_groups(_ = _ => "") { "derivative", "noise", "color", + "luminosity", "rgb_to_hsl", "hsl_to_rgb" ] @@ -167,7 +169,8 @@ export function get_supported_effects(_ = () => "") { color: { name: _("Color"), description: _("The color to blend in. The blending amount is controled by the opacity of the color."), - type: "rgba" + type: "rgba", + use_alpha: true }, blend_mode: { name: _("Blend mode"), @@ -197,6 +200,65 @@ export function get_supported_effects(_ = () => "") { } }, + luminosity: { + class: LuminosityEffect, + name: _("Luminosity"), + description: _("An effect that affects the luminosity of the image."), + is_advanced: false, + editable_params: { + brightness_shift: { + name: _("Shift brightness"), + description: _("The brightness to add of remove to the image."), + type: "float", + min: -1., + max: 1., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + brightness_multiplicator: { + name: _("Multiply brightness"), + description: _("The brightness multiplicator of the image, so that 0 means no brightness and 2 means infinite brightness."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + contrast: { + name: _("Contrast"), + description: _("The contrast of the image in regard to the center of the contrast."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + contrast_center: { + name: _("Contrast center"), + description: _("The center of the contrast to use."), + type: "float", + min: 0., + max: 1., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + saturation_multiplicator: { + name: _("Saturation"), + description: _("The saturation of the image, so that 0 means no saturation and 2 means infinite saturation."), + type: "float", + min: 0., + max: 2., + increment: 0.01, + big_increment: 0.1, + digits: 2 + }, + } + }, + pixelize: { class: PixelizeEffect, name: _("Pixelize"), @@ -343,7 +405,7 @@ export function get_supported_effects(_ = () => "") { description: _("The radius of the corner. GNOME apps use a radius of 12 px by default."), type: "integer", min: 0, - max: 50, + max: 150, increment: 1, }, corners_top: { diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.glsl b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.glsl new file mode 100644 index 0000000..4c50ca4 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.glsl @@ -0,0 +1,33 @@ +uniform sampler2D tex; +uniform float brightness_shift; +uniform float brightness_multiplicator; +uniform float contrast; +uniform float contrast_center; +uniform float saturation_multiplicator; + +vec3 hsl_to_rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} + +vec3 rgb_to_hsl(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} + +void main() { + vec4 c = texture2D(tex, cogl_tex_coord_in[0].st); + + vec3 pix_hsl = rgb_to_hsl(c.xyz) / c.a; + pix_hsl.z = clamp(pix_hsl.z * brightness_multiplicator, 0., 1.); + pix_hsl.z = clamp((pix_hsl.z - contrast_center) * contrast + contrast_center + brightness_shift, 0., 1.); + pix_hsl.y = clamp(pix_hsl.y * saturation_multiplicator, 0., 1.); + + cogl_color_out = vec4(hsl_to_rgb(pix_hsl) * c.a, c.a); +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js new file mode 100644 index 0000000..c22636d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js @@ -0,0 +1,141 @@ +import GObject from 'gi://GObject'; + +import * as utils from '../conveniences/utils.js'; +const Shell = await utils.import_in_shell_only('gi://Shell'); +const Clutter = await utils.import_in_shell_only('gi://Clutter'); + +const SHADER_FILENAME = 'luminosity.glsl'; +const DEFAULT_PARAMS = { + brightness_shift: 0., brightness_multiplicator: 1., contrast: 1., contrast_center: 0.5, saturation_multiplicator: 1. +}; + + +export const LuminosityEffect = utils.IS_IN_PREFERENCES ? + { default_params: DEFAULT_PARAMS } : + new GObject.registerClass({ + GTypeName: "LuminosityEffect", + Properties: { + 'brightness_shift': GObject.ParamSpec.double( + `brightness_shift`, + `Brightness shift`, + `Brightness shift value in shader`, + GObject.ParamFlags.READWRITE, + -1.0, 1.0, + 0.0, + ), + 'brightness_multiplicator': GObject.ParamSpec.double( + `brightness_multiplicator`, + `Brightness multiplicator`, + `Brightness multiplicator value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + 'contrast': GObject.ParamSpec.double( + `contrast`, + `Contrast`, + `Contrast value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + 'contrast_center': GObject.ParamSpec.double( + `contrast_center`, + `Contrast center`, + `Contrast center value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 1.0, + 0.5, + ), + 'saturation_multiplicator': GObject.ParamSpec.double( + `saturation_multiplicator`, + `Saturation multiplicator`, + `Saturation multiplicator value in shader`, + GObject.ParamFlags.READWRITE, + 0.0, 2.0, + 1.0, + ), + } + }, class LuminosityEffect extends Clutter.ShaderEffect { + constructor(params) { + super(params); + + utils.setup_params(this, params); + + // set shader source + this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); + if (this._source) + this.set_shader_source(this._source); + } + + static get default_params() { + return DEFAULT_PARAMS; + } + + get brightness_shift() { + return this._brightness; + } + + set brightness_shift(value) { + if (this._brightness_shift !== value) { + this._brightness_shift = value; + + this.set_uniform_value('brightness_shift', parseFloat(this._brightness_shift - 1e-6)); + } + } + + + get brightness_multiplicator() { + return this._brightness_multiplicator; + } + + set brightness_multiplicator(value) { + if (this._brightness_multiplicator !== value) { + this._brightness_multiplicator = value; + + let brightness_mul = 600.; + if (value < 1.995) + brightness_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); + this.set_uniform_value('brightness_multiplicator', parseFloat(brightness_mul - 1e-6)); + } + } + + get contrast() { + return this._contrast; + } + + set contrast(value) { + if (this._contrast !== value) { + this._contrast = value; + + this.set_uniform_value('contrast', parseFloat(this._contrast - 1e-6)); + } + } + + get contrast_center() { + return this._contrast_center; + } + + set contrast_center(value) { + if (this._contrast_center !== value) { + this._contrast_center = value; + + this.set_uniform_value('contrast_center', parseFloat(this._contrast_center - 1e-6)); + } + } + + get saturation_multiplicator() { + return this._saturation_multiplicator; + } + + set saturation_multiplicator(value) { + if (this._saturation_multiplicator !== value) { + this._saturation_multiplicator = value; + + let saturation_mul = 600.; + if (value < 1.995) + saturation_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); + this.set_uniform_value('saturation_multiplicator', parseFloat(saturation_mul - 1e-6)); + } + } + }); \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl index 27b3806..c63d266 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl @@ -35,14 +35,14 @@ void main() { dir = vec2(cos(rv.y), sin(rv.y)); new_uv = uv + rv.x * dir * p; if (new_uv.x > 2. / width && new_uv.y > 2. / height && new_uv.x < 1. - 3. / width && new_uv.y < 1. - 3. / height) { - strength = prefer_closer_pixels ? (iterations - i)^2 : 1; + strength = prefer_closer_pixels ? ((iterations - i) * (iterations - i)) : 1; c += strength * texture2D(tex, new_uv); count += strength; } } if (count == 0 || use_base_pixel) { - strength = prefer_closer_pixels ? (iterations + 1)^2 : 1; + strength = prefer_closer_pixels ? ((iterations + 1) * (iterations + 1)) : 1; c += strength * texture2D(tex, uv); count += strength; } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js index 556ffa4..3df621b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/native_dynamic_gaussian_blur.js @@ -2,10 +2,17 @@ import GObject from 'gi://GObject'; import * as utils from '../conveniences/utils.js'; const St = await utils.import_in_shell_only('gi://St'); -const Shell = await utils.import_in_shell_only('gi://Shell'); + +let BlurOrShell = await utils.import_in_shell_only('gi://Blur'); +let IS_BLUR_MODULE = true; +if (BlurOrShell === null) { + BlurOrShell = await utils.import_in_shell_only('gi://Shell'); + IS_BLUR_MODULE = false; +} + const DEFAULT_PARAMS = { - unscaled_radius: 30, brightness: 0.6 + unscaled_radius: 30, brightness: 0.6, corner_radius: 14 }; @@ -13,15 +20,21 @@ export const NativeDynamicBlurEffect = utils.IS_IN_PREFERENCES ? { default_params: DEFAULT_PARAMS } : new GObject.registerClass({ GTypeName: "NativeDynamicBlurEffect" - }, class NativeDynamicBlurEffect extends Shell.BlurEffect { + }, class NativeDynamicBlurEffect extends BlurOrShell.BlurEffect { constructor(params) { - const { unscaled_radius, brightness, ...parent_params } = params; - super({ ...parent_params, mode: Shell.BlurMode.BACKGROUND }); + const { unscaled_radius, brightness, corner_radius, ...parent_params } = params; + if (IS_BLUR_MODULE) + super({ ...parent_params, mode: BlurOrShell.BlurMode.BACKGROUND, ...{ 'corner_radius': corner_radius } }); + else + super({ ...parent_params, mode: BlurOrShell.BlurMode.BACKGROUND }); this._theme_context = St.ThemeContext.get_for_stage(global.stage); this._theme_context.connectObject( 'notify::scale-factor', - _ => this.radius = this.unscaled_radius * this._theme_context.scale_factor, + _ => { + this.radius = this.unscaled_radius * this._theme_context.scale_factor; + this.corner_radius = this.unscaled_corner_radius * this._theme_context.scale_factor; + }, this ); @@ -40,4 +53,13 @@ export const NativeDynamicBlurEffect = utils.IS_IN_PREFERENCES ? this._unscaled_radius = value; this.radius = value * this._theme_context.scale_factor; } - }); \ No newline at end of file + + get unscaled_corner_radius() { + return this._unscaled_corner_radius; + } + + set unscaled_corner_radius(value) { + this._unscaled_corner_radius = value; + this.corner_radius = value * this._theme_context.scale_factor; + } + }); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js index fbfb54c..b94ac65 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js @@ -6,6 +6,7 @@ import * as Config from 'resource:///org/gnome/shell/misc/config.js'; import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'; import { update_from_old_settings } from './conveniences/settings_updater.js'; +import { import_in_shell_only} from './conveniences/utils.js'; import { PipelinesManager } from './conveniences/pipelines_manager.js'; import { EffectsManager } from './conveniences/effects_manager.js'; import { Connections } from './conveniences/connections.js'; @@ -22,6 +23,8 @@ import { CoverflowAltTabBlur } from './components/coverflow_alt_tab.js'; import { ApplicationsBlur } from './components/applications.js'; import { ScreenshotBlur } from './components/screenshot.js'; +const BlurModule = await import_in_shell_only('gi://Blur'); + /// The main extension class, created when the GNOME Shell is loaded. export default class BlurMyShell extends Extension { @@ -80,6 +83,9 @@ export default class BlurMyShell extends Extension { if (this._settings.lockscreen.BLUR && !this._lockscreen_blur.enabled) this._lockscreen_blur.enable(); + // update whether or not the external rounded corners library was found + this._update_rounded_blur_found(); + // ensure we take the correct action for the current session mode this._user_session_mode_enabled = false; this._on_session_mode_changed(Main.sessionMode); @@ -241,6 +247,19 @@ export default class BlurMyShell extends Extension { } } + /// Verify whether or not the gi://Blur library was found, in order to inform + /// the preferences and instruct the user to install it to have native rounded + /// corners in dynamic blur. + _update_rounded_blur_found() { + if (BlurModule === null) { + this._settings.ROUNDED_BLUR_FOUND = false; + this._log("using original implementation for the native blur effect") + } else { + this._settings.ROUNDED_BLUR_FOUND = true; + this._log("using external library for the native blur effect") + } + } + /// Add or remove the clutter debug flag to disable clipped redraws. /// This will entirely fix the blur effect, but should not be used except if /// the user really needs it, as clipped redraws are a huge performance @@ -488,6 +507,12 @@ export default class BlurMyShell extends Extension { this._applications_blur.change_pipeline(); }); + // rounded corners on maximized windows changed + this._settings.applications.CORNER_WHEN_MAXIMIZED_changed(() => { + if (this._settings.applications.BLUR) + this._applications_blur.update_all_corner_radii(); + }); + // application opacity changed this._settings.applications.OPACITY_changed(() => { if (this._settings.applications.BLUR) diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo index 7fd4c31..f2d9c65 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/af/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo index aac168e..91de0ee 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ar/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo index 9d8da30..4ee26cb 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/bg/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo index f804035..24e8c8e 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ca/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo index 8f46756..dd5449c 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/cs/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo index 923e3e6..2146336 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/de/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo index c671ffa..b7b834c 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/el/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo new file mode 100644 index 0000000..76f5653 Binary files /dev/null and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/eo/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo index 352d3bc..4d2e14b 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/es/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo index 4e50603..1aad6d7 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo index a3a72a3..170aa00 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/fr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo index d3801bb..cc8296a 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo index 45ed92c..a3069ab 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo index 40e34c4..d691689 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/hu/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo index 034f55a..57b3f28 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/id/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo index a6fc86a..8417c89 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/it/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo index 12d1d52..4d399d4 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ja/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo index f38aa09..8511645 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ka/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo index 9088bf3..f59c043 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ko/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo index 50cdf68..c602b17 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nb_NO/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo index a1a3517..0a4628a 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/nl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo index 47fc350..06f939a 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo index 10d3aa1..5c09505 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo index 3dcad8d..5bc86f8 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/pt_BR/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo index dd7822e..799ffb8 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ro/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo index f7ba1de..b04ae12 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ru/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo index 34b6505..c53d8a9 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sl/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo index c7bc46f..0d77d9b 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/sv/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo index 8fc6e3d..6503f17 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/ta/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo index 04fce82..46845e8 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/tr/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo index 9957d99..cfdddf3 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/uk/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo index 385f8fa..7a65c0e 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/vi/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo index 7b84952..7b5f217 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_CN/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo index 20e60f5..427900f 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/locale/zh_TW/LC_MESSAGES/blur-my-shell@aunetx.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/metadata.json index cce8059..f933c08 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/metadata.json @@ -24,5 +24,5 @@ ], "url": "https://github.com/aunetx/blur-my-shell", "uuid": "blur-my-shell@aunetx", - "version": 71 + "version": 72 } \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/applications.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/applications.js index a4dd5be..49d2245 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/applications.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/applications.js @@ -37,6 +37,11 @@ export const Applications = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', + 'corner_when_maximized_row', + 'corner_when_maximized', 'opacity', 'dynamic_opacity', 'blur_on_overview', @@ -97,6 +102,14 @@ export const Applications = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.applications.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); + this.preferences.applications.settings.bind( + 'corner-when-maximized', this._corner_when_maximized, 'active', + Gio.SettingsBindFlags.DEFAULT + ); // connect 'enable all' button to whitelist/blacklist visibility this._enable_all.bind_property( @@ -213,5 +226,9 @@ export const Applications = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + //this._corner_when_maximized_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/dash.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/dash.js index aae3768..147c135 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/dash.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/dash.js @@ -16,6 +16,9 @@ export const Dash = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', 'override_background', 'style_dash_to_dock', 'unblur_in_overview' @@ -54,6 +57,10 @@ export const Dash = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.dash_to_dock.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); this.preferences.dash_to_dock.settings.bind( 'override-background', this._override_background, 'enable-expansion', @@ -77,5 +84,7 @@ export const Dash = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/panel.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/panel.js index c49f323..1115710 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/panel.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/panel.js @@ -16,6 +16,9 @@ export const Panel = GObject.registerClass({ 'sigma', 'brightness_row', 'brightness', + 'corner_radius_not_found_row', + 'corner_radius_row', + 'corner_radius', 'unblur_in_overview', 'force_light_text', 'override_background', @@ -58,6 +61,10 @@ export const Panel = GObject.registerClass({ 'brightness', this._brightness, 'value', Gio.SettingsBindFlags.DEFAULT ); + this.preferences.panel.settings.bind( + 'corner-radius', this._corner_radius, 'value', + Gio.SettingsBindFlags.DEFAULT + ); this.preferences.panel.settings.bind( 'unblur-in-overview', this._unblur_in_overview, 'active', Gio.SettingsBindFlags.DEFAULT @@ -98,5 +105,7 @@ export const Panel = GObject.registerClass({ this._pipeline_choose_row.set_visible(is_static_blur); this._sigma_row.set_visible(!is_static_blur); this._brightness_row.set_visible(!is_static_blur); + this._corner_radius_row.set_visible(!is_static_blur && this.preferences.ROUNDED_BLUR_FOUND); + this._corner_radius_not_found_row.set_visible(!is_static_blur && !this.preferences.ROUNDED_BLUR_FOUND); } -}); \ No newline at end of file +}); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js index 130edfd..3a95d49 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/preferences/pipelines_management/effect_row.js @@ -154,18 +154,24 @@ export const EffectRow = GObject.registerClass({ width_request: 75, height_request: 45, show_editor: true, - use_alpha: true + use_alpha: param.use_alpha }); row.add_suffix(color_button); // set original color let c = color_button.get_rgba().copy(); - [c.red, c.green, c.blue, c.alpha] = this.get_effect_param(param_key); + if (param.use_alpha) + [c.red, c.green, c.blue, c.alpha] = this.get_effect_param(param_key); + else + [c.red, c.green, c.blue] = this.get_effect_param(param_key); color_button.set_rgba(c); // update on on 'color-set' color_button.connect( 'color-set', () => { let c = color_button.get_rgba(); - this.set_effect_param(param_key, [c.red, c.green, c.blue, c.alpha]); + if (param.use_alpha) + this.set_effect_param(param_key, [c.red, c.green, c.blue, c.alpha]); + else + this.set_effect_param(param_key, [c.red, c.green, c.blue]); } ); break; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/prefs.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/prefs.js index 43c4889..b3d7980 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/prefs.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/prefs.js @@ -1,5 +1,6 @@ import Gdk from 'gi://Gdk'; import Gtk from 'gi://Gtk'; +import Gio from 'gi://Gio'; import { ExtensionPreferences } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import { update_from_old_settings } from './conveniences/settings_updater.js'; @@ -34,6 +35,17 @@ export default class BlurMyShellPreferences extends ExtensionPreferences { // update from old settings, very important for hacks level specifically update_from_old_settings(this.getSettings()); + const actionGroup = new Gio.SimpleActionGroup(); + window.insert_action_group('link', actionGroup); + const action = new Gio.SimpleAction({ name: 'open-gnome-rounded-blur' }); + action.connect('activate', () => { + Gio.AppInfo.launch_default_for_uri( + 'https://github.com/aunetx/blur-my-shell/blob/master/scripts/GUIDE.md', + null + ); + }); + actionGroup.add_action(action); + const preferences = new Settings(KEYS, this.getSettings()); const pipelines_manager = new PipelinesManager(preferences); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/gschemas.compiled b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/gschemas.compiled index c2b6708..eb8b556 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/gschemas.compiled and b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/gschemas.compiled differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml index 7526e30..2c03cc9 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml @@ -84,6 +84,11 @@ 1 Level of hacks to use (from 0 to 2, 2 disabling clipped redraws entirely) + + + false + Boolean, set to true if a patched version of ShellBlurEffect was found + false @@ -226,6 +231,11 @@ 0.6 Brightness to use for the blur effect + + + 0 + Radius for the corner rounding effect + (0.,0.,0.,0.) @@ -338,7 +348,7 @@ - 12 + 18 Radius for the corner rounding effect @@ -376,6 +386,16 @@ 1. Brightness to use for the blur effect + + + 15 + Radius for the corner rounding effect + + + + false + Boolean, whether to keep rounding the corners of fullscreen and maximized window or not + (0.,0.,0.,0.) @@ -592,4 +612,4 @@ Boolean, whether to blur the original panel (if option selected) with Dash to Panel - \ No newline at end of file + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/applications.ui b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/applications.ui index 14c9364..e7b57fa 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/applications.ui +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/applications.ui @@ -109,6 +109,47 @@ To get the best results possible, although with reduced performances, you can ch + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + + + + Enable corner rounding on maximized and fullscreen + Corner rounding effect will keep being applied to maximized and fullscreen windows. + corner_when_maximized + + + + + center + + + + + Opacity @@ -268,6 +309,12 @@ Use * to match any sequence of characters (e.g., Firefox* or *Code*), and ? for 0.01 + + 0 + 150 + 1 + + 25 255 diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/dash.ui b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/dash.ui index b08a4d1..e95f606 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/dash.ui +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/dash.ui @@ -108,6 +108,32 @@ + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + Override background @@ -161,6 +187,12 @@ 1.0 0.01 + + + 0 + 150 + 1 + @@ -169,4 +201,4 @@ Dark - \ No newline at end of file + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/effects-dialog.ui b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/effects-dialog.ui index c6baf62..6428766 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/effects-dialog.ui +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/effects-dialog.ui @@ -62,6 +62,11 @@ + + + In order to have rounded corners on a component, add a “Corner” effect at the end of its pipeline. + + diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/panel.ui b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/panel.ui index 306f4ef..eb9df61 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/panel.ui +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/ui/panel.ui @@ -108,6 +108,32 @@ + + + Corner radius + In order to use rounded corners, please install the GNOME Rounded Blur library. + + open_gnome_rounded_blur + + + + external-link-symbolic + center + link.open-gnome-rounded-blur + + + + + + + + Corner radius + Radius for the corner rounding effect. + corner_radius + + + + Force light text @@ -237,4 +263,10 @@ Recommended unless you want to customize your GNOME theme. 1.0 0.01 + + + 0 + 150 + 1 + \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ProfileManager.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ProfileManager.js new file mode 100644 index 0000000..91233be --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ProfileManager.js @@ -0,0 +1,186 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; + +////////////////////////////////////////////////////////////////////////////////////////// +// Burn-My-Windows allows applying different sets of effect settings under specific // +// circumstances. These settings are called "effect profiles". The ProfileManager // +// provides access to all currently configured effect profiles. It can be used in both // +// the settings dialog and the in the actual extension. // +// The profiles are stored in ~/.config/burn-my-windows/profiles and can be accessed // +// via Gio.Settings objects. // +////////////////////////////////////////////////////////////////////////////////////////// + +export class ProfileManager { + // ------------------------------------------------------------------------- constructor + + constructor(metadata) { + this._metadata = metadata; + + this._makeProfilesDir(); + this.reloadProfiles(); + } + + // -------------------------------------------------------------------- public interface + + // Returns an array of effect profiles. Each effect profile is an object with two + // properties: The 'path' points to the file which contains the effect profile + // settings (located in ~/.config/burn-my-windows/profiles). The 'settings' property + // contains a Gio.Settings object for the profile. The former can be used to uniquely + // identify the profile, the latter can be used to access the profile's settings. This + // method will always return at least one profile. If none is configured, a default + // profile will be created. + getProfiles() { + if (this._profiles.length == 0) { + this.createProfile(); + } + + return this._profiles; + } + + // This will create a new profile. If no content is given, all values will be + // initialized to their defaults. The method will return an effect profile object (as + // described above). We will use the current system time in microseconds as profile + // name. This ensures that they are always sorted according to their creation date. + createProfile(content = '') { + const path = `${GLib.get_user_config_dir()}/burn-my-windows/profiles/${ + GLib.get_real_time()}.conf`; + const file = Gio.File.new_for_path(path); + file.create(Gio.FileCreateFlags.NONE, null); + + if (content != '') { + file.replace_contents(content, null, false, Gio.FileCreateFlags.REPLACE_DESTINATION, + null); + } + + const profile = {'path': path, 'settings': this._getProfileSettings(path)}; + + // Add the profile to our internal list of profiles. + this._profiles.push(profile); + + return profile; + } + + // Removes a profile defined by its file path. This will actually remove the file from + // the disk, so there's no going back. + deleteProfile(profilePath) { + const profileDir = `${GLib.get_user_config_dir()}/burn-my-windows/profiles`; + const file = Gio.File.new_for_path(profilePath); + if (file.has_prefix(Gio.File.new_for_path(profileDir)) && file.query_exists(null)) { + file.delete(null); + } + + // Remove the profile from our internal list of profiles. + this._profiles = this._profiles.filter(p => p.path != profilePath); + } + + // Reloads all profiles from ~/.config/burn-my-windows/profiles. If you called the + // createProfile() and deleteProfile() methods above, there is no need to reload the + // profiles. + reloadProfiles() { + const dir = + Gio.File.new_for_path(GLib.get_user_config_dir() + '/burn-my-windows/profiles'); + + const files = + dir.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null); + + let profilePaths = []; + + while (true) { + const presetInfo = files.next_file(null); + + if (presetInfo == null) { + break; + } + + if (presetInfo.get_file_type() == Gio.FileType.REGULAR) { + const suffixPos = presetInfo.get_display_name().indexOf('.conf'); + if (suffixPos > 0) { + profilePaths.push(dir.get_child(presetInfo.get_name()).get_path()); + } + } + } + + // Sort profiles alphabetically, that is by their creation time. + profilePaths.sort(); + + this._profiles = []; + + profilePaths.forEach(path => { + this._profiles.push({'path': path, 'settings': this._getProfileSettings(path)}); + }); + } + + // Each profile has a priority. It is higher, the more specific it is. + getProfilePriority(settings) { + let priority = 0; + + // If an application is specified, we increase the priority quite a lot. This makes + // sure that per-application overrides are used in most cases. + if (settings.get_string('profile-app') != '') priority += 10; + + // Each other setting which is not set to its default value increases the priority by + // one. + if (settings.get_int('profile-animation-type') > 0) ++priority; + if (settings.get_int('profile-window-type') > 0) ++priority; + if (settings.get_int('profile-color-scheme') > 0) ++priority; + if (settings.get_int('profile-power-mode') > 0) ++priority; + if (settings.get_int('profile-power-profile') > 0) ++priority; + + // Increase the priority significantly for high-priority profiles. + if (settings.get_boolean('profile-high-priority')) priority += 100; + + return priority; + } + + // ----------------------------------------------------------------------- private stuff + + // Creates the directory ~/.config/burn-my-windows/profiles if it does not yet exist. + _makeProfilesDir() { + const path = `${GLib.get_user_config_dir()}/burn-my-windows/profiles`; + const dir = Gio.File.new_for_path(path); + + if (!dir.query_exists(null)) { + dir.make_directory_with_parents(null); + } + } + + // Creates a Gio.Settings object for the given effect profile path. Based on + // https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/misc/extensionUtils.js#L213 + _getProfileSettings(profilePath) { + + // Expect USER extensions to have a schemas/ subfolder, otherwise assume a + // SYSTEM extension that has been installed in the same prefix as the shell + const schemaDir = this._metadata.dir.get_child('schemas'); + let source; + if (schemaDir.query_exists(null)) { + source = Gio.SettingsSchemaSource.new_from_directory( + schemaDir.get_path(), Gio.SettingsSchemaSource.get_default(), false); + } else { + source = Gio.SettingsSchemaSource.get_default(); + } + + const schema = + source.lookup('org.gnome.shell.extensions.burn-my-windows-profile', true); + + const backend = + Gio.keyfile_settings_backend_new(profilePath, '/org/gnome/shell/extensions/', null); + + return new Gio.Settings({settings_schema: schema, backend: backend}); + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/Shader.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/Shader.js new file mode 100644 index 0000000..b7a6377 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/Shader.js @@ -0,0 +1,231 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import Gio from 'gi://Gio'; +import Shell from 'gi://Shell'; +import Cogl from 'gi://Cogl'; +import GObject from 'gi://GObject'; +import Clutter from 'gi://Clutter'; +import Meta from 'gi://Meta'; + +import * as utils from './utils.js'; + +////////////////////////////////////////////////////////////////////////////////////////// +// This is the base class for all shaders of Burn-My-Windows. It automagically loads // +// the shader's source code from the resource file resources/shaders/.glsl and // +// ensures that some standard uniforms are always updated. // +// Using Shell.GLSLEffect as a base class has some benefits and some drawbacks. The // +// main benefit when compared to Clutter.ShaderEffect is that setting uniforms of types // +// vec2, vec3 or vec4 is supported via the API (with Clutter.ShaderEffect the GJS // +// binding does not work properly). However, there are two drawbacks: On the one hand, // +// the shader source code is cached statically - this means if we want to have a // +// different shader, we have to derive a new class. Therefore, each effect has to // +// derive its own class from the class below. This is encapsulated in the // +// ShaderFactory, however it is some really awkward code. The other drawback is the // +// hard-coded use of straight alpha (as opposed to premultiplied). This makes the // +// shaders a bit more complicated than required. // +// // +// The Shader fires three signals: // +// * begin-animation: This is called each time a new animation is started. It can // +// be used to set uniform values which do not change during the // +// animation. // +// * update-animation: This is called at each frame during the animation. It can be // +// used to set uniforms which change during the animation. // +// * end-animation: This is called when the animation is stopped. This can be // +// used to clean up any resources. +////////////////////////////////////////////////////////////////////////////////////////// + +export var Shader = GObject.registerClass({ + Signals: { + 'begin-animation': { + param_types: [ + Gio.Settings.$gtype, GObject.TYPE_BOOLEAN, GObject.TYPE_BOOLEAN, + Clutter.Actor.$gtype + ] + }, + 'update-animation': {param_types: [GObject.TYPE_DOUBLE]}, + 'end-animation': {} + } +}, + + class Shader extends Shell.GLSLEffect { + // -------------------------------------------- + // The constructor automagically loads the shader's source code (in + // vfunc_build_pipeline()) from the resource file resources/shaders/.glsl + // resolving any #includes in this file. + _init(nick) { + this._nick = nick; + + // This will call vfunc_build_pipeline(). + super._init(); + + // These will be updated during the animation. + this._progress = 0; + this._time = 0; + + // Store standard uniform locations. + this._uForOpening = this.get_uniform_location('uForOpening'); + this._uIsFullscreen = this.get_uniform_location('uIsFullscreen'); + this._uProgress = this.get_uniform_location('uProgress'); + this._uDuration = this.get_uniform_location('uDuration'); + this._uSize = this.get_uniform_location('uSize'); + this._uPadding = this.get_uniform_location('uPadding'); + + // Create a timeline to drive the animation. + this._timeline = new Clutter.Timeline(); + + // Call updateAnimation() once a frame. + this._timeline.connect('new-frame', (t) => { + if (this._testMode) { + this.updateAnimation(0.5); + } else { + this.updateAnimation(t.get_progress()); + } + }); + + // Clean up if the animation finished or was interrupted. + this._timeline.connect('stopped', (t, finished) => { + this.endAnimation(); + }); + } + + // This is called once each time the shader is used. + beginAnimation(settings, forOpening, testMode, duration, actor) { + if (this._timeline.is_playing()) { + this._timeline.stop(); + } + + // On GNOME 3.36 this method was not yet available. + if (this._timeline.set_actor) { + this._timeline.set_actor(actor); + } + + this._timeline.set_duration(duration); + this._timeline.start(); + + // Make sure that no fullscreen window is drawn over our animations. Since GNOME 48 + // this is a "global" method. + if (Meta.disable_unredirect_for_display) { + Meta.disable_unredirect_for_display(global.display); + } else { + global.compositor.disable_unredirect(); + } + + global.begin_work(); + + // Reset progress value. + this._progress = 0; + this._testMode = testMode; + + // This is not necessarily symmetric, but I haven't figured out a way to + // get the actual values... + const padding = (actor.width - actor.meta_window.get_frame_rect().width) / 2; + let isFullscreen = actor.meta_window.fullscreen; + + // is_maximized has been added in GNOME 49. + if (actor.meta_window.is_maximized) { + isFullscreen |= actor.meta_window.is_maximized(); + } else { + isFullscreen |= actor.meta_window.get_maximized() === Meta.MaximizeFlags.BOTH; + } + + this.set_uniform_float(this._uPadding, 1, [padding]); + this.set_uniform_float(this._uForOpening, 1, [forOpening]); + this.set_uniform_float(this._uIsFullscreen, 1, [isFullscreen]); + this.set_uniform_float(this._uDuration, 1, [duration * 0.001]); + this.set_uniform_float(this._uSize, 2, [actor.width, actor.height]); + + this.emit('begin-animation', settings, forOpening, testMode, actor); + } + + // This is called at each frame during the animation. + updateAnimation(progress) { + // Store the current progress value. The corresponding signal is emitted each frame + // in vfunc_paint_target. We do not emit it here, as the pipeline which may be used + // by handlers must not have been created yet. + this._progress = progress; + + this.queue_repaint(); + } + + // This will stop any running animation and emit the end-animation signal. + endAnimation() { + // This will call endAnimation() again, so we can return for now. + if (this._timeline.is_playing()) { + this._timeline.stop(); + return; + } + + // Restore unredirecting behavior for fullscreen windows. Since GNOME 48 this is a + // "global" method. + if (Meta.disable_unredirect_for_display) { + Meta.enable_unredirect_for_display(global.display); + } else { + global.compositor.enable_unredirect(); + } + global.end_work(); + + this.emit('end-animation'); + } + + // This is called by the constructor. This means, it's only called when the + // effect is used for the first time. + vfunc_build_pipeline() { + // Shell.GLSLEffect requires the declarations and the main source code as separate + // strings. As it's more convenient to store the in one GLSL file, we use a regex + // here to split the source code in two parts. + const code = this._loadShaderResource(`/shaders/${this._nick}.frag`); + + // Match anything between the curly brackets of "void main() {...}". + const regex = RegExp('void main *\\(\\) *\\{([\\S\\s]+)\\}'); + const match = regex.exec(code); + + const declarations = code.substr(0, match.index); + const main = match[1]; + + this.add_glsl_snippet( + Cogl.SnippetHook ? Cogl.SnippetHook.FRAGMENT : Shell.SnippetHook.FRAGMENT, + declarations, main, true); + } + + // We use this vfunc to trigger the update as it allows calling this.get_pipeline() in + // the handler. This could still be null if called from the updateAnimation() above. + vfunc_paint_target(...params) { + this.emit('update-animation', this._progress); + + // Starting with GNOME 44.2, the alpha channel is not written to by default. We need + // to undo this. It is a pity that we have to do this here, as it is not really + // required to be done each frame. But it's the only place where we can do it. + // https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650 + this.get_pipeline().set_blend( + 'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))'); + + this.set_uniform_float(this._uProgress, 1, [this._progress]); + super.vfunc_paint_target(...params); + } + + // --------------------------------------------------------------------- private stuff + + // This loads a GLSL file from the extension's resources to a JavaScript string. The + // code from "common.glsl" is prepended automatically. + _loadShaderResource(path) { + let common = utils.getStringResource('/shaders/common.glsl'); + let code = utils.getStringResource(path); + + // Add a trailing newline. Else the GLSL compiler complains... + return common + '\n' + code + '\n'; + } +}); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ShaderFactory.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ShaderFactory.js new file mode 100644 index 0000000..6056262 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/ShaderFactory.js @@ -0,0 +1,94 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import GObject from 'gi://GObject'; + +import {Shader} from './Shader.js'; + +////////////////////////////////////////////////////////////////////////////////////////// +// Each effect of Burn-My-Windows owns an instance of this class. It is used to create // +// shaders whenever a new one is required. It tries to re-use old shaders as much as // +// possible in order to avoid memory leaks. // +////////////////////////////////////////////////////////////////////////////////////////// + +export default class ShaderFactory { + + // Creates a new ShaderFactory. Requires the nick of the effect and a callback function + // which will be called whenever a new shader is created. + constructor(nick, setupFunc) { + // The _freeShaders array contains previously created shaders which are not currently + // in use. + this._freeShaders = []; + + // The nick of the effect is required when creating new shaders as it's part of the + // GLSL source code file name. + this._nick = nick; + + // Store the setup callback. + this._setupFunc = setupFunc; + } + + // ---------------------------------------------------------------- API for extension.js + + // This is called from extension.js whenever a window is opened or closed. It returns an + // instance of the shader class, trying to reuse previously created shaders. If a new + // shader instance is required, it calls creates a new one and calls the setupFunc + // thereafter. + getShader() { + let shader; + + // If there are currently no free shaders, we have to create a new one. + if (this._freeShaders.length == 0) { + + // Since Shell.GLSLEffect caches the shader source per class (not per instance), we + // have to derive a new shader type for each effect. The type name contains the nick + // of the effect to make it unique. + const typeName = `BurnMyWindowsShader_${this._nick}`; + + // Only try to register the new type once. + if (GObject.type_from_name(typeName) == null) { + const outerThis = this; + GObject.registerClass({GTypeName: typeName}, class ShaderImp extends Shader { + // This will actually load the GLSL source code from the resources. + _init() { + super._init(outerThis._nick); + } + + // This can be called to mark this instance to be re-usable. + returnToFactory() { + outerThis._freeShaders.push(this); + } + }); + } + + // Now create a niew instance of the newly registered shader type. + // GObject.Object.new is only available with newer versions of GJS. + if (GObject.Object.new) { + shader = GObject.Object.new(GObject.type_from_name(typeName), {}); + } else { + shader = GObject.Object.newv(GObject.type_from_name(typeName), []); + } + + // Call the provided setup callback. + this._setupFunc(shader); + + } else { + shader = this._freeShaders.pop(); + } + + return shader; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/WindowPicker.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/WindowPicker.js new file mode 100644 index 0000000..0f9b8d3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/WindowPicker.js @@ -0,0 +1,93 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-FileCopyrightText: Aurélien Hamy +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; + +import * as Main from 'resource:///org/gnome/shell/ui/main.js'; +import * as LookingGlass from 'resource:///org/gnome/shell/ui/lookingGlass.js'; + +import * as utils from './utils.js'; + +////////////////////////////////////////////////////////////////////////////////////////// +// This is based on the window-picking functionality of the Blur-My-Shell extension. // +// The PickWindow() method is exposed via the D-Bus and can be called by the // +// preferences dialog of the Burn-My-Windows extensions in order to initiate the window // +// picking. // +////////////////////////////////////////////////////////////////////////////////////////// + +export class WindowPicker { + // ------------------------------------------------------------------------- constructor + + constructor() { + const iFace = utils.getStringResource( + '/interfaces/org.gnome.shell.extensions.burn-my-windows.xml'); + this._dbus = Gio.DBusExportedObject.wrapJSObject(iFace, this); + } + + // --------------------------------------------------------------------- D-Bus interface + + // This method is exposed via the D-Bus. It is called by the preferences dialog of the + // Burn-My-Windows extensions in order to initiate the window picking. + PickWindow() { + + // We use the actor picking from LookingGlass. This seems a bit hacky and also allows + // selecting things of the Shell which are not windows, but it does the trick :) + const lookingGlass = Main.createLookingGlass(); + lookingGlass.open(); + lookingGlass.hide(); + + const inspector = new LookingGlass.Inspector(Main.createLookingGlass()); + inspector.connect('target', (me, target, x, y) => { + // Remove border effect when window is picked. + target.get_effects() + .filter(e => e.toString().includes('lookingGlass_RedBorderEffect')) + .forEach(e => target.remove_effect(e)); + + if (target.toString().includes('MetaSurfaceActor')) { + target = target.get_parent(); + } + + if (target.toString().includes('ContainerActor')) { + target = target.get_parent(); + } + + let wmClass = 'window-not-found'; + if (target.toString().includes('WindowActor') && + target.meta_window.get_wm_class() != '') { + wmClass = target.meta_window.get_wm_class(); + } + + this._dbus.emit_signal('WindowPicked', new GLib.Variant('(s)', [wmClass])); + }); + + // Close LookingGlass when we're done. + inspector.connect('closed', _ => lookingGlass.close()); + } + + // -------------------------------------------------------------------- public interface + + // Call this to make the window-picking API available on the D-Bus. + export() { + this._dbus.export(Gio.DBus.session, '/org/gnome/shell/extensions/BurnMyWindows'); + } + + // Call this to stop this D-Bus again. + unexport() { + this._dbus.unexport(); + } +}; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Apparition.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Apparition.js new file mode 100644 index 0000000..f770e71 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Apparition.js @@ -0,0 +1,103 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect hides the actor by violently sucking it into the void of magic. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uShake = shader.get_uniform_location('uShake'); + shader._uTwirl = shader.get_uniform_location('uTwirl'); + shader._uSuction = shader.get_uniform_location('uSuction'); + shader._uRandomness = shader.get_uniform_location('uRandomness'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uShake, 1, [settings.get_double('apparition-shake-intensity')]); + shader.set_uniform_float(shader._uTwirl, 1, [settings.get_double('apparition-twirl-intensity')]); + shader.set_uniform_float(shader._uSuction, 1, [settings.get_double('apparition-suction-intensity')]); + shader.set_uniform_float(shader._uRandomness, 1, [settings.get_double('apparition-randomness')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is not available on GNOME Shell 3.36 as it requires scaling of the window + // actor. + static getMinShellVersion() { + return [3, 38]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'apparition'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Apparition'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('apparition-randomness'); + dialog.bindAdjustment('apparition-animation-time'); + dialog.bindAdjustment('apparition-twirl-intensity'); + dialog.bindAdjustment('apparition-shake-intensity'); + dialog.bindAdjustment('apparition-suction-intensity'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 2.0, y: 2.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/AuraGlow.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/AuraGlow.js new file mode 100644 index 0000000..dd89e04 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/AuraGlow.js @@ -0,0 +1,163 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Justin Garza +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +// We import Gtk for the color preview in the preferences dialog. This is only available +// and required in the preferences process. +const Gtk = await utils.importInPrefsOnly('gi://Gtk'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect was inspired by apple's new siri effect. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSpeed = shader.get_uniform_location('uSpeed'); + shader._uRandomColor = shader.get_uniform_location('uRandomColor'); + shader._uStartHue = shader.get_uniform_location('uStartHue'); + shader._uSaturation = shader.get_uniform_location('uSaturation'); + shader._uEdgeSize = shader.get_uniform_location('uEdgeSize'); + shader._uEdgeHardness = shader.get_uniform_location('uEdgeHardness'); + shader._uBlur = shader.get_uniform_location('uBlur'); + shader._uSeed = shader.get_uniform_location('uSeed'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('aura-glow-speed')]); + shader.set_uniform_float(shader._uRandomColor, 1, [settings.get_boolean('aura-glow-random-color')]); + shader.set_uniform_float(shader._uStartHue, 1, [settings.get_double('aura-glow-start-hue')]); + shader.set_uniform_float(shader._uSaturation, 1, [settings.get_double('aura-glow-saturation')]); + shader.set_uniform_float(shader._uEdgeSize, 1, [settings.get_double('aura-glow-edge-size')]); + shader.set_uniform_float(shader._uEdgeHardness, 1, [settings.get_double('aura-glow-edge-hardness')]); + shader.set_uniform_float(shader._uBlur, 1, [settings.get_double('aura-glow-blur')]); + shader.set_uniform_float(shader._uSeed, 2, [Math.random(), Math.random()]); + // clang-format on + }); + }); + } + + + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'aura-glow'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Aura Glow'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('aura-glow-animation-time'); + dialog.bindAdjustment('aura-glow-speed'); + dialog.bindSwitch('aura-glow-random-color'); + dialog.bindAdjustment('aura-glow-start-hue'); + dialog.bindAdjustment('aura-glow-saturation'); + dialog.bindAdjustment('aura-glow-edge-size'); + dialog.bindAdjustment('aura-glow-edge-hardness'); + dialog.bindAdjustment('aura-glow-blur'); + + dialog.getBuilder() + .get_object('aura-glow-hue-preview') + .set_draw_func((area, cairo) => { + const hueScale = dialog.getBuilder().get_object('aura-glow-start-hue-slider'); + const satScale = dialog.getBuilder().get_object('aura-glow-saturation-slider'); + const [r, g, b] = Gtk.hsv_to_rgb(hueScale.get_value(), satScale.get_value(), 1); + const height = area.get_allocated_height(); + const width = area.get_allocated_width(); + cairo.setSourceRGB(r, g, b); + cairo.arc(width / 2, height / 2, width / 2, 0.0, 2 * Math.PI); + cairo.fill(); + }); + + function redrawHuePreview() { + dialog.getBuilder().get_object('aura-glow-hue-preview').queue_draw(); + } + + dialog.getBuilder() + .get_object('aura-glow-start-hue-slider') + .connect('value-changed', redrawHuePreview); + + dialog.getBuilder() + .get_object('aura-glow-saturation-slider') + .connect('value-changed', redrawHuePreview); + + // enable and disable the one slider + function enableDisablePref(dialog, state) { + dialog.getBuilder().get_object('aura-glow-start-hue-slider').set_sensitive(!state); + } + + const switchWidget = dialog.getBuilder().get_object('aura-glow-random-color'); + + // Connect to the "state-set" signal to update preferences dynamically based on + // the switch state. + switchWidget.connect('state-set', (widget, state) => { + enableDisablePref(dialog, state); // Update sensitivity when the state changes. + }); + + // Manually call the update function on startup, using the initial state of the + // switch. + const initialState = + switchWidget.get_active(); // Get the current state of the switch. + enableDisablePref(dialog, initialState); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/BrokenGlass.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/BrokenGlass.js new file mode 100644 index 0000000..94f7bc3 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/BrokenGlass.js @@ -0,0 +1,155 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Cogl = await utils.importInShellOnly('gi://Cogl'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect shatters the window into pieces. For an explanation how this works, look // +// further down in this file into the documentation of the Shader class. This effect is // +// not available on GNOME 3.3x, due to the limitation described in the documentation // +// of vfunc_paint_target further down in this file. // +// This shader creates a complex-looking effect with rather simple means. Here is how // +// it works: The window is drawn five times on top of each other (see the SHARD_LAYERS // +// constant in the GLSL code). Each layer only draws some of the shards, all layers // +// combined make up the entire window. The layers are then scaled, rotated, and moved // +// independently from each other - this creates the impression that all shards are // +// moving independently. In reality, there are only five groups of shards! Which shard // +// belongs to which layer is defined by the green channel of the texture // +// resources/img/shards.png. The red channel of the texture contains the distance to // +// the shard edges. This information is used to fade out the shards. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Create the texture in the first call. + if (!this._shardTexture) { + this._shardTexture = utils.getImageResource('/img/shards.png'); + } + + // Store all uniform locations. + shader._uShardTexture = shader.get_uniform_location('uShardTexture'); + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uEpicenter = shader.get_uniform_location('uEpicenter'); + shader._uShardScale = shader.get_uniform_location('uShardScale'); + shader._uBlowForce = shader.get_uniform_location('uBlowForce'); + shader._uGravity = shader.get_uniform_location('uGravity'); + + // And update all uniforms at the start of each animation. + shader.connect( + 'begin-animation', (shader, settings, forOpening, testMode, actor) => { + // Usually, the shards fly away from the center of the window. + let epicenterX = 0.5; + let epicenterY = 0.5; + + // However, if this option is set, we use the mouse pointer position. + if (!forOpening && settings.get_boolean('broken-glass-use-pointer')) { + const [x, y] = global.get_pointer(); + const [ok, localX, localY] = actor.transform_stage_point(x, y); + + if (ok) { + epicenterX = localX / actor.width; + epicenterY = localY / actor.height; + } + } + + // clang-format off + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uEpicenter, 2, [epicenterX, epicenterY]); + shader.set_uniform_float(shader._uShardScale, 1, [settings.get_double('broken-glass-scale')]); + shader.set_uniform_float(shader._uBlowForce, 1, [settings.get_double('broken-glass-blow-force')]); + shader.set_uniform_float(shader._uGravity, 1, [settings.get_double('broken-glass-gravity')]); + // clang-format on + }); + + // This is required to bind the shard texture for drawing. Sadly, this seems to be + // impossible under GNOME 3.3x as this.get_pipeline() is not available. It was + // called get_target() back then but this is not wrapped in GJS. + // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 + shader.connect('update-animation', (shader) => { + const pipeline = shader.get_pipeline(); + + // Use linear filtering for the window texture. + pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR, + Cogl.PipelineFilter.LINEAR); + + // Bind the shard texture. + pipeline.set_layer_texture(1, this._shardTexture.get_texture()); + pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT); + pipeline.set_uniform_1i(shader._uShardTexture, 1); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is only available on GNOME Shell 40+. + static getMinShellVersion() { + return [40, 0]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'broken-glass'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Broken Glass'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('broken-glass-animation-time'); + dialog.bindAdjustment('broken-glass-scale'); + dialog.bindAdjustment('broken-glass-gravity'); + dialog.bindAdjustment('broken-glass-blow-force'); + dialog.bindSwitch('broken-glass-use-pointer'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 2.0, y: 2.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Doom.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Doom.js new file mode 100644 index 0000000..7afa97c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Doom.js @@ -0,0 +1,112 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect melts your windows. Inspired by the legendary screen transitions of the // +// original Doom. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uActorScale = shader.get_uniform_location('uActorScale'); + shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale'); + shader._uVerticalScale = shader.get_uniform_location('uVerticalScale'); + shader._uPixelSize = shader.get_uniform_location('uPixelSize'); + + // Write all uniform values at the start of each animation. + shader.connect( + 'begin-animation', (shader, settings, forOpening, testMode, actor) => { + // For this effect, we scale the actor vertically so that it covers the entire + // screen. This ensures that the melted window will not be cut off. + let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height); + + // If we are currently performing integration test, nothing will be visible in + // the test images as the animation has passed the center of the window already. + // To fix this, we set the actor scale to a fixed low value when performing + // tests. + // clang-format off + shader.set_uniform_float(shader._uActorScale, 1, [testMode ? 1.0 : actorScale]); + shader.set_uniform_float(shader._uHorizontalScale, 1, [testMode ? 50.0 :settings.get_double('doom-horizontal-scale')]); + shader.set_uniform_float(shader._uVerticalScale, 1, [testMode ? 150.0 : settings.get_double('doom-vertical-scale')]); + shader.set_uniform_float(shader._uPixelSize, 1, [settings.get_int('doom-pixel-size')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is not available on GNOME Shell 3.36 as it requires scaling of the window + // actor. + static getMinShellVersion() { + return [3, 38]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'doom'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Doom'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('doom-animation-time'); + dialog.bindAdjustment('doom-horizontal-scale'); + dialog.bindAdjustment('doom-vertical-scale'); + dialog.bindAdjustment('doom-pixel-size'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + // For this effect, we scale the actor vertically so that it covers the entire screen. + // This ensures that the melted window will not be cut off. + static getActorScale(settings, forOpening, actor) { + let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height); + return {x: 1.0, y: actorScale}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeA.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeA.js new file mode 100644 index 0000000..3b1b84b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeA.js @@ -0,0 +1,95 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect looks a bit like the transporter effect from TOS. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uColor = shader.get_uniform_location('uColor'); + shader._uScale = shader.get_uniform_location('uScale'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('energize-a-color'))); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-a-scale')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'energize-a'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Energize A'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('energize-a-animation-time'); + dialog.bindAdjustment('energize-a-scale'); + dialog.bindColorButton('energize-a-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeB.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeB.js new file mode 100644 index 0000000..610a81c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/EnergizeB.js @@ -0,0 +1,96 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect looks a bit like the transporter effect from TNG. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uColor = shader.get_uniform_location('uColor'); + shader._uScale = shader.get_uniform_location('uScale'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('energize-b-color'))); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-b-scale')]); + // clang-format on + }); + }); + } + + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'energize-b'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Energize B'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('energize-b-animation-time'); + dialog.bindAdjustment('energize-b-scale'); + dialog.bindColorButton('energize-b-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Fire.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Fire.js new file mode 100644 index 0000000..07f2c2d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Fire.js @@ -0,0 +1,277 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +// modified by Justin Garza + +'use strict'; + +import Gio from 'gi://Gio'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect is a homage to the good old Compiz days. However, it is implemented // +// quite differently. While Compiz used a particle system, this effect uses a noise // +// shader. The noise is moved vertically over time and mapped to a configurable color // +// gradient. It is faded to transparency towards the edges of the window. In addition, // +// there are a couple of moving gradients which fade-in or fade-out the fire effect. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store all uniform locations. + shader._uGradient = [ + shader.get_uniform_location('uGradient1'), + shader.get_uniform_location('uGradient2'), + shader.get_uniform_location('uGradient3'), + shader.get_uniform_location('uGradient4'), + shader.get_uniform_location('uGradient5'), + ]; + + shader._u3DNoise = shader.get_uniform_location('u3DNoise'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uMovementSpeed = shader.get_uniform_location('uMovementSpeed'); + + shader._uRandomColor = shader.get_uniform_location('uRandomColor'); + shader._uSeed = shader.get_uniform_location('uSeed'); + + // And update all uniforms at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + for (let i = 1; i <= 5; i++) { + shader.set_uniform_float( + shader._uGradient[i - 1], 4, + utils.parseColor(settings.get_string('fire-color-' + i))); + } + + // clang-format off + shader.set_uniform_float(shader._u3DNoise, 1, [settings.get_boolean('fire-3d-noise')]); + shader.set_uniform_float(shader._uRandomColor, 1, [settings.get_boolean('fire-random-color')]); + shader.set_uniform_float(shader._uSeed, 1, [Math.random()]); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('fire-scale')]); + shader.set_uniform_float(shader._uMovementSpeed, 1, [settings.get_double('fire-movement-speed')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'fire'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Fire'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + + // Bind all properties. + dialog.bindAdjustment('fire-animation-time'); + dialog.bindAdjustment('fire-movement-speed'); + dialog.bindAdjustment('fire-scale'); + dialog.bindSwitch('fire-3d-noise'); + dialog.bindSwitch('fire-random-color'); + dialog.bindColorButton('fire-color-1'); + dialog.bindColorButton('fire-color-2'); + dialog.bindColorButton('fire-color-3'); + dialog.bindColorButton('fire-color-4'); + dialog.bindColorButton('fire-color-5'); + + // Connect the buttons only once. The bindPreferences can be called multiple times... + if (!Effect._isConnected) { + Effect._isConnected = true; + + // The fire-gradient-reset button needs to be bound explicitly. + dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => { + dialog.getProfileSettings().reset('fire-color-1'); + dialog.getProfileSettings().reset('fire-color-2'); + dialog.getProfileSettings().reset('fire-color-3'); + dialog.getProfileSettings().reset('fire-color-4'); + dialog.getProfileSettings().reset('fire-color-5'); + }); + + // Initialize the fire-preset dropdown. + Effect._createFirePresets(dialog); + } + + // enables and disables the color buttons + function enableDisableColorButtons(dialog, state) { + + for (let i = 1; i <= 5; i++) { + dialog.getBuilder().get_object('fire-color-' + i).set_sensitive(!state); + } + } + + const switchWidget = dialog.getBuilder().get_object('fire-random-color'); + if (switchWidget) { + // Connect to the "state-set" signal to update preferences dynamically based on + // the switch state. + switchWidget.connect('state-set', (widget, state) => { + enableDisableColorButtons(dialog, + state); // Update sensitivity when the state changes. + }); + + // Manually call the update function on startup, using the initial state of the + // switch. + const initialState = + switchWidget.get_active(); // Get the current state of the switch. + enableDisableColorButtons(dialog, initialState); + } else { + // Log an error if the switch widget is not found in the UI. + log('Error: \'fire-random-color\' switch widget not found.'); + } + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } + + // ----------------------------------------------------------------------- private stuff + + // This populates the preset dropdown menu for the fire options. + static _createFirePresets(dialog) { + dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => { + const presets = [ + { + name: _('Default Fire'), + scale: 1.0, + speed: 0.5, + color1: 'rgba(76, 51, 25, 0.0)', + color2: 'rgba(180, 55, 30, 0.7)', + color3: 'rgba(255, 76, 38, 0.9)', + color4: 'rgba(255, 166, 25, 1)', + color5: 'rgba(255, 255, 255, 1)' + }, + { + name: _('Hell Fire'), + scale: 1.5, + speed: 0.2, + color1: 'rgba(0,0,0,0)', + color2: 'rgba(103,7,80,0.5)', + color3: 'rgba(150,0,24,0.9)', + color4: 'rgb(255,200,0)', + color5: 'rgba(255, 255, 255, 1)' + }, + { + name: _('Dark and Smutty'), + scale: 1.0, + speed: 0.5, + color1: 'rgba(0,0,0,0)', + color2: 'rgba(36,3,0,0.5)', + color3: 'rgba(150,0,24,0.9)', + color4: 'rgb(255,177,21)', + color5: 'rgb(255,238,166)' + }, + { + name: _('Cold Breeze'), + scale: 1.5, + speed: -0.1, + color1: 'rgba(0,110,255,0)', + color2: 'rgba(30,111,180,0.24)', + color3: 'rgba(38,181,255,0.54)', + color4: 'rgba(34,162,255,0.84)', + color5: 'rgb(97,189,255)' + }, + { + name: _('Santa is Coming'), + scale: 0.4, + speed: -0.5, + color1: 'rgba(0,110,255,0)', + color2: 'rgba(208,233,255,0.24)', + color3: 'rgba(207,235,255,0.84)', + color4: 'rgb(208,243,255)', + color5: 'rgb(255,255,255)' + }, + // i don't think he'll notice if i sneak this in + { + name: _('Nuclear ☢️'), + scale: 1.5, + speed: 0.5, + color1: 'rgba(0,0,0,0)', + color2: 'rgba(2, 40, 0, 0.3)', + color3: 'rgba(0, 200, 50, 0.9)', + color4: 'rgba(255, 255, 0, 1.0)', + color5: 'rgba(255, 255, 255, 1.0)' + } + ]; + + const menu = Gio.Menu.new(); + const group = Gio.SimpleActionGroup.new(); + const groupName = 'fire-presets'; + + // Add all presets. + presets.forEach((preset, i) => { + const actionName = 'fire' + i; + menu.append(preset.name, groupName + '.' + actionName); + let action = Gio.SimpleAction.new(actionName, null); + + // Load the preset on activation. + action.connect('activate', () => { + dialog.getProfileSettings().set_double('fire-movement-speed', preset.speed); + dialog.getProfileSettings().set_double('fire-scale', preset.scale); + dialog.getProfileSettings().set_string('fire-color-1', preset.color1); + dialog.getProfileSettings().set_string('fire-color-2', preset.color2); + dialog.getProfileSettings().set_string('fire-color-3', preset.color3); + dialog.getProfileSettings().set_string('fire-color-4', preset.color4); + dialog.getProfileSettings().set_string('fire-color-5', preset.color5); + }); + + group.add_action(action); + }); + + dialog.getBuilder().get_object('fire-preset-button').set_menu_model(menu); + + const root = widget.get_root(); + root.insert_action_group(groupName, group); + }); + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Focus.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Focus.js new file mode 100644 index 0000000..7e18fd8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Focus.js @@ -0,0 +1,99 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Justin Garza JGarza9788@gmail.com +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect uses a blur effect to allow the window to focus in and out of view. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uBlurAmount = shader.get_uniform_location('uBlurAmount'); + shader._uBlurQuality = shader.get_uniform_location('uBlurQuality'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + shader.set_uniform_float(shader._uBlurAmount, 1, [ + settings.get_int('focus-blur-amount'), + ]); + + shader.set_uniform_float(shader._uBlurQuality, 1, [ + settings.get_int('focus-blur-quality'), + ]); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'focus'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Focus'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + // These connect the settings to the UI elements. Have a look at prefs.js + // on how to bind other types of UI elements. + dialog.bindAdjustment('focus-animation-time'); + dialog.bindAdjustment('focus-blur-amount'); + dialog.bindAdjustment('focus-blur-quality'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glide.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glide.js new file mode 100644 index 0000000..7aee968 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glide.js @@ -0,0 +1,101 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This very simple effect fades the window to transparency with subtle 3D effects. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uScale = shader.get_uniform_location('uScale'); + shader._uSquish = shader.get_uniform_location('uSquish'); + shader._uTilt = shader.get_uniform_location('uTilt'); + shader._uShift = shader.get_uniform_location('uShift'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('glide-scale')]); + shader.set_uniform_float(shader._uSquish, 1, [settings.get_double('glide-squish')]); + shader.set_uniform_float(shader._uTilt, 1, [settings.get_double('glide-tilt')]); + shader.set_uniform_float(shader._uShift, 1, [settings.get_double('glide-shift')]); + // clang-format on + }); + }); + } + + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'glide'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Glide'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('glide-animation-time'); + dialog.bindAdjustment('glide-scale'); + dialog.bindAdjustment('glide-squish'); + dialog.bindAdjustment('glide-tilt'); + dialog.bindAdjustment('glide-shift'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glitch.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glitch.js new file mode 100644 index 0000000..492d6e1 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Glitch.js @@ -0,0 +1,103 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect applies some intentional graphics issues to your windows. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uColor = shader.get_uniform_location('uColor'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uStrength = shader.get_uniform_location('uStrength'); + shader._uSpeed = shader.get_uniform_location('uSpeed'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uColor, 4, utils.parseColor(settings.get_string('glitch-color'))); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('glitch-scale')]); + shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('glitch-strength')]); + shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('glitch-speed')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'glitch'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Glitch'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('glitch-animation-time'); + dialog.bindAdjustment('glitch-scale'); + dialog.bindAdjustment('glitch-speed'); + dialog.bindAdjustment('glitch-strength'); + dialog.bindColorButton('glitch-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Hexagon.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Hexagon.js new file mode 100644 index 0000000..5adb59c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Hexagon.js @@ -0,0 +1,107 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect overlays a glowing hexagonal grid over the window. The grid cells then // +// gradually shrink until the window is fully dissolved. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uAdditiveBlending = shader.get_uniform_location('uAdditiveBlending'); + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uLineWidth = shader.get_uniform_location('uLineWidth'); + shader._uGlowColor = shader.get_uniform_location('uGlowColor'); + shader._uLineColor = shader.get_uniform_location('uLineColor'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uAdditiveBlending, 1, [settings.get_boolean('hexagon-additive-blending')]); + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('hexagon-scale')]); + shader.set_uniform_float(shader._uLineWidth, 1, [settings.get_double('hexagon-line-width')]); + shader.set_uniform_float(shader._uGlowColor, 4, utils.parseColor(settings.get_string('hexagon-glow-color'))); + shader.set_uniform_float(shader._uLineColor, 4, utils.parseColor(settings.get_string('hexagon-line-color'))); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'hexagon'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Hexagon'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('hexagon-animation-time'); + dialog.bindAdjustment('hexagon-scale'); + dialog.bindAdjustment('hexagon-line-width'); + dialog.bindColorButton('hexagon-line-color'); + dialog.bindColorButton('hexagon-glow-color'); + dialog.bindSwitch('hexagon-additive-blending'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Incinerate.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Incinerate.js new file mode 100644 index 0000000..beb1e06 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Incinerate.js @@ -0,0 +1,149 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect burns windows to ashes. The fire starts at a random position at the // +// window's boundary and then burns through the window in a circular shape. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uColor = shader.get_uniform_location('uColor'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uTurbulence = shader.get_uniform_location('uTurbulence'); + shader._uStartPos = shader.get_uniform_location('uStartPos'); + + // Write all uniform values at the start of each animation. + shader.connect( + 'begin-animation', (shader, settings, forOpening, testMode, actor) => { + // If we are currently performing integration test, the animation uses a fixed + // seed. + let seed = [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]; + + // If this option is set, we use the mouse pointer position. Because the actor + // position may change after the begin-animation signal is called, we set the + // uStartPos uniform during the update callback. + if (settings.get_boolean('incinerate-use-pointer')) { + shader._startPointerPos = global.get_pointer(); + shader._actor = actor; + + } else { + // Else, a random position along the window boundary is used as start position + // for the incinerate effect. + let startPos = seed[0] > seed[1] ? [seed[0], Math.floor(seed[1] + 0.5)] : + [Math.floor(seed[0] + 0.5), seed[1]]; + + shader.set_uniform_float(shader._uStartPos, 2, startPos); + + shader._startPointerPos = null; + } + + // clang-format off + shader.set_uniform_float(shader._uSeed, 2, seed); + shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('incinerate-color'))); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('incinerate-scale')]); + shader.set_uniform_float(shader._uTurbulence, 1, [settings.get_double('incinerate-turbulence')]); + // clang-format on + }); + + // If the mouse pointer position is used as start position, we set the uStartPos + // uniform during the update callback as the actor position may not be set up + // properly before the begin animation callback. + shader.connect('update-animation', (shader) => { + if (shader._startPointerPos) { + const [x, y] = shader._startPointerPos; + const [ok, localX, localY] = shader._actor.transform_stage_point(x, y); + + if (ok) { + let startPos = [ + Math.max(0.0, Math.min(1.0, localX / shader._actor.width)), + Math.max(0.0, Math.min(1.0, localY / shader._actor.height)) + ]; + shader.set_uniform_float(shader._uStartPos, 2, startPos); + } + } + }); + + // Make sure to drop the reference to the actor. + shader.connect('end-animation', (shader) => { + shader._actor = null; + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is available on all supported GNOME Shell versions. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'incinerate'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Incinerate'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('incinerate-animation-time'); + dialog.bindAdjustment('incinerate-scale'); + dialog.bindAdjustment('incinerate-turbulence'); + dialog.bindSwitch('incinerate-use-pointer'); + dialog.bindColorButton('incinerate-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Matrix.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Matrix.js new file mode 100644 index 0000000..45065ec --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Matrix.js @@ -0,0 +1,125 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// The Matrix shader multiplies a grid of random letters with some gradients which are // +// moving from top to bottom. The speed of the moving gradients is chosen randomly. // +// Also, there is a random delay making the gradients not drop all at the same time. // +// This effect is not available on GNOME 3.3x, due to the limitation described in the // +// documentation of vfunc_paint_target further down in this file. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Create the texture in the first call. + if (!this._fontTexture) { + this._fontTexture = utils.getImageResource('/img/matrixFont.png'); + } + + // Store uniform locations of newly created shaders. + shader._uFontTexture = shader.get_uniform_location('uFontTexture'); + shader._uTrailColor = shader.get_uniform_location('uTrailColor'); + shader._uTipColor = shader.get_uniform_location('uTipColor'); + shader._uLetterSize = shader.get_uniform_location('uLetterSize'); + shader._uRandomness = shader.get_uniform_location('uRandomness'); + shader._uOverShoot = shader.get_uniform_location('uOverShoot'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uTrailColor, 3, utils.parseColor(settings.get_string('matrix-trail-color'))); + shader.set_uniform_float(shader._uTipColor, 3, utils.parseColor(settings.get_string('matrix-tip-color'))); + shader.set_uniform_float(shader._uLetterSize, 1, [settings.get_int('matrix-scale')]); + shader.set_uniform_float(shader._uRandomness, 1, [settings.get_double('matrix-randomness')]); + shader.set_uniform_float(shader._uOverShoot, 1, [settings.get_double('matrix-overshoot')]); + // clang-format on + }); + + // This is required to bind the font texture for drawing. Sadly, this seems to be + // impossible under GNOME 3.3x as this.get_pipeline() is not available. It was + // called get_target() back then but this is not wrapped in GJS. + // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 + shader.connect('update-animation', (shader) => { + const pipeline = shader.get_pipeline(); + + // Bind the font texture. + pipeline.set_layer_texture(1, this._fontTexture.get_texture()); + pipeline.set_uniform_1i(shader._uFontTexture, 1); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is only available on GNOME Shell 40+. + static getMinShellVersion() { + return [40, 0]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'matrix'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Matrix'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('matrix-animation-time'); + dialog.bindAdjustment('matrix-scale'); + dialog.bindAdjustment('matrix-randomness'); + dialog.bindAdjustment('matrix-overshoot'); + dialog.bindColorButton('matrix-trail-color'); + dialog.bindColorButton('matrix-tip-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0 + settings.get_double('matrix-overshoot')}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Mushroom.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Mushroom.js new file mode 100644 index 0000000..a7ee166 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Mushroom.js @@ -0,0 +1,384 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Justin Garza JGarza9788@gmail.com +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +// Import the Gio module from the GNOME platform (GObject Introspection). +// This module provides APIs for I/O operations, settings management, and other core +// features. +import Gio from 'gi://Gio'; + +// Import utility functions from the local utils.js file. +// These utilities likely contain helper functions or shared logic used across the +// application. +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect is inspired by the old 8bit mario video games and the New Super Mario // +// Bros 2 specifically when mario gets the mushroom. i hope you enjoy this little blast // +// from the past. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // very basic effect... so nothing here + + shader._uGradient = [ + shader.get_uniform_location('uStarColor0'), + shader.get_uniform_location('uStarColor1'), + shader.get_uniform_location('uStarColor2'), + shader.get_uniform_location('uStarColor3'), + shader.get_uniform_location('uStarColor4'), + shader.get_uniform_location('uStarColor5'), + ]; + + + shader._uScaleStyle = shader.get_uniform_location('uScaleStyle'); + + shader._uSparkCount = shader.get_uniform_location('uSparkCount'); + shader._uSparkColor = shader.get_uniform_location('uSparkColor'); + shader._uSparkRotation = shader.get_uniform_location('uSparkRotation'); + + shader._uRaysColor = shader.get_uniform_location('uRaysColor'); + + shader._uRingCount = shader.get_uniform_location('uRingCount'); + shader._uRingRotation = shader.get_uniform_location('uRingRotation'); + shader._uStarCount = shader.get_uniform_location('uStarCount'); + + shader._uSeed = shader.get_uniform_location('uSeed'); + + // And update all uniforms at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + for (let i = 0; i <= 5; i++) { + shader.set_uniform_float( + shader._uGradient[i], 4, + utils.parseColor(settings.get_string('mushroom-star-color-' + i))); + } + + // clang-format off + shader.set_uniform_float(shader._uScaleStyle, 1, [settings.get_double('mushroom-scale-style')]); + shader.set_uniform_float(shader._uSparkCount, 1, [settings.get_int('mushroom-spark-count')]); + shader.set_uniform_float(shader._uSparkColor, 4, utils.parseColor(settings.get_string('mushroom-spark-color'))); + shader.set_uniform_float(shader._uSparkRotation, 1, [settings.get_double('mushroom-spark-rotation')]); + shader.set_uniform_float(shader._uRaysColor, 4, utils.parseColor(settings.get_string('mushroom-rays-color'))); + shader.set_uniform_float(shader._uRingCount, 1, [settings.get_int('mushroom-ring-count')]); + shader.set_uniform_float(shader._uRingRotation, 1, [settings.get_double('mushroom-ring-rotation')]); + shader.set_uniform_float(shader._uStarCount, 1, [settings.get_int('mushroom-star-count')]); + + shader.set_uniform_float(shader._uSeed, 2, [Math.random(), Math.random()]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'mushroom'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Mushroom'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + // Empty for now... Code is added here later in the tutorial! + dialog.bindAdjustment('mushroom-animation-time'); + // dialog.bindSwitch('mushroom-8bit-enable'); + + dialog.bindAdjustment('mushroom-scale-style'); + + dialog.bindAdjustment('mushroom-spark-count'); + dialog.bindColorButton('mushroom-spark-color'); + dialog.bindAdjustment('mushroom-spark-rotation'); + + dialog.bindColorButton('mushroom-rays-color'); + + dialog.bindAdjustment('mushroom-ring-count'); + dialog.bindAdjustment('mushroom-ring-rotation'); + dialog.bindAdjustment('mushroom-star-count'); + + dialog.bindColorButton('mushroom-star-color-0'); + dialog.bindColorButton('mushroom-star-color-1'); + dialog.bindColorButton('mushroom-star-color-2'); + dialog.bindColorButton('mushroom-star-color-3'); + dialog.bindColorButton('mushroom-star-color-4'); + dialog.bindColorButton('mushroom-star-color-5'); + + + // Ensure the button connections and other bindings happen only once, + // even if the bindPreferences function is called multiple times. + if (!Effect._isConnected) { + Effect._isConnected = true; + + // Bind the "reset-star-colors" button to reset all star colors to their default + // values. + dialog.getBuilder().get_object('reset-star-colors').connect('clicked', () => { + // Reset each mushroom star color setting. + dialog.getProfileSettings().reset('mushroom-star-color-0'); + dialog.getProfileSettings().reset('mushroom-star-color-1'); + dialog.getProfileSettings().reset('mushroom-star-color-2'); + dialog.getProfileSettings().reset('mushroom-star-color-3'); + dialog.getProfileSettings().reset('mushroom-star-color-4'); + dialog.getProfileSettings().reset('mushroom-star-color-5'); + }); + + + // Initialize the preset dropdown menu for mushroom star colors. + Effect._createMushroomPresets(dialog); + } + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } + + // ---------------------------------------------------------------- Presets + + // This function initializes the preset dropdown menu for configuring fire options. + // It defines multiple color presets for the "mushroom star" effect and sets up + // the logic to apply these presets when selected. + + static _createMushroomPresets(dialog) { + // Retrieve the builder object for the dialog and connect to the "realize" event of + // the button. + dialog.getBuilder() + .get_object('mushroom-star-color-preset-button') + .connect('realize', (widget) => { + // Define an array of color presets, each with a name and six color values (RGBA + // format). + const presets = [ + { + name: _('8Bit Plumber'), + ScaleStyle: 0.0, + SparkCount: 0, + SparkColor: 'rgba(255,255,255,0.0)', + SparkRotation: 0.33, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 0, + RingRotation: 0.0, + StarCount: 0, + color0: 'rgba(233,249,0,1.0)', + color1: 'rgba(233,249,0,1.0)', + color2: 'rgba(91,255,0,1.0)', + color3: 'rgba(91,255,0,1.0)', + color4: 'rgba(0,240,236,1.0)', + color5: 'rgba(0,240,236,1.0)', + }, + { + name: _('New Bros 2 🍄'), + ScaleStyle: 1.0, + SparkCount: 4, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,1.0)', + RingCount: 3, + RingRotation: 1.33, + StarCount: 5, + color0: 'rgba(233,249,0,1.0)', + color1: 'rgba(233,249,0,1.0)', + color2: 'rgba(91,255,0,1.0)', + color3: 'rgba(91,255,0,1.0)', + color4: 'rgba(0,240,236,1.0)', + color5: 'rgba(0,240,236,1.0)', + }, + { + name: + _('Red White and Blue 🇺🇸'), // A patriotic palette of red, white, and blue + ScaleStyle: 1.0, + SparkCount: 4, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 3, + RingRotation: 1.33, + StarCount: 5, + color0: 'rgba(255, 0, 0, 1.0)', + color1: 'rgba(255, 0, 0, 1.0)', + color2: 'rgba(255,255,255, 1.0)', + color3: 'rgba(255,255,255, 1.0)', + color4: 'rgba(0,0,255, 1.0)', + color5: 'rgba(0,0,255, 1.0)' + }, + { + name: _('Rainbow 🌈'), // A vivid rainbow spectrum of colors + ScaleStyle: 1.0, + SparkCount: 4, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 3, + RingRotation: 2.0, + StarCount: 7, + color0: 'rgba(255, 69, 58, 1.0)', // Bold Red + color1: 'rgba(255, 140, 0, 1.0)', // Bold Orange + color2: 'rgba(255, 223, 0, 1.0)', // Bold Yellow + color3: 'rgba(50, 205, 50, 1.0)', // Bold Green + color4: 'rgba(30, 144, 255, 1.0)', // Bold Blue + color5: 'rgba(148, 0, 211, 1.0)' // Bold Purple + }, + { + name: _('Cattuccino 😺'), // A soft pastel palette inspired by a + // cappuccino theme + ScaleStyle: 1.0, + SparkCount: 4, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 3, + RingRotation: 2.0, + StarCount: 7, + color0: 'rgba(239, 146, 160, 1.0)', + color1: 'rgba(246, 178, 138, 1.0)', + color2: 'rgba(240, 217, 169, 1.0)', + color3: 'rgba(175, 223, 159, 1.0)', + color4: 'rgba(149, 182, 246, 1.0)', + color5: 'rgba(205, 170, 247, 1.0)' + }, + { + name: _('Dracula 🦇'), // A dark palette inspired by the Dracula theme + ScaleStyle: 1.0, + SparkCount: 0, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 3, + RingRotation: 2.0, + StarCount: 7, + color0: 'rgba(40, 42, 54, 1.0)', // Dark Grey + color1: 'rgba(68, 71, 90, 1.0)', // Medium Grey + color2: 'rgba(90, 94, 119, 1.0)', // Light Grey + color3: 'rgba(90, 94, 119, 1.0)', // Light Grey + color4: 'rgba(68, 71, 90, 1.0)', // Medium Grey + color5: 'rgba(40, 42, 54, 1.0)' // Dark Grey + }, + { + name: _('Sparkle ✨'), // A dark palette inspired by the Dracula theme + ScaleStyle: 1.0, + SparkCount: 25, + SparkColor: 'rgba(255,255,255,1.0)', + SparkRotation: 0.3, + RayColor: 'rgba(255,255,255,0.0)', + RingCount: 0, + RingRotation: 1.33, + StarCount: 7, + color0: 'rgba(255,255,255,0.0)', + color1: 'rgba(255,255,255,0.0)', + color2: 'rgba(255,255,255,0.0)', + color3: 'rgba(255,255,255,0.0)', + color4: 'rgba(255,255,255,0.0)', + color5: 'rgba(255,255,255,0.0)', + } + ]; + + // Create a new menu model to hold the presets and an action group for handling + // selections. + const menu = Gio.Menu.new(); + const group = Gio.SimpleActionGroup.new(); + const groupName = 'mushroom-presets'; + + // Iterate over the presets to populate the menu. + presets.forEach((preset, i) => { + // Define an action name based on the preset index. + const actionName = 'mushroom' + i; + + // Append the preset name to the menu. + menu.append(preset.name, groupName + '.' + actionName); + + // Create a new action for the preset. + let action = Gio.SimpleAction.new(actionName, null); + + // Connect the action to a function that loads the preset colors into the + // dialog. + action.connect('activate', () => { + dialog.getProfileSettings().set_double('mushroom-scale-style', + preset.ScaleStyle); + dialog.getProfileSettings().set_int('mushroom-spark-count', + preset.SparkCount); + dialog.getProfileSettings().set_string('mushroom-spark-color', + preset.SparkColor); + dialog.getProfileSettings().set_double('mushroom-spark-rotation', + preset.SparkRotation); + dialog.getProfileSettings().set_string('mushroom-rays-color', + preset.RayColor); + dialog.getProfileSettings().set_int('mushroom-ring-count', preset.RingCount); + dialog.getProfileSettings().set_double('mushroom-ring-rotation', + preset.RingRotation); + dialog.getProfileSettings().set_int('mushroom-star-count', preset.StarCount); + + dialog.getProfileSettings().set_string('mushroom-star-color-0', + preset.color0); + dialog.getProfileSettings().set_string('mushroom-star-color-1', + preset.color1); + dialog.getProfileSettings().set_string('mushroom-star-color-2', + preset.color2); + dialog.getProfileSettings().set_string('mushroom-star-color-3', + preset.color3); + dialog.getProfileSettings().set_string('mushroom-star-color-4', + preset.color4); + dialog.getProfileSettings().set_string('mushroom-star-color-5', + preset.color5); + }); + + // Add the action to the action group. + group.add_action(action); + }); + + // Assign the populated menu to the preset button. + dialog.getBuilder() + .get_object('mushroom-star-color-preset-button') + .set_menu_model(menu); + + // Insert the action group into the root widget for handling the presets. + const root = widget.get_root(); + root.insert_action_group(groupName, group); + }); + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PaintBrush.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PaintBrush.js new file mode 100644 index 0000000..d352833 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PaintBrush.js @@ -0,0 +1,115 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Cogl = await utils.importInShellOnly('gi://Cogl'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect paints your windows with a thick paint brush. // +// This effect is not available on GNOME 3.3x, due to the limitation described in the // +// documentation of vfunc_paint_target further down in this file. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Create the texture in the first call. + if (!this._brushTexture) { + this._brushTexture = utils.getImageResource('/img/brush.png', true); + } + + // Store uniform locations of newly created shaders. + shader._uBrushTexture = shader.get_uniform_location('uBrushTexture'); + shader._uBrushSize = shader.get_uniform_location('uBrushSize'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + shader.set_uniform_float(shader._uBrushSize, 1, + [settings.get_int('paint-brush-size')]); + }); + + // This is required to bind the brush texture for drawing. Sadly, this seems to be + // impossible under GNOME 3.3x as this.get_pipeline() is not available. It was + // called get_target() back then but this is not wrapped in GJS. + // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 + shader.connect('update-animation', (shader) => { + const pipeline = shader.get_pipeline(); + + // Use linear filtering for the window texture. + pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR, + Cogl.PipelineFilter.LINEAR); + + // Bind the brush texture. + pipeline.set_layer_texture(1, this._brushTexture.get_texture()); + pipeline.set_uniform_1i(shader._uBrushTexture, 1); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is only available on GNOME Shell 40+. + static getMinShellVersion() { + return [40, 0]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'paint-brush'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Paint Brush'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('paint-brush-animation-time'); + dialog.bindAdjustment('paint-brush-size'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWheel.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWheel.js new file mode 100644 index 0000000..af74c72 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWheel.js @@ -0,0 +1,95 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This simple effect pixelates the window texture and hides the pixels in a wheel-like // +// fashion. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uPixelSize = shader.get_uniform_location('uPixelSize'); + shader._uSpokeCount = shader.get_uniform_location('uSpokeCount'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uPixelSize, 1, [settings.get_double('pixel-wheel-pixel-size')]); + shader.set_uniform_float(shader._uSpokeCount, 1, [settings.get_int('pixel-wheel-spoke-count')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'pixel-wheel'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Pixel Wheel'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('pixel-wheel-animation-time'); + dialog.bindAdjustment('pixel-wheel-pixel-size'); + dialog.bindAdjustment('pixel-wheel-spoke-count'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWipe.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWipe.js new file mode 100644 index 0000000..6f9a3bc --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/PixelWipe.js @@ -0,0 +1,120 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect pixelates the window texture and hides the pixels radially, starting // +// from the pointer position. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uPixelSize = shader.get_uniform_location('uPixelSize'); + shader._uStartPos = shader.get_uniform_location('uStartPos'); + + // Write all uniform values at the start of each animation. + shader.connect( + 'begin-animation', (shader, settings, forOpening, testMode, actor) => { + // Because the actor position may change after the begin-animation signal is + // called, we set the uStartPos uniform during the update callback. + shader._startPointerPos = global.get_pointer(); + shader._actor = actor; + + shader.set_uniform_float(shader._uPixelSize, 1, + [settings.get_int('pixel-wipe-pixel-size')]); + }); + + // We set the uStartPos uniform during the update callback as the actor position + // may not be set up properly before the begin animation callback. + shader.connect('update-animation', (shader) => { + if (shader._startPointerPos) { + const [x, y] = shader._startPointerPos; + const [ok, localX, localY] = shader._actor.transform_stage_point(x, y); + + if (ok) { + let startPos = [ + Math.max(0.0, Math.min(1.0, localX / shader._actor.width)), + Math.max(0.0, Math.min(1.0, localY / shader._actor.height)) + ]; + shader.set_uniform_float(shader._uStartPos, 2, startPos); + } + } + }); + + // Make sure to drop the reference to the actor. + shader.connect('end-animation', (shader) => { + shader._actor = null; + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'pixel-wipe'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Pixel Wipe'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('pixel-wipe-animation-time'); + dialog.bindAdjustment('pixel-wipe-pixel-size'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Pixelate.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Pixelate.js new file mode 100644 index 0000000..1730b59 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Pixelate.js @@ -0,0 +1,95 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This very simple effect pixelates the window texture and randomly hides pixels until // +// the entire window is gone. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uNoise = shader.get_uniform_location('uNoise'); + shader._uPixelSize = shader.get_uniform_location('uPixelSize'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uNoise, 1, [settings.get_double('pixelate-noise')]); + shader.set_uniform_float(shader._uPixelSize, 1, [settings.get_int('pixelate-pixel-size')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'pixelate'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Pixelate'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('pixelate-animation-time'); + dialog.bindAdjustment('pixelate-noise'); + dialog.bindAdjustment('pixelate-pixel-size'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Portal.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Portal.js new file mode 100644 index 0000000..21f7a4e --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Portal.js @@ -0,0 +1,105 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This ridiculous effect teleports your windows from and to alternative dimensions. // +// It may resemble the portal from a well-known cartoon series... // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uColor = shader.get_uniform_location('uColor'); + shader._uDetails = shader.get_uniform_location('uDetails'); + shader._uRotationSpeed = shader.get_uniform_location('uRotationSpeed'); + shader._uWhirling = shader.get_uniform_location('uWhirling'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('portal-color'))); + shader.set_uniform_float(shader._uDetails, 1, [settings.get_double('portal-details')]); + shader.set_uniform_float(shader._uRotationSpeed, 1, [settings.get_double('portal-rotation-speed')]); + shader.set_uniform_float(shader._uWhirling, 1, [settings.get_double('portal-whirling')]); + // clang-format on + }); + }); + } + + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'portal'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Portal'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('portal-animation-time'); + dialog.bindAdjustment('portal-rotation-speed'); + dialog.bindAdjustment('portal-whirling'); + dialog.bindAdjustment('portal-details'); + dialog.bindColorButton('portal-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/RGBWarp.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/RGBWarp.js new file mode 100644 index 0000000..e8ab802 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/RGBWarp.js @@ -0,0 +1,100 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Justin Garza JGarza9788@gmail.com +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect warps the Red Green Blue values // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uBrightness = shader.get_uniform_location('uBrightness'); + shader._uSpeedR = shader.get_uniform_location('uSpeedR'); + shader._uSpeedG = shader.get_uniform_location('uSpeedG'); + shader._uSpeedB = shader.get_uniform_location('uSpeedB'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uBrightness, 1, [settings.get_double('rgbwarp-brightness')]); + shader.set_uniform_float(shader._uSpeedR, 1, [settings.get_double('rgbwarp-speed-r')]); + shader.set_uniform_float(shader._uSpeedG, 1, [settings.get_double('rgbwarp-speed-g')]); + shader.set_uniform_float(shader._uSpeedB, 1, [settings.get_double('rgbwarp-speed-b')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'rgbwarp'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('RGB Warp'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('rgbwarp-animation-time'); + dialog.bindAdjustment('rgbwarp-brightness'); + dialog.bindAdjustment('rgbwarp-speed-r'); + dialog.bindAdjustment('rgbwarp-speed-g'); + dialog.bindAdjustment('rgbwarp-speed-b'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/SnapOfDisintegration.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/SnapOfDisintegration.js new file mode 100644 index 0000000..3bb4417 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/SnapOfDisintegration.js @@ -0,0 +1,126 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Cogl = await utils.importInShellOnly('gi://Cogl'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effects dissolves your windows into a cloud of dust. For this, it uses an // +// approach similar to the Broken Glass effect. A dust texture is used to segment the // +// window texture into a set of layers. Each layer is then moved, sheared and scaled // +// randomly. Just a few layers are sufficient to create the illusion of many individual // +// dust particles. // +// This effect is not available on GNOME 3.3x, due to the limitation described in the // +// documentation of vfunc_paint_target further down in this file. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Create the texture in the first call. + if (!this._dustTexture) { + this._dustTexture = utils.getImageResource('/img/dust.png'); + } + + // Store uniform locations of newly created shaders. + shader._uDustTexture = shader.get_uniform_location('uDustTexture'); + shader._uDustColor = shader.get_uniform_location('uDustColor'); + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uDustScale = shader.get_uniform_location('uDustScale'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uDustColor, 4, utils.parseColor(settings.get_string('snap-color'))); + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uDustScale, 1, [settings.get_double('snap-scale')]); + // clang-format on + }); + + // This is required to bind the dust texture for drawing. Sadly, this seems to be + // impossible under GNOME 3.3x as this.get_pipeline() is not available. It was + // called get_target() back then but this is not wrapped in GJS. + // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 + shader.connect('update-animation', (shader) => { + const pipeline = shader.get_pipeline(); + + // Use linear filtering for the window texture. + pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR, + Cogl.PipelineFilter.LINEAR); + + // Bind the dust texture. + pipeline.set_layer_texture(1, this._dustTexture.get_texture()); + pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT); + pipeline.set_uniform_1i(shader._uDustTexture, 1); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is only available on GNOME Shell 40+. + static getMinShellVersion() { + return [40, 0]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'snap'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Snap of Disintegration'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('snap-animation-time'); + dialog.bindAdjustment('snap-scale'); + dialog.bindColorButton('snap-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.2, y: 1.2}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TRexAttack.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TRexAttack.js new file mode 100644 index 0000000..3c7f278 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TRexAttack.js @@ -0,0 +1,128 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Cogl = await utils.importInShellOnly('gi://Cogl'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect tears your windows apart with a series of violent scratches! // +// This effect is not available on GNOME 3.3x, due to the limitation described in the // +// documentation of vfunc_paint_target further down in this file. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Create the texture in the first call. + if (!this._clawTexture) { + this._clawTexture = utils.getImageResource('/img/claws.png'); + } + + // Store uniform locations of newly created shaders. + shader._uClawTexture = shader.get_uniform_location('uClawTexture'); + shader._uFlashColor = shader.get_uniform_location('uFlashColor'); + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uClawSize = shader.get_uniform_location('uClawSize'); + shader._uNumClaws = shader.get_uniform_location('uNumClaws'); + shader._uWarpIntensity = shader.get_uniform_location('uWarpIntensity'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uFlashColor, 4, utils.parseColor(settings.get_string('trex-scratch-color'))); + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uClawSize, 1, [settings.get_double('trex-scratch-scale')]); + shader.set_uniform_float(shader._uNumClaws, 1, [settings.get_int('trex-scratch-count')]); + shader.set_uniform_float(shader._uWarpIntensity, 1, [settings.get_double('trex-scratch-warp')]); + // clang-format on + }); + + // This is required to bind the claw texture for drawing. Sadly, this seems to be + // impossible under GNOME 3.3x as this.get_pipeline() is not available. It was + // called get_target() back then but this is not wrapped in GJS. + // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 + shader.connect('update-animation', (shader) => { + const pipeline = shader.get_pipeline(); + + // Use linear filtering for the window texture. + pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR, + Cogl.PipelineFilter.LINEAR); + + // Bind the claw texture. + pipeline.set_layer_texture(1, this._clawTexture.get_texture()); + pipeline.set_uniform_1i(shader._uClawTexture, 1); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // This effect is only available on GNOME Shell 40+. + static getMinShellVersion() { + return [40, 0]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'trex'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('T-Rex Attack'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('trex-animation-time'); + dialog.bindColorButton('trex-scratch-color'); + dialog.bindAdjustment('trex-scratch-scale'); + dialog.bindAdjustment('trex-scratch-count'); + dialog.bindAdjustment('trex-scratch-warp'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + const scale = 1.0 + 0.5 * settings.get_double('trex-scratch-warp'); + return {x: scale, y: scale}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVEffect.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVEffect.js new file mode 100644 index 0000000..f551f6f --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVEffect.js @@ -0,0 +1,93 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect hides the actor by making it first transparent from top and bottom // +// towards the middle and then hiding the resulting line from left and right towards // +// the center. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uColor = shader.get_uniform_location('uColor'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + shader.set_uniform_float( + shader._uColor, 4, utils.parseColor(settings.get_string('tv-effect-color'))); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'tv'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('TV Effect'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('tv-animation-time'); + dialog.bindColorButton('tv-effect-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVGlitch.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVGlitch.js new file mode 100644 index 0000000..b50fa8d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TVGlitch.js @@ -0,0 +1,104 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect combines the Glitch and the TV Effect. Credits go to Kurt Wilson // +// (https://github.com/Kurtoid) for this idea! // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uColor = shader.get_uniform_location('uColor'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uStrength = shader.get_uniform_location('uStrength'); + shader._uSpeed = shader.get_uniform_location('uSpeed'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + // clang-format off + shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uColor, 4, utils.parseColor(settings.get_string('tv-glitch-color'))); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('tv-glitch-scale')]); + shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('tv-glitch-strength')]); + shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('tv-glitch-speed')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-close-effect'), and its animation time + // (e.g. '*-animation-time'). + static getNick() { + return 'tv-glitch'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('TV Glitch'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('tv-glitch-animation-time'); + dialog.bindAdjustment('tv-glitch-scale'); + dialog.bindAdjustment('tv-glitch-speed'); + dialog.bindAdjustment('tv-glitch-strength'); + dialog.bindColorButton('tv-glitch-color'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TeamRocket.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TeamRocket.js new file mode 100644 index 0000000..c1d54d8 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/TeamRocket.js @@ -0,0 +1,114 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Justin Garza JGarza9788@gmail.com +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import the ShaderFactory only in the Shell process as it is not required in the +// preferences process. The preferences process does not create any shader instances, it +// only uses the static metadata of the effect. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect was inspired by Team Rocket Blasting Off again! // +// https://c.tenor.com/0ag0MVXUaQEAAAAd/tenor.gif // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uAnimationSplit = shader.get_uniform_location('uAnimationSplit'); + shader._uHorizontalSparklePosition = + shader.get_uniform_location('uHorizontalSparklePosition'); + shader._uVerticalSparklePosition = + shader.get_uniform_location('uVerticalSparklePosition'); + shader._uWindowRotation = shader.get_uniform_location('uWindowRotation'); + shader._uSparkleRot = shader.get_uniform_location('uSparkleRot'); + shader._uSparkleSize = shader.get_uniform_location('uSparkleSize'); + + shader._uSeed = shader.get_uniform_location('uSeed'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uAnimationSplit, 1, [settings.get_double('team-rocket-animation-split')]); + shader.set_uniform_float(shader._uHorizontalSparklePosition, 1, [settings.get_double('team-rocket-horizontal-sparkle-position')]); + shader.set_uniform_float(shader._uVerticalSparklePosition, 1, [settings.get_double('team-rocket-vertical-sparkle-position')]); + shader.set_uniform_float(shader._uWindowRotation, 1, [settings.get_boolean('team-rocket-window-rotation')]); + shader.set_uniform_float(shader._uSparkleRot, 1, [settings.get_double('team-rocket-sparkle-rot')]); + shader.set_uniform_float(shader._uSparkleSize, 1, [settings.get_double('team-rocket-sparkle-size')]); + // clang-format on + + // This will be used with a hash function to get a random number. + shader.set_uniform_float(shader._uSeed, 2, [Math.random(), Math.random()]); + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-enable-effect'), and its animation time + // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be + // named likes this. + static getNick() { + return 'team-rocket'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Team Rocket'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('team-rocket-animation-time'); + dialog.bindAdjustment('team-rocket-animation-split'); + dialog.bindAdjustment('team-rocket-horizontal-sparkle-position'); + dialog.bindAdjustment('team-rocket-vertical-sparkle-position'); + dialog.bindSwitch('team-rocket-window-rotation'); + dialog.bindAdjustment('team-rocket-sparkle-rot'); + dialog.bindAdjustment('team-rocket-sparkle-size'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Wisps.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Wisps.js new file mode 100644 index 0000000..aa8482c --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/effects/Wisps.js @@ -0,0 +1,120 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import * as utils from '../utils.js'; + +// We import some modules only in the Shell process as they are not available in the +// preferences process. They are used only in the creator function of the ShaderFactory +// which is only called within GNOME Shell's process. +const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js'); +const Clutter = await utils.importInShellOnly('gi://Clutter'); + +const _ = await utils.importGettext(); + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect lets your windows be carried to the realm of dreams by some little // +// fairies. It's implemented with several overlaid grids of randomly moving points. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +export default class Effect { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uSeed = shader.get_uniform_location('uSeed'); + shader._uScale = shader.get_uniform_location('uScale'); + shader._uColor = [ + shader.get_uniform_location('uColor1'), + shader.get_uniform_location('uColor2'), + shader.get_uniform_location('uColor3'), + ]; + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { + for (let i = 1; i <= 3; i++) { + shader.set_uniform_float( + shader._uColor[i - 1], 3, + utils.parseColor(settings.get_string('wisps-color-' + i))); + } + + // clang-format off + shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('wisps-scale')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + static getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. the '*-enable-effect'). + static getNick() { + return 'wisps'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + static getLabel() { + return _('Wisps'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog whenever a new effect profile is loaded. It + // binds all user interface elements to the respective settings keys of the profile. + static bindPreferences(dialog) { + dialog.bindAdjustment('wisps-animation-time'); + dialog.bindAdjustment('wisps-scale'); + dialog.bindColorButton('wisps-color-1'); + dialog.bindColorButton('wisps-color-2'); + dialog.bindColorButton('wisps-color-3'); + + // Connect the buttons only once. The bindPreferences can be called multiple times... + if (!this._isConnected) { + this._isConnected = true; + + // The wisps-color-reset button needs to be bound explicitly. + dialog.getBuilder().get_object('reset-wisps-colors').connect('clicked', () => { + dialog.getProfileSettings().reset('wisps-color-1'); + dialog.getProfileSettings().reset('wisps-color-2'); + dialog.getProfileSettings().reset('wisps-color-3'); + }); + } + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + static getActorScale(settings, forOpening, actor) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/migrate.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/migrate.js new file mode 100644 index 0000000..6cc92b7 --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/migrate.js @@ -0,0 +1,227 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import {ProfileManager} from './ProfileManager.js'; +import * as utils from './utils.js'; + +// Migrating from pre-27 versions is pretty involved. Before, all settings were stored in +// the standard Gio.Settings backend. Now, there are effect profiles. Depending on the +// settings one or two profiles may be required. +export async function fromVersion26() { + return utils + .executeCommand(['dconf', 'dump', '/org/gnome/shell/extensions/burn-my-windows/']) + .catch(r => utils.debug('Failed to get old settings for effect migration: ' + r)) + .then(r => { + // If there were no settings before, we do not have to migrate anything. Just use + // the new defaults. + if (r == '') { + return; + } + + utils.debug('Starting Burn-My-Windows profile migration (old version <= 26)!'); + + // We use this to write the new profiles. + const profileManager = new ProfileManager(); + + // The default value of this was false, so not-present is equal to false. + const destroyDialogs = r.includes('destroy-dialogs=true'); + if (!destroyDialogs) { + utils.debug('Only normal windows will be burned by the new profile(s).'); + } + + // The default value of this was false, so not-present is equal to false. + const disableOnBattery = r.includes('disable-on-battery=true'); + if (disableOnBattery) { + utils.debug('The new profile(s) will not be active on battery.'); + } + + // The default value of this was false, so not-present is equal to false. + const disableOnPowerSave = r.includes('disable-on-power-save=true'); + if (disableOnPowerSave) { + utils.debug('The new profile(s) will not be active in power-save mode.'); + } + + // Remove some unnecessary lines. + r = r.replace(/^active-profile=.*\n?/gm, ''); + r = r.replace(/^test-mode=.*\n?/gm, ''); + r = r.replace(/^last-extension-version=.*\n?/gm, ''); + r = r.replace(/^last-prefs-version=.*\n?/gm, ''); + r = r.replace(/^destroy-dialogs=.*\n?/gm, ''); + r = r.replace(/^disable-on-battery=.*\n?/gm, ''); + r = r.replace(/^disable-on-power-save=.*\n?/gm, ''); + r = r.replace(/^.*-preview-.*\n?/gm, ''); + r = r.replace('[/]\n', ''); + r = r.trim(); + + // There were some inconsistencies in the key names. The update fixes them. + r.replace('flame-', 'fire-'); + r.replace('claw-', 'trex-'); + + // Find all effects which were used for openeing and closing. This first extracts + // all lines which end in "-open-effect=true" and then remove this suffix from the + // lines. This leaves only the effect nicks. + let lines = r.split('\n'); + let openEffects = lines.filter(l => l.includes('-open-effect=true')) + .map(l => l.replace('-open-effect=true', '')); + let closeEffects = lines.filter(l => l.includes('-close-effect=true')) + .map(l => l.replace('-close-effect=true', '')); + + // The fire-close effect is enabled per default, so we have to add it if it's not + // explicitly disabled. + if (!r.includes('fire-close-effect=false') && !closeEffects.includes('fire')) { + closeEffects.push('fire'); + } + + // Print all effects we've found. + utils.debug('Enabled open effects: ' + openEffects); + utils.debug('Enabled close effects: ' + closeEffects); + + // If the same effects were used for opening and closing windows or there is either + // no opening or no closing animation configured, only one profile is required. Else + // we have to create two new profiles. + const numProfiles = openEffects.join() == closeEffects.join() ? 1 : 2; + if (numProfiles == 1) { + utils.debug('Only one profile is required.'); + } else if (closeEffects.length == 0) { + utils.debug('Only a window-open profile is required.'); + } else if (openEffects.length == 0) { + utils.debug('Only a window-close profile is required.'); + } else { + utils.debug('Two profiles are required.'); + } + + // Remove all open / close lines. + const profileLines = + lines.filter(l => !l.includes('-close-effect=') && !l.includes('-open-effect=')); + + // Add the header. + profileLines.unshift('[burn-my-windows-profile]'); + + // Push the line which makes the profile only apply to normal windows. + if (!destroyDialogs) { + profileLines.push('profile-window-type=1'); + } + + // Push the line which makes the profile only active when plugged in. + if (disableOnBattery) { + profileLines.push('profile-power-mode=2'); + } + + // Push the line which makes the profile only active when on balanced or performance + // mode. + if (disableOnPowerSave) { + profileLines.push('profile-power-profile=5'); + } + + // Now comes a bit of code repetition, but it is more readable this way. + if (numProfiles == 1) { + + // Add all relevant effects. + openEffects.forEach(e => profileLines.push(e + '-enable-effect=true')); + + // The fire effect is enabled per default, so we have to explicitly disable it if + // not required. + if (!openEffects.includes('fire')) { + profileLines.push('fire-enable-effect=false'); + } + + // Print and save the new profile. + const profile = profileLines.join('\n'); + + utils.debug('The new profile:'); + utils.debug(profile); + + profileManager.createProfile(profile); + + } else if (closeEffects.length == 0) { + + // This profile is only for window openeing. + profileLines.push('profile-animation-type=1') + + // Add all relevant effects. + openEffects.forEach(e => profileLines.push(e + '-enable-effect=true')); + + // The fire effect is enabled per default, so we have to explicitly disable it if + // not required. + if (!openEffects.includes('fire')) { + profileLines.push('fire-enable-effect=false'); + } + + // Print and save the new profile. + const profile = profileLines.join('\n'); + + utils.debug('The new window-open profile:'); + utils.debug(profile); + + profileManager.createProfile(profile); + + } else if (openEffects.length == 0) { + + // This profile is only for window closing. + profileLines.push('profile-animation-type=2') + + // Add all relevant effects. + closeEffects.forEach(e => profileLines.push(e + '-enable-effect=true')); + + // The fire effect is enabled per default, so we have to explicitly disable it if + // not required. + if (!closeEffects.includes('fire')) { + profileLines.push('fire-enable-effect=false'); + } + + // Print and save the new profile. + const profile = profileLines.join('\n'); + + utils.debug('The new window-close profile:'); + utils.debug(profile); + + profileManager.createProfile(profile); + + + } else { + + const openProfileLines = [...profileLines, 'profile-animation-type=1']; + const closeProfileLines = [...profileLines, 'profile-animation-type=2']; + + // Add all relevant effects. + openEffects.forEach(e => openProfileLines.push(e + '-enable-effect=true')); + closeEffects.forEach(e => closeProfileLines.push(e + '-enable-effect=true')); + + // The fire effect is enabled per default, so we have to explicitly disable it if + // not required. + if (!closeEffects.includes('fire')) { + closeProfileLines.push('fire-enable-effect=false'); + } + + if (!openEffects.includes('fire')) { + openProfileLines.push('fire-enable-effect=false'); + } + + // Print and save the new profiles. + const openProfile = openProfileLines.join('\n'); + const closeProfile = closeProfileLines.join('\n'); + + utils.debug('The new open-window profile:'); + utils.debug(openProfile); + utils.debug('The new close-window profile:'); + utils.debug(closeProfile); + + profileManager.createProfile(openProfile); + profileManager.createProfile(closeProfile); + } + }) + .catch(r => utils.debug('Failed to migrate settings: ' + r)); +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/utils.js b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/utils.js new file mode 100644 index 0000000..2e0d53d --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/burn-my-windows@schneegans.github.com/src/utils.js @@ -0,0 +1,206 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; + +// We import some modules optionally. This file is used in the preferences process as well +// as in the GNOME Shell process. Some modules are only available or required in one of +// these processes. +const GdkPixbuf = await importInShellOnly('gi://GdkPixbuf'); +const Clutter = await importInShellOnly('gi://Clutter'); +const Cogl = await importInShellOnly('gi://Cogl'); +const St = await importInShellOnly('gi://St'); + +// We import the Config module. This is done differently in the GNOME Shell process and in +// the preferences process. +const Config = await importConfig(); + +// Returns the given argument, except for "alpha", "beta", and "rc". In these cases -3, +// -2, and -1 are returned respectively. +function toNumericVersion(x) { + switch (x) { + case 'alpha': + return -3; + case 'beta': + return -2; + case 'rc': + return -1; + } + return x; +} + +const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.').map(toNumericVersion); + +// This method returns true if the current GNOME Shell version matches the given +// arguments. +export function shellVersionIs(major, minor) { + return GS_MAJOR == major && GS_MINOR == toNumericVersion(minor); +} + +// This method returns true if the current GNOME Shell version is at least as high as the +// given arguments. Supports "alpha" and "beta" for the minor version number. +export function shellVersionIsAtLeast(major, minor = 0) { + if (GS_MAJOR > major) { + return true; + } + + if (GS_MAJOR == major) { + return GS_MINOR >= toNumericVersion(minor); + } + + return false; +} + +// This method can be used to import the Config module. +export async function importConfig() { + if (typeof global === 'undefined') { + return (await import('resource:///org/gnome/Shell/Extensions/js/misc/config.js')); + } + return (await import('resource:///org/gnome/shell/misc/config.js')); +} + + +// This method can be used to write a message to GNOME Shell's log. This is enhances +// the standard log() functionality by prepending the extension's name and the location +// where the message was logged. As the extensions name is part of the location, you +// can more effectively watch the log output of GNOME Shell: +// journalctl -f -o cat | grep -E 'burn-my-windows|' +export function debug(message) { + const stack = new Error().stack.split('\n'); + + // Remove debug() function call from stack. + stack.shift(); + + // Find the index of the extension directory in the stack entry. We do not want to + // print the entire absolute file path. + const extensionRoot = stack[0].indexOf('burn-my-windows@schneegans.github.com'); + + console.log('[' + stack[0].slice(extensionRoot) + '] ' + message); +} + +// This method can be used to import a module in the GNOME Shell process only. This +// is useful if you want to use a module in extension.js, but not in the preferences +// process. This method returns null if it is called in the preferences process. +export async function importInShellOnly(module) { + if (typeof global !== 'undefined') { + return (await import(module)).default; + } + return null; +} + +// This method can be used to import a module in the preferences process only. The same as +// importInShellOnly(), but the other way around. +export async function importInPrefsOnly(module) { + if (typeof global === 'undefined') { + return (await import(module)).default; + } + return null; +} + +// This method can be used to import gettext. This is done differently in the +// GNOME Shell process and in the preferences process. +export async function importGettext() { + if (typeof global === 'undefined') { + return (await import('resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js')) + .gettext; + } + return (await import('resource:///org/gnome/shell/extensions/extension.js')).gettext; +} + +// Reads the contents of a file contained in the global resources archive. The data +// is returned as a string. +export function getStringResource(path) { + const data = Gio.resources_lookup_data(path, 0); + return new TextDecoder().decode(data.get_data()); +} + +// Reads the contents of an image file contained in the global resources archive. The data +// is returned as a St.ImageContent. +export function getImageResource(path, premultiplied = false) { + const data = GdkPixbuf.Pixbuf.new_from_resource(path); + const texture = St.ImageContent.new_with_preferred_size(data.width, data.height); + const format = data.has_alpha ? + (premultiplied ? Cogl.PixelFormat.RGBA_8888_PRE : Cogl.PixelFormat.RGBA_8888) : + Cogl.PixelFormat.RGB_888; + + // https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/44b84e458a22046fedb85701ea25ad08ecc0d43f + if (shellVersionIsAtLeast(48, 'beta')) { + texture.set_data(global.stage.context.get_backend().get_cogl_context(), + data.get_pixels(), format, data.width, data.height, data.rowstride); + } else { + texture.set_data(data.get_pixels(), format, data.width, data.height, data.rowstride); + } + + return texture; +} + +// Executes a command asynchronously and returns the output from 'stdout' on success or +// throw an error with output from 'stderr' on failure. If given, input will be passed to +// 'stdin' and cancellable can be used to stop the process before it finishes. +// This is directly taken from here: +// https://gjs.guide/guides/gio/subprocesses.html#complete-examples +export async function executeCommand(argv, input = null, cancellable = null) { + let cancelId = 0; + let flags = (Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE); + + if (input !== null) flags |= Gio.SubprocessFlags.STDIN_PIPE; + + let proc = new Gio.Subprocess({argv: argv, flags: flags}); + proc.init(cancellable); + + if (cancellable instanceof Gio.Cancellable) { + cancelId = cancellable.connect(() => proc.force_exit()); + } + + return new Promise((resolve, reject) => { + proc.communicate_utf8_async(input, null, (proc, res) => { + try { + let [, stdout, stderr] = proc.communicate_utf8_finish(res); + let status = proc.get_exit_status(); + + if (status !== 0) { + throw new Gio.IOErrorEnum({ + code: Gio.io_error_from_errno(status), + message: stderr ? stderr.trim() : GLib.strerror(status) + }); + } + + resolve(stdout.trim()); + } catch (e) { + reject(e); + } finally { + if (cancelId > 0) { + cancellable.disconnect(cancelId); + } + } + }); + }); +} + +// Converts a hex, rgb, or rgba CSS-like color string to four numbers +// representing rgba values. +export function parseColor(string) { + let color; + if (shellVersionIsAtLeast(47, 'alpha')) { + color = Cogl.Color.from_string(string)[1]; + } else { + color = Clutter.Color.from_string(string)[1]; + } + + + return [color.red / 255, color.green / 255, color.blue / 255, color.alpha / 255]; +} diff --git a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/extension.js index 035e019..d1e07a4 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/extension.js @@ -22,7 +22,7 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { // Set toggle to be unchecked this.checked = false; - + // Open menu and set toggle check to true this.clickedID = this.connect("clicked", () => { this.menu.open(); @@ -33,14 +33,10 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { this.menuClosedID = this.menu.connect("menu-closed", () => { this.checked = false; }); - + // Add boot options to menu - try { - this.createBootMenu(extension); - } - catch (e) { - LogWarning(e); - } + this.createBootMenu(extension) + .catch((reason) => LogWarning(reason)); } cleanConns() { @@ -67,9 +63,9 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { // Add reload option, to refresh extension menu without reloading GNOME or the extension this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - this.menu.addAction('Reload', () => { + this.menu.addAction('Reload', async () => { this.menu.removeAll(); - this.createBootMenu(); + await this.createBootMenu(extension).catch((reason) => LogWarning(reason)); }); // Add button to open settings @@ -102,9 +98,9 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { // Add reload option, to refresh extension menu without reloading GNOME or the extension this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - this.menu.addAction('Reload', () => { + this.menu.addAction('Reload', async () => { this.menu.removeAll(); - this.createBootMenu(); + await this.createBootMenu(extension).catch((reason) => LogWarning(reason)); }); // Add button to open settings @@ -116,16 +112,16 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { if (!result) return; if (!await loader.QuickRebootEnabled()) { this.menu.addAction('Enable Quick Reboot', async () => { - await loader.EnableQuickReboot(extension); + await loader.EnableQuickReboot(extension).catch((reason) => LogWarning(reason)); this.menu.removeAll(); - this.createBootMenu(); + await this.createBootMenu(extension).catch((reason) => LogWarning(reason)); }); } else { this.menu.addAction('Disable Quick Reboot', async () => { await loader.DisableQuickReboot(); this.menu.removeAll(); - this.createBootMenu(); + await this.createBootMenu(extension).catch((reason) => LogWarning(reason)); }); } }); @@ -140,7 +136,7 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { this.menu.addAction('Fix Grub.conf Perms', async () => { await loader.SetReadable(); this.menu.removeAll(); - this.createBootMenu(extension); + await this.createBootMenu(extension); }); } }) @@ -148,7 +144,6 @@ class RebootQuickMenu extends QuickSettings.QuickMenuToggle { }); export default class CustomReboot extends Extension { - enable() { // Add items to QuickSettingsMenu this._indicator = new QuickSettings.SystemIndicator(); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/grub.js b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/grub.js index 6d67ff0..21b072a 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/grub.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/grub.js @@ -54,7 +54,6 @@ export class Grub { if (defualtEn == "") defualtEn = bootOptions.keys().next().value; return [bootOptions, defualtEn]; - } catch (e) { LogWarning(e); return undefined; @@ -110,13 +109,13 @@ export class Grub { * Copies a custom grub script to allow the extension to quickly reboot into another OS * If anyone reads this: Idk how to combine these into one pkexec call, if you do please leave a commit fixing it */ - static async EnableQuickReboot(ext) { + static async EnableQuickReboot(extension) { try { let [status, stdout, stderr] = await ExecCommand([ 'pkexec', 'sh', '-c', - `/usr/bin/cp ${ext.lookupByUUID('customreboot@nova1545').path()}/42_custom_reboot /etc/grub.d/42_custom_reboot && /usr/bin/chmod 755 /etc/grub.d/42_custom_reboot && /usr/sbin/update-grub` + `/usr/bin/cp ${extension.metadata.path}/42_custom_reboot /etc/grub.d/42_custom_reboot && /usr/bin/chmod 755 /etc/grub.d/42_custom_reboot && /usr/sbin/update-grub` ]); if (status !== 0) { @@ -130,7 +129,6 @@ export class Grub { return false; } } - /** * Removes the script used to allow the extension to quickly reboot into another OS without waiting for grub's timeout diff --git a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/metadata.json index 8cea11c..d9b9528 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/customreboot@nova1545/metadata.json @@ -4,7 +4,6 @@ "name": "Custom Reboot", "original-author": "Nova1545", "shell-version": [ - "45", "46", "47", "48", @@ -13,5 +12,5 @@ ], "url": "https://github.com/Nova1545/gnome-shell-extension-customreboot", "uuid": "customreboot@nova1545", - "version": 11 -} + "version": 13 +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIcons.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIcons.js index 6b0ac24..cb86627 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIcons.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIcons.js @@ -93,7 +93,7 @@ let recentlyClickedAppMonitor = -1; * - Update minimization animation target * - Update menu if open on windows change */ -const DockAbstractAppIcon = GObject.registerClass({ +export const DockAbstractAppIcon = GObject.registerClass({ GTypeFlags: GObject.TypeFlags.ABSTRACT, Properties: { 'focused': GObject.ParamSpec.boolean( @@ -429,6 +429,14 @@ const DockAbstractAppIcon = GObject.registerClass({ // it called by the parent constructor. } + notifyAppIconUpdating(monitorIndex) { + const icon = Gio.Icon.new_for_string('action-unavailable-symbolic'); + const {osdWindowManager} = Main; + const showOsd = osdWindowManager.showOne ?? osdWindowManager.show; + showOsd.call(osdWindowManager, monitorIndex ?? this.monitorIndex, icon, + _('%s is updating, try again later').format(this.name), null); + } + popupMenu() { this._removeMenuTimeout?.(); this.fake_release(); @@ -754,10 +762,7 @@ const DockAbstractAppIcon = GObject.registerClass({ // the existing window instead. launchNewWindow() { if (this.updating) { - const icon = Gio.Icon.new_for_string('action-unavailable-symbolic'); - Main.osdWindowManager.show(-1, icon, - _('%s is updating, try again later').format(this.name), - null); + this.notifyAppIconUpdating(); return; } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIconsDecorator.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIconsDecorator.js index 89afa3e..ac400fc 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIconsDecorator.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/appIconsDecorator.js @@ -2,15 +2,12 @@ import { - Docking, AppIconIndicators, + AppIcons, + Docking, Utils, } from './imports.js'; -import { - Gio, -} from './dependencies/gi.js'; - import { AppMenu, AppDisplay, @@ -19,7 +16,7 @@ import { } from './dependencies/shell/ui.js'; const Labels = Object.freeze({ - GENERIC: Symbol('generic'), + RESULTS: Symbol('results'), ICONS: Symbol('icons'), }); @@ -30,6 +27,8 @@ export class AppIconsDecorator { this._propertyInjections = new Utils.PropertyInjectionsHandler( null, {allowNewProperty: true}); this._indicators = new Set(); + this._resultIndicators = new Set(); + this._updatingIcons = new WeakSet(); this._patchAppIcons(); this._decorateIcons(); @@ -42,28 +41,42 @@ export class AppIconsDecorator { delete this._methodInjections; this._propertyInjections?.destroy(); delete this._propertyInjections; - this._indicators?.forEach(i => i.destroy()); - this._indicators?.clear(); + this._clearIndicators(Labels.ICONS); + this._clearIndicators(Labels.RESULTS); delete this._indicators; + delete this._resultIndicators; + delete this._updatingIcons; + } + + _indicatorsSet(label) { + return { + [Labels.ICONS]: this._indicators, + [Labels.RESULTS]: this._resultIndicators, + }[label]; + } + + _clearIndicators(label) { + const indicatorsSet = this._indicatorsSet(label); + indicatorsSet.forEach(i => i.destroy()); + indicatorsSet.clear(); } - _decorateIcon(parentIcon, signalLabel = Labels.GENERIC) { + _decorateIcon(parentIcon, signalLabel) { const indicator = new AppIconIndicators.UnityIndicator(parentIcon); - this._indicators.add(indicator); + const indicatorsSet = this._indicatorsSet(signalLabel); + indicatorsSet.add(indicator); this._signals.addWithLabel(signalLabel, parentIcon, 'destroy', () => { - this._indicators.delete(indicator); + indicatorsSet.delete(indicator); indicator.destroy(); }); - return indicator; } _decorateIcons() { const {appDisplay} = Docking.DockManager.getDefault().overviewControls; const decorateAppIcons = () => { - this._indicators.forEach(i => i.destroy()); - this._indicators.clear(); this._signals.removeWithLabel(Labels.ICONS); + this._clearIndicators(Labels.ICONS); const decorateViewIcons = view => { const items = view.getAllItems(); @@ -92,7 +105,7 @@ export class AppIconsDecorator { /* eslint-disable no-invalid-this */ const result = originalFunction.call(this, ...args); if (result instanceof AppDisplay.AppIcon) - self._decorateIcon(result); + self._decorateIcon(result, Labels.RESULTS); return result; /* eslint-enable no-invalid-this */ }); @@ -101,10 +114,9 @@ export class AppIconsDecorator { 'activate', function (originalFunction, ...args) { /* eslint-disable no-invalid-this */ if (this.updating) { - const icon = Gio.Icon.new_for_string('action-unavailable-symbolic'); - Main.osdWindowManager.show(-1, icon, - _('%s is updating, try again later').format(this.name), - null); + const {notifyAppIconUpdating} = AppIcons.DockAbstractAppIcon.prototype; + notifyAppIconUpdating.call(this, + Main.layoutManager.primaryMonitor.index); return; } @@ -119,16 +131,19 @@ export class AppIconsDecorator { appIconsTypes.forEach(type => this._propertyInjections.add(type.prototype, 'updating', { get() { - return !!this.__d2dUpdating; + return self._updatingIcons.has(this); }, set(updating) { if (this.updating === updating) return; - this.__d2dUpdating = updating; - if (updating) + + if (updating) { + self._updatingIcons.add(this); this.add_style_class_name('updating'); - else + } else { + self._updatingIcons.delete(this); this.remove_style_class_name('updating'); + } }, })); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/dash.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/dash.js index 956bbeb..a650f38 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/dash.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/dash.js @@ -17,6 +17,7 @@ import { } from './dependencies/shell/ui.js'; import { + Config, Util, } from './dependencies/shell/misc.js'; @@ -120,6 +121,14 @@ export const DockDash = GObject.registerClass({ 'requires-visibility', 'requires-visibility', 'requires-visibility', GObject.ParamFlags.READWRITE, false), + 'max-width': GObject.ParamSpec.int( + 'max-width', 'max-width', 'max-width', + GObject.ParamFlags.READWRITE, + -1, GLib.MAXINT32, -1), + 'max-height': GObject.ParamSpec.int( + 'max-height', 'max-height', 'max-height', + GObject.ParamFlags.READWRITE, + -1, GLib.MAXINT32, -1), }, Signals: { 'menu-opened': {}, @@ -1056,6 +1065,22 @@ export const DockDash = GObject.registerClass({ this._showAppsIcon.visible = false; } + get maxWidth() { + return this._maxWidth; + } + + get maxHeight() { + return this._maxHeight; + } + + set maxWidth(maxWidth) { + this.setMaxSize(maxWidth, this._maxHeight); + } + + set maxHeight(maxHeight) { + this.setMaxSize(this._maxWidth, maxHeight); + } + setMaxSize(maxWidth, maxHeight) { if (this._maxWidth === maxWidth && this._maxHeight === maxHeight) @@ -1074,10 +1099,13 @@ export const DockDash = GObject.registerClass({ const notifiedProperties = []; const showAppsContainer = settings.showAppsAlwaysInTheEdge || !settings.dockExtended ? this._dashContainer : this._boxContainer; + const needsFirstLastChildWorkaround = Config.PACKAGE_VERSION.split('.')[0] < 49; - this._signalsHandler.addWithLabel(Labels.FIRST_LAST_CHILD_WORKAROUND, - showAppsContainer, 'notify', - (_obj, pspec) => notifiedProperties.push(pspec.name)); + if (needsFirstLastChildWorkaround) { + this._signalsHandler.addWithLabel(Labels.FIRST_LAST_CHILD_WORKAROUND, + showAppsContainer, 'notify', + (_obj, pspec) => notifiedProperties.push(pspec.name)); + } if (this._showAppsIcon.get_parent() !== showAppsContainer) { this._showAppsIcon.get_parent()?.remove_child(this._showAppsIcon); @@ -1092,16 +1120,18 @@ export const DockDash = GObject.registerClass({ showAppsContainer.set_child_above_sibling(this._showAppsIcon, null); } - this._signalsHandler.removeWithLabel(Labels.FIRST_LAST_CHILD_WORKAROUND); - - // This is indeed ugly, but we need to ensure that the last and first - // visible widgets are re-computed by St, that is buggy because of a - // mutter issue that is being fixed: - // https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2047 - if (!notifiedProperties.includes('first-child')) - showAppsContainer.notify('first-child'); - if (!notifiedProperties.includes('last-child')) - showAppsContainer.notify('last-child'); + if (needsFirstLastChildWorkaround) { + this._signalsHandler.removeWithLabel(Labels.FIRST_LAST_CHILD_WORKAROUND); + + // This is indeed ugly, but we need to ensure that the last and first + // visible widgets are re-computed by St, that is buggy because of a + // mutter issue that is being fixed: + // https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2047 + if (!notifiedProperties.includes('first-child')) + showAppsContainer.notify('first-child'); + if (!notifiedProperties.includes('last-child')) + showAppsContainer.notify('last-child'); + } } }); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/docking.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/docking.js index 393b1de..b0d699f 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/docking.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/docking.js @@ -231,12 +231,6 @@ const DockedDash = GObject.registerClass({ style_class: Theming.PositionStyleClass[this._position], }); - if (this.monitorIndex === undefined) { - // Hello turkish locale, gjs has instead defined this.monitorIndex - // See: https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/742 - this.monitorIndex = this.monitor_index; - } - this._rtl = Clutter.get_default_text_direction() === Clutter.TextDirection.RTL; // Load settings @@ -400,42 +394,35 @@ const DockedDash = GObject.registerClass({ // Load optional features that need to be activated once per dock this._optionalScrollWorkspaceSwitch(); - // Delay operations that require the shell to be fully loaded and with - // user theme applied. - - this._signalsHandler.addWithLabel(Labels.INITIALIZE, global.stage, - 'after-paint', () => this._initialize()); - // Add dash container actor and the container to the Chrome. this.set_child(this._slider); this._slider.set_child(this._box); this._box.add_child(this.dash); - // Add aligning container without tracking it for input region - this._trackDock(); - - // Create and apply height/width constraint to the dash. - if (this._isHorizontal) { - this.connect('notify::width', () => { - this.dash.setMaxSize(this.width, this.height); - }); + // Delay operations that require the shell to be fully loaded and with + // user theme applied. + if (Main.layoutManager._startingUp) { + this._signalsHandler.addWithLabel(Labels.STARTUP_ANIMATION, + Main.layoutManager, 'startup-complete', () => { + this._signalsHandler.removeWithLabel(Labels.STARTUP_ANIMATION); + this._trackDock(); + this._initialize(); + }); } else { - this.connect('notify::height', () => { - this.dash.setMaxSize(this.width, this.height); - }); - } - - if (this._position === St.Side.RIGHT) { - this.connect('notify::width', () => - (this.translation_x = -this.width)); - } else if (this._position === St.Side.BOTTOM) { - this.connect('notify::height', () => - (this.translation_y = -this.height)); + this._trackDock(); + // Show the dock only once fully initialized. This workarounds a + // resize glitch we are seeing if the dock is initialized without + // an animation. + // $SOMETHING seems to resize it, but it's yet unclear what it is. + this.opacity = 0; + this._signalsHandler.addWithLabel(Labels.INITIALIZE, global.stage, + 'after-paint', () => { + this._signalsHandler.removeWithLabel(Labels.INITIALIZE); + this._initialize(); + this.opacity = 255; + }); } - // Set initial position - this._resetPosition(); - this.connect('destroy', this._onDestroy.bind(this)); } @@ -464,13 +451,30 @@ const DockedDash = GObject.registerClass({ Main.layoutManager.removeChrome(this); Main.layoutManager.addChrome(this); } + + // Set the initial position. + this._resetPosition(); } _initialize() { - this._signalsHandler.removeWithLabel(Labels.INITIALIZE); + // Create and apply height/width constraint to the dash. + if (this._isHorizontal) { + this.bind_property('width', this.dash, 'max-width', + GObject.BindingFlags.SYNC_CREATE); + } else { + this.bind_property('height', this.dash, 'max-height', + GObject.BindingFlags.SYNC_CREATE); + } - // Apply custom css class according to the settings - this._themeManager.updateCustomTheme(); + if (this._position === St.Side.RIGHT) { + this.translation_x = -this.width; + this.connect('notify::width', () => + (this.translation_x = -this.width)); + } else if (this._position === St.Side.BOTTOM) { + this.translation_y = -this.height; + this.connect('notify::height', () => + (this.translation_y = -this.height)); + } this._updateVisibilityMode(); @@ -612,7 +616,6 @@ const DockedDash = GObject.registerClass({ this._untrackDock(); this._trackDock(); - this._resetPosition(); this._updateAutoHideBarriers(); this._updateVisibilityMode(); }, @@ -1281,7 +1284,9 @@ const DockedDash = GObject.registerClass({ /** * Show dock and give key focus to it */ - _onAccessibilityFocus() { + _onAccessibilityFocus(timestamp) { + if (!Main.overview.visible) + global.display.unset_input_focus(timestamp); this._box.navigate_focus(null, St.DirectionType.TAB_FORWARD, false); this._animateIn(DockManager.settings.animationTime, 0); } @@ -1291,7 +1296,7 @@ const DockedDash = GObject.registerClass({ // Restore dash accessibility Main.ctrlAltTabManager.addGroup( this.dash, _('Dash'), 'user-bookmarks-symbolic', - {focusCallback: this._onAccessibilityFocus.bind(this)}); + {focusCallback: timestamp => this._onAccessibilityFocus(timestamp)}); } /** @@ -1317,15 +1322,10 @@ const DockedDash = GObject.registerClass({ } }; - DockManager.settings.connect('changed::scroll-action', () => { - if (isEnabled()) - enable(); - else - disable(); - }); - if (isEnabled()) enable(); + else + disable(); // This was inspired to desktop-scroller@obsidien.github.com const onScrollEvent = event => { @@ -1395,8 +1395,9 @@ const DockedDash = GObject.registerClass({ // clicks events from reaching the dash actor. I can't see a reason // why it should be reactive. Main.wm._workspaceSwitcherPopup.reactive = false; - Main.wm._workspaceSwitcherPopup.connect('destroy', () => { - Main.wm._workspaceSwitcherPopup = null; + Main.wm._workspaceSwitcherPopup.connect('destroy', actor => { + if (Main.wm._workspaceSwitcherPopup === actor) + delete Main.wm._workspaceSwitcherPopup; }); // If Workspace Grid is installed, let them handle the scroll behavior. @@ -1465,7 +1466,7 @@ const KeyboardShortcuts = class DashToDockKeyboardShortcuts { DockManager.allDocks.forEach(dock => { if (dock._numberOverlayTimeoutId) { GLib.source_remove(dock._numberOverlayTimeoutId); - dock._numberOverlayTimeoutId = 0; + delete dock._numberOverlayTimeoutId; } }); @@ -1631,23 +1632,22 @@ const WorkspaceIsolation = class DashToDockWorkspaceIsolation { this._disable(); DockManager.allDocks.forEach(dock => { - this._signalsHandler.addWithLabel( - Labels.ISOLATION, - [global.display, 'restacked', () => dock.dash._queueRedisplay()], - [global.display, 'window-marked-urgent', () => dock.dash._queueRedisplay()], - [global.display, 'window-demands-attention', () => dock.dash._queueRedisplay()], - [global.window_manager, 'switch-workspace', () => dock.dash._queueRedisplay()] - ); + global.display.connectObject('restacked', + () => dock.dash._queueRedisplay(), dock.dash); + global.display.connectObject('window-marked-urgent', + () => dock.dash._queueRedisplay(), dock.dash); + global.display.connectObject('window-demands-attention', + () => dock.dash._queueRedisplay(), dock.dash); + global.window_manager.connectObject('switch-workspace', + () => dock.dash._queueRedisplay(), dock.dash); // This last signal is only needed for monitor isolation, as windows // might migrate from one monitor to another without triggering 'restacked' if (DockManager.settings.isolateMonitors) { - this._signalsHandler.addWithLabel(Labels.ISOLATION, - global.display, - 'window-entered-monitor', - dock.dash._queueRedisplay.bind(dock.dash)); + global.display.connectObject('window-entered-monitor', + () => dock.dash._queueRedisplay(), dock.dash); } - }, this); + }); /** * here this is the Shell.App @@ -1671,11 +1671,15 @@ const WorkspaceIsolation = class DashToDockWorkspaceIsolation { } _disable() { - this._signalsHandler.removeWithLabel(Labels.ISOLATION); + DockManager.allDocks.forEach(dock => { + global.display.disconnectObject(dock.dash); + global.window_manager.disconnectObject(dock.dash); + }); this._injectionsHandler.removeWithLabel(Labels.ISOLATION); } destroy() { + this._disable(); this._signalsHandler.destroy(); this._injectionsHandler.destroy(); } @@ -1709,10 +1713,11 @@ export class DockManager { !this._notificationsMonitor.dndMode && this._settings.showIconsEmblems; const ensureRemoteModel = () => { - if (needsRemoteModel && !this._remoteModel) { + const shouldHaveRemoteModel = needsRemoteModel(); + if (shouldHaveRemoteModel && !this._remoteModel) { this._remoteModel = new LauncherAPI.LauncherEntryRemoteModel(); this._appIconsDecorator = new AppIconsDecorator.AppIconsDecorator(); - } else if (!needsRemoteModel) { + } else if (!shouldHaveRemoteModel) { this._remoteModel?.destroy(); delete this._remoteModel; this._appIconsDecorator?.destroy(); @@ -1721,8 +1726,10 @@ export class DockManager { }; ensureRemoteModel(); - this._notificationsMonitor.connect('changed', ensureRemoteModel); - this._settings.connect('changed::show-icons-emblems', ensureRemoteModel); + this._signalsHandler.add(this._notificationsMonitor, 'changed', + () => ensureRemoteModel()); + this._signalsHandler.add(this._settings, 'changed::show-icons-emblems', + () => ensureRemoteModel()); if (this._discreteGpuAvailable === undefined) { const updateDiscreteGpuAvailable = () => { @@ -1800,7 +1807,7 @@ export class DockManager { } get mainDock() { - return this._allDocks.length ? this._allDocks[0] : null; + return this._allDocks[0] ?? null; } get removables() { @@ -2075,15 +2082,10 @@ export class DockManager { // First we create the main Dock, to get the extra features to bind to this one - let dock = new DockedDash({ + this._createDock({ monitorIndex: this._preferredMonitorIndex, isMain: true, }); - this._allDocks.push(dock); - - // connect app icon into the view selector - dock.dash.showAppsButton.connect('notify::checked', - this._onShowAppsButtonToggled.bind(this)); // Make the necessary changes to Main.overview.dash this._prepareMainDash(); @@ -2096,11 +2098,8 @@ export class DockManager { for (let iMon = 0; iMon < nMon; iMon++) { if (iMon === this._preferredMonitorIndex) continue; - dock = new DockedDash({monitorIndex: iMon}); - this._allDocks.push(dock); - // connect app icon into the view selector - dock.dash.showAppsButton.connect('notify::checked', - this._onShowAppsButtonToggled.bind(this)); + + this._createDock({monitorIndex: iMon}); } } @@ -2112,6 +2111,24 @@ export class DockManager { this.emit('docks-ready'); } + _createDock(params) { + const dock = new DockedDash(params); + this._allDocks.push(dock); + + // connect app icon into the view selector + dock.dash.showAppsButton.connectObject('notify::checked', + button => this._onShowAppsButtonToggled(button), dock); + + const id = dock.connect('destroy', () => { + dock.disconnect(id); + const index = this._allDocks.indexOf(dock); + if (index !== -1) + this._allDocks.splice(index, 1); + }); + + return dock; + } + _prepareStartupAnimation() { DockManager.allDocks.forEach(dock => { const {dash} = dock; @@ -2421,22 +2438,6 @@ export class DockManager { /* eslint-enable no-invalid-this */ }); - if (AppDisplay.BaseAppView?.prototype?._pageForCoords) { - // Ensure we handle Dnd events happening on the dock when we're - // dragging from AppDisplay. - // Remove when merged - // https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2002 - this._methodInjections.addWithLabel(Labels.MAIN_DASH, - AppDisplay.BaseAppView.prototype, - '_pageForCoords', function (originalFunction, ...args) { - /* eslint-disable no-invalid-this */ - if (!this._scrollView.has_pointer) - return AppDisplay.SidePages.NONE; - return originalFunction.call(this, ...args); - /* eslint-enable no-invalid-this */ - }); - } - if (Main.layoutManager._startingUp) { this._prepareStartupAnimation(); @@ -2461,17 +2462,13 @@ export class DockManager { } _deleteDocks() { - if (!this._allDocks.length) - return; - // Remove extra features - this._workspaceIsolation.destroy(); - this._keyboardShortcuts.destroy(); - this._desktopIconsUsableArea.resetMargins(); + this._workspaceIsolation?.destroy(); + this._keyboardShortcuts?.destroy(); + this._desktopIconsUsableArea?.resetMargins(); // Delete all docks - this._allDocks.forEach(d => d.destroy()); - this._allDocks = []; + [...this._allDocks].forEach(d => d.destroy()); this.emit('docks-destroyed'); } @@ -2629,7 +2626,7 @@ export class IconAnimator { this._settingsChangedId = St.Settings.get().connect('notify', () => this._updateSettings()); - this._timeline.connect('new-frame', () => { + this._newFrameID = this._timeline.connect('new-frame', () => { const progress = this._timeline.get_progress(); const wiggleRotation = progress < 1 / 6 ? 15 * Math.sin(progress * 24 * Math.PI) : 0; const wigglers = this._animations.wiggle; @@ -2645,8 +2642,9 @@ export class IconAnimator { destroy() { St.Settings.get().disconnect(this._settingsChangedId); + this._timeline.disconnect(this._newFrameID); this._timeline.stop(); - this._timeline = null; + delete this._timeline; for (const pairs of Object.values(this._animations)) { for (let i = 0, iMax = pairs.length; i < iMax; i++) { const pair = pairs[i]; diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/extension.js index 68de2ac..2919727 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/extension.js @@ -8,6 +8,7 @@ export let dockManager; export default class DashToDockExtension extends Extension.Extension { enable() { + DockManager._singleton = null; dockManager = new DockManager(this); } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/intellihide.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/intellihide.js index 9668af2..5622586 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/intellihide.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/intellihide.js @@ -135,14 +135,17 @@ export class Intellihide { _addWindowSignals(wa) { if (!this._handledWindow(wa)) return; - const signalId = wa.connect('notify::allocation', this._checkOverlap.bind(this)); - this._trackedWindows.set(wa, signalId); - wa.connect('destroy', this._removeWindowSignals.bind(this)); + + this._trackedWindows.set(wa, [ + wa.connect('notify::allocation', () => this._checkOverlap()), + wa.connect('destroy', () => this._removeWindowSignals(wa)), + ]); } _removeWindowSignals(wa) { - if (this._trackedWindows.get(wa)) { - wa.disconnect(this._trackedWindows.get(wa)); + const signalIds = this._trackedWindows.get(wa); + if (signalIds) { + signalIds.forEach(id => wa.disconnect(id)); this._trackedWindows.delete(wa); } } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/launcherAPI.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/launcherAPI.js index 8778d32..6a0a60b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/launcherAPI.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/launcherAPI.js @@ -123,6 +123,7 @@ export class LauncherEntryRemoteModel { remote.quicklist = null; let menuClient = remote._quicklistMenuClient; if (menuClient) { + menuClient.disconnect(menuClient._rootChangedHandlerId); menuClient.dbus_object = quicklistPath; } else { // This property should not be enumerable @@ -144,7 +145,8 @@ export class LauncherEntryRemoteModel { } } }; - menuClient.connect(DBusMenu.CLIENT_SIGNAL_ROOT_CHANGED, handler); + menuClient._rootChangedHandlerId = + menuClient.connect(DBusMenu.CLIENT_SIGNAL_ROOT_CHANGED, handler); } } else { remote[name] = properties[name].unpack(); diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/cs/LC_MESSAGES/dashtodock.mo b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/cs/LC_MESSAGES/dashtodock.mo index 7b092bf..23c2b0a 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/cs/LC_MESSAGES/dashtodock.mo and b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/cs/LC_MESSAGES/dashtodock.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pl/LC_MESSAGES/dashtodock.mo b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pl/LC_MESSAGES/dashtodock.mo index a48230d..25f1770 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pl/LC_MESSAGES/dashtodock.mo and b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pl/LC_MESSAGES/dashtodock.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pt_BR/LC_MESSAGES/dashtodock.mo b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pt_BR/LC_MESSAGES/dashtodock.mo index de2a4e6..f8dd590 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pt_BR/LC_MESSAGES/dashtodock.mo and b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/locale/pt_BR/LC_MESSAGES/dashtodock.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/metadata.json index cbb546f..62491e3 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/metadata.json @@ -14,5 +14,5 @@ ], "url": "https://micheleg.github.io/dash-to-dock/", "uuid": "dash-to-dock@micxgx.gmail.com", - "version": 104 + "version": 105 } \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/theming.js b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/theming.js index 611eb40..06ac3cb 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/theming.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/dash-to-dock@micxgx.gmail.com/theming.js @@ -30,6 +30,7 @@ const TransparencyMode = { const Labels = Object.freeze({ TRANSPARENCY: Symbol('transparency'), + THEME_CHANGED: Symbol('theme-changed'), }); export const PositionStyleClass = Object.freeze([ @@ -55,11 +56,6 @@ export class ThemeManager { this._transparency = new Transparency(dock); this._signalsHandler.add([ - // When theme changes re-obtain default background color - St.ThemeContext.get_for_stage(global.stage), - 'changed', - this.updateCustomTheme.bind(this), - ], [ // update :overview pseudoclass Main.overview, 'showing', @@ -70,7 +66,29 @@ export class ThemeManager { this._onOverviewHiding.bind(this), ]); - this._updateCustomStyleClasses(); + this._signalsHandler.addWithLabel(Labels.THEME_CHANGED, + St.ThemeContext.get_for_stage(global.stage), 'changed', + () => this.updateCustomTheme()); + + const maybeUpdateCustomTheme = () => { + if (this._actor.mapped) { + this._signalsHandler.unblockWithLabel(Labels.THEME_CHANGED); + this.updateCustomTheme(); + } else { + this._signalsHandler.blockWithLabel(Labels.THEME_CHANGED); + } + }; + + this._signalsHandler.add(this._actor, 'notify::mapped', + () => maybeUpdateCustomTheme()); + + maybeUpdateCustomTheme(); + + // Set the initial overview pseudo-class state. + if (Main.overview.visible) + this._onOverviewShowing(); + else + this._onOverviewHiding(); // destroy themeManager when the managed actor is destroyed (e.g. extension unload) // in order to disconnect signals @@ -122,11 +140,6 @@ export class ThemeManager { } _getDefaultColors() { - // Prevent shell crash if the actor is not on the stage. - // It happens enabling/disabling repeatedly the extension - if (!this._dash._background.get_stage()) - return [null, null]; - // Remove custom style const oldStyle = this._dash._background.get_style(); this._dash._background.set_style(null); @@ -237,11 +250,6 @@ export class ThemeManager { * Reimported back and adapted from atomdock */ _adjustTheme() { - // Prevent shell crash if the actor is not on the stage. - // It happens enabling/disabling repeatedly the extension - if (!this._dash._background.get_stage()) - return; - const {settings} = Docking.DockManager; // Remove prior style edits @@ -307,7 +315,7 @@ export class ThemeManager { 'extend-height', 'force-straight-corner']; - this._signalsHandler.add(...keys.map(key => [ + this._signalsHandler.addWithLabel(Labels.THEME_CHANGED, ...keys.map(key => [ Docking.DockManager.settings, `changed::${key}`, () => this.updateCustomTheme(), diff --git a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/NEWS b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/NEWS index 267e905..77f9c4b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/NEWS +++ b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/NEWS @@ -1,3 +1,20 @@ +50.2 +==== +* Include project version in metadata [Florian; !451] + +Contributors: + Florian Müllner + +50.1 +==== +* Misc. cleanups and bug fixes [Florian; !449] + +Contributors: + Florian Müllner + +Translators: + Марко Костић [sr] + 50.0 ==== * Bump version diff --git a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/extension.js index bb18b0f..2140d7b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/extension.js @@ -200,12 +200,16 @@ class DriveMenu extends PanelMenu.Button { export default class PlaceMenuExtension extends Extension { enable() { + if (Main.panel.statusArea['drive-menu']) { + Main.panel.statusArea['drive-menu'].destroy(); + delete Main.panel.statusArea['drive-menu']; + } this._indicator = new DriveMenu(); Main.panel.addToStatusArea('drive-menu', this._indicator); } disable() { this._indicator.destroy(); - delete this._indicator; + this._indicator = null; } } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/locale/sr/LC_MESSAGES/gnome-shell-extension-drive-menu.mo b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/locale/sr/LC_MESSAGES/gnome-shell-extension-drive-menu.mo index 1e0b627..ad207af 100644 Binary files a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/locale/sr/LC_MESSAGES/gnome-shell-extension-drive-menu.mo and b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/locale/sr/LC_MESSAGES/gnome-shell-extension-drive-menu.mo differ diff --git a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/metadata.json index c659081..aefb8a0 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/drive-menu@gnome-shell-extensions.gcampax.github.com/metadata.json @@ -1,7 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", "description": "A status menu for accessing and unmounting removable devices.", - "extension-id": "drive-menu", "gettext-domain": "gnome-shell-extension-drive-menu", "name": "Removable Drive Menu", "settings-schema": "org.gnome.shell.extensions.drive-menu", @@ -10,5 +9,6 @@ ], "url": "https://gitlab.gnome.org/GNOME/gnome-shell-extensions", "uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", - "version": 75 + "version": 77, + "version-name": "50.2" } \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/hide-universal-access@akiirui.github.io/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/hide-universal-access@akiirui.github.io/metadata.json index b03eab6..7b91db4 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/hide-universal-access@akiirui.github.io/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/hide-universal-access@akiirui.github.io/metadata.json @@ -3,10 +3,9 @@ "description": "Hide Universal Access icon from the status bar", "name": "Hide Universal Access", "shell-version": [ - "49", "50" ], "url": "https://github.com/akiirui/hide-universal-access", "uuid": "hide-universal-access@akiirui.github.io", - "version": 20 -} + "version": 21 +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/no-overview@fthx/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/no-overview@fthx/metadata.json index 46eb936..025aedd 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/no-overview@fthx/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/no-overview@fthx/metadata.json @@ -15,5 +15,5 @@ ], "url": "https://github.com/fthx/no-overview", "uuid": "no-overview@fthx", - "version": 22 -} + "version": 23 +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/CHANGELOG.md b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/CHANGELOG.md index 7ec9db3..ef8dc7b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/CHANGELOG.md +++ b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/CHANGELOG.md @@ -1,3 +1,9 @@ +## Version 16 + * remove old setUrgency +## Version 15 + * add Gnome 50 support + * drop Gnome < 49 support + * fix critical notification timeout ## Version 14 * add Gnome 49 support ## Version 13 diff --git a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/extension.js index d441143..77956de 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/extension.js @@ -39,6 +39,8 @@ import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'; let newTimeout = 1000; let alwaysNormal = true; let ignoreIdle = true; +let origUrgency = null; +let _urgencyGetting = false; export default class NotificationTimeoutExtension extends Extension { @@ -46,7 +48,6 @@ export default class NotificationTimeoutExtension extends Extension { ignoreIdle = this._settings.get_boolean("ignore-idle"); alwaysNormal = this._settings.get_boolean("always-normal"); newTimeout = this._settings.get_int("timeout"); - } _modifiedUpdateNotificationTimeout(timeout) { @@ -56,25 +57,18 @@ export default class NotificationTimeoutExtension extends Extension { /* call the original _updateNotificationTimeout with new timeout */ this._updateNotificationTimeoutOrig(timeout); - } - _modifiedUpdateStatus() { + // CHANGE: Fix idle detection without crashing the loop. + // Instead of patching _updateState (which runs every second and causes crashes), + // we simply tell the tray that a user action happened *right now* when the notification appears. if (ignoreIdle) { this._userActiveWhileNotificationShown = true; - } - - /* call the original _updateState anyway */ - this._updateStateOrig(); - } - - _modifiedSetUrgency(urgency) { - /* call the original setUrgency */ - if (newTimeout === 0) { - this._setUrgencyOrig(MessageTray.Urgency.CRITICAL); - } else if (alwaysNormal) { - this._setUrgencyOrig(MessageTray.Urgency.NORMAL); - } else { - this._setUrgencyOrig(urgency); + + // Updating the timestamp ensures that the next native _updateState check + // calculates "idle time" as 0, preventing it from resetting the active flag. + if (global.get_current_time) { + this._lastUserActionTime = global.get_current_time(); + } } } @@ -96,38 +90,50 @@ export default class NotificationTimeoutExtension extends Extension { MessageTray.MessageTray.prototype._updateNotificationTimeout = this._modifiedUpdateNotificationTimeout; /** - * Change _updateState() + * Change urgency */ - MessageTray.MessageTray.prototype._updateStateOrig = MessageTray.MessageTray.prototype._updateState; - MessageTray.MessageTray.prototype._updateState = this._modifiedUpdateStatus; - - /** - * Change setUrgency() - */ - MessageTray.Notification.prototype._setUrgencyOrig = MessageTray.Notification.prototype.setUrgency; - MessageTray.Notification.prototype.setUrgency = this._modifiedSetUrgency; + origUrgency = Object.getOwnPropertyDescriptor(MessageTray.Notification.prototype, 'urgency'); + + Object.defineProperty(MessageTray.Notification.prototype, 'urgency', { + get: function() { + if (_urgencyGetting) return MessageTray.Urgency.NORMAL; + _urgencyGetting = true; + const val = origUrgency.get.call(this); + _urgencyGetting = false; + return val; + }, + set: function(urgency) { + if (newTimeout === 0) { + origUrgency.set.call(this, MessageTray.Urgency.CRITICAL); + } else if (alwaysNormal) { + origUrgency.set.call(this, MessageTray.Urgency.NORMAL); + } else { + origUrgency.set.call(this, urgency); + } + } + }); } disable() { - this._settings.disconnect(this._settingsConnectId); - this._settings = null; - - /** - * Reveret change _updateNotificationTimeout() - */ - MessageTray.MessageTray.prototype._updateNotificationTimeout = MessageTray.MessageTray.prototype._updateNotificationTimeoutOrig; - delete MessageTray.MessageTray.prototype._updateNotificationTimeoutOrig; + if (this._settings) { + this._settings.disconnect(this._settingsConnectId); + this._settings = null; + } /** - * Reveret change _updateState() + * Revert change _updateNotificationTimeout() */ - MessageTray.MessageTray.prototype._updateState = MessageTray.MessageTray.prototype._updateStateOrig; - delete MessageTray.MessageTray.prototype._updateStateOrig; + if (MessageTray.MessageTray.prototype._updateNotificationTimeoutOrig) { + MessageTray.MessageTray.prototype._updateNotificationTimeout = MessageTray.MessageTray.prototype._updateNotificationTimeoutOrig; + delete MessageTray.MessageTray.prototype._updateNotificationTimeoutOrig; + } /** - * Reveret change setUrgency() + * Revert change urgency() */ - MessageTray.Notification.prototype.setUrgency = MessageTray.Notification.prototype._setUrgencyOrig; - delete MessageTray.Notification.prototype._setUrgencyOrig; + if (origUrgency) { + Object.defineProperty(MessageTray.Notification.prototype, 'urgency', origUrgency); + origUrgency = null; + } } } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/metadata.json index 22d4875..3ab1347 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/metadata.json @@ -6,14 +6,10 @@ "original-author": "chlumskyvaclav@gmail.com", "settings-schema": "org.gnome.shell.extensions.notification-timeout", "shell-version": [ - "45", - "46", - "47", - "48", "49", "50" ], "url": "https://github.com/vchlum/notification-timeout", "uuid": "notification-timeout@chlumskyvaclav.gmail.com", - "version": 14 -} + "version": 16 +} \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/NEWS b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/NEWS index 267e905..77f9c4b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/NEWS +++ b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/NEWS @@ -1,3 +1,20 @@ +50.2 +==== +* Include project version in metadata [Florian; !451] + +Contributors: + Florian Müllner + +50.1 +==== +* Misc. cleanups and bug fixes [Florian; !449] + +Contributors: + Florian Müllner + +Translators: + Марко Костић [sr] + 50.0 ==== * Bump version diff --git a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/extension.js index f881694..d0e9da5 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/extension.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/extension.js @@ -74,10 +74,10 @@ export default class SysTray { enable() { this._tray = new Shell.TrayManager(); - this._tray.connect('tray-icon-added', - this._onTrayIconAdded.bind(this)); - this._tray.connect('tray-icon-removed', - this._onTrayIconRemoved.bind(this)); + this._tray.connectObject( + 'tray-icon-added', this._onTrayIconAdded.bind(this), + 'tray-icon-removed', this._onTrayIconRemoved.bind(this), + this); this._tray.manage_screen(Main.panel); } @@ -86,6 +86,7 @@ export default class SysTray { this._icons.clear(); this._tray.unmanage_screen(); + this._tray.disconnectObject(this); this._tray = null; } } diff --git a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/metadata.json index c373d21..9dca037 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/status-icons@gnome-shell-extensions.gcampax.github.com/metadata.json @@ -1,7 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", "description": "Show status icons in the top bar", - "extension-id": "status-icons", "gettext-domain": "gnome-shell-extension-status-icons", "name": "Status Icons", "settings-schema": "org.gnome.shell.extensions.status-icons", @@ -10,5 +9,6 @@ ], "url": "https://gitlab.gnome.org/GNOME/gnome-shell-extensions", "uuid": "status-icons@gnome-shell-extensions.gcampax.github.com", - "version": 17 + "version": 19, + "version-name": "50.2" } \ No newline at end of file diff --git a/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/NEWS b/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/NEWS index 267e905..77f9c4b 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/NEWS +++ b/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/NEWS @@ -1,3 +1,20 @@ +50.2 +==== +* Include project version in metadata [Florian; !451] + +Contributors: + Florian Müllner + +50.1 +==== +* Misc. cleanups and bug fixes [Florian; !449] + +Contributors: + Florian Müllner + +Translators: + Марко Костић [sr] + 50.0 ==== * Bump version diff --git a/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/metadata.json b/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/metadata.json index 2b14a6b..abbffac 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/metadata.json +++ b/raveos-gnome-theme/theme-data/extensions/installed/user-theme@gnome-shell-extensions.gcampax.github.com/metadata.json @@ -1,7 +1,6 @@ { "_generated": "Generated by SweetTooth, do not edit", "description": "Load shell themes from user directory.", - "extension-id": "user-theme", "gettext-domain": "gnome-shell-extension-user-theme", "name": "User Themes", "original-authors": [ @@ -13,5 +12,6 @@ ], "url": "https://gitlab.gnome.org/GNOME/gnome-shell-extensions", "uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", - "version": 72 + "version": 74, + "version-name": "50.2" } \ No newline at end of file -- cgit v1.3