pax_global_header00006660000000000000000000000064125534476630014531gustar00rootroot0000000000000052 comment=922104697ee4d0bfc00bb8916a1371c81c189f87 ubuntu-mate-mate-optimus-922104697ee4/000077500000000000000000000000001255344766300173705ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/README.md000066400000000000000000000000401255344766300206410ustar00rootroot00000000000000NVIDIA Optimus applet for MATE. ubuntu-mate-mate-optimus-922104697ee4/usr/000077500000000000000000000000001255344766300202015ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/lib/000077500000000000000000000000001255344766300207475ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/lib/mate-optimus/000077500000000000000000000000001255344766300233735ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/lib/mate-optimus/mate-optimus-applet000077500000000000000000000047211255344766300272340ustar00rootroot00000000000000#!/usr/bin/env python3 import gettext import os import subprocess import sys from gi.repository import Gtk, Gdk # i18n gettext.install("mate-optimus", "/usr/share/locale") class Tray: def __init__(self): self.icon = Gtk.StatusIcon() self.icon.set_title("mate-optimus") self.icon.connect("popup-menu", self.on_popup_menu) self.icon.connect("activate", self.on_activate) process = subprocess.Popen(['prime-select', 'query'], stdout=subprocess.PIPE) out, err = process.communicate() active_gpu = out.decode('utf-8') if ('nvidia' in active_gpu): self.icon.set_from_icon_name("optimus-tray-nvidia") self.icon.set_tooltip_text(_("Active graphics card: NVIDIA")) elif ('intel' in active_gpu): self.icon.set_from_icon_name("optimus-tray-intel") self.icon.set_tooltip_text(_("Active graphics card: Intel")) else: self.icon.set_from_icon_name("dialog-error") self.icon.set_tooltip_text(_("Active graphics card: " + active_gpu)) def on_activate(self, icon, data=None): self.run_nvidia_settings(); def run_nvidia_settings (self, arg=None): subprocess.Popen(["nvidia-settings", "-page", "PRIME Profiles"]) def on_popup_menu(self, icon, button, time, data = None): menu = Gtk.Menu() item = Gtk.MenuItem(label=_("NVIDIA Settings")) item.connect("activate", self.run_nvidia_settings) menu.append(item) menu.append(Gtk.SeparatorMenuItem()) item = Gtk.MenuItem(label=_("Quit")) item.connect("activate", self.terminate) menu.append(item) menu.show_all() device = Gdk.Display.get_default().get_device_manager().get_client_pointer() menu.popup_for_device(device, None, None, lambda w,x: icon.position_menu(menu, icon), icon, button, time) def terminate(self, window = None, data = None): Gtk.main_quit() if __name__ == "__main__": # If NVIDIA Prime is not installed or isn't supported then exit. if not (os.path.exists("/usr/bin/nvidia-settings") and os.path.exists("/usr/bin/prime-select")): sys.exit(0) devnull = open(os.devnull, 'wb') process = subprocess.Popen(['prime-supported'], stdout=subprocess.PIPE, stderr=devnull) out, err = process.communicate() devnull.close() prime_supported = out.decode('utf-8') if 'yes' not in prime_supported: sys.exit(0) Tray() Gtk.main() ubuntu-mate-mate-optimus-922104697ee4/usr/share/000077500000000000000000000000001255344766300213035ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/share/mate/000077500000000000000000000000001255344766300222315ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/share/mate/autostart/000077500000000000000000000000001255344766300242575ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/share/mate/autostart/mate-optimus.desktop000066400000000000000000000004311255344766300302740ustar00rootroot00000000000000[Desktop Entry] Name=MATE NVIDIA Optimus Comment=Shows a tray icon when a compatible NVIDIA Optimus graphics card is detected Exec=/usr/lib/mate-optimus/mate-optimus-applet Icon=optimus-tray-nvidia Terminal=false Type=Application Categories=GTK;GNOME;Settings; StartupNotify=false ubuntu-mate-mate-optimus-922104697ee4/usr/share/pixmaps/000077500000000000000000000000001255344766300227645ustar00rootroot00000000000000ubuntu-mate-mate-optimus-922104697ee4/usr/share/pixmaps/optimus-tray-intel.png000066400000000000000000000114051255344766300272610ustar00rootroot00000000000000PNG  IHDR>abKGD pHYs B(xtIME4uOIDATx{tTսǿ}΄Wb.x2T(ʭ/\WURLjj.Q{mUh2!V"B"d&/If?&@Ι jV'5|C#VDE4J#IWӚW~b1%KrJ7^,wLC41  jZ<`S00|F^)bu+)w;%N4?Y2{.`6'1Q!3 BpqѢ}Z9Łaa} ڦ'+^ y~BA'wCGS.JL?ny1v 'zʮ욬 n|Oud#yAha )cWӬsfà4߬vmAz59Ła\f08v;65J/ =`gg0V) w1W~nl9~സl+ Ag21v;"$]SȽ=5`t)o $5ثNJYTȳ#]g 0ƶ,Z,_t𛕆QrǸJ,x8rypUz\.Bf,aFDU7F2$,̀7`qs&cGkܹjbɍ~b, -l9A$h!=PySOEVH`J8"ND>0Ad!M%!6dc -}8DboNGqeWm[(@2<_v\fU&vg u!H*"8nJӘ"`Eu`YGN- W IWimg[jH8.\^ x]K[RϿrN'DM %URq=E2}~&p~{쒊3ѯ[}c_7e6eulWA=>0sO~{LDC Џ'PuZ/dpjހ Wc׹zL`/G46K,]F7,Y dOD3Zd9tTbVJ`p}C⼵0 A`|%mIsm?ރ:Ka{HӎzFv~inDtYFB@L_5f׿|~9l9¶K xk9JpFkhlizRMTv;Lp«X6@tߔarKkNIbztDPxO%I=VCk,놙B* .Sxanl }j$*{b\c.+7!"izj%rNĉG̳8E clL~Lb}u=4VUML](OP@t[]"-~C4g^'$%]S8YSC ڌ S۴@"潶qzx8DN;#53sH-$]_j"Κw9NF=J w |cSj{lJvĶo 1Sv(f۔vf&سO q`cHm?0U7\US|E* @@7FԪ\ڪA+M觜VOa1i[m76gC߲3/6}c<&gH57DHd\ ӦzکI" oB`9)<ܜBvX1 "<4&՟~0q;#DYDX#ҍch~'0D?7[}WiUtyŞ(6!I%]16.M#o񍇍)G u0h4]ܾs4sCb&;{ zS,f}~'3]5e0v1ptYվde Zm77) jw760GG/2=XSM̎YS.-}DvIŵ1i]aŚRxcs P'%-5t4\gZ~V*:ڬe8صL"voW:?t4]S^4 W:m.Pǹ,=0X"'OD)=SfM˷i&Ɯ¢:ekrDW둭fDH$yٙ`Wj˶\廊w(U+a X f=k WiG[ DԖu4[#UkS+/旻sluӥ8ѹ7,^DOWu9RݺI8@$|?Oslpa\hWwi 2eZؐz93>׆ ol0<]vXݚ -v&f8jY2S -N]"0 w^%\X]^n/N>3ZhSG&ܐ#šݞAv0Xtg2ilpnK$9%1?f aj`,9?N.%P[/, `pf%.0}ARgRhY=^ÉHC[Q%j<%gi0 v_}5$80,3_ȑDM:Cz::3}DV="is2&Gz`{7 /t=zLˇO#Zް~>.k;q5UM="Q=h܇Wڔg19o"8L_Oj ?`W;KwH.ҊK^x73 ,cੜ,IheRCJ Ԕ` :PJZգ i+C0nDVro5sG,0i:H. LQ ^3Y "ȷۮȒT/%hXy9KVy {jp-ºY1ksFcN!ٗΑe!.H:LNo$Gߨpe{2I'8\FYf!XeL]WgLݛDݐmNFQ[IhI!M<8K*oXK:b_arH GM;TDҊL'jġ$ÍMԈ0Ts<>㹖tѕ‰ѽe?"*6٣[0e`Ln/W/xIMG鮪0\ Fa=fkƦ Y/,'v_*A$!H 62tt`wRN1g#'x aIy`Q BxM\EO| Sv[y ٘Pt%n eL A ۉa%Pmy~@# d$Ɔs| +!X=m)[<;R毦11#8zf-8NpU)B Hŷ$mԁ=0o$6V97 s7654 OOYq*&~D6 j7'*HК7>"_ $ ] #?ʾ}\s y1O .h4az Ta/ %Yb#sܰQZDDy] fYXdp$eP )4ޘRΊBP( BP( BP( BP( BP( B?M9NIENDB`ubuntu-mate-mate-optimus-922104697ee4/usr/share/pixmaps/optimus-tray-nvidia.png000066400000000000000000000103111255344766300274130ustar00rootroot00000000000000PNG  IHDR>abKGD pHYsbtIME I*VIDATxyTՕǿUR F1h+A#"U(C\b@WJܕqBJwU(AD%.4wG z^~wo=sbX,bX,bX,bX,bX,KGG>q-XX,V+ b`t)Wpf"| lrzBO E9D Q!Q 5: 0Xaѻ(:&'ث" PL;`be݅8p oy.r` `3?+^Pa S?t9V;C 7H!,i-!1wT`)1ɛ"f߲s oh7O/Yx09/+mch6B= Yk6"Kx06V]" `j}p'pA5x bd7-mU&Fh0>"Dg&9+`t^7x-px~;0@sc 4G/wv`j1]z\6god-b@C9y8w \@/QF ̒<ǿsd ǣo[Iy00gf|0  Ͼ=(#pOK:T ФY|'s5OfA~*5rt r>pʡm+x BR|ϰ52u4(wbZaQ˛ԚeEp7*X@,y5kKB;/M2%"7tvCn65C41p0  ^F92fBXh0*@$&_`ah_b``^'rxc>GDG)٪zZ:k`fg"a<9tB' 'l^k+'_$cwH 9v /^su!#c0Gq9tI޳elZ6E~<[d85AVDLΘ19^(I0[JTy_>!벬k>7rmm|$2ƞ`` J ĪL KL(r FkR6'a\ݥ]<`2U '1sO+x eICn,Avրxk؉E7J:i6~&L̷]4J)M:DΛSد}BGU3MM\72ţ*\oJɰX3: [P3g(|rD} q_#Ôvq|7XV%W gN)Ϻo) i7{at"PaF&̈́ u@0Z꣯3 hkr+zw 2cY~:z66QBUߘB.GpHe\U1MV=qGls}:!|d-¼kx4imBeoq#s8ͪ\r/CP#Qn4D32}:$b> c*/.Mcʧ ӗk\]7w1`~'zx1Jq^dG/jì@}5JLE.Q-Ư͡be>;2aT) sǯ$`*m| aȜ0+ I'G5##Jxip kH'tdYx:A8Ÿ~?!{Bd7a*]8tFQqF`C2*1m2{4|(XM0݇|P)?SB*p|.ƞe0W n<8O9 p)4e$}Tx8x.s(AUUha>D1h٪CNqRB 9VK *- <T>+WhyNRU ~D J|g5#c'T |  \l?S4ŵ(T^޺5l*JzceޮIn.2Vp '| /v]i  / F#< Yך:"#{1ɢ\F`y rU[ebe~PIrޑ14-3"~K&҂ 2@P!b0yD6*l2qx!CLҖ^2 -KoYwV+ b`XX,bX,bX,bX,bX,bX,wp.zeIENDB`