From f31c0e492d3ba903d08e83ba08153b8b23fdf2cd Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Fri, 25 Nov 2016 21:45:30 +0100 Subject: [PATCH 01/18] [modules] Add initial version of a load module Add a load module that shows 1/5/15 minute load average and allows the user to set warning and critical thresholds on the 1 minute average. fixes #9 --- bumblebee/modules/load.py | 37 ++++++++++++++++++++++++++++++++ screenshots/load.png | Bin 0 -> 1956 bytes themes/default.json | 3 +++ themes/gruvbox-powerline.json | 3 +++ themes/powerline.json | 3 +++ themes/solarized-powerline.json | 3 +++ themes/solarized.json | 3 +++ 7 files changed, 52 insertions(+) create mode 100644 bumblebee/modules/load.py create mode 100644 screenshots/load.png diff --git a/bumblebee/modules/load.py b/bumblebee/modules/load.py new file mode 100644 index 0000000..fba5dbd --- /dev/null +++ b/bumblebee/modules/load.py @@ -0,0 +1,37 @@ +import bumblebee.module +import multiprocessing +import os + +def description(): + return "Displays system load." + +def parameters(): + return [ + "load.warning: Warning threshold for the one-minute load average (defaults to 70% of the number of CPUs)", + "load.critical: Critical threshold for the one-minute load average (defaults 80% of the number of CPUs)" + ] + +class Module(bumblebee.module.Module): + def __init__(self, output, config, alias): + super(Module, self).__init__(output, config, alias) + self._cpus = 1 + try: + self._cpus = multiprocessing.cpu_count() + except multiprocessing.NotImplementedError as e: + pass + + output.add_callback(module=self.instance(), button=1, cmd="gnome-system-monitor") + + def widgets(self): + self._load = os.getloadavg() + + return bumblebee.output.Widget(self, "{:.02f}/{:.02f}/{:.02f}".format( + self._load[0], self._load[1], self._load[2])) + + def warning(self, widget): + return self._load[0] > self._config.parameter("warning", self._cpus*0.7) + + def critical(self, widget): + return self._load[0] > self._config.parameter("critical", self._cpus*0.8) + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/screenshots/load.png b/screenshots/load.png new file mode 100644 index 0000000000000000000000000000000000000000..8ed7bd66fc289a3bc96ec977d059d3287d07b5d2 GIT binary patch literal 1956 zcmV;V2V3}wP)RK`l)dIyN!2K3#QQ z_Vz->UmH)5B>BPfHMFg!uO!hQ9%XD(mU8wOL8MCB^EuG`@6 z+F7bT_P^HYdE1_yl~2@Y4>f%je*QEnr9!1(vzV)5U4kGk8TxH@M^GC#hII@K0{|}f z4!-jC;e$t;>`oT|puKMhp;Aqj>4Qg`<`?XIE@!2c&A#}r&(0f+H}CcUDOKcM=^cok zr@Ex*Tzl8Lb!#+*r*&6s_C=2e^LV|>cS=MA=-w3%kHhB1u-f}>kR)lcOjB0`mG7VY z++v+42%@dKFI^&vkf^|LxkAq4umiJ~_QBy<+n1rte*4osWl9<5^?rQ5&FMx>mgx)E zdH?_~KmB8gkbm%KlgTpu`k}^&Zz3$pNEVYMX_}gea(uQl8KF}9$Hvzu$Dku(A%A$> z0z=U5nu@mWzI2IrrN4gl)MJ18#dCWfsbdc@2@gX;c^`pwN zFuGxQg2IR6M@~0u)ymiQ?^SNj5DVf11|-JwYPYISUc3^1{?-M1@Crj#ibR$s4Q2NG zcaC%p8tDk_(d{KPDn%^hKcp!D0Q~Lv>8=|ik5_MFG3X6DwLDJjy%r=X6h&5g*U)H` zEEER={a+RC{!)Mz&?{P(C>C!3dZM(x6?FKC= zY`NA$d=(|GXGKxZ%)BixL;7apfBZpm&~S#p2`YsWMmI{HppXdplPgYFgi8JSuDavr z+lI{((U|w$G&2w+W94P>b<~%Woh%ftwZVM8p5d{n+jlw#jSvL6P|vxJZo9*YV&2E9 zwi(AKUq94nnY;Z|U9}`Z5anw;`@@q``hK2Y0uZ!u^4nZLaQw+UcNFz>4xG7rK`@%j%6`9>=>Dkjd{pXji zrY0rAFhl}Ck|cSTC4V80yPWDR7Zha~(i5w5zA&iL6nxRskNJGy-gK`H3?nq!Z=T-m z!--G7=otAb8!?(Ea#K@Y-S;F6L4Bj<6BpXT>xSY9rOW4X4m{g{<9M^ab7;l-RTSo9 zUf;u8i~Tvs@7_5Q@uf%r^!-B>DkOo&1pq(|FTT98+l%{Jx_Vux$K&-z Date: Fri, 25 Nov 2016 21:51:35 +0100 Subject: [PATCH 02/18] [screenshots] Add screenshot for pacman module --- screenshots/pacman.png | Bin 0 -> 837 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshots/pacman.png diff --git a/screenshots/pacman.png b/screenshots/pacman.png new file mode 100644 index 0000000000000000000000000000000000000000..d4af1b5712a5770f708a6c772faad70bc698be1e GIT binary patch literal 837 zcmV-L1G@Z)P))@xsRPziQt1mp1+P>H8dD$k`5^>bNlZ?UBJg{dnPajviegr*Tm% zIa4axGW{4q8^g+`nAoyTr$aZ6M9k)A3TH|=L-%@J`8?2rBP1EOTAoPb5Lf1c0X(9>eq4qq&SNZG89P*jl1J|vF!H+x8eP;UaY$>BM@P@nG<5LUCLrxI0yeRg!ISYYK z_vDOUJN&WNhI2Oa7)9dz;JA^-rqAl@2mU0B%;$G$NXDFv?h+%IMW0052f1>(3` zRmIyzcz1a_sM3@)FTyZw(Q3{RaLb9 zFFRYiQ8lJ;ybw#IT<2@YUoS!sRAXX;v4r&Ze))bSCn??+g#VoYfWAhDQiqMoT{3{6*}!UF z6QS7n%=xzn9J_btMmCp!I=!?WiXE+A?r^>N@Hr#qG{VdJ0*806V^~_+_&^W@pEys! zQEcF%*GL)+IR2+KVu!mSuo2;SK_k3!35N>xwudNJSO8WImI5>ksIpOBS Date: Fri, 25 Nov 2016 21:54:45 +0100 Subject: [PATCH 03/18] [screenshots] Update cmus with new widgets --- screenshots/cmus.png | Bin 3668 -> 4296 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/cmus.png b/screenshots/cmus.png index 1ff4b5c1a363219c001d5544b1763c8e53dc6eee..18a3cf3072babb179dd668864f1644bb1baea0a4 100644 GIT binary patch delta 4293 zcmV;$5IXPF9LOOdiBL{Q4GJ0x0000DNk~Le000590000L2m$~A0IYxfsgWTqe-LCz zL_t(|+U;C8ff-S7D0BAeT(1%t|0D4XO79}Oy(s~-#a;($r_Y9 zue+mw$9a+T001mt@1pBiTu6YujdkD9h}r@{kej1ud~%AxqcxwG93BDye?V9)+LE-$ zzjttyBq{U6GQ*6YD8?qG1=V!`0D>fGi>rfZT>4lFEI91Mg~0%V#wI3>(g$Y5hWM;Y ziKuSwQsOG3=+R(fXlhJEdU9N5azb>F-#ll>p;5`il+4@JiH%{CQ!=gIn3i0&rX^2E zrz-EXsWmY(C4tZ7e0wQZf7eHN9M0l}At(z`kht2oB{gPwZ1BbWN^w&sMa^k((++-jbwVmPoF1K)zP)vwHJ=9n zz*U63jnLjk81C;=*3cXo;CH#GtY0JNGgKBeL2KgTMIqv*R-Mm0iY6}%;b7S8LpGMY zo#{y_QGw@gRJ7gef7g4ur7=M_EAJ?A!a#cOy}tHr?(J3sJTpVC#Gghx!u&m!#{_-! z&1JRa55Hc2=+yOr5y><04*(dSoOCbCyymaw2kpGKB zN@T#Ym>{K!$jYy%Zoa42uD$Gnp=B|_iHrOY7VE*_*!de3fA{-`=|kZQ=B-5i}o!lLTtJ=;=Ih^n>lv@S|F81^fYABwYm&ka zpUdwX8uM_nlgbn`J{aofE|n|p-XCD*L&M#{c11!61?j&oU3`r7gR6+bnmS#@rs2xS zpbu{!I0`|Kv&j05jZ0t{+OawTMUcxywYg<=N}O1g7?!li|I-uKMkJF)(Tfi97YVJJ zyY7E+fBrIEq)txB+V1s|BnbfPX=Tw6O@v`MAtXp>$v0#ohR$~n_Hn&g-I`NWGclzl zE1vJ}(9ts(7viga%;@Ce^HaH7R>X2K^y}=Rmaa!(*t9%4GSG|1WxxB{YCwVSu9VcY zbOQibEO=dVL`1+moFGbT+j4HzQ541C2LP~le|wsnz0Hi`POBfCbBG|STe>2HymN|c z0RZ6(JjIQj4E_Z?&Y$1h^qaq*rk@r|zQup;Sn>Wp&(Vk0FNyN=a70j6OIP2?oYL7( zlqR?wY-?)l0xxH&OmVZSS@V$A>w1Qm9WN7rvRIi*BNzI)Ll9hEfA?ZRC7taq@N&*f ze~GjbaGN_H^bJaad|YZ;?&X#>IM`b4-<5vwyK9@4M_chN9t@3rl~phyl^Yc=06=P7 za8|x}WL(PSU~(K!jtu-J`zC{(#%mc#y#u4yO6%1YilUl39{>P&T(-!@viIRAZC{ZX zdg@wP-_RHUpu2BK3xU{RdbTk0p{K;=f3)b+SIhom>#`Y64Clk_XQsB2WN}@?=r~ia zP_2wlqYo5C^*$W^KKHhpqitlMS7-0wmEsyYa1TeuKRbD?e^_EHy&!K-g%ZD5P@*{j z(&8c^2qgyeW$bc_?26Lq_(V#%Ulw9>{2nqd3UUemn&88 zefB+yz&q2EG!JRLu4f3X@iG>hQ=|Dj?tlO5JPgCTGm{g;{R_l**ckGw4Jn_VxYpS_ zv?Mw(D$x5cUuA2~^2{X>UuG3P9G1j}`cBD}#>R`o#+*gMmaaY+hPR}~e-u`>tV{@H zuxmE0CS}Um4uA97YIjGw=FSI)PUivu*cjqwZ{uidwIwwML0C1--4_e1G-s)wrxS)E z^>=%i`OvTDookcMvlGB7%(cNndV`QqBA)Q8&Eduj0@0D#=G z26dDx8aqs*cj!#^Y~$hcf0qpsDCWa#42=r()9YnWGH%NH0~<>U_jk6pe)1Nx_!gXp z!;%{njfo5WG?Uis{7Mx`-s$MI6AGRniJ~|`XwEhmhEpOJoVzZ@RjLW8Jm*$TT&S;J zKU(Emmmghdy*I$Y5LX8qcSk$Pq;zazig|oVO>6wL&)5*3vif%VfB*f%lJfd?m5NZ2 zkO6$+(F zCRbi7tq=3}002M$QmIH5%mM(AB!wZcrY6ELeEx>`;jjb%P+HqY5Tvp3;&U;IqT~uZ zb4i4_sq=pS5TDCof3U0Z;nzQ$xmGsY;eoF%?LTxDMG*S&7Fcj02y%0>`{>)t2af#U zEE29sTBtdGc}#F_>0=3CIPd0V(G`sy-4BMeUWkEw^!k~pwpNw~Mi4`pgu+05@O5+a zaIza3o8Vvw1U;(ogMC~@I-XNzde#EIgN@L^Mrdzit@ifle?D7q9c+X!44arODiq4k z&t7_KbGikG%`mL(elG__1Lt`dvACg7=G>~!7dL6j8316Rzo(mn&3mt>0|2Z9-1B)A z3Z;s!PvuG+0615aQ)xk6{P|L6cK*1}F5!F7=ox zZHa?{c;{~?jT)~jUPi%EV1dB!f9+T~{SE{pW0Uks(cyD>yVfrzROGEnYG?4nfe$gfNPv>f7%7dpgM#N(Q?j7?w&jRF!0m>PS69ZPC{kSAN>P-%lilXj zn7!J0=#b3wCZh3!O#-|H!htb zD9T=FNyppHS}-CpWkJR?Kern@ezkE4u2OySf9)0ht#Ohpt-qTP=1T#PFTSJB{`PK9 zyKqB%>{1D?Qh7Rye!ez=iRZ)=0KiTtpi`$Asm*hR3Gvc)pJgOT{^9V2+5J<0FP9@1 z3N>56k8d5Io-$rixuSnq66E9Z$|L;(r_Fg77o;3{`# zf7|x^59##*&0Te=altokH)(Dd&~@ISvB`a(9M|l#zx(Ma6Zn|mC)mqVu2i=7_AzVX zk&8LLZZ4+j1HD0q$Hib6ZoAjt*4>vD7rZqsc3nyYjuZ3-oju!@|Mhsz>s|aPWf_+?R<-I9x-ncA^!^Q+W&Wgm)TPCdrnC7Qv zU__zBhejuu7fCeh=l*hpy436O{m9t2=VX2;9IZ}~iRdZLyf8ua9 zhHyF9^0=TEqlu=)OACJ$QQpw8IW^jXgFz7Fun`PJ001b4=-QyeOb-AM5imc%%Y(~i+gJ(KCdF)8mPAt24@G56 zT^$2&jXGy!sviL;ZD@Wa4Ac6B$L_wNbJr_oR6R3Ok6`bnjvh^Y;b54Df0M18u`ZjG z$+HWq-q^TQrcl;2che2*tUU3W#S4GGI|GKG;+oci=|qeH`*&wp^DR&o>*IY}zsW9Y zY&X#lz3?)7!;n`0^gFz}f295XfNDCGkjfM%u9WQFkc_}^@59mZhPx?I0n^i6xMy1$ z3_-LXlBDPt{>hxu?JMIye|U4#kYu8`s>Oevi#l1*b>3%?D(Z+=ci*rso;vwoEzL}c z`2Fq-1VQfi51*dyl!==<_H9p-DR7b^ay!v;*d;Ev0(U*Z*Cw|L{)Ql_RVVAem+mUCTZdCcBPX9e^t}koi$xSFO3em zS*2xXF7tVHHUSOhV*(%mVuSn(Ym~FUacsCIGU&tG2ae86E${ZIm!VcAhQ)>X9z1?k z>joWWdX;zD9Biyz9Yk+zSpE1NOc1AkENt!WVZ3DBzqk0&-d*F9(m#E9LgN)Aid^7( zp`e7Zq(xE|g<5dfe{2+;F7nr1Dz2$)>YC$UaWP}Afy=?(|7GTp3k9?~2nD=%cdq&- zyQsOV@27rg(ZSvgZ9P)C;-^9wCscWrwNrA10)MoGy*qQ&*V$LqnmEtdao?+%Mb!=8 zU%zRTKIp09eO&v8C4-|A#?lM%omYRi3xc48ut0xLcNdZEe}qid(?6J7UNx+52?%-~ zKSRsGu*8rcTPuP2!8YS*z=EOm%c4Vk-PkBX5QI#L->&btT2g0zzy4bwS1OC@8ipkk zb5kFl6}{&rivR#F8%s}!HP0k7%y^j~Qz$PMm(E#zcvke_=Xd+ebI1%cUbeOd8=K4e n@T};Wf1TS58#Bx>;|cs9x%0{RwmOOK00000NkvXXu0mjfV|8wx delta 3660 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 Date: Sat, 26 Nov 2016 08:28:19 +0100 Subject: [PATCH 04/18] [modules/xrandr] Add module to show attached displays This modules shows attached displays and their states (on or off). Future versions of this module will order the icons by the relative order of the screens (left-to-right) and will allow switching monitors on and off. see #19 --- bumblebee/modules/xrandr.py | 43 +++++++++++++++++++++++++++++++++ themes/default.json | 5 +++- themes/gruvbox-powerline.json | 3 +++ themes/powerline.json | 3 +++ themes/solarized-powerline.json | 3 +++ themes/solarized.json | 3 +++ 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 bumblebee/modules/xrandr.py diff --git a/bumblebee/modules/xrandr.py b/bumblebee/modules/xrandr.py new file mode 100644 index 0000000..06bf3fa --- /dev/null +++ b/bumblebee/modules/xrandr.py @@ -0,0 +1,43 @@ +import bumblebee.module +import re +import subprocess + +def description(): + return "Shows all connected screens" + +def parameters(): + return [ + ] + +class Module(bumblebee.module.Module): + def __init__(self, output, config, alias): + super(Module, self).__init__(output, config, alias) + self._state = "off" + + def widgets(self): + process = subprocess.Popen([ "xrandr", "-q" ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output, error = process.communicate() + + widgets = [] + + # TODO: sort by position + for line in output.split("\n"): + if not " connected" in line: + continue + screen = line.split(" ", 2)[0] + m = re.search(r'\d+x\d+\+\d+\+\d+', line) + self._state = "on" if m else "off" + widgets.append(bumblebee.output.Widget(self, screen)) + + return widgets + + def state(self, widget): + return self._state + + def warning(self, widget): + return False + + def critical(self, widget): + return False + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/themes/default.json b/themes/default.json index 5c9498a..76d3b1f 100644 --- a/themes/default.json +++ b/themes/default.json @@ -126,6 +126,9 @@ } }, "caffeine": { - "states": { "activated": {"prefix": "   " }, "deactivated": { "prefix": "   " } } + "states": { "activated": {"prefix": " caf on " }, "deactivated": { "prefix": " caf off " } } + }, + "xrandr": { + "states": { "on": { "prefix": " off "}, "off": { "prefix": " on "} } } } diff --git a/themes/gruvbox-powerline.json b/themes/gruvbox-powerline.json index ba155e0..0d9f63c 100644 --- a/themes/gruvbox-powerline.json +++ b/themes/gruvbox-powerline.json @@ -159,5 +159,8 @@ }, "caffeine": { "states": { "activated": {"prefix": "   " }, "deactivated": { "prefix": "   " } } + }, + "xrandr": { + "states": { "on": { "prefix": "   "}, "off": { "prefix": "   "} } } } diff --git a/themes/powerline.json b/themes/powerline.json index d74c461..7846814 100644 --- a/themes/powerline.json +++ b/themes/powerline.json @@ -158,5 +158,8 @@ }, "caffeine": { "states": { "activated": {"prefix": "   " }, "deactivated": { "prefix": "   " } } + }, + "xrandr": { + "states": { "on": { "prefix": "   "}, "off": { "prefix": "   "} } } } diff --git a/themes/solarized-powerline.json b/themes/solarized-powerline.json index 206e030..4a72def 100644 --- a/themes/solarized-powerline.json +++ b/themes/solarized-powerline.json @@ -159,5 +159,8 @@ }, "caffeine": { "states": { "activated": {"prefix": "   " }, "deactivated": { "prefix": "   " } } + }, + "xrandr": { + "states": { "on": { "prefix": "   "}, "off": { "prefix": "   "} } } } diff --git a/themes/solarized.json b/themes/solarized.json index 8a3fc8f..e195ad9 100644 --- a/themes/solarized.json +++ b/themes/solarized.json @@ -152,5 +152,8 @@ }, "caffeine": { "states": { "activated": {"prefix": " caf on " }, "deactivated": { "prefix": " caf off " } } + }, + "xrandr": { + "states": { "on": { "prefix": " off "}, "off": { "prefix": " on "} } } } From c095b890224aaf1e5f684c2d0b9f9770ece381ce Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sat, 26 Nov 2016 08:46:16 +0100 Subject: [PATCH 05/18] [modules/xrandr] Sort display widgets by position Show display widgets from left to right according to their relative xrandr position. see #19 --- bumblebee/modules/xrandr.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bumblebee/modules/xrandr.py b/bumblebee/modules/xrandr.py index 06bf3fa..d5e438b 100644 --- a/bumblebee/modules/xrandr.py +++ b/bumblebee/modules/xrandr.py @@ -1,5 +1,6 @@ import bumblebee.module import re +import sys import subprocess def description(): @@ -25,9 +26,19 @@ class Module(bumblebee.module.Module): if not " connected" in line: continue screen = line.split(" ", 2)[0] - m = re.search(r'\d+x\d+\+\d+\+\d+', line) - self._state = "on" if m else "off" - widgets.append(bumblebee.output.Widget(self, screen)) + m = re.search(r'\d+x\d+\+(\d+)\+\d+', line) + + widget = bumblebee.output.Widget(self, screen) + if m: + self._state = "on" + widget.set("pos", int(m.group(1))) + else: + self._state = "off" + widget.set("pos", sys.maxint()); + + widgets.append(widget) + + widgets.sort(key=lambda widget : widget.get("pos")) return widgets From 3cc34d36a51d381fbd3386f62092f13cbf804eac Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sat, 26 Nov 2016 09:09:11 +0100 Subject: [PATCH 06/18] [documentation] Updated all screenshots to be more uniform Also, added xrandr screenshots --- README.md | 10 +++++----- bumblebee/outputs/i3.py | 8 ++++++-- screenshots/battery.png | Bin 2074 -> 1733 bytes screenshots/brightness.png | Bin 1971 -> 1323 bytes screenshots/cmus.png | Bin 4296 -> 5031 bytes screenshots/cpu.png | Bin 2520 -> 1811 bytes screenshots/date.png | Bin 0 -> 2877 bytes screenshots/default.png | Bin 7056 -> 0 bytes screenshots/disk.png | Bin 5300 -> 3721 bytes screenshots/dnf.png | Bin 1404 -> 1113 bytes screenshots/load.png | Bin 1956 -> 2005 bytes screenshots/memory.png | Bin 4327 -> 3603 bytes screenshots/nic.png | Bin 3314 -> 2474 bytes screenshots/pacman.png | Bin 837 -> 860 bytes screenshots/pasink.png | Bin 0 -> 1486 bytes screenshots/pasource.png | Bin 0 -> 1505 bytes screenshots/ping.png | Bin 2261 -> 1655 bytes screenshots/powerline-gruvbox.png | Bin 8830 -> 0 bytes screenshots/powerline-solarized.png | Bin 10788 -> 0 bytes screenshots/powerline.png | Bin 9648 -> 0 bytes screenshots/pulseaudio.png | Bin 3172 -> 2495 bytes screenshots/solarized.png | Bin 7074 -> 0 bytes screenshots/spacer.png | Bin 592 -> 521 bytes screenshots/themes/default.png | Bin 0 -> 7251 bytes screenshots/themes/powerline-gruvbox.png | Bin 0 -> 11594 bytes screenshots/themes/powerline-solarized.png | Bin 0 -> 11991 bytes screenshots/themes/powerline.png | Bin 0 -> 10701 bytes screenshots/themes/solarized.png | Bin 0 -> 9612 bytes screenshots/time.png | Bin 0 -> 2456 bytes screenshots/xrandr.png | Bin 0 -> 2693 bytes themes/solarized.json | 2 +- 31 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 screenshots/date.png delete mode 100644 screenshots/default.png create mode 100644 screenshots/pasink.png create mode 100644 screenshots/pasource.png delete mode 100644 screenshots/powerline-gruvbox.png delete mode 100644 screenshots/powerline-solarized.png delete mode 100644 screenshots/powerline.png delete mode 100644 screenshots/solarized.png create mode 100644 screenshots/themes/default.png create mode 100644 screenshots/themes/powerline-gruvbox.png create mode 100644 screenshots/themes/powerline-solarized.png create mode 100644 screenshots/themes/powerline.png create mode 100644 screenshots/themes/solarized.png create mode 100644 screenshots/time.png create mode 100644 screenshots/xrandr.png diff --git a/README.md b/README.md index 1997f35..d039179 100644 --- a/README.md +++ b/README.md @@ -63,20 +63,20 @@ Here are some screenshots for all themes that currently exist: Gruvbox Powerline (`-t gruvbox-powerline`) (contributed by [@paxy97](https://github.com/paxy97)): -![Gruvbox Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/powerline-gruvbox.png) +![Gruvbox Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/themes/powerline-gruvbox.png) Solarized Powerline (`-t solarized-powerline`): -![Solarized Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/powerline-solarized.png) +![Solarized Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/themes/powerline-solarized.png) Solarized (`-t solarized`): -![Solarized](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/solarized.png) +![Solarized](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/themes/solarized.png) Powerline (`-t powerline`): -![Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/powerline.png) +![Powerline](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/themes/powerline.png) Default (nothing or `-t default`): -![Default](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/default.png) +![Default](https://github.com/tobi-wan-kenobi/bumblebee-status/blob/master/screenshots/themes/default.png) diff --git a/bumblebee/outputs/i3.py b/bumblebee/outputs/i3.py index ac72855..3a80659 100644 --- a/bumblebee/outputs/i3.py +++ b/bumblebee/outputs/i3.py @@ -51,6 +51,10 @@ class Output(bumblebee.output.Output): "separator_block_width": 0, }) + sep = theme.default_separators(widget) + sep = sep if sep else False + width = theme.separator_block_width(widget) + width = width if width else 0 self._data.append({ u"full_text": "{}{}{}".format( theme.prefix(widget), @@ -61,8 +65,8 @@ class Output(bumblebee.output.Output): "background": theme.background(widget), "name": widget.module(), "instance": widget.instance(), - "separator": theme.default_separators(widget), - "separator_block_width": theme.separator_block_width(widget), + "separator": sep, + "separator_block_width": width, }) theme.next_widget() diff --git a/screenshots/battery.png b/screenshots/battery.png index cead4237ed40c1844de0170f1d340217aafeb277..bdbafee42fd9ce6df799d0cd95888d09fe707a75 100644 GIT binary patch delta 1710 zcmV;f22uH%5XB84iBL{Q4GJ0x0000DNk~Le0001K0000O2m$~A0Ct{436UW!e+FSm zL_t(o!|j<_P*YbJ$Ir{x2YX&>x1cG^C) zuYGHMs84m;QM9dEwaQWjI+R5j*<66Ih9!X{k^~aWNe@R!6k=MTdVOgBvf000gr{Pj-}onl+j?q|>9AX;8Dp1?P}#5nq;jM`R#!wJ_N=|bW4 z#)R={>iT;YLQtA7PZQ~0VsM@P?3(6S06kWi%D|NGe+sjeIT;$i zLmMA#x!1#Sp%9~sA$V8Go~i6~KeNeIl-d@-te(i{n#u}gk+cPGmr_HnYZa)pVRWjk zI8U)PUhi&i>f}u-s1&ljym$f!(S9kTxr_VpaS6ocj@5?8L6i{c?2>rE<%-o&OiSRW zn!9+NeQdv7M+A+6K$=7B_WwfjH38#+@u$flP9BF8R{!xXbsyay` zWuyvqe?8bznlHx=?!v7k1c#=Hba(E>0043`)TMjn5CRkh>bbB;f4UWqpsT~Psgt+X zoP|5YOYG7_y2Ays03JA*3fI*H<>o2%CUwbod+DJ-~|LnDR1b005WN+bY#P;`D0qei9EyVL z4e?4182~Uf6Yc?*fA0ZT*Cy!bjmj0P59iB$pOQ!!wJos$riBoC*v0b=ZxxMWS;p=G zmdO&b?yxwXQNT6o41^nv@oyGQ_;$_eNZ!o?ArSHn(=*|2b`09Wf(@BeQsQ_5$WwU0wF)}=q5uG~ zT%+$J6Vue+8xv4;otZsxu|HdhAn4|%WDd)6=G{K&RK$vQBEd25qkeEW)Vmloiv2*I z;!;iG-<`bkH@4=A)qIW#0KlRz?8=-u_gfl|ZJwPciejE|Sr&|L42&(y^kyr*>UPqC z9r1!YQYcGbe_k7#x_C|uCD_C6>RqAE@IR?Jaq`^I1l?WrhbHLV61Ky&w6&v{RuaKE zBBL2hp}sX__qLfY-s|0$t?KG$zp_(-{dF2Wab+T&2|rsUc7rS1C(Butk>5Tv#-Q4; zo-2%&kPEkxKP(>%4_o}N*~LVgO7rEv)QMauWYZT?e}y`)&XTJrHyYzly)hicvRSj>qrFW>PE8_4*)3HGnJj@M+Q*B7Ec}>{_%QB;Ow-t z;JRmos_G=09oZ~K26JdjHI^;*5KqC~p7=Heh~ zw&Fjp?8C@TF+(O39jlYN(HzqLIC^`^tiuJHI(RJlLPCt^{Fj+Ld#fpq!?MJ0G00Vv z2fb0H&!vM*Nzv#?$4jJ24Vf6~L=copUR+nG&l?C=?g;%ejh!zqo*)q%0o8)x*uk+Y ze|JQFYp$QWfPry(O-pQ9;YzKyGgE!GD&t?AD-c)l?rA@vjsr$>==qyl5s0P;^#^w? zDHw6moYM*0dN|chvGfRAX})}Wiq_qA_kK)K-ZX-s{Ad#|%6z#t5dct>rw9!0r$3VQ z1_GUGt0);8nWRalBCIyVon$i-=dft9f7As1kpfwDvmdPo*Sa?@%vRB;wjIx1e-Z7w zi()spQ?C!xFx1U}hcoWHfzUI^^0u7&^7NXywxyfSQM4Vn-kiBL{Q4GJ0x0000DNk~Le0001u0000T2m$~A02o?$v5_Gye+RZn zL_t(&-tAgjP*Z0f|IRtd$%TX@gd{*nG$AB_EGXiZf-UTdpslE=E8Wgii#xNOot^DN zXWEyYKJDzozU;$}`_P?kUE5jNS`=MZMUlE4p(0pRP)q^_l0YuxLK1R0Il1k_p@@*n zIdo;JliyR$$?yA;@BcgB|MndSe{A_F$l^y28hPp;-yhD}Ya{XdzdYSSaMm0z&whd+ zpxNxn8f(LlNC4dopR!K7>Shasp{)5f4E;mJHWzEmk)oT0Cc385uqXf5)@yXeW zlUBto?RmMksmvze;5Aen@!Z> zQ>onhi&jG#A8NF4{UQ4L79$Y`MFQ;Q6KTQ6`1`pfkxFDfg=~@h*hv%bt7}SXc|@@! z@b;UNFqB9|`09Ge1D)`PEa_15^!5rzs&7MK+Tgu{+xI0JrRQkNleGl>46pCDY~IZh z3xmydb89o5Gz707J$FNCf12aSiu^}*8+aTX0B~!x@asE89~>X!vLlohGHcK2zf;_? zXDWozK0R0NSwsNQDd!@sz??G`&3UEh9jqX%KSk(A(BGsJJzPB)0PZ4 zGso3V^XsbZd@i1J62}7b^hFIGfhpwWJPzL3u4OZ$8FNRJ9)CEM*L6ijRiuyK`;I}6 z&4*YRjxf>Ks&5fEf5Blz-#wr!mIOXNxnu3{#UQ=APpRJId8bVeL7-aWVlrZvzS*pj z`*Jxr8N!T(tKQ_P-Qv*A@byL>0N}<@F$0Y?)YvF31dky9x~d``rdfLqaZ@2(JhuO- zNaK@vXM0QH2?)cHgFl~HJBinip6V$Jrp-833&>(dI}hpze?RcNVRf+o+EtlI<{0X? z+T?|P7*6gqM#jZh7}-@f2SH0ujLXBsBk*?<`6LN>Jj~+Aae0_FCp({y&AV754@IpF zW;zn5w1jKl7P~ymXC8c7ykpPQvMX8^2>_rhP7V(qc$J_Lxyp1T8 z+8T}T9?-eHe~fixu6h$s$j7AO0CCwnC`aIgL>QVf^GFi*HJSn;+MhqK3SmfFqw&gs zyht3ZQoE>Dqho6#bTkT|xm+5?kyRqK)SK7Nk4NCsm(&h7E8}lHqf^J8DOsU^WAY*x zPLPkWtG&6KCE$jM&vz$8+G+mb-3CE!c>ep^Fe5=BfAxLTdH**Zk3Q^tfJfj-Bk#@E zjSxi9A2``bot4SP`Nsv#-AAG?dsT!;tqtbJTI*Wom%S>pl|#y0D=!{S=DiTPFOI`3 zW()u@J;%LzOaAs7lMFP5(qmW{AxQuLFd4C8Nq|m|UmcMDMD3PSe?TMAlwsdw`?8w?+$d*wNQ&tk2ul z7jJGJ9v2I8!>mk+WwNp%WO1;+xTLPuxT-Zve@=hF%iwXsBnbqtFw%cVTEEp6jlw6p zDs4`7p(xO?=Se=FQ~@sJW4SrFFOV(;(9iJex7rzKN=0|pSp7lTtfTkUm^EVV; ze?R)x-YL%_<9wfzA9g`GoxhAGPabs z|M0sJs)mL@0sz2fMc1*J0028G=Lbd$5ag+!x;avm0MIK{c9H}DfXl-i8k6j6G&0bb z)xlOPJe4Z8EJ`%Myn3o%d83_P@-a(m= zkJVN<007d0fOCNvk3$PSMw%tB5~=&Ta!jAHbA}*^mRHRU+iYYU1_CF3`Nq^|f9K0g zHV(D^UL*>C{%`fKk31HqD5qNLXRi&)Mkm(kA#-!^wx;!W;uT;$!4Ih*ErXXEsYD`z z%?|;OgLfX(tqt1<5KGgK42I~_bKD|PupmEs^u7e6g`39@A8j$L66ybfTO3wYAzidO za_la4=J>P{W*cY0$5<{zvN+MMeXjG%3jBiH@XF&ovhRiYgY>LC8wt*{$6(p__g)M@ j+4q)T2xRxui-G?E*>bKL;3}1S00000NkvXXu0mjfXC3U0 diff --git a/screenshots/brightness.png b/screenshots/brightness.png index 15edc2d43173979f5c83d8cbf5d82ac9fb80d018..298abf3942f365bf6bf093fb568e2350274136a4 100644 GIT binary patch delta 1296 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 diff --git a/screenshots/cpu.png b/screenshots/cpu.png index 91738453ab16ee942cdfa2825713dc9b13e78c8c..f160ba20c5eca154debfc010225187c556456284 100644 GIT binary patch delta 1788 zcmVyaTXe+I8f zL_t(&-tAdgP*YbJKKCYMfrO9{5(tC(o)lI%ARQh@-6wDo{Y&fItul1P~JmF?&ctmV5gUSxm^iv2{ArHs8~| z=llQvocrDLpYz{yA&^xJ!gxU-f8tuava&oZ)1o-l+~U^)hei2^<|dIyNa1qB8U@1R z@s4S=&!Hv^!(};H)6SW&c78w*q^(a8MIkRD+M*5+0413cE{hq~&JQR6odbhfgK_aG zxM*uZx{%L}3u_mMdk=;uw7Tb5H?z|OqNKzSqeBoxfFKWogksE!j@nrxe@jc^jH;)8 zzSvcWboTm~>j88-+}&D$dxtx_H~_;`J-?E0<<2 zN#b}BM60(1?TG-tzjN)-fB560O|2{jZBs=-N4FB0eTJ9Uyp**h>FBw(Yh8*IUfh^Q zXLq`=pA92mFe-r^vsRXS==cShRP03&t-~ zrt`URMG_HiTuDm8XM5{vD~kjP>`wXc{%=m3tkXFnetli#2fL~nfAq*jy_RJQU2gCB z)^6*x^I}_XbR>0|ROqAPm~@#`^nF9~m`0~J+fH8W&>5|`!@vj_jN-Bx7MlYAU@+Ub zEJj&=y1`@}7*XT)HKEnr8C2q$&8x{}#*}1A@TE-Uy|ryszjDHtJ17d~GGyrCq|5F3 z@U?1sBqh+XC^My_e^)s>6N@1TNJV_#ZB|;MN~2qtr=b8NU@+>j&XmYuQYob5M7G{! zt(Hm8UcZamk=AJH92g8`Nb_oDr>4L#PB9-zA?>LxSE;8?TxkETT@C;!FO+<-Z=2ig z1ppj5bK~%tYq1R4j_Q&?UoM+5WiSH(N~L14fY)&ORw9Sxf1`MDOp|4L>#E{|?`-|( zjhbvBKa`WN7`{&G1whJ>~;%*)r_KVWk>u&pbX zW<*iRB0hK5y3)0>TwkNr?)>`X?+AkIt}UJEkxC}{e<&)IlrIqw2=KS3uC#X#)z_6L$Fp&Vju8-pYVJ~e`d#CNKYErIh|jm& z3q>PYb|#HV#WiCyqUY6gx?DH9`5eFbt=sBxEj0 zTxhuvPM0T%!>X^VXt>m+o-&dnh%UG1=_`fc!Li9-e=gme)SElx!(H-`vH~&g=rICf zP(Ex}k=Nd>G+3rXQIkRXQuLe*W-_$eDcldn|&i(R?$aa*AR0K~@7re=3itKH#P z@X_^He{W{T&~YCUBOnF^07ziRta6&`qd>+aeWL?Qt%52)pNIT69liZaDa zI?aEfG+J$K^1fipgcm^&6h)!=mSat=cN8k`oIMIqfTAcGSb_EojsXD9U4NQfdFcYh z$Rppia$GA(;SmV%T&buJVb)*-#Gn8GwN*uze>&s|Y(}<_f8d8RM3_*Ti(knw>9n%k zoM2na9mNBq#kvSLWi)s64=!5G>I|0Mo60}ly@3Ej005KKeyd;QMbM7kVV{A3$NqBP z_L5xTl-}&;+uo}*+w424OSmk?y0ZM_gxJ=5PdCb*q462F=k@i=tMEv;pSVrsJK>&br#^pf}lg&Q&BC)|?GD@>05CjEMMyu`6 ziAMkG-3N=^KI3xn*s*@qJB><~%qBGefJ`D9%(iKVtEMc^Z`*0O+-0*npFJ!<`-Ucp zv(q+K6v8m{)7ci&?AH#8qW!}Yg&C=}e^rHPNu0(jw+B?u)PU(J@o7n%&c2ap$4n>z zF{t{wii_=Xwa#d=Iubdo6@?j*WKvVhJ+C*UT{}7|ib5i3p6COscbD4@VVu2Zr3#`b zlr&!aTnm*#I e6fLa6i^88=1#8g&aSN>g0000 zu7WI4I-Zc??qy(nZehi5}ryXq+!u6&$`v&^7;ZP>bJ$R!`Y{rPA&wIzjU5lrmocK@)*sIO@XRH$(6IU8l$CaaLQF}ez3Dukt zx;${l*hsD&D6sKX(u@XC(L?IJiz0i<`-4gz+wb$YDq+w9` z68^@8BNNK=#A9mxe@=dkL`eJT8{e7HEq&PBZn8L)vj!X%(^ymVbX?;P1fwz;9Qv$o z`EKXXqSdK2T85_<4k&Vj9L7`SEL1K$>ut|elUkF>;+!{GRdc3>%6t$6C$%OhI()ye zYI=U@ZpV;_OP7f__j{F1^<^{);d)DVBocwBgV*P8A0G1sf8u!9)+F#47lb@qT!_PB zplp!AqP>0U;GEI?+Yg#sItHVI7f;mGRmhL*F8}}_6p8%l?_dAn`d1hf^6L3IG-~^x zbwH7mhDG1&9*f>(7!1aslF%q*by4=FOz)_=ePD9)(c$vU8Z1Iia@A5eyv1GAYxw*@ zh&ouEZa$03f20t3Osd)8;?UD;6w;RVq1f}jI|9K_=cv-_^CwX%A`yr~MFl%Ks06@Z zus0g_BasM|#^`W)`X{s-NplAKTtmgG+hcXQ&9>D!gT=6H*P9(&2IWX){xtx(dID4tGC*;idjH&hH3EA%;vTv7B3nTR`EUoOksI?)!V+qUAC@L2!= z)K%mittyOWZfF!TH{NnlV9-d9&kq1Vb_V-we|_0szv%S&1O7k&8z0X$k;!9TK7Dvx zW9%NDN!BC-D(#229=G<4;PKdBTslS};-TxX?hEJ^ZNX5eslIG@YF=whf-V7*@ghC0 zg(dUo>>R{75*7;agF6T5rT+FtQB(p3~BaxW|1HU$hU3xQt)@ z@ObP`QwxjP85{(Bqo#4Kd4Knpe}zHtf8EQcHcw?N%#Kw)i+b%s!+=UVpwfPmrxBel zPl9B5p7^bkH9aHh=10$7z#eg%+E?ccmRvD6DIL+|1k8;Fh&(y$yxx>~;+_m?ucmrfpd)TjFVLEnFA zkBtzDf^Qykh&nV@7l9yfzjyoxC#us)xR392Qpxy>$EzXkSR@gPIIO*oi^Cb0n}Q(t zY-$FLMsaD>U8Y%`t|OHN5&?_Lf7lXx^mJl;)&Ky&@brRi$sSEo$wb_HSDQlNFpEka znbAML)RU2!hJE?LaAY%B9<45b!+@@#>6qFD_s;2q11jy^&Y|5{hQslA?5ca4#D+;D zi#YUW6C0jc$falTnBy8FbRC!!;-T`~=7;@0e}K=Tsx+pNXMSQW4CsT-I-V}L_n}tIaym$NZ&aDTe7VPIrK~(Gj=c-a|vRL02+Ctx4#_Uz}Sp5 zw;nuw^LX`7zT40@u90T2tBR#}+K0?B{gMku%F#&Fq}Es@&DhFlQHViRTpIf8cTVz{ zl$#Iwx`z@wNM~wG^RxI8e*sHtw9wKC_51Stfly2P5Of{R)R$WwuHMmE000)2Y)mQ% z4u{jy@$)825^);_t1gsx3@dHBCSZvTmFQhDT5UW!9fL+~TfMKX`>J9}xy`19&SdlW zd^N?=10^{Lzq-A?fBt)WpJOmPbW8TUEPk~@nubN+X&dZ{=k#(@e=Pz5SI9(V^32VT zLMCeM8I5ypB5pbXH=xokKiB@6&=?{hSRmo=E0hS>)am)f>n&XthYO+(*%|E9wWT+{ z?1@g%=*@C5@Abo_PM7Di*4}l0Fd3`B`3#21X7>k!J5}$nonD8)VK5D43LF+=vf6nJ zTEZRtakjNIW zp*Axjp>d5V6bh$|5z}__J{}rjq?3~~Ni-Lf^7%qGGezRJ4*RNGZ8YkZEjzXycbYZ= zxr9t1DbUD7#dam+-X&;4KRJbO5m+?(MNE>y{}`~;3#hLe9gvvRYg(@u{sTG+lOAi3 RH3X0ssI201pG400003b3#c}2nYz< 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 J%cM<1{s&&W<6Qs% diff --git a/screenshots/disk.png b/screenshots/disk.png index 08841a083df73b48536285177ad9b3cf56490333..7a659b8fcdfeb1468d05e49f29f1c98fe3098c53 100644 GIT binary patch delta 3713 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 literal 5300 zcmV;l6ie%gP)O1~Xs(SUR-o5vI@80`vVF>Wj z0SXi-P&|~tZY#|5_MY#`Dp0|pK!M@`00tES3KS?FULVlg8%CyXqEbVF0>%9f2mK#zbs!`dYK!M_Z#}2_T+h6NN6x=NxX&)Fw1&0C!iu)ZKUDX^!oPAZM_30uGZMj?0NHLk!0Y1e>jbr_}#(FPdq}S_`Lu1 zVWY`(hg~hyCMwCF0%Rg#b7Ag^nB~9QyI-lEeUN0hAvc2^9CYB^m66Fi-G@jHnRz{@ z&;HXh1Kw0BueG*&B(LJklnuEVZW>&uX*_wg8sS^=qa%Zv0mtXI*BcD?kY z{qp_)c09S~&6gLpeCM;T6e_h>hQ2CQke4cGmkfM$>f*u%!3=uos%%bJh)!>4>Xe+U ztkD~cjtv5+enlBcyePIGnKYx;h$Q_NY8sTY8pk$tKVM%T5*CK%&0EJIn9OFiR@XNy zJ6GK>>e@7&YSZH=JT{053t5wy!e%Xl0Ms=oJyB6TAy*(5qf=d2tkzfm^65P*NjG57 zsK4C$C?1df=JX}4PKVqk0RY_P5gT(emNDp~lk(HoYTNs~PIe*bAt8!goSDoDWN7uq zrY_0pYqdJP0RTYrrR*pvSRNYOKQgxOOxd(b4FD)iPbv|n{eJI0n=soX14*%*U+>(q z|Lo;@ardHUWej8X-}8H5$cmH!l^V^}<~Ebr?7kTui!IJfK2=$JzPjFNgZz}l(tP2i z+D5HjkK{#*Gm?iVrrLY&*R*2>KVA?M<@Az7I&!6<)$z=%R*SG(7=u}tld&?HZv|Eo z-g#UQNT>a3$L3j$_UPp*i`80`o)o@}`L}P6T5hjl(P1IaKek@0*I#QA$(8D50sh$n zUK%g*+20b^4&t1;`;OoQV@@XX6^f(G6!_4HzJ-N2v zMqAgR3l&s~PeH2SU!UFj!PkdnQ*wmD+YQ3vv;Bk3V8C2?~>PMx^BqESSp z_+$%st=+vnQW*f?$+fFkfsF4jRX&<8+`g{xlY_@8WYQX8>c!ed`&!aDApO(l2c9b} z*}1;RWHvW<^)6yohWhD#U)V*&S{zThV?d2gU*6QJHyS;5&Ev3fSZsBx*j0lY?Omn$ z!o=vv+O|%Qy~VP_B7%cHKXLv(r9V2=_pw#kqf_!=27TdGg=)67yKiwln=KaA?Cht9 zPY%k){_BmGoVMARn~8_vKOa0UpHTq-TD$w++O;(;AU2E-htP5Jf6LR_rv9DNVMs36i9}N!N5l^Un{@8mNa%s z{%zN`t!wiCy8j1+!knjt;>=_KK)J)>bgxO$4IVGbrTh7Qa_EFB`g3KIem>+K>k7sF zLx2C_wAE^@7k6v*h9`=0JNpM`)EXp@M$!YF>boglc=Bq^#o9*OnJe`z_OOx@8Z7P` zy51`0Mn!NVBLD#Fa?*8r!{xf>xsHNv@3FIQ?A)@Wq;P0#!lo4DVEP#TxVqDqFkcZa z8PH%fl{dF)bckHGlsHcJ;P5=>e;%2(_YEb-M@@c0u?@J~6H>O6^(LFfqtxaaH;E@P~)0MS0Q-mOh=}*Pua9N4GbJy#T zJRM07!bGm#XtFUH4htJiW=G4PR47A(7)*aEiy1I6tq5k&vjx0wPG4G>Hl5Y#{&D== z8&7Z9n49S|G2#lo1k)dix|lvr(rC{2f=y;~MT^J{qd9^|!1JQm^&LI#n>BRw#6^U9 z+^AxQ1Vx91T&!(e$PT_f3u-ac8SsT2J`0!2j6&)JLzq@WHR1-%(QFD#}|l2zZ>q zG-nEp-JE6xF>S~3k>TU=Y4@3?1Lv>oJ$6!e6CZ}hl9j!m}q^d-e{d=YPX6S0=x7IcSEo#&dIPw(osj+-+`jVX~62?5aJ zDY9#m^qb6PL3CtQi`cybIIUFGwL3|6#zusGe&T#nrvw1d*wORO^E=Xcu@`F^000>Y zu_^Jx)ifxt7 zS&_h79`WhnlO6p-x1yw;{x^4S$>hgZHi;05f)&Up&P@4e{}Hpr;xd;9V=mP;&8XE0 zQEZ`r7f7c$rk3s;V^i{oWlS6vYhOZ{{xmXya62pSH!?Zp=!)7Y-fTA8+?mb+DF7hJ zMII9XkQ~QJj^q63xv111?)%;B6F8B7`R4F58&*e#EJOHoBt0-`eii`M=VqL%x}h@| zOS02me0;-)`@WZsO#%RVq_W?9_EjLAHg;1U6&eyB8UE4!AKWaNb?x1Pn5bBG7{V=) zH&;sHm@ao3oikuqAQSo5Zz=K7Fbu!{>TYC>W85%c2!qaB9`SuyrBiJUj*d6owo!}K zIw%|GM@Qar#RUmBXOuSjv!S-FYkf{eavaCbfU+sM)oQhw=74P6{s;&_0DugB+~|~i zKsHXgZQ}A7)s$i;E+P~m17czLne|2IuGfvaPR4(6{Cwx2)RtQiNd|O!LqU2HFDgPL z8CWVVxKiJ;V_o5{N7kIItT7slSpr^RngBr1Ek}t=)H$T&3)7SAJNWhDZiJCV*MQWv z<%NOa@E~S!R_f06t3Nq(eBM5(du=WuB14w_qI7Lr??7dvXc4!E1~J(oL1(IN%nLv7 z9Z9-JAf49h5WIV3lLS0oqtn^kv`q!VzkYjEr#I*gMiS!sJ0v}jh(wdw^zIi2ZDD@j z$k=~Aw|#YbvOPPj)$0dG$1xbprhH*zr=)*m)XftIN5=sGVSx;U3|KWl&j?j`$AIkM zAf3_J+=FPtWqD{wy|}xr*Yg~XV~3}4qcIqa#l@5;&Pr8lb=9rT_o1c~bKFv^)r!Bp z>V^ac*nKzqRq6OtEIZWkjANL;U@7y*W3dZ)T%$u;g7ZjTmeFjk7IoM-6obJ40Bpzh zeZa=9IbO!KmiB`5Bu*G>2^p}qt&`?UDG{dfIc%%ddZVqgt#2?YG}w04XfzQW;_fo^o9S(yqbb*PniTeNM)_{Jnc^E*1D3_O3_Pbo32U`(zS;!UbO}FI2cB<|7in~9$*aA z(KlkFKU=zUKsFv7!J5}q&I%sGpZeL6Q?{&>tA*2+wI`F1M!{u$3@Xw1PpMKb7!Uvu z7apq9>pO>rJ%`zNTuV0*;lreDpa@XV<)F)LIN3%nR{W36+rWw zRv|5@M$&^ur}v}yINqh4)kK5@Ii4XA2qnU_^7w-TUpG2;qj?2PhFf?P#A>6 zVF3UJqZe-S58_~dvgtAIs22x{;M(eXuVblaL$1RVCj`SQ1avF&7ewZZLV zSe==yHyDs7-R7ojrdiAYNAD7Xpk)mD_%zZI*$KJA*M}?_9$j?Ke$RKu=B2=5*o^gtGH=#Fk39-xs&it zw23_T_w>5LOSMhNEA5>ac}x_UNVws;MB!(bBofmNaZz>P(Iz_whSmzxrW7+ruTnM zl2r@Kn}X>60D#G9g;!GgydjKAFcwBl%{%YzyI=@{(&J-80_clYr$jo^Gc;l}nM6JP z?#YNo@yX!DUTqZF%EY}zwW!07;**!mx1UMl#xSUU4T#Ift6Iejs$b5E1jm!EKJs&l z9;wXnpUqdd9org&FAIEQ=N6hT#c_!S0Eib9(8DlHrH~gbcE^u!^HLH?1iZZnsiIM& zH5j(7&U2h*cr5l#CN0yS8WkEcARAjMZ6bjm#pjs~tLwzw?&;5?B(wPO2BWdr#XjE8 zE=h#5jOI&mN`fA3vZ_UFFqur|9}BaJGgF-IEW45P zoyfh?*gEBUYj{?xi(`j7y<{?*O=hzoW_jPpDAS)B9mdibj3#H1X+e6D*=qGz1?CFZ zn%m+d!#AzUX8KcmhesoVgYr@mdxuA_B2JB0HMb{3v7cDIGCC}zy>HNLu|$WnG7{oG zIe1*MM2kF(!35E1Z$0}&MT2N^TEUBoNaM!VwskJ-|BannSj>P!7b?6hjIafUrTN(v z4J~q|DkhwjmB_tN(_q_l0{|%1vtORLu)B2a+qS|r~>IUp@0Vfu>~CmGKh3M6a4*RK zs$XqlC#Gj?HJ*c`6M=LZ z27&@;e*Fs;0~{6>3V71-$who1Y_dS_mUI48-08SAj72bS;gtgZrG_R~<$=e_s~*V{ zW(&9;yPDPNPLy9?Sn%mXB4!J?Rn6^cjdpSK!D_Ys-?6i+QWAv%t}u~1t)9JD({R4J z9{Db$$!z|gBd1p;C1mj9c~KD-D;OFb|ND{ClBJ7r`ekG9esQoQJ1sXUfkePhDwKyV zUcKgQW=_f#bUzBhdd&ID{?Kq||6oDd3LF+YIwk+=)WvzEAnqG{@5@8QSt)rb0t$(! z)@UWeqg5^K_IldqN=xjG?Z=L(Oimb!6UG7n7)>VCthTLp;PkZ{_B{8UYZD1zItFB3=d5Z(ohprXU3U8Rk^=dR za^Km@PCtorBT0`vn9b%r2aau6nJEeddU$=K4} ze-}Q)zMH_paM_Kf>#gD?9M??^UOeIJ_2xZsslVh$fda)+L95qasA+ug#&x5;>nB+= zbU5_?3r2wg#ls5-@X}E!pg@7*;RKf8LqVm00tJeP6aNpiWlQ6}sU0-{0000*HlGt&bp1w4y`s&)?Z*BoZ% zeLrdRf6Mp1HxTG@04|M=%mP7lfBNjpSMEvJ<6s$KwQaM2a&?ntr26#|-kWb(d15qV|s^m?}?^{;$WIs+qh6`7Ra zEmf;N*NDIK)*5fAn&!2$Cw9geW?{Y^w{9em9oXKP+_`#esT?i?06d&GJYLjSQv?Zp zH(_nj=0E*tsYRQ=dB;{Epz5$_0$Ev8_V;e`ma56e?v9jaAjr;GOqpBbRxAVe_in!H z4(?vf+Pv3~KAbaHOk35|fA4;^R6?HZUsoVyw=r3*eyb=ZSBgWZ-?DN4MhxaW17 zF>`fr1>)+1)4kDHO8&*ycG}iYuK2Z$h3fZ9%jl`D_|E;r&&MbLp074IdiJdzSO$I; zXuL7}l($q(U?zQT_x?lAa?hTOWYpzokwi+aR&4_Sf98CeKh~9=fzW26 z?%;wuZ?Kuudly;0Q8oGa!=xpZ;iwi#3M!Sw6_T-FDwRd0GEFO9kiaq`5=ZVmG7evS zsYCHXQM@-GUyv^N)ULh=Z>d`6brzT2{IT=;kWYb>nSimW);ZQyWAv*x0019f_P4d{ zt372hGMYrDo-})0e<8gZ4~CD(q~zX!Ul(@=R(A{$|WpEHU=OduLZi zM`qtYA7I)7eSTwhbY%8`i2wi{ir>9|?06eyw$Lf40s%)uO8Hc2kD8)M568 zt6}Bsdlrg0KWU9IPPQ;HOc2miBL{Q4GJ0x0000DNk~Le0001h0000S2m$~A04De#q>&*le+3vx zL_t(&-tAgTPa9VhK6l15w#RSY*s;UgDA3Rr5@@s z-~DEMzB%{YbFL9I9fgAJpP_4Ce+msh&=*{^C-(VQ8}B_<@WuX`kN^>);GaD=8Q*|k z33MSm_A3IGNC?QqQmn=ahex-tL~&ffpZ`S!tPn6qiJd=uzvB9^Ih{cOP-}_y*_=u_ zyB80dWNdJ zHBMX}sA)JD{^%VCLeOFjDdg!Zx2x(bQLUQUj(2&ra{*PK%_(UHf1w<}BA8YKgT&6M zGOgBIBDq&C^tujKuH|0o>G1I_KBMDhbQ1601aKUL!U`sZ{bkRu=&ey>iJoq%Tb48f zuK*bYZWYk@zse-9SeNy>q)4#Ct1H&irn1=j*ZyG(j&bG13FoYCJ9yTwcKftlZT?(2 zCC4BnzzhX3*$dtIe+HM82F-?AWA@TXxBmT8(*|vFF{IoM9vn03HO#AxOOj>~+6C!S zyJ$HK+&M5fW)y?`;+s|g(5acvK7O!eEn*lR4de}!Hb!az->wr2v8%+N_Z z6juCrt^VCNJ>|s-0ASM?NoKabdZU$;BGuX)lr+Q6bwC*nDS)5|4Gh|(L7N1CxqwPQ z07}8OG=}&_OAU$nAa&_VLyI-kV%>nPMC3a4b6I3LB7Zzp)bqw1foG)4Ahr@V(NL7y z#k6P1C$AYxe}zWtEYVnkP|8``=AJs9kOe}@nggr3u-juslFW1*UX(P$E?N=h7-&Un zpiv1y4;t45MvpWv60!`AXKTJ&qec!;`{6*gBN8L;PnL8X4&?2Pa6VD)OzA|e|Yug%2*N4##BM3HLBFTM-^Vb z8bfgRVa3RJ`RU`chibBQ{LOnNe^AwDa}q>Gx(s3};j91~8l)gf0*iPBNU_*=zcz9l z`t-cL#Ttqwh**N?e0^ccqeBRKkIkLycKd_W;Ha_oKvbt;c-E-6sXXSG(T`1((MjCa z>FsFAe};LSmR-J4d!%`>scwaTm3!G4cGrr?CS?w4*I-J+TNnpI%2+~n@x4h($x=$T z@61MZey+#;4D*4_`BQ)0Lr1Z>l6Nh#R)zUmS2TlHo1!OL7lePqOU@wD@*m36I5^dy zV)K^>90y25-$Eqp|7klM$}7@Pvj!MXV_KwJI1AqYCkHawy?h!>biqISCjbD*G6nza ks{jRi0fq{HP26Am8{rfirsft81ONa407*qoM6N<$g2XhC#{d8T diff --git a/screenshots/load.png b/screenshots/load.png index 8ed7bd66fc289a3bc96ec977d059d3287d07b5d2..e136e7e9e1f0e88f5d84e7f4fc2a1b98686f19d8 100644 GIT binary patch delta 1983 zcmV;w2SE6w57iGLiBL{Q4GJ0x0000DNk~Le0002A0000O2m$~A0Nimv@R1=de{o4f zK~!ko?V5W`Th|@O&%J)bHGY7xu`#xJ*%+Hbj4(-XfRxZQ38*0fvSn(cZh3U6rgYWT zO4BrD(=;{GHdRU^rK`4fsZ<)Wu1PA|jUWOnA!I;!IEe7F4Yu*CHpVu7+xvrzddAo$ zgw9p`6@T2TbI#8ne*XIWe&^cIf3ctZ48&4fR}V<)8Pl=ntKno8lG;e<=)*prU#Zt8 z)AVe40*&I*=`qX^2n71ZAEx4Q$$ULKf?-%DE_S%w0Duk4N)UkliAlZLvZ>HyBC@Yi z0z;6jRK#Y`lDYnF2?AiJP(Y_rVw9EPM>7k0<7T60(`k)+D$9k1%nWMBf1UdaI%DGe z=Ts8W;dHq@-Xz9G+QH9f)4%yhqeRl(>nF+QRFm@ytJf4FVzJpH#wyO^@HuR=)#mZ} z004}1ia4K3AragD(Ot;NMhJMDW5sB(hOMHc5npY5p|!rIFo!jx);isuc(^fWbZz-_ zXO0}Q+8kQr*KrPo>O@05eql1Xz}S;|HIip!m77;8G)(pbP| zj?XCLbcQIGQ^d(xy|&ow6e1F#tjuV%az(U=C=^P_%K-qi)K$0ER||M-5|Wb3%94r% zb5`K%$iXY#Js$G`p7{P3?~%EnktI<0xmoLJtLpR z6!Ey>{YTjSg5EedIUT)WId%BO*P0vNKG8}g5di>)Yj?kW;@Io0jib|Zm)dU@=CIfd zS`nA6(CWGeN5i2-e*&-9`$gY?&9U<3-9aLfDisT2qFa`2zxzwudslBboUZtXLbb0_ zGB`1{wgo;JhJD3(sr}~6g2u9JyLPLOgru-CGZG48%{>RJq|@`7IGw?!)5-+}5#H<2 z8@*+ze_}FvpkOfQ^9KL`Yd~qKDM$(df*_wifDi~|B2vcBe`nKa3XN`TS`oHfBFOI_ zfBX{7buuUjO7eLz=>x&wMnyWxQ0VSb%FpW@c(6r`u%6O zA6>oC)Bo-#e}C_~|6u*{%yf#uvIGFwSt2apWVheyWzy2OyU%)FS|*=WhMv5(h(RVI z$6ws5T-0x>Qn2D zPPe=B-jG78!(lP6w=~w2muL(o0D#(HT6U~NsFwu1f7|WJrqf=k+4aF^9a@u_fZN{Z zD8v*(rAW|uZ}@3poNhYso7Y|u=5ap1eK*lCuo%qIx;<@Qbq9jMIOE)rPuQK#*yg}v zu{C94JQf=zmf8Avvw}ieFBpPWx7LVlbEw>2FO!!3qnGx#-|E#Ezs6xP9`E)Z>T1eM z=QKLif1>_rVO;*KLo(^u^qksYia$RtkLUJ-ahJyv!yEtr zgg~e+6=TpF_RPP!{MTz;eE@)#I$16&i;Scmtg7H-(d|y>PycXPZ7{uYyopL8o;iA` zQe3ot`J&O>vafo4Mmab!1pr7-BN~^i+vf}%e-bo{B_&m*q6_CvUO0EMTv%99%)fB%Bpm$&1%Tb@>=_yN`uyR~(brF<5D{64`1Z(H z#Qp<eWMJF`KJ#)0nY49h zpi!t=NlE9uq4h&gh9M~`_;GUskIBd&lMdJHqEX3XGm3=5Fk5YFe;%LD?eVU)0WoE; zSntXwgCS1Z@bP&zjV9sy1}CT14|V-}q-S{C=lAn-ve^t;_u%N1N)1C$aX#1QfA_-> zw0g3F0R-0B%j@%Byn6Hd`)l7i(W27oFMfJGtW80oUg!k{s zFdnJY0xtVh(*X<`y`VQ-Y`boW zNlT-Wh`+ybjgp2en#`Jwzhd|nWL&Zu%uE0GTqg*|rhwgEUoMk@jyW}hw2AVs&@5j3 z^g00G!<+vENquK!vRXlu-*Y6DRMH$tZ72v7S0uBLROCZAE)_{;A*qP^6%WTFXJBoK R1$Y1e002ovPDHLkV1hrf<+1<( delta 1933 zcmV;82Xgq;52OzviBL{Q4GJ0x0000DNk~Le0001+0000K2m$~A02Srf){!ADe?Un@ zK~!ko?O1D28`l-SyOLH9goKa;5(1020SQTfu)tu02*!c5lj5WfZsI&z$DQd+GM%QW z(>BvgI-O4Qqs~myOeRiUPg)$Oj*DIA;o=8a#J0c&4B}xBU(%yT|_uV~r@4e?7e+bC7fDL?yKy7%aB521)7jzrmc@P0_xZr!SqI0%| z4c9z~NZ@gUtfc_9OH)QBrv80a=Ww}qY0D%+{(X5FjXbAZCI9~Du0;%kQCXm%QK$fbulFeG z^|oF&pcuB+ASX2?Yg4k#zNpU2PL+sm&00(IbB*JZC5l|LWyWS-TyQvZmz;IK`rSQ5zc|t)dPHfm&8OM$>jGB(0)!_u;Z{H+J z*u7)BAdYLEnmyLsvfywqy>?Eh0$ ztP%_O(eo&?(wrzdHZiq6U3Fge_Cm#98&8lV`N9*A+U$$BX6F1|J{(`3RYct|JVC$0 zef70xE??6d22+znf8{Ef%je*QEnr9!1(vzV)5 zU4kGk8TxH@M^GC#hII@K0{|}f4!-jC;e$t;>`oT|puKMhp;Aqj>4Qg`<`?XIE@!2c z&A#}r&(0f+H}CcUDOKcM=^cokr@Ex*Tzl8Lb!#+*r*&6sfA&R>2lIHn%Xdmd1nAxs z50As<#<1G^ZjdBtvP@G~1eNcf{M=%lCkUdgyDwcLijb(laJfRxm-fNoS=*PP z%zpdRJ!MK6=JkGjzRl@IO_u2k*LnZ|FF*ZbiI9KrXp_k@{raKCiEkn-%19QIBx#zO ziE@0lG#Q~%fBVPA*C)rIBVr+cc-#U*(C(Uww(h=kiFl>Ie)ZI2fBMC9dmpK0(2+2@ z;d$1=?r^z1Sea4=Ly%OIpvulzJ0?YxV41ree*PtSn-h6)LGn@I>g^Q(F`oxR5J>`( zB>gS84+j9mvY7n1CBx;edqhcouHG;h{rDZ4!t)*7f9qCfGZ-XEq8L_RRo*o;Ix%aF zVKSD2L^rB8+&Fyd%%A`9AvcEgqsp={x?y;N!iVEWPB&}S%GdVqRc_7@3*rL?B*yb< zx2jKGyb^x?)&+a;3PVfw9JMVEtW$Dr>>utNk8SMrwDQvmcLwpq_u4hG2&&<3nFGKof8@ zf4-jKv8mg4ItPsq1i4VpxsGnT!--wS>Yi)w;;@)(7DEun)v8sk*RK29<(X;E*VnNabUH$- zEh}EWGDGQx;t8dz&dZKvF*)oQty-z;e=;n$*KN~u^bbY3oPKl;87HmQzfB-0! z=jeK{wME^Nt(Pe%oa!wX6lEFG z6RUH+FsRZLe9_a7`F!BsbgvE!BQ)A?p5E=liBG@i82Kt2F`6fGQ&V2u_aqEKe|@9o z6BpXT>xSY9rOW4X4m{g{<9M^ab7;l-RTSo9Uf;u8i~Tvs@7_5Q@uf%r^!-B>DkOo& z1pq(|FTT98+l%{Jx_Vux$K&-zbR&Ww35#`J93LOJN0+J!9_+uD^c&^x2M$a+0*C6@@Xmt>w+H(_aa4uo T?oHqk00000NkvXXu0mjfEo{4- diff --git a/screenshots/memory.png b/screenshots/memory.png index 549887199f28a3ad3315d6f4334592dd39151915..db0c59be2751328c28cb6b4ead3f423723d44429 100644 GIT binary patch delta 3594 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 QPyhe`07*qoM6N<$f~@cMH~;_u delta 4324 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 diff --git a/screenshots/pacman.png b/screenshots/pacman.png index d4af1b5712a5770f708a6c772faad70bc698be1e..8f4169e3f1b7eeb12ff9a5947b4386ff071d929a 100644 GIT binary patch delta 829 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 Hu0mjfCfMGn literal 0 HcmV?d00001 diff --git a/screenshots/ping.png b/screenshots/ping.png index da897c354bca2b8b4407790314bb97a30097bde7..1c8bf2bec8065882dc2306424b8bafe161b1f309 100644 GIT binary patch delta 1631 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 QJ^%m!07*qoM6N<$f@9lSHvj+t diff --git a/screenshots/powerline-gruvbox.png b/screenshots/powerline-gruvbox.png deleted file mode 100644 index 77df3fe3698b51b2b77c733649671922a24cdc48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8830 zcmYj%1yCJL(Cx)7XmFRH!3pkgA-E)5+}+(S?yf-s1PSi$?(XjHuEFKM-~V3KdsS1t zXKSmrc4xZJoaydxC57*($b`rM003253ity6fYE?p97Je{<;SeOfLvgl#H3Xa5fN9n z6}KR_7|s&v&Ohx;o!tx^O#na5U7Vdw9E}2|kN^O3fHY84#eL;m2dphWPL$!+4aL+V0DSyENwV1D6I$w$4j|x87y@;p=>!{4*8y9)&faF75%!D5K~XSOEc6dTClaZ{q8KWUqzJ^j>t zrdPXa@O7HP0Fnoh`EBYe5k0Cr)dvYk6`w0!V5;lt(n2kMB_fSQMcJTZq8>=RHMhU( zZNm0X#@zZYCJy6b5A;2zscXo|&o4^G{Un-Rv%fETNJZXF^wEymt$++74<*yjWkt2@ zL;#T^&XAQCGqT*CxeOehgg`MHgK(O2c4V+gFjllwt8Hq)&0V<0DEI+k?!>dJSU8x3 z91+1^P3I6%{h8>xVuJ!G?H#`RS}4kR3-Y*!Y3jhezEOa|4F$Sj0z{PHl!9dpSQ6nQ zUfZ(!?cLwGmHjXP_+goJ!DfQk!SZE{lvJHB`a>+RuoC<&bQq;b{ww;;)l{7IoH(Uc zf7l%(^zuxVi@y2yJtHIsuBf5F!^nn3&dqT_1Gp-+kftrdm{X4jG>`I$?1Z{KtB?r1rG6uJF8J9)yquBdQrM%q zIX~l}H80O^P$mcnUH&QJ`2_SuD084fjYCw2#NE@#cZ5&!I|4bDsJNiV5qW(J;n7i7 zAbfSXlMNFO0d!*{3`KTjcwiDj^vwJeVa{3GO_#3l?~)S_Ko^hTc_R0+1a*?^xtVTz z<`oT7sH8YNA`;vd0Qk*Mf0sD(|UJ3N_`Q5uNrSMWdLe`>`q>F9`)yv!}nlje;r8uKn z1rvA1gr48#aMXAv+0xiO(zE#&SM*u0978ow%A&7%)(T%|0tYE;9V4IspYKB7?AqI- zqJX+S%M*USH#egmwyDC4Q{xs5MMd_m3fGz9hr;{b?Q<&&-8>=1#Uq=m8$KeTHnig%w9H=76s9*2xF5_D8+BESHBr zC5<+@y#?plf+6IguH)%k8#bx=d3okwiSg;JqeZ)#=V@I)7gj65XmX01t1Agoga>w( zjN;vO%^&W;D=DS9q|WESa)|a@CO?URjqwYb9Zo+4O)d~S{it!nUb>0h?9YG zB%PE@k>3$EwD-F2-49^tz*bW7oU{iAcNBbE*W%$kX1?Tu1b-{RYiyG9oB1cv2?ZS7 zRuydN-=z#v9C=xv2z4!^PpI3;xK%D+=SNX;D<&kQ_YQI>DC*!)wzRk{K=UGIJav{h z@F7qEej_p}3KeRNR<`i8f!PN%2VyysmtPVPagtnEKNXkK!;;+>6zX-R!uG}mF9T6( z!~b}T+im(z|Mmy?G4U(V3VKe0fO22<@a_&ZkP#yVRE6dc4mvRKs2QdU&6 zs7GXK$YyTc&IGmonOH=L7w(o4yBZ(-U3)wMt~&)XBg-nzPoPGQNB#S;>C5M`t*dHV z9F>?7-c6^5Q0wHsfwBfIGh*dIuLa^&^W^9aZ%JVE#-A-zB-ypJqoJnwp{n8edN-c< zO~IhBWF*kAr}3NDbp*3s6B%SSFvtM-vM*PiF7WZr~dDJWUenQ*6U!xfWOfjuB&dLx9kY5Y!x`b*I%tCM{a!4+An2hE&!-lhhf!E%*_K}}cj ze~Z!;sT~9JqENr1tCFf{>W;H>@blKnU4{yT8?V$oQGa2tkL^ZP(4Jw#zXdmWv_I`t z26iNxo9R$d+*BOgN#~2hbF**UoMmXw5b-j?XYe+wf6wi(^GBjbzLi7%KM{yUI>_!7 zUaQBtz2P9)`S+Dv+H6omW4WIu#G`H8y({$Y)#+m+_lHF!o*aLhTYm7kDONm&`;^mp z!4_U6hk*9M#e-X;#*XZyorTb_#kCywWN*I7JeTTElJhaIhae}q&eBLelL0~i05{UX zwT`E5(CDB|m$1*dL|5F%O7Tr&AyoY7t_KPb6FDAI^tHz88&!wrn})e7PV;&Pv#k{x zyJqy+iV3^Rn2cI!{Re;iZ@mJ3?edQ7V5jY~6)OWShwAcUtV10-F1fRBIrGldE|`dO91RQaEw zRF1jx4t0Qt6N>vQ;`Lo$x?m(eVNW%;dG2>{ZPe~(4-8^CD=YEdUJC#qV|%J(UY!_C ziEgV8Nz;R`#sJ3jNU3Si8{Y$~q}V{2CKdSCtvYghm0-4CBxW zFf*opsk`>a1_~1~z!F`VD^-AU?<`~S(rJSD{^miW#!E*(R)d`7>vo;JrmJphb+^=j zSQM(H2P5ahHTvY&*D?-gdvB_TeFfxTOT+g3MSGDi#2ec?wYy`Zjl8yKrmfukjG7K{ zP80+1RNUn?_ZvPZ;;PehI`wZ_8QKeElPqOZMEOX76n5qBs+t0n&%^p~$BB(=jX(=@ zW!HLcqdHa(%ci~o^`D^3-)dvFN?NTes=$=80?Nut?z_l#F`5J6T*tjvP*)onhjfuNv5i>R;tXM1Dp?PNE7+nBRp zYRVm*GVMQI7Pj}PRx8{)Dyf>{`C_gIV7U-|&4#(ihnkB90u0!mN{h%yXZn%*6LSLa zFJovBs2c3IXLcR1)TSUXX1Z@(Yey%@9-g5W=iuLzQ)4?CGpmTTc{QXAE2`Tz@mHzH zFh`7GB(TOY5(;3~Uh=ucc&|E4wYwhmL zLCSK*Vu6MgH?Y@0NR6FnbdYWNB=^sbSIN_$;@38p87BHYAWCdsZ;Z!~_7Kh2|?+oLC~8&JK_X zVveg1ZHRv`&<~HXP9L&+cL(fOg#BXI3SL@BsE0R_Ostecp)$T>Nk8i1ec z0)&wN%|`kMG<9b5+_|?V2vAO;Feq2I7BI^Tc0R3Bi&JUS!u@Z!|e(Z?#w}r^Ctwc9|U{Ll*l)zM_aV^_1x=@px>I?nfL5 zSb4>M*)?;s(zYYxg2M~w%5&(YIYx&8(9ugB;y55#C1Buf)UEK5A0dyH-j31gw)SS6 z5X0B+qt#j;68yst5WLj+p}hyPJlN}$%xfDb3`m5bJ$z zTE_Z;Jw}rh5$TM1^$j{E`Bfo?Ufi&xE!(HRYj`q&Nvg|$!06}mGn~yKfx{KbN%X?= zfX3*)@9Qs8*y55Qo3(px?-P5rlj-Zg%mkVv+vTb~`>lOawc4~2uM@3>>hMv)`&Ir+ zLz%wa>T5Tc-Ank6D1Kh60pO*)Xp|c55jrjA^|kaR&tmA;J4vf-y0m+WSPQ5fv89H= z#+ZxsZ3af*Gt0@OBZH|m&%twfVcSru9HqGxYC&b$dZ*9S;Ao6U*T3BM9akBg5>$l&DZ-8xJ!Fg$mOf9TEz#KW90VGzhk8p=iI%t-rhr zqVHG5wn->`5v(N_to>WkLID9(rB$y^@*bw5wmudP(k2jKV?!l-)3=FwMv(7O)$O$X z%tRr1pxbyMcp08(Cf(z+)m1H9p-@ZR=P7MA9`VG^zH@NP&8*vD)iS)4e{Xs>k(u(k zVR)c-Cy+oJE#;mzu=_Iv6*PPysCBw}{KynalDh1_sW2ysOAve7W4&If|>waih>)B!lb$(Srt$Wc@en!B~PGP|BIq%+ws={bk^IW`n;0_hPeF z2A^+MZNi`0xL&G@#AFb)fP8Mv%02e)M>L7)jF%n!rfdQfKj~arG{nw>pb_^@e03QR2g& z;P%^wG{nTP1IS5ia6Av!QHb5lE$J#8GZtg-BO)Uq>4TMpW{AtQhq7?6NA`6VO(z&s z&oV7G)-{ZdgnicquQe9M62L(|l~Eq=A62}FIEfDlK{0%?H~6WZI$>Tz#vCMkKB=TH z4(F0s|2!|1nV5^)TppGo%oe3sr^osRp^%uEij|gvpWBTG;}^OsG0pM%f`e6|nu~VS z*GKEx+w6x^zr!h86$b5iiHF8k0{hKqcdY+zT{kf^Bz4dwd);}c!ix5W(D7IB)-3JDg`~BGCV*Lp4Ck|9y4$sZ(emZh54zTO!d9n*JFs48m{X6Dv}Oac^Cb(dGspF%#n5H+64v8TMb|dR3DKYS# z89y9Z+4&`-OKHXH#{yPOc1R=E_04Ix&3kWUq)%3RQ;b>n)U0gJZGEVB)u%wjxT^e6U%i`E*73qyD75pBg-)-7j^I`8 z-l$axTSD1+(Ld}UxnZDSVe0CS6XU1n>5YQ}Rs0Y^?SmO}DX$rR2exe7ko9i-Pi@^! z1~<2{i!A5i(Q6#8QMj`_z%M(z!ff=I9`=_n)~AZH;)H~N++5>Fd-DfUYY~9!o>Um{ zz2({d2G(X6E9!}HX#hSU6YXO2JN`HFunw`=`QW$LqK=NabnV359#{+<6K{(KYDw)J zwblas91hbOrf9MJ%QcL|+L$Y9%|KHsc0vp>lCf`XKVFV8`7k^`r z)wW~JFHrSY$FO6SUq^v$m}d8i(puaAbzeIexqfgHYq zT2H7e&!r$Kj?c03Rxwe+UH$KsG)KC;h7P0<3VI}5S0^8b;K1_h+r?CtAGK!(3iON> zdrC1mZFSAZJS=#l-<4Z?W5L_@OAr7`GH%Te?Ik2Q5(+yc4eSFe{js~Wx@=puyIjtU zj?F4P!Q;88t51{3R+1epMfi%o(;^#70_u<;yHQ9gtYo)gqJ1HG{q2L@`v)Doc-fX> zk@G;w`KOeXHvu-#f3Zb_y3klM^zHH__2W2t>L@EN6cwb=(5Edc9=;D^k~c}}b|htX z>QtV*VxBy6!y?m_sdceW!F~kiMG+~FpGc7VkkV^uZ^nhKM^kTG&>?5G{RlGnTfQ*0 z5JQdCp-}j>WOyF6Pg%Tk!1Q(P)oUpL06I9&T|!tgvVgmM(f5vINr*R_P4^JaY` zjP@J!et510y2uL#{6)T*X&Y*;DXA!L{|U*!;BjLGi{;GY z0(L>aG&G{Gxnt=&&9$_iHpqP57s($B`*J0nB@vz&d+YpDwR@NPXaoJ(pJ_xG(Vgg- zB$AR^XNd?!z;JxP(wD=a@Ts>KJgIx+EBgFWg z%aT$j#b^m$56!9_GpBs<>gpP@cwD^CEmv(#7r3U(!$!75@3Lef*l}>`_4p96JYR~( z*NSCv6*{rsQmlr7&_YL5ix)75S)DS6EC1JHEkn*cXuI&8vdGDC9b=3$v|i=v@+=@+14=Pgga15}|z z_=JLtvPIHyqOv#3K8_D5uQn6)`E2Ce*>uavlSF!&lBzPt@{HL^fXytfwbliRRJKwf z(~_$C3dua1Nx(#5Km=iotbf}lOYoD)rSL(2AI-D1pfnk@688Ke5d#fP+cLNFCR*dv z6%n?rnO|-0NaK6btUi(DbYM_ZX&m0** zU&v_ZZLl&GE4m;GO`u9rPDLtA?#{ki<`L`HWBbXZC{?HD$FOq=Da(1zbX>|(pS%^G zv~2kHHAH=KkO?Uq>v{IRH#1RF)6i4olzlm^G9P%7ML#;G>@lYGtTm#|ap18AfxI0o zaAtc#i?5f=SZ15K$RxUx=#IPzt;#7Fp)-V{cb~aUKgs3#W45$&wYPhPb8!a_NZxHz zr4?I1^!R6(ot>=%dBSLTKECcZPpR0{r42Mv0bto-?>AT}DUq5Q471vja@0Iuu4jBsyxSN&Q52`{nST zU)Va^0*5EjeVOTO+`mlah`1frt~_IP9hh8`{(#QT_aM17_cQ0$nH{0j4*0M z9!A_=F`VzZvO~ixTGh_Ux#x?waGdjd;?Szd@!_qpx&@A_@$wRJr*4@q?&`AA5j*zk z-?b9HBem~Mxm|{B1J|keb^3roK~k{X2(^8OWKaOkfAXOEXxkW$YWx(rJ{BGQv~l|? zJlS+UU%UPvx1D#Pq8Q(RI@@Q;b_Nub0P@bNo%O-j`)6qhO%*0wq=2Vqf( zOG#B9>k(J~w9MT8E!2KCv%9Wi?8^MoBL+ku+TAtauEv)G$%|WnQA4y)myw>H$MaHe zxiWcN&aXO>q7KM$Bd;|rm>7ZV>D$fA+;>_+;yslD%GhlllxnZxHgn&dzQ!b-VrI{z zL}rxeP0xf_+4RnHV*T1gWyhZt>@BvU#7+!9I#ofBdreox*W3-gFp@I)=Ci5&Rjl8*%mbogna{hO60bUv$y|^yVrHc^qemD3p$@4M41S>%5 zd9%cag{h~c-tCT|X}w2EK!7Ab`sa?k=#Y-{SrJyWSVhxoW;L^j9O9-!Ut{_CQXi6Q z%g{rg6Qp6q1LI#}S;>s?dpSO_}Q-gvh*N720(m?I*>tt@N~ zS1Ni%f2*}l#x^%aN{W*X7P6oB?zFdaUkXvhBgP-T(y3@(ZL$d}lV6N7u?+U9sm|MN z;^1ywDty^_AboB;WOm_%ODOhOxbJ8KGj=`slDnZN9vk(29uT)$P;yV#9vOwgnb+mD zvQ+Z*C4`4zG&KrAzwChR)i3AfVj#R;7V+2rTZ+QcaCyPgXggg%*u8@lm+<-E&cYH8 zj!_fVi4``MG#eK;yM!SwhB+}Y=o=>#C1w;p(&~ynJ{6p&{G$F=6*j6M5}S8aN{6JJ zT7em*?Po-uRj?!;C7Goq9m9w$t$;iv(E+~+pZq0n_ia#Mu;0|ngDl=VlqCq>mCVBR z4tPiS@U%$jX2h0KT8$LN+%;2E5>?jIXwi&KDm2vK-hBt*#E1Q4XB`9Mi~i=>Yb`W> z_F9-jg+8CC!ECx<`t(2<7JU>O<~YBGM3 z)9N|O=Q~rvr2EI?mtBMQh5&}IBXbY$MFXX7yr2Ko8}&4buqHmf?sk7xJBHS%f7;`7 zD}DLxmW`P9%Ev)Y7Z7>-F3o@{%I&T$EgO*pnuE=1mq#aiRk?ct%QSw16g~Ixyf4Uj zhk$$^Aaq=TK{SCeUtpW+sa{)iiDElbMzzRz(iB>(_nnx-2`cvQ>v zoo}g4MqBI+HLmLyhx#l6Z;s}Y0)xYCSZ4LjN5E%!pxh$}oeD;F@^z-ZjikTw|m%k66>|QtB2!uXJ%wBe~#_= zYh=o2+xA|i^FrkZ*hDAM!G@Jc)uwV6n3x_g?ons5kSp{RJxy)dVK?9YJL~DNeZ)#lZMh&(7! zd_8=Umpr@#AbkR`qOiot!vnv6VdLQ77_vXf%9O&_)L$Pm2vNRYZ6tlc>UQdNki6XL z>P95_M+H^NEGfw6`Oe(=5D^BA$E_j(NAk$hGoO@Gf?Te%YJ+$ac|e2Vip;=pvQXX~ z+WtXU*-P&$`=|AA+d31ye~$$J6R~@jQ?1=mSKe$T3Z$M)uR=&UmGi*_sT@O>yh>5* z+AqzD3L(Vkj0`alBi2*L7fU*g=Iy@&g9l2PqGOTx|H5xqV^ uBa-_8{@3_kF=8J@;Yo@9e_a=SA5dPxJ@X1+vU^Ae2|!vx0aziXAMii7k}Yxo diff --git a/screenshots/powerline-solarized.png b/screenshots/powerline-solarized.png deleted file mode 100644 index abf8f75d818d108081c292ed50d7e6ac22aefd20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10788 zcmX9^1yEZ}*S@&BI|T|Y?(R^Ednqo(3GOb%O7T+Mo!}IA*WyKkySw|J_x~oDdz0*$ z%w}_T&m$*7RrxapDk&-e02p$z(&_*JCjfm-i3|(926B8hfZpI-B;_=bk&%}+RMw$y zv0XoDyJ|RCxO$j4n*$nFZmzE8&ZgfdQ2>A%kdv0s^n{%FdFbnXZ8+6BLq@@-hCbRO z=(|!3qq|v7-81@z=~DS4iYHoA)A>ABN7KEFiv$bA%`3` z2aq#|U~eKr2gmQWuv}f~GHb^nYp=HuP*pTc7EK^50xJFo)g1AlO)?bWUkNdTGI>c5 z6a8WTC{h@NpJ&vn9iLDL5l~r-)$pJ}|BHSm1MxJV!14UUH1+m};ekcPUz5o3jl^X} z#YY73ASRL?97U&DGt^YqT{l(2)Wbo?d7$Ii#OR2@-8t})o2_tu4>tI?9FU20X}TN> z2#0LJpXD?}u%i8BF|wz=jdV%#N3Mz-SF>-ZJhZ6zZ|>p`gzw;m|Niso-A3IpVzrb_ zG9P%qu+6S!TTKN}x0dhvt38xP6{#7CrW|+GXQZS)ZJ+jb*PvWWw>%?0wcVCPnS5^ z_yB(-t2$?3d=>f>F_ECJn=NkpJJ>rn{cP|55hhjv9Yvf9{wD>ZKiqErr+aUX1MY1j z>HIj)BwGzc48Tf@nS?x(Pyv0C+(Pj&i=7IKfs8a!Sd=IG%bfPyWc@2QVQ>=eJ6DhG z=??|3@du;RVPP>a!S?qrjafzk=iXYMl)Vz>uqb|_T{~~eng7{*9FO`g*sR_x2uqJQ zQE=?Ow^VnHZlK5(GU(3FynFH$bBvYw_2e>`MHr<}KGkTRpTUq@5oF3faT`-9WJ%;2<)^!bf!{)`CLJ>Nac zJ*^Y4CaZi>Yq-oAL1L`3@=<5x0(GaOSk>F(Ug1GAg4CIU7&n_72J-jS=YLO+6V0g_ zDSA407&Wo}jtk|rPk7C{wt%>a-PXTz3@N|Mle0`x;!N$cX=cP1@oQF<&q!cJEyzNe znr7~#?L6J|!L~M^XjQ%C`ei$Fgd!r)^{wXZVRKmLVpFW64I#Th%!Vja{+02{$x9}v zWg{|G64^MAt5D;f1A#$P;M-LkQygZ*;2Psp-9M>7;GZx;Ah0t%aH2lVd%A<)_Mg|q zbpA9W5=bElWhKc}l*tgEP0qF9&*SZBti7cb&dm~Ac2-K(3hCG>IrrEk>UOMYv-|+rsl@p#Xk|{}y!JEQy#n>u;d{Z4W zlij{Ln3~G6bx*x_<$;&zbQhFmVLk9Xbsz%3$sY-sJ2zKFzSMp+>3rQg3H{Uyt7fX< zg1~c<_F3@pGmlZ)TGKv5yYlIIJUbSA8q{eZEqD)MUI5k>Utiggf4m~TP3&7;KVyJK5Oql&2nV|KMy-#(Ka^-YS4&L6IndDK(3yia#~-IhQ{ z{LND*zvE10IjA8w)%oITYvN?xzsr3{Hi+e@J^DDldf33~qJbBmoIa^^-d%rv`tC&N zmuz9@b9SV>!HJozcTq_LiWcwOu5AEckkHzx3Q<+G(!~C|P;9EZmRtLJRVja?^i2!p z4c+!og=pjx{ky1{{|AKZ(yVElOpW{)vJlAGH`xutXPfQ_Gy#M1o zb+Sav{}vfDe7LOCG?jfb_=TdJWvw%-l6NMkM3pV5cdPWV1jv4wGWklm3kyiLuR!x5 z@{SVRxwo}M!gj3S>+X<|3YL>m>*p03QhK?BB*P(x#4R72fOyb405fe?Y zwHq(DJ!Q#E+tR5q{Vp6*c^h!gt(0JJ!&N<{gL9kLr+PL}8Pr`v^4}q6$|Py$X!}TI zWKoLZ^#uRqYtz=5UOU&FjCnfc3*JTY0sYMu3s3~Bzg+FU?4EYqtnHqRHk#FPFa7Rp ztrhrZ_Rag2jA_P}g=JOPNgS-2#9e0$Am3cvPl2W0+PpgJJ&e)TcHgge)`@YHwb8fd z93R{;%N+CrfV)+vtmP!4^lXuazWZ zCd?j=THOYRuP;Ah?s~rmql@^m_`kdNn#2 z_ykPEb;IExe;-L-3M($cxY>n^&o$|wJpVxz+0E;5mo3yV5ixkOPX)Q&QY7VhN0-yk z-kO{LG=_)NxVwoBzcS90m6ECvE2=>&i7N>!ZD@bKpy>x@J66$88hL%)856j`{jVa1 z4d+<5>_SgCG{UQPkoAdQ@OgX>WZ;Scll~O-naV&4FG91WyVqb6{qvVb_cmWE2OG1Y z!A4HrmPki22O7%kFNUW3e(!>`Y?&u}5dc-)weq(=^IM?0SW49&eaToS{l@G8?YCRVHA8$IpXUgJFY6PhuYor}S1~{ojV}$1)^g zVvmkSJ1^Oj0|(!SMjS4+`h*Y8tZ}jPUW89{2zt=*2q zoEFv7!t(aBkmM@4ihSFJWyZBMbV!_!4D;xlu8Fl2gD;)TwiiF^2iAonE#>!;h`g*! zJ)KQ#BVrsgLcD!f?#i`SN0%yK~c^eznn#q@Onk0J}Ze4qkMy@aviN$e^ZHBwQ|3l-5K|- zdzyi(N`&$4-XiN+&Qk;Y{d8Lk4)E3YJaqBR@Zu$(yZO9xn47CuNuHg>*D~KCsNE{$ zOocz+D~SQ9&Q9m6g1>#rf+x4{$BFO^l}7>M{(kW!#{{qm_Qwk}&UU{zY!Dr_czb^y zM1RrzW@Q{Tghgm$sEpa^c@csT`LO!cL**<&2||ERuzr_ui>&B)g?zF9dyAlwnn46NKL$T#8xY&Ai!ugYN zMiL&F6cTp-D00-ZGJ2wKC}nvzv|SgOIVQt^ecmJ+a5f&a(Gkxfbp}F1zHm268U`)3 zVm!{wTT#8pMx&Z@krE}a-#S9n9BL1TNuj!SA$VZP4$(?5}D7!3u-lB`}?P3Io(V6X|mKMFcj3hy|PvgC3OQY^)S9Xndw=wu`T__k_XS zvUKW#q0fr8al6@*vy>ZEvIU$#V3w_-56A@wEc(R+J_7)&%iAJ!TYW8fAjDhfeV8{K zU}ZK9-ZmhWJPFb*nfg$WE!uepg@AJ~lKlx1f0^1jf6c*MRkU@mc2;eMH;A{@^)3A*V zt6Js+J`XGyU?2aFW@Q{%mT&ImU8XgjoKuMtcE{uZ z;EJWh?>Ls}rKOMdZ#5T%Ga`lf&;T;Y!)fjKqqWc>r+#9c+C?*PVs(Y4UR4OcmJD#T za9Hm5(aB!+^E_P;MU6)WJhv8J*Pf3eS;9XwaEtbKb#x3=-Mjzg^iog}0|J!`WzC%{ zEcecK(Ir%MOv~mPzcjkpPT*BPCp)Ys(8(fnTdS{OKkdUrO04Z{P4V#OQF@DFtg$1bynDsR{V3AO-Ls}w zjG>UdfF0bOu}Bu)yYYcPqpaOd!-ERQvGg2Wg{XIJISW|$_2!%5a){F9wAFmE6kTic zytsTho{uRg3PA#mCsHFhcR&x*;gAL637+NXK|6ege-T>|xz3@e7S%Tz7yuBInfPb` za-j!|t$Yy$;KG+rgCw614a{A;6bAq_u|Od;!E6H@AdJuebNW0Z z+X;#t!SV0RuXqm_YX^TMZ`y?d%5mZGivm>zt|H08Qmf;RG#$o7lF?%=!qGSH9qPd- z6kwl}_>CrCJ3)!uj=5-;a2CSh)yO7{6i>P_*vJvye5`E0^NeJyVmI_6WNsT7waH^%o3Z%wV zmxXbX2$)=$E%Tb}hB(`L4@3-#Bw5)e z?EayRsP_av@M=}VE&J(T4%EEtsgUdcW?ma-iowAB^&`ZG%(9^V`q~34`o3Av;O~f$ zZW5_$J>ta)Zw+&z(L^co4Nf0?^U;h=Y?-e6Q*(wK#?!ux;pevx!SbTbmh;Cw-we&s zoDq2mnRE^4+?y1l(>i${h-{0~1bmSt3L9+nTd3cz`00OD8 zz5?Q(T*!bxNg4{3sOM|B>&JRp@ZrUTo~4TI^%vC8O{XsglCtZ;o2XfZp_z&O#nxE$ zb-E#)cN+`mxe?&wOH$N$?BkQy-~=SL0MC;OjcO&PbjSxY^^~f;qd~0a zw*Wtm*66rd?{j7WyjmCCXl0s2FnNh~E^cp5t_h*h*#E_fM=KMmPtW;S~l$BV#a4mynaYD52A(8fgk zgw_|eESNPAMY>i57XDV07Up}itfWj@qlRA2THb1L*IOoOHea25Z(m78e|(ysUbnQA zEL0qOS4xM8S3=1m*|oI@rP6`2)C&egezd|6|s zw*QSiE5NQlo9AQJ!)sDPRNo9)qCY`x`>JiIy_AAWS)SE*Ohxe)KxNRdk#ZLsW6H6x zFK!~Cv=y~Vdbguw7sET36@zK>mo`Ykx7BZG`)9@_eGp5y#6JT~^KTX#FI9iC)~GIm zH6q4Vq};W3YtbSD-h?$=DE6Tx9$#w)d28`7&wlzrLoVR$x%;?ndn_TsCiiwcakMhX zDIdGMMpgA6J{2x8$vSQI4s@xMs_Z(U%*FCs?~zc8SaUkc;7{kW!+^`<_yjo)yLPy= zmNjS<>d1d;e0#)==|GQC%38(4JKnjiE|~uD6(pIDxvzUEz-Fk)FukCsM;Q~lPfq@D zKj(Kt@Ke};7S>m@bhZe!xR;Z}6^eE2KV@puczKKb)qvulB`O@ogujtl=+g1kNS7ri zbHomx%9uoV+`-M@( zh1w_Dlk!nkC_++>QXiHUru5jbm+&$r0&>c86~OADo@n|M<$6BoDP{he5Y^e`c`-p0 z;Df_4X=a)bE}K01O-EYuv;ocqf1xA-z@7^wR8)&IJohBio6zZ)`s{S(0Y-rwFyu2>ZgfD-iOVJ1-zTdHWuEF!j!tJzF*uq{%?6A@dM zCYD*1sCW5}3qEdyc&~xt#P_G#%OYL^_y}PGgA==rPcoXQUfQ%#(p_6TLWu_gaJ(Tn z=S`j7J5i5?>V=Qz1MRsNa+wT+@DF2=L`-Q*jqXN>-QAGsDC=KIMlG)u<$n$j=af^J zphGeYmY9Q~gGfmF6Rg@!uT{gMk0y2|yu4hE)<8gdM-aEg!O3`I&EpA!k-aNyd|>!j z+tf+xi9&kryKBoNEfbC-$jvYK*A-|UyaPBDO0VBo+m0bYAnQ0St{)B_h_#!AP}Y{H z$Zg3%%zb&CL0sN0O^4p*r=@>^$~m?CyQ5n+-St&-x=s6=ojocLH-dlWUno^#7i}Dk z9HFVJKabCF*}HYo`Ec)YQj#nC17_VuE67{j!CfLlP2XSm9V3*%VV+g=N$*@L+||xj zls8mdU1t%yWd+xWQ?Dns6cL#_hk8@8D{mtKO|EPT8uCee^*ndiRSYmRlt=)3oz}jF zxp9FcMx>u8Pmra#(}7`FR76~-52zYo0AJK4%Dm+naZ`zh1LZcSbZmjg@ zgbN1_?eM~{v%MUrG0R6fJBI{vDw5qP9UF2f^v2tXjUk?BZSW0<*7bSZqq0b{>3oTU)L)3Y?4#jY(FV5ruv zr%m`z87Q7e6Yso>YmRi67{tn#-4yIYMJUeHkbYxBS*5t)9io3! z64)XA2ln&KcmwvimKN5D+B8#Zl^Z4L5kV*c&=QRqIGppku9+vz_%@5wXwk0#Ly5_N zD;40$co0i8JsZTajowC~rKte_67!ih;To-;1>3f163vj$SiTqrfECWz$Vvx|``wL;}D6P#Z+) zr9I8gE8s&dsQPB33QHMq>Y2ecaXHdE{mgihB~_$~J72`6ILZP5qbb)X!eoW0q}f@u z^}3nAva^h~s}%zXBp{pT2{#XLK>i7m;dD>33tP6J{uAG zUaozB@$Y8K?pB0a@ois}qVipp(oi(PgMztpCI}H{HCY0?g o<&fE+3?WgTN0jUD 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 diff --git a/screenshots/powerline.png b/screenshots/powerline.png deleted file mode 100644 index df21bbd1d9d2a3ff82b0cdc2c272f3a57c65e15c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9648 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 delta 3160 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 M07*qoM6N<$g7CB4lK=n! diff --git a/screenshots/spacer.png b/screenshots/spacer.png index ed8d2c65437bb6b0a812e2b4eb12dc9dee407d55..5200d0fc26dedca9590e86970650482a6f15a5b7 100644 GIT binary patch delta 487 zcmVd(L_e`V5hPN6>5Vi|j52(owQ!0H zP3P8!K+EPPbg1*`-f_4O_ngCJ1jKehH;xWdfEULn>CXkFlSEM_Kg(i~vOKKt{P^%` zc_c|D7LS_}DD7gmw4 zO7~S>n5^i}JTABz_Ij|?{KHeZR@Z3d#6IL%;R1dv^}gQ7KUTD7=1D9TLmS-v23yIAl(e;2h`tuw*B ze*g43*X#FDU<*wjY{o4#Z43i|)a|BkaszpYV%x0N)JEJ)nT%lo5Ia)lHmBd7*@Lm$ zlIwBJ(b4$yBDT--MO9T%Y&YZB<01q>7{dTi6NJlB8EeqIF4y+j_{pA zO;L>9_IrDA!A=mwK$gXhJ!Aj_fY55c59Hv=GE&W*bF}%P@vK+sQM|U>h`%384u?UH d{~-Pi{s834gZ)NNSS0`e002ovPDHLkV1ktI=rRBR delta 559 zcmV+~0?_@51keN_iBL{Q4GJ0x0000DNk~Le0000o0000R2m$~A0I~i{7?B|^f9y#_ zK~zY`&6i70!ax*-8TukcDp&;-A4GhhXayHWqfrw7gg?Q<{Hnci)r#@X6`v>h$A}b_MY(=Z zz=t>%4td>8cuc#exniXZ+pWRwe_%A!i^p_yd7a6f!w#`G;GY=m$74Fr7q*X1V0Wv% z#Wxj=;4$4jK5b^Quq!VL!mJb}gdi~~s=6j;EXx952|Pa+8>J}rNvrC~l&l*Dz_(b2PQ)bM#UU}(jCwLHYgHX!r!+;)kBlai1e_bY;FXrkGJjS*tCpGtlM>-oja;kwN|3)lBC*q$ZO5?tz z>3T9P*Ni$68P9Qvn8Y$4dNSqk2OIvW8%Cj6^m#nqCN~Bd$1;Ae@2Olal`F6(hEjS? xVcM+N?1{g#S-{JuTC1Vvl8a^SVEv_D0qJh2(xef$?*IS*07*qo1w^hwV1k7G`I7(u diff --git a/screenshots/themes/default.png b/screenshots/themes/default.png new file mode 100644 index 0000000000000000000000000000000000000000..c2680bd1f60b488549f993deafbb36dcc51ee007 GIT binary patch literal 7251 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.Hwr|tlrd|)1 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 literal 0 HcmV?d00001 diff --git a/screenshots/time.png b/screenshots/time.png new file mode 100644 index 0000000000000000000000000000000000000000..39d5210fde31641aef160d774e958f9220bd2ab3 GIT binary patch literal 2456 zcmV;J31{|+P)X0ssI2x3c@Y00003b3#c}2nYz< z;ZNWI000nlMObuGZ)S9NVRB^vQ)qQ`bY*g5g3t*700}fnL_t(&-tAgzP*eF8|KHr3 z7kQBcNWvq8R}vlpqESRaR1k`&v)a}5(OO48wB4@L&TgGf+v&C+cKW4LcRRbS)9JKR zcW~Fb)|L8L7I#HKdC8lA;gtj-2_bKikZ_aS+YeC;5RwAQ_7XELaKLmkAJYHN!FCqN?fYxY?WIqCdP$?^P zdza(Ndf9+sSo_E*jY0+hgpZ#P0ObWz9)}%Q*2@MQfX*?M(Q1nnKQ~BnGkD1nsBl>H zO1VUomP{ohR)WMXmksWw>qpL+l2h2!?k5XKF92EHMRB)O+5Za z@|-zRYje69Z+5KAK~iGu#w(NM1#{WhJ@6rAz@A;GnHfh5G#cDy`0B%Mr#}@zSZ3z1!vEGxMw6OQO-4?mQf` zIo+SNbfbQ3Q(;b2QhTf9I-|9zwQm{qyS>X7Z{F`#s$l{&Z+7sxObCKt0wfU$#6ms* zAc@T|TI?^(p~s6_9IoIcN=x>5(BX;MsHA3%re4)#m@;$a7muA-ULcK3rLJ5?rI5aS zFs#v;p88j|kjKR^?CPC|R)=egEO-3_q$m(|3_bbpH|jP+5GcvZ2o6owMJkz?C*%ho z9Uh0NGg@P`-|M?KxAu(L7TuwfJPuQDdXn3599OAzS?MWJNo|md+6N|9h5-z}-8Hg| z`px!52!gmQnkX%qgus%lQ~*E{o4H_Fd|?hlQ7IR94o^j`8;mx4=a?$|G2vO-%MuX? zQI7KkIcWfZ_JQ&BOQ4*jgeMXQp0m=}AlB1edIf?xwo~ zZyv5`s4RWwM8mzl@fFVqqM=g$ySI<>IIQ)Y@VLyoeQTxiEc@6jT8JeuW&$~~P$VME zpi$=L!}v`A!_9UlkDDkJ33^5~Qjq{AKx87~T=GUW-t#zIK{}5u>>8ZCxl zQSA3XIp*?sA`{{;Y0f3@qRRsSAi^-2gusMn*+p-%006iw`noVe_M*NFKKDTN#y?;A zT4%CRpVmGA0KLiPSw@R;(-Y|l>*JEo??Zil498Y$964OO<>IZ5^-}dH)x~0=R3rcZ z6z64BY>*%@94+}#005}ZA9mGXw)2x%Vv(S^W0=FFWu>KLN1<hnYeOj!2`{ro zXO>Ha={(Ntyyb(&<~6I5Og;cWy*dB_0Q4sN;kvSpp~;7%Y5)K?k-qS>eyiSG*fl(* zU$6lHh9(}j^{T2iNJMhbCu1 zY@k!ARi&~!{ewP#AX5L+=5)0WkL)Nd4x0-HR9d-Ic&vWw?=Rf+uZ|448NBk6Jcn~h zGq=`$gDP#NfZNpC9~_oSGDoN9p2QghfgtFaDlv>iLZWt$etrIGXpP_x1g_ob3yoBM z4D)-Ii7=cm5?r_u{b)5j@p$K^{2rwm$8i7v1VPDcM$pL&W;+pvRT={TU|c)@+D)C+X~E{`P^yBGtU=!+O}|Q;Dd3(x*^rZw z0uvwr0F^?jE-QTNNG$|G7jE45qP{hEJs6sFxR#FAm-9HRhDy0mz+DNs-OA|-xui^% z!)DMF1=%|l`CY@)q4$1kYw>$;9ZF_1LMK=1Z;QjVjQW>R-%8(rNl!SqOTp)|(s}Gt z2dWGfhf1T5s+t@32kBJG_x4qAS@c8(?f9PZA0Da>N@uhXP+~f`oK{rvQPjo$Q!Pg<6q`rX4(H3AcA%Vo#v%guJz zKU%swhbC8_{UIU(Lxfo0bKy9~q*LEMQI7@i!HJpAW9yPEx;*C^n-A{V_>0r~0RSUY zv*#MW2$uC;)HkNq1q)6L!&F*>*}e$=GZf~flZZ&{!E;sBnw-2*;_p>WJnd9J|NVPm zRwj)?$xh|3Uy|jfZz{?b^0-V!g3f50F_><5k2;)7@&4rh2BVr8x7VxI&qI;FpGab{ zY80h$eZ7P*I~-s24ichnifiiSL=uYyp7;JQj#mY7`@PzL;@=Ox(m=>GdRz;yF8&SL W#66KzXm6kZ0000VL_t(&-tAg@P*YbPK6#P= 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 literal 0 HcmV?d00001 diff --git a/themes/solarized.json b/themes/solarized.json index e195ad9..6c509b4 100644 --- a/themes/solarized.json +++ b/themes/solarized.json @@ -18,7 +18,7 @@ "bg-warning": "#b58900", "default_separators": false, - "separator": "|" + "separator": "" }, "date": { "prefix": " " From 8c17841d89b619fd510ee02e544122f99bb97641 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sat, 26 Nov 2016 09:11:35 +0100 Subject: [PATCH 07/18] [screenshots] Updated caffeine --- screenshots/caffeine.png | Bin 992 -> 1143 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/caffeine.png b/screenshots/caffeine.png index d2e41113fefba4e59332b9290c260d3be4d4ae9f..54447779afbf96b58344d131d7c390685fd770b4 100644 GIT binary patch delta 1115 zcmV-h1f=`m2logeiBL{Q4GJ0x0000DNk~Le0000+0000M2m$~A0P@0pB#|L4e*_ar zL_t(o!`+u%Oj>6c$KL};VOS9n4u}XiRHV{rp@wQZjWsr|-I8V5VzMpEk|n!Xvb!bQ zUGI0hCEG66rA?D&YqQkV8SU&O6q&1E6Qod)4>=q~D2RL&1*gPXn3J|W@c zdEWD$^Lx+xf1c-s#ype*-usHg<8Ka6tploiWG)*=)`e2pkUv23-!rRgm)e zywS48VVyYoJTw~Zg632rmHyXLJ_rZEY_kW#k)zK80dP*Of*W{MHr|rM=?etOW*O9; z=GSw{qOnBM>U5)_F!if2Yib~#*KD&t6Uj;hd;q{+0wX$ydwV8~^G~CDMR^FvfA7xD33>H0v2fpM z_xRSFp8l8AWb?zk`g3X(RSx`HLT*n!pFbo_yR7+x*GF~g_LV2DI97xt7YiMm6(pL? zBo4P}0UFmC4L5TT+=!6(j&aEt@^it*K$qsgdr?7JY0BS@(HaDfDaCd*?S$4ii|e)uk* zTXzs7!_w;Qe_xE{{-(x;OMSW)k+89>|H$L`_S1+9K_^X*_7cg1s#hTB*K|Sv`Wg0kNHDnQVCYos)ejd+i8!6f zBvL7&bA8i)_3Il)t#ftyw@xsb92SeJ6ED~)g{-x>Fr|ja=?=Imw2i h(E}kJQ+p1P{sQQ|s$03vvpfI*002ovPDHLkV1ns{B5VKv delta 963 zcmV;!13diq2;c`HiBL{Q4GJ0x0000DNk~Le0000u0000M2m$~A02)Hb50N1)e*=6; zL_t(Y$L*I(OcPNQhVQhUzK};P(h4n5sznP3ih_cGreHKtW8y~RLf0-_n7A-;rLJ_P zi6$m)To@D|)K|bLlnM`X$6#8Yzt1yqfR@I>q0ZO!?Y@KK@-nv=D%m|d~@zO z_ntvOQ3Xf_6CE+tB^bWbW?dnme*%ysmI%~`2a^EQj|aO)>?<8Ku(0@QXqaK(3Zc{~ zLZYSWB0+QvU?fdR1ZcF5AjpoAjUtgS-nTg>r@|4EqZ@U()ulzb*($k29IaC{h!PB0@rH-EL!JQJK_f0g|;m8Ax~ z*-V0J6wNzlhLpV6;84iOn58Ev z+B%3Wgueal(zMumFWqVqqv-zH?W}0X)07(Ymv1$VjDHLf;V-lJ)6SmzFFTJP*dr7O zNQ$2HcyF3pW&-njtN8bFf4P`GZyL)^C1P@vVVEv#7@u2MUK&k#{cf*cnV!Zfrfp?r zi!DM?(Qf^tuEo%|!aU87TL@vZrK@I3u~5LR7E}n&?Q-gsi`-&*ZFhL_!15^bvQ@|S znF{l@m~)&JHCdVC?rDxEgwW;oXw_M)5+cI>uL0HS436jN>JO#re>tA2UlSFKzcr&S z*QnDz@9t~s9gHqM2Jln~!$5%m;VMFIjoN*wF-ItSwO*S;kmSh3$9Obhl8iUhY_YXR zA^xz>{#jkNdUSG%qZj0;t^F8#D-olrOvUufSB~40QB}H>Ji5ulvyYY(M6sbNUZ+zk(%(<~qCZ%>qvzcyP4iU!?IBI;*v}+E zj+{CZlS2U5FuU9D2LMP=G(i;q#15Nk^qRE~+PgkYdsC#+a-*TXV)KoM&n7)y1VL0v zMMLElwNi1V(Hx2MA^`%=*14*3aV{tTfMyu$Am+n^(V!Pjf1b!#mGWD%D~-*rDNnRg zR;aJtT%u8B$|Mp100SXKQ2+o4fe#O0&WRU2{k-91O)O;2*N^dl0su&wYJWQvBEl@_ zhJ5W|Q%$N|7H>L=X8P=oN7il#|NX(6g3|n;001Hq>BNR-gYzrBdy Date: Sat, 26 Nov 2016 09:12:22 +0100 Subject: [PATCH 08/18] [screenshots] Updated datetime --- screenshots/datetime.png | Bin 3543 -> 4889 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/datetime.png b/screenshots/datetime.png index df33bd825e84c8b4923996744529af3f3eaff07e..0c15843277dce8a32218cf9838bc3c0d0e2628d9 100644 GIT binary patch literal 4889 zcmV+!6XxuRP)e)9YQHd%d=`*V@)j7p-fx zB8Y;5vV-gd3_Hk9NFXF3dvgB>#DG8|>Wt50eh+_m&i8%qdCz;^_j|X`Kp-R*IN*Q- z&jFx+JF)E8N1r-20takhZ+ePD2+t{Qu#)N^ zFq^?}$l)1;UT^3hAGgce^#wVi{)Z9WglkxF82mbY~S3F%EvB2{J2mk>uh(U99 zh~im;34p40(YSQVb|h~yfxJ6D!Yp2BXO#x~GkXj_$#6v0Zt4 zNv&s1i`$a(wx=aVaQvwx;*4@uqtpLlTc%EL000p2xPppWg8{QHCW6oLyLhYoUf=yi zYk9ujS;=us7rIKVZs_RAFRxK+wDz!0z+s(8#F0tq<4fU_L+|95)f86On=b=d%wO)@ zeCU&}Os1!zg5iO_n-XK)XilS((!A1YQUBlr#|S~03DF7s5DbEd`tM&VE|)20ABUhb zg}g5#)z8zTe`M^(8zoYi+%kklkhN>VHpWL?yjga)y<>rYUKJYvfKWf5Krhb~Cd7vN z?aheCVKL@QZ+Djnu8)Av`8KyyB2z5AJ5Y!(WhMG~x%CZCoVr#iwVLM7a(iK;fI%ns z4vEiRuO64m>|qj(AgR$o8xz7V6xP-Xd#s1}9PjMp2savabaE>9PQ$(45qk(ak%>Fk zM+f_QLI5<1`hPBIP^i=yf-p~p^EW@20szQFoLs2}0Bnd4BNMQfitFrDmG|~;oRTX} zZZ2yh!|W8q zjXxoQAHO^*k^R$48!>3uCX+5sq%(G^N?e$KupiU<&h5H;fB5{O`S0VeuILPg)~@^Z zkm?>D5%%@lsJ6`Q3SG3Tw^#a#(7eigcwn!)%YslpD={`bHgbO2;)RhM|L&oYw%!4Q z(I}ph9sen>_->P(vLNDd(=&=EWrVY8b#~(4;{-wP(8$r#m)m*=rWMMPx@KYTKx|0R zydqKs;k+*{<@b+_OJ(viH*QZ(%N~bdY-o^9r^_p=kt=5lD(lE3VqDnV(A13l-~V>@ z^Ygh%mHHujSPdI2hHG?C;0hBcB>eWYXuZ*Rw|z>kyii!9)f;0%{B80nolzeC zI``8vg$mW;B4W?b#E~Bggx!PFa%FLCyRd68HrzJB%_)(?dsI^)a z!&Rp@j7g+HJ}mS0W)0b_D%Rc2nM|6JD*yl*tj{*Sv?$|eqS=HkhVSah-zRa{c4K1S&r3NAXKAV%`JX~nf8O61V z+Pd~m000_+KYr)HrQ-4$p~yVV)0O_--fh1-_RY#cfzf2LE|bhCXR+wHjEU#x-9I{R z9cl}N#*C#_J5FX%L(bQ&MWi9Omxz(ey!EkmG@PbyJlOYJh<1qPU zO?|`SdEey+384vz>{9XF&;YOauz;c};ppT7V~FOlE1Tyu^@WUB2m<^-R(V4Q0DwWG zjEJY^i%KR@@360zTSZf+&7!ngYg}$c8x~g5Y z@|@qix(9+F1ORZW*3)2sY%9i}&>EPDP8HLhpTBokvI$cow z!Tw#fZKBdfq4_&Krpq0kn5=8>+?JYf{9@jsl=zkG4QFnYbPNpndolNKT1UWPOB-5s zdc)neju;-tV(md}*1f*_j}-r7F=&3E-}$0a^Ci=TJ}sB;SeL{P^ph!-H!ADedIuiq zEfx`UqdQMbO#=V~;k-Z}uM0Ozx2%n~Nn{mlg!-~kC>v+7c>bOMfU?GphljK}Lsd&p zb}~QMkGaU&87|ZbsSE&+z~^v$nCA;?b5iHhHGnUO|V&{)b&j!caS`tNVA z*_qE<1BXFJaDC1dR;@e@gNDgO+|bw(#Uq2!G&wD2(4E*!dTm=@5ZePrL0B{*pHh)$*ILwu9R;S1xYbBuK*JG#afJ!*yF~!q=CsjZ8}M zSgcJtt6-x-*sf67h^=T8qI_08qfh|=&@ha}ATa7dnmry<4u3enfoO*~~gV#1)2JsaasU#na}vE#!7JNic_ zr)_7liJ?3a9&eZa0077Y-GS|*6Bl@j*_BE)*-3GFgCUURnUf*_0Qk7O(Ww-zUhhJs z7>vdcf3~Nai&~>uG7zn96;-#2g4nE=veL;!!s&uy000VtQli2mg96;?&L{|lLZLba z7Kk2$Am+;dlftxIQBv2kEiLg<@m!IULL|64Q#|*M4DC!$rVt4;%Gr@g>HV<@ z0iSoZw3^Li;4v8MVz`YjiXd<9$U?#J7Z>v^;Q$Ikbqow$xLFDS7?Vt~J=~KbLeAW{ zy=sCQosQ{B&q|8DaIyo1;`|v1kN>Ad|`T z?!FD?Jhrq!G{03L0D#$t4&dvH%}7nIQkzQ>OCBW}m(2Kh&?yA`ghbXe zIFS^|8M7nG$VrK8?id&vU$)tVLZPCAeSa>otFVv5U{WK)Zq_xawad1;q%t{)fSXHN zXjILsTRXn~DOjV0m(P1^G+JFwiXit+mAOiPx4ly_tK#{3nD zIs`%H9ctdaw`V8C=9kx|tO+k`651KYqaf(uwoDTM$1mhsZ&>o#SxajQ05Cc!4G;8v z9D<`_>7ETKRjv2TwFWwcEViTGwmLQxD%G8))^%$l(8$tC(lQh^uVwy4%(Z0H8aOCah}O<&B-y&D~fmTB*{!vL$(1E`Lk~ zK%r1?>_`Iu96MX2x5Jm{^@bUR%G-m!C;^$bcG-5H?2#(p$n;;O$Wgj|v*5c|pKJEkpwz#vHjDqp089i$WgC@B>&3 z0Y6YCpY0o3Z0${=egMFgk_Pi-1lOmnXJ~=F8I4Mn1`Wf(Y>#_=Baf*7o7YB=iMTH= z7VGT}8(TW>r^N(Y+ENe%xzQ+=NFEKtqP|f8Ku7-=g1|Nl@d7-f)}kFlSq>yLOfmR5nTTa!Gh+^=H$4;?;db>p{?S3S2VRvPCxJ-S8i9P zM1`kBg*#KoYq$ZMljE*eJ&2$*T3x-UYj=8bqo{kGo%(yEsvUeZ2*IUR6u`;}EQBX_qM!FKkS4qd8|K# z-zEWrM$Jx+^!A`zf`1B$uwz}cJDuvqaDIJz%BVypT4?Q=3E?0AYPYL1*-qw}uFmUX zLVn1rfFOXyAXp4Sz+r5cd&-+gc-*U7lIT>D6Pfr@mf-E(>E^c^m&i;eQ|G`a0AO%j zs#0sm?I_4wdTbJzLZj7dv^wi^M`#$1;CMIO>wi?mc5|jCga$znv{K%_uopFzliGi! zg#Dx<`ERclZc2(huw^3wkCVt|${U3x^)2S1@A8WFWu$%Z%5IffBa8)&R{fNxl^?-Bh`G_(9x|o8M6{&x2GnE zr)Mq|mshtg=x0Wi6azkO}bz{vQqb64!yl2*rt1w&$SeFqX9#94ITWHOz; zR%tYtqCf5B-XK@0oykN1fJ&|X{(6;YDbK9e8$SE7aDR5_P^y8f~OA@1pUXa5B~4zOQTQX zT&)AEQA%GQA`a&_ADvkvEWj%!)X$qir;rK5<5L5p;-Z>1nS9nEw7(D9`UaG0b??ZS zUDj?gfx$7-i3>c-o%deY%JK19`57jY>0Hqr^U;o{jSN9FnTWr5v&`{n|ABC!QrAaE zIOOmQVp1l%S=VGElDCwly*(C`ZH}GKU7_`2i4W~*|2z>)%N0d64UUic4_7IN5T4nM z*mmB&g5OqYo}r&Eu$*smzySyB&3_#taKM4*1d!twrX6tLIl=z}yd3k1pLVX+00000 LNkvXXu0mjfW)Onx delta 3534 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 IM6N<$g4*r>%K!iX From 59c0083fc4debc274ecb168e17b80d3a2b0160c8 Mon Sep 17 00:00:00 2001 From: Milos Miljanic Date: Sat, 26 Nov 2016 12:33:42 +0100 Subject: [PATCH 09/18] Change keyboard layout (not done yet) --- bumblebee/modules/layout.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 bumblebee/modules/layout.py diff --git a/bumblebee/modules/layout.py b/bumblebee/modules/layout.py new file mode 100644 index 0000000..71649a5 --- /dev/null +++ b/bumblebee/modules/layout.py @@ -0,0 +1,36 @@ +import subprocess +import shlex +import bumblebee.module +import bumblebee.util + +def description(): + return "Showws current keyboard layout and change it on click." + +class Module(bumblebee.module.Module): + def __init__(self, output, config, alias): + super(Module, self).__init__(output, config, alias) + + + # click + output.add_callback(module="layout.cir", button=1, cmd="setxkbmap us") + output.add_callback(module="layout.us", button=1, cmd="setxkbmap rs") + output.add_callback(module="layout.rs", button=1, cmd="setxkbmap -layout rs -variant latin") + + + + + def widgets(self): + output = subprocess.check_output(["setxkbmap", "-print"], stderr=subprocess.STDOUT) + for line in str(output).split("\\n"): + if "xkb_symbols" in line: + res = line.split("\"")[1].split("+")[1] + + if res == "rs": + return bumblebee.output.Widget(self, res, instance="layout.rs") + elif res == "us": + return bumblebee.output.Widget(self, res, instance="layout.us") + else: + return bumblebee.output.Widget(self, res, instance="layout.cir") + + +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 From e8b3dfb4ef650e3c9f6dbbf465333de42af69b14 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sat, 26 Nov 2016 13:57:33 +0100 Subject: [PATCH 10/18] [modules/xrandr] Add display on/off toggling This one is a bit tricky: * Clicking on an active xrandr output will disable it * Clicking on a disabled xrandr output will enable it -> if it is a left-click, it will put it as the left-most display if it is a right-click, as the right-most display Also, it will reload the i3 bars (using a script that allows you to write custom pieces of an i3 configuration that is applied conditionally depending on the screens you have). It goes like this: * Base config is in ~/.i3/config.template * Output-specific config is in ~/.i3/config. * Output-specific config when other screens are also active is in ~/.i3/config.- For instance: $ ls ~/.i3 config.template config.eDP1 -> will be applied to eDP1 (always) config.VGA1-eDP1 -> will be applied to VGA1, if eDP1 is also active config.VGA1 -> will be applied to VGA1 (if eDP1 is inactive) fixes #19 --- bin/load-i3-bars.sh | 26 +++++++++++++++++++ bin/toggle-display.sh | 12 +++++++++ bumblebee/modules/xrandr.py | 51 +++++++++++++++++++++++++++++++------ bumblebee/output.py | 23 ++++++++++++----- bumblebee/util.py | 11 ++++++++ 5 files changed, 109 insertions(+), 14 deletions(-) create mode 100755 bin/load-i3-bars.sh create mode 100755 bin/toggle-display.sh diff --git a/bin/load-i3-bars.sh b/bin/load-i3-bars.sh new file mode 100755 index 0000000..cbe0e95 --- /dev/null +++ b/bin/load-i3-bars.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +if [ ! -f ~/.i3/config.template ]; then + cp ~/.i3/config ~/.i3/config.template +else + cp ~/.i3/config.template ~/.i3/config +fi + +screens=$(xrandr -q|grep ' connected'| grep -P '\d+x\d+' |cut -d' ' -f1) + +echo "screens: $screens" + +while read -r line; do + screen=$(echo $line | cut -d' ' -f1) + others=$(echo $screens|tr ' ' '\n'|grep -v $screen|tr '\n' '-'|sed 's/.$//') + + if [ -f ~/.i3/config.$screen-$others ]; then + cat ~/.i3/config.$screen-$others >> ~/.i3/config + else + if [ -f ~/.i3/config.$screen ]; then + cat ~/.i3/config.$screen >> ~/.i3/config + fi + fi +done <<< "$screens" + +i3-msg restart diff --git a/bin/toggle-display.sh b/bin/toggle-display.sh new file mode 100755 index 0000000..bd13a29 --- /dev/null +++ b/bin/toggle-display.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +echo $(dirname $(readlink -f "$0")) + +i3bar_update=$(dirname $(readlink -f "$0"))/load-i3-bars.sh + +xrandr "$@" + +if [ -f $i3bar_update ]; then + sleep 1 + $i3bar_update +fi diff --git a/bumblebee/modules/xrandr.py b/bumblebee/modules/xrandr.py index d5e438b..51998a9 100644 --- a/bumblebee/modules/xrandr.py +++ b/bumblebee/modules/xrandr.py @@ -1,5 +1,7 @@ import bumblebee.module +import bumblebee.util import re +import os import sys import subprocess @@ -13,7 +15,30 @@ def parameters(): class Module(bumblebee.module.Module): def __init__(self, output, config, alias): super(Module, self).__init__(output, config, alias) - self._state = "off" + + self._widgets = [] + + def toggle(self, event, widget): + path = os.path.dirname(os.path.abspath(__file__)) + toggle_cmd = "{}/../../bin/toggle-display.sh".format(path) + + if widget.get("state") == "on": + bumblebee.util.execute("{} --output {} --off".format(toggle_cmd, widget.get("display"))) + else: + neighbor = None + for w in self._widgets: + if w.get("state") == "on": + neighbor = w + if event.get("button") == 1: + break + + if neighbor == None: + bumblebee.util.execute("{} --output {} --auto".format(toggle_cmd, + widget.get("display"))) + else: + bumblebee.util.execute("{} --output {} --auto --{}-of {}".format(toggle_cmd, + widget.get("display"), "left" if event.get("button") == 1 else "right", + neighbor.get("display"))) def widgets(self): process = subprocess.Popen([ "xrandr", "-q" ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -21,29 +46,39 @@ class Module(bumblebee.module.Module): widgets = [] - # TODO: sort by position for line in output.split("\n"): if not " connected" in line: continue - screen = line.split(" ", 2)[0] + display = line.split(" ", 2)[0] m = re.search(r'\d+x\d+\+(\d+)\+\d+', line) - widget = bumblebee.output.Widget(self, screen) + widget = bumblebee.output.Widget(self, display, instance=display) + widget.set("display", display) + + # not optimal (add callback once per interval), but since + # add_callback() just returns if the callback has already + # been registered, it should be "ok" + self._output.add_callback(module=display, button=1, + cmd=self.toggle) + self._output.add_callback(module=display, button=3, + cmd=self.toggle) if m: - self._state = "on" + widget.set("state", "on") widget.set("pos", int(m.group(1))) else: - self._state = "off" - widget.set("pos", sys.maxint()); + widget.set("state", "off") + widget.set("pos", sys.maxint) widgets.append(widget) widgets.sort(key=lambda widget : widget.get("pos")) + self._widgets = widgets + return widgets def state(self, widget): - return self._state + return widget.get("state", "off") def warning(self, widget): return False diff --git a/bumblebee/output.py b/bumblebee/output.py index 952a284..d24e0c6 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -15,6 +15,8 @@ class Widget(object): self._store = {} self._instance = instance + obj._output.register_widget(self.instance(), self) + def set(self, key, value): self._store[key] = value @@ -40,17 +42,22 @@ class Widget(object): return self._text class Command(object): - def __init__(self, command): + def __init__(self, command, event, widget): self._command = command + self._event = event + self._widget = widget def __call__(self, *args, **kwargs): if not isinstance(self._command, list): self._command = [ self._command ] for cmd in self._command: - c = cmd.format(*args, **kwargs) - DEVNULL = open(os.devnull, 'wb') - subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL).communicate() + if inspect.ismethod(cmd): + cmd(self._event, self._widget) + else: + c = cmd.format(*args, **kwargs) + DEVNULL = open(os.devnull, 'wb') + subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL).communicate() class Output(object): def __init__(self, config): @@ -58,6 +65,10 @@ class Output(object): self._callbacks = {} self._wait = threading.Condition() self._wait.acquire() + self._widgets = {} + + def register_widget(self, identity, widget): + self._widgets[identity] = widget def redraw(self): self._wait.acquire() @@ -84,9 +95,9 @@ class Output(object): event.get("button", -1), event.get("instance", event.get("name", None)), ), cb) - if inspect.isfunction(cb) or cb is None: return cb - return Command(cb) + identity = event.get("instance", event.get("name", None)) + return Command(cb, event, self._widgets.get(identity, None)) def wait(self): self._wait.wait(self._config.parameter("interval", 1)) diff --git a/bumblebee/util.py b/bumblebee/util.py index ef74266..15ff146 100644 --- a/bumblebee/util.py +++ b/bumblebee/util.py @@ -1,3 +1,6 @@ +import shlex +import exceptions +import subprocess def bytefmt(num): for unit in [ "", "Ki", "Mi", "Gi" ]: @@ -13,3 +16,11 @@ def durationfmt(duration): if hours > 0: res = "{:02d}:{}".format(hours, res) return res + +def execute(cmd): + args = shlex.split(cmd) + p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + out = p.communicate() + + if p.returncode != 0: + raise exceptions.RuntimeError("{} exited with {}".format(cmd, p.returncode)) From 488c17ea589d4900630107ae17dd4c1f038c2224 Mon Sep 17 00:00:00 2001 From: Milos Miljanic Date: Sun, 27 Nov 2016 16:24:11 +0100 Subject: [PATCH 11/18] [modules]Keyboard layout --- bumblebee/modules/layout.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bumblebee/modules/layout.py b/bumblebee/modules/layout.py index 71649a5..e41c8fd 100644 --- a/bumblebee/modules/layout.py +++ b/bumblebee/modules/layout.py @@ -6,6 +6,11 @@ import bumblebee.util def description(): return "Showws current keyboard layout and change it on click." +#def parameters(): +# module = __name__.split(".")[-1] +# return + + class Module(bumblebee.module.Module): def __init__(self, output, config, alias): super(Module, self).__init__(output, config, alias) From 60d96506e801745214ac57756eb4ca65009be2ae Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sun, 27 Nov 2016 18:08:22 +0100 Subject: [PATCH 12/18] [modules/layout] Add rotation logic and language parameter User can now specify a list of languages as parameter (pipe-separated list). Variants can also be specified by separating language and variant with a : For instance: -p layout.lang="us|rs:latin" Left click moves on to the next language, right click to the previous. Right now, there are the following caveats: * The first entry in the list must be the language used when the bar starts * kxbd changes outside the bar are not picked up automatically --- bumblebee/modules/layout.py | 42 ++++++++++++++++++++----------------- bumblebee/output.py | 4 ++-- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/bumblebee/modules/layout.py b/bumblebee/modules/layout.py index e41c8fd..79bd8d8 100644 --- a/bumblebee/modules/layout.py +++ b/bumblebee/modules/layout.py @@ -6,36 +6,40 @@ import bumblebee.util def description(): return "Showws current keyboard layout and change it on click." -#def parameters(): -# module = __name__.split(".")[-1] -# return +def parameters(): + return [ + "layout.lang: pipe-separated list of languages to cycle through (e.g. us|rs|de). Default: en" + ] class Module(bumblebee.module.Module): def __init__(self, output, config, alias): super(Module, self).__init__(output, config, alias) + self._languages = self._config.parameter("lang", "en").split("|") + self._idx = 0 - # click - output.add_callback(module="layout.cir", button=1, cmd="setxkbmap us") - output.add_callback(module="layout.us", button=1, cmd="setxkbmap rs") - output.add_callback(module="layout.rs", button=1, cmd="setxkbmap -layout rs -variant latin") + output.add_callback(module=self.instance(), button=1, cmd=self.next_keymap) + output.add_callback(module=self.instance(), button=3, cmd=self.prev_keymap) + def next_keymap(self, event, widget): + self._idx = self._idx + 1 if self._idx < len(self._languages) - 1 else 0 + self.set_keymap() + def prev_keymap(self, event, widget): + self._idx = self._idx - 1 if self._idx > 0 else len(self._languages) - 1 + self.set_keymap() + def set_keymap(self): + tmp = self._languages[self._idx].split(":") + layout = tmp[0] + variant = "" + if len(tmp) > 1: + variant = "-variant {}".format(tmp[1]) + bumblebee.util.execute("setxkbmap -layout {} {}".format(layout, variant)) def widgets(self): - output = subprocess.check_output(["setxkbmap", "-print"], stderr=subprocess.STDOUT) - for line in str(output).split("\\n"): - if "xkb_symbols" in line: - res = line.split("\"")[1].split("+")[1] - - if res == "rs": - return bumblebee.output.Widget(self, res, instance="layout.rs") - elif res == "us": - return bumblebee.output.Widget(self, res, instance="layout.us") - else: - return bumblebee.output.Widget(self, res, instance="layout.cir") - + lang = self._languages[self._idx] + return bumblebee.output.Widget(self, lang) # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/bumblebee/output.py b/bumblebee/output.py index d24e0c6..0840523 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -93,10 +93,10 @@ class Output(object): ), None) cb = self._callbacks.get(( event.get("button", -1), - event.get("instance", event.get("name", None)), + event.get("instance", event.get("module", None)), ), cb) - identity = event.get("instance", event.get("name", None)) + identity = event.get("instance", event.get("module", None)) return Command(cb, event, self._widgets.get(identity, None)) def wait(self): From 28a4f4ab9d6b7c3ea14d48c002273acfe05d7246 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sun, 27 Nov 2016 18:33:37 +0100 Subject: [PATCH 13/18] [core] Fix import error for Python3 Import exceptions module only for Python2. fixes #22 --- bumblebee/util.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bumblebee/util.py b/bumblebee/util.py index 15ff146..feedabf 100644 --- a/bumblebee/util.py +++ b/bumblebee/util.py @@ -1,6 +1,10 @@ import shlex -import exceptions import subprocess +try: + from exceptions import RuntimeError +except ImportError: + # Python3 doesn't require this anymore + pass def bytefmt(num): for unit in [ "", "Ki", "Mi", "Gi" ]: @@ -23,4 +27,4 @@ def execute(cmd): out = p.communicate() if p.returncode != 0: - raise exceptions.RuntimeError("{} exited with {}".format(cmd, p.returncode)) + raise RuntimeError("{} exited with {}".format(cmd, p.returncode)) From ca648516877314ecf1033c95197aa149032da788 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sun, 27 Nov 2016 18:36:45 +0100 Subject: [PATCH 14/18] [modules/disk] Fix multi-instance disk --- bumblebee/modules/disk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bumblebee/modules/disk.py b/bumblebee/modules/disk.py index 3cc3b6c..679e271 100644 --- a/bumblebee/modules/disk.py +++ b/bumblebee/modules/disk.py @@ -16,7 +16,7 @@ class Module(bumblebee.module.Module): super(Module, self).__init__(output, config, alias) self._path = self._config.parameter("path", "/") - output.add_callback(module=self.instance(), button=1, cmd="nautilus {instance}") + output.add_callback(module=self.instance(), button=1, cmd="nautilus {}".format(self._path)) def widgets(self): st = os.statvfs(self._path) From 48191474101299a458dbfc4603a8a10655aa67f2 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Sun, 27 Nov 2016 19:48:12 +0100 Subject: [PATCH 15/18] [modules/layout] Add autodetection and auto-adding of languages Whenever the language is changed outside the bar, update the bar accordingly. Also, when a new language is used, automatically append it to the list of available languages. --- bumblebee/modules/layout.py | 22 ++++++++++++++++++++++ bumblebee/util.py | 4 +++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/bumblebee/modules/layout.py b/bumblebee/modules/layout.py index 79bd8d8..084d27d 100644 --- a/bumblebee/modules/layout.py +++ b/bumblebee/modules/layout.py @@ -39,7 +39,29 @@ class Module(bumblebee.module.Module): bumblebee.util.execute("setxkbmap -layout {} {}".format(layout, variant)) def widgets(self): + res = bumblebee.util.execute("setxkbmap -query") + layout = None + variant = None + for line in res.split("\n"): + if not line: + continue + if "layout" in line: + layout = line.split(":")[1].strip() + if "variant" in line: + variant = line.split(":")[1].strip() + if variant: + layout += ":" + variant + lang = self._languages[self._idx] + + if lang != layout: + if layout in self._languages: + self._idx = self._languages.index(layout) + else: + self._languages.append(layout) + self._idx = len(self._languages) - 1 + lang = layout + return bumblebee.output.Widget(self, lang) # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/bumblebee/util.py b/bumblebee/util.py index feedabf..c38bb79 100644 --- a/bumblebee/util.py +++ b/bumblebee/util.py @@ -24,7 +24,9 @@ def durationfmt(duration): def execute(cmd): args = shlex.split(cmd) p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - out = p.communicate() + out, err = p.communicate() if p.returncode != 0: raise RuntimeError("{} exited with {}".format(cmd, p.returncode)) + + return out.decode("utf-8") From bf381794bd465285f9f4ed3fb95cc6e517eb1a70 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Tue, 29 Nov 2016 19:35:54 +0100 Subject: [PATCH 16/18] [output] Ignore empty commands When receiving a "nop" (None) command, skip it. Otherwise, an exception is thrown and input processing stops. Also, remove the "communicate()" call to *not* wait until a process has finished until resuming input processing. Otherwise, whenever an external program (pavucontrol, nautilius, ...) is started, any further input processing is stalled until the program has been closed again. fixes #24 --- bumblebee/output.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bumblebee/output.py b/bumblebee/output.py index 0840523..1f494ad 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -52,12 +52,13 @@ class Command(object): self._command = [ self._command ] for cmd in self._command: + if not cmd: continue if inspect.ismethod(cmd): cmd(self._event, self._widget) else: c = cmd.format(*args, **kwargs) DEVNULL = open(os.devnull, 'wb') - subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL).communicate() + subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL) class Output(object): def __init__(self, config): From e9731b1063b8bfefb5a271c0a10729040bbb92e1 Mon Sep 17 00:00:00 2001 From: hubertst Date: Wed, 30 Nov 2016 11:07:27 +0100 Subject: [PATCH 17/18] Update nic.py Exclude veth* interfaces created by minimesos --- bumblebee/modules/nic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bumblebee/modules/nic.py b/bumblebee/modules/nic.py index af82b08..7532572 100644 --- a/bumblebee/modules/nic.py +++ b/bumblebee/modules/nic.py @@ -10,7 +10,7 @@ def parameters(): class Module(bumblebee.module.Module): def __init__(self, output, config, alias): super(Module, self).__init__(output, config, alias) - self._exclude = ( "lo", "virbr", "docker", "vboxnet" ) + self._exclude = ( "lo", "virbr", "docker", "vboxnet", "veth" ) self._state = "down" self._typecache = {} From f4b114bd6e56a658c9560e6b0ccd3cc350cddb56 Mon Sep 17 00:00:00 2001 From: Tobi-wan Kenobi Date: Wed, 30 Nov 2016 18:11:32 +0100 Subject: [PATCH 18/18] [modules/nic] Add list of excluded interface prefixes as parameter "nic.exclude" is now a parameter that can be used to have a custom list of excluded interface prefixes. Multiple prefixes should be separated by a comma. fixes #26 --- bumblebee/modules/nic.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bumblebee/modules/nic.py b/bumblebee/modules/nic.py index 7532572..94f8bc4 100644 --- a/bumblebee/modules/nic.py +++ b/bumblebee/modules/nic.py @@ -5,12 +5,14 @@ def description(): return "Displays the names, IP addresses and status of each available interface." def parameters(): - return [ "none" ] + return [ + "nic.exclude: Comma-separated list of interface prefixes to exlude (defaults to: \"lo,virbr,docker,vboxnet,veth\")" + ] class Module(bumblebee.module.Module): def __init__(self, output, config, alias): super(Module, self).__init__(output, config, alias) - self._exclude = ( "lo", "virbr", "docker", "vboxnet", "veth" ) + self._exclude = tuple(filter(len, self._config.parameter("exclude", "lo,virbr,docker,vboxnet,veth").split(","))) self._state = "down" self._typecache = {}