def tray(**kwargs): """Runs the system tray selector""" traydir = os.path.dirname(os.path.realpath(__file__)) logger.debug("traydir = {}".format(traydir)) iconf = os.path.join(traydir, "6m.png") if os.path.isfile(iconf): icon("6m", Image.open(iconf), menu=menu(lambda: ( item( str(i), set_state(i), checked=get_state(i), radio=True) for i in config['players']))).run()
def tool(channels): def startMidiThread(midiDeviceName): global midi if (midi): midi.stop() midi = MidiInterface(midiDeviceName, channels) midi.start() return midi def on_exit_clicked(icon, item): midi.stop() trayIcon.stop() def on_log_clicked(icon, item): programName = "notepad.exe" fileName = os.getcwd() + "\MidiVolumeMixer.log" sp.Popen([programName, fileName]) def set_state(v): def inner(icon, item): startMidiThread(v) config.set("midi_input", v) return inner def get_state(v): def inner(item): return midi.midiDeviceName == v return inner def get_menu_items(): items = [ item('None', set_state("None"), checked=get_state("None"), radio=True) ] for port, name in midi.getMidiPorts(): items.append( item(name, set_state(name), checked=get_state(name), radio=True)) return items deviceName = config.get("midi_input") startMidiThread(deviceName) trayIcon = icon('MidiVolumeMixer', get_icon_image(), menu=menu(item('Open log', on_log_clicked), item('MIDI Input', menu(get_menu_items)), item('Exit', on_exit_clicked))) trayIcon.run()
def make_menu(connected): mainMenu = [] for device in connected: menuItem = item( device['name'], menu( item( 'A2DP', lambda icon, item: switch_profile( device['address'], 'a2dp_sink')), item( 'HSP/HFP', lambda icon, item: switch_profile( device['address'], 'headset_head_unit')))) mainMenu.append(menuItem) icon('BT profile manager', get_tray_image_icon(), menu=menu(*mainMenu)).run()
def IconCreate(): global vh global trayActions global icon global DisableTray if(DisableTray): return icon('elvex', Image.open(BytesIO(requests.get("https://avatars3.githubusercontent.com/u/56801454?s=400&u=0ca69763a92ebb07e3bcf1264d17eaed40682467&v=4").content)), menu=menu( item('-- Elvex SOCIAL v'+str(version),trayActions.none, enabled=False), item('Dashboard', trayActions.dashboardOpen), item('Server settings', menu( item("Maintenance", menu( item('Disabled', lambda: trayActions.switchTechWorks(-1), checked=lambda i: trayActions.GetCheckedMaintenance(-1)), item('Maintenance', lambda: trayActions.switchTechWorks(0), checked=lambda i: trayActions.GetCheckedMaintenance(0)), item('Update', lambda: trayActions.switchTechWorks(1), checked=lambda i: trayActions.GetCheckedMaintenance(1)), item('Not listed', lambda: trayActions.switchTechWorks(2), checked=lambda i: trayActions.GetCheckedMaintenance(2)) )) )), item('Restart', trayActions.restart), item('Exit', trayActions.exit))).run()
def run_icon_tray(): global icon_tray icon_tray = icon(name='name', icon=Image.open(absolute_path(r'resources\icon.png')), title='Hotkey Manager', menu=menu( item('Active', on_clicked, default=True, checked=lambda item: state), item('Exit', menu_exit))) icon_tray.run()
def tray(): global state def on_clicked(icon, item): global state if state == True: icon.icon = Image.open('icon_off.ico') icon._update_icon() else: icon.icon = Image.open('icon.ico') icon._update_icon() state = not item.checked icon('Keyboard Sound', Image.open('icon.ico'), menu=menu( item('Active', on_clicked, default=True, visible=True, checked=lambda item: state))).run()
def run(self): global window_shown Systray.generate_icon() systray_image = Image.open( Filepath.get_path( os.path.join(Filepath.get_appdata_folder(), 'favicon.ico'))) systray_menu = menu( item('show window', Systray.tray_window_toggle, checked=lambda item: window_shown), item('config', Systray.modify_config), #item('copy join link', self.copy_join_link), item('reload', Systray.restart), item('exit', self.exit)) self.systray = icon("valorant-rpc", systray_image, "valorant-rpc", systray_menu) self.systray.run()
from pystray import Icon as icon, Menu as menu, MenuItem as item from PIL import Image, ImageDraw import sys color1 = 0xffffff color2 = 0x000000 width = 16 height = 16 def create_image(): image = Image.new('RGB', (width, height), color1) dc = ImageDraw.Draw(image) dc.rectangle((width // 2, 0, width, height // 2), fill=color2) dc.rectangle((0, height // 2, width // 2, height), fill=color2) return image def exitApp(icn): icn.visible = False icn.stop() sys.exit() ic = icon('unka', create_image()) ic.menu = menu(item('Exit', lambda: exitApp(ic))) ic.title = "unkara" ic.run()
subprocess.Popen(["python", path]) config = config_file( str( os.path.abspath( os.path.join(os.path.join(os.path.abspath(__file__), '..'), '..'))) + "\\scheduler\\scheduler.ini") icon('test', image, menu=menu( item('Sync now', runSync), item( 'Automatic sync', menu( item('hourly', set_state(1), checked=get_state(1), radio=True), item('every 6 hours', set_state(2), checked=get_state(2), radio=True), item('daily', set_state(3), checked=get_state(3), radio=True), item('Do not sync', set_state(4), checked=get_state(4), radio=True))), item('Preferences', preferences), item('Quit now', quit_icon))).run()
def systemTrayIcon(rootWin): icon("translater", Image.open(resource_path(os.path.join("res", "image.ico"))), "translater", menu=menu(item("退出", lambda icon, item: quit(icon, rootWin)), )).run()
# Generate an image and draw a pattern image = Image.new('RGB', (100,100)) dc = ImageDraw.Draw(image) dc.rectangle( (100 // 2, 0, 100, 100 // 2), fill='green') dc.rectangle( (0, 100 // 2, 100 // 2, 100), fill='green') return image state = False icon.icon = create_image() def on_clicked(icon, item): global state state = not item.checked main.main() state=False def on_quit(icon): icon.visible = False # Need it to stop the main while loop. I think any global var also will do the thing icon.stop() icon("test",create_image(),menu=Menu( item( 'start', on_clicked, checked=lambda item: state), item( 'quit',on_quit))).run()
def create_icon(ip_address): global MENU return icon(ip_address, create_image(), menu=MENU)
] queryWindow = sg.Window("Set Query Interval", queryLayout) while True: event, values = queryWindow.read() if event == sg.WINDOW_CLOSED: queryWindow.close() return elif event == "Ok": print(values[0]) customQueryInterval = float(values[0]) queryThread.cancel() queryThread = Timer(customQueryInterval * 60, queryCheck, [icon]) queryThread.start() queryWindow.close() return # Creates the tray icon and its menu icon( "test", create_image(), menu=menu( item("Check Grace", checkGrace, checked=None), item("Toggle Auto-Query", toggleAutoQuery, checked=lambda item: autoQuery), item("Edit Auto-Query", updateQueryInterval, checked=None), item("Quit", exitProgram, checked=None), ), ).run(setup=lambda icon: querySetup(icon))
def pingGoogle(): test_ping = '8.8.8.8' active_ping = '8.8.8.8' test_ping = None min_ms = None avg_ms = None max_ms = None image = Image.open('./green_icon.png') menu_obj = item('quit', quitApplication) icon_obj = icon('internet', icon=image, menu=menu(item('Quit', quitApplication), item('Australia', pingAustralia), item('LoL', pingLeagueOfLegends), item('Google', pingGoogle))) def doIt(): icon_obj.run(setup2) trip_times = [min_ms, avg_ms, max_ms] def responseCalc(): response_obj = ping(active_ping, count=10, timeout=1) return response_obj
from PIL import Image from pystray import Icon as icon, Menu as menu, MenuItem as item import config import hass_api from entities import Entity, DeviceType import webbrowser # Set up tray icon tray_icon = icon('Home Assistant') tray_icon.icon = Image.open(config.TRAY_ICON_PATH) # Set up menu items for each entity in config entity_items = map( lambda entity: item(entity.name, lambda: hass_api.toggleEntity(entity), checked=lambda item: False), config.entities) tray_icon.menu = menu( *entity_items, menu.SEPARATOR, item('Open Home Assistant', lambda: webbrowser.open(config.SERVER_URL)), menu.SEPARATOR, item('Quit', lambda: tray_icon.stop())) tray_icon.run()
from pystray import Icon as icon, Menu as menu, MenuItem as item from PIL import Image, ImageDraw from json import loads as json_loads, dumps as json_dumps import app def create_image(): image = Image.open('./icon.png') image.thumbnail([64, 64], Image.ANTIALIAS) return image def set_scene(icon, item): app.scene(str(item)) icon = icon( 'test', create_image(), menu=menu( item('on', lambda icon, item: app.on()), item('off', lambda icon, item: app.off()), item( 'scenes', menu(lambda: (item(scene, set_scene) for scene in app.CONFIGS['scenes'].keys()))))) icon.run()
firstRun = 0 dd.clear() de.clear() for device in manager.outlets: dd.append(device.displayJSON()['Device Name']) de.append(device.displayJSON()['Status']) return manager manager = refreshList() def toggle(x): def inner(icon, item): if de[x]=='on': manager.outlets[x].turn_off() de[x]='off' elif de[x]=='off': manager.outlets[x].turn_on() de[x]='on' return inner menuObj=menu(lambda: [ item(dd[i],toggle(i)) for i in range(0,len(dd))] + [menu.SEPARATOR] + [item('Refresh Devices', lambda icon, item: refreshList())] + [item('Exit', lambda icon, item: icon.stop())] ) # Plug icon made by https://www.flaticon.com/authors/pixel-perfect icon("VeTray", icon=Image.open("plug.png"), title="VeTray", menu=menuObj).run()