Example #1
0
    def setPreferences(self):
        # make menu items for a list of times and add them to the menu
        # changing times here won't affect the original times, will have to
        # redefine in callbacks too
        titleUpdateTimes = [
            rumps.MenuItem(time, callback=self.onTitleTimeClick)
            for time in ['5 sec', '10 sec', '30 sec', '60 sec']
        ]
        marketsUpdateTimes = [
            rumps.MenuItem(time, callback=self.onMarketsTimeClick)
            for time in ['30 min', '1 hour', '2 hours', 'on startup only']
        ]

        self.menu.add(rumps.MenuItem('Price update time'))
        self.menu['Price update time'].update(titleUpdateTimes)

        self.menu.add(rumps.MenuItem('Markets update time'))
        self.menu['Markets update time'].update(marketsUpdateTimes)

        self.menu['Price update time'][self.title_update_time.__str__() +
                                       ' sec'].state = 1

        if (self.markets_update_time == 1800):
            self.menu['Markets update time']['30 min'].state = 1
        elif (self.markets_update_time == 3600):
            self.menu['Markets update time']['1 hour'].state = 1
        elif (self.markets_update_time == 7200):
            self.menu['Markets update time']['2 hours'].state = 1
        else:
            self.menu['Markets update time']['on startup only'] = 1
Example #2
0
    def insert_folder_into_menu(self, folder, path):
        keys = [x for i, x in enumerate(self.folders.keys()) if i > 2]
        menu = rumps.MenuItem(folder,
                              callback=self.make_folder_callback(folder, path))

        def callback(sender):
            folders = self.settings.get("folders", {})
            if folder in folders.keys() and folder in self.folders.keys():
                del self.folders[folder]
                del folders[folder]
                self.settings = {'folders': folders}
                self.notify('Deleted', subtitle=folder)

        remove_menu = rumps.MenuItem("Delete", callback=callback)
        menu.add(remove_menu)
        keys.append(folder)
        key_to_use = None
        for key in sorted(keys, key=lambda k: str(k).lower()):
            if key == folder:
                break
            key_to_use = key

        if key_to_use:
            self.folders.insert_after(key_to_use, menu)
        else:
            self.folders.add(menu)
def main():
    """
    Main application.
    """
    global app, app_path, username, password, toggle_setting, info
    logger.info('Reading config')
    config_parser = ConfigParser.SafeConfigParser()
    with open(CONF_TEMPLATE_PATH.format(app_path, APP_CONF), 'rb') as config_file:
        config_parser.readfp(config_file)
        username = config_parser.get(CONF_DEFAULT_SECTION, CONF_USERNAME)
        password = config_parser.get(CONF_DEFAULT_SECTION, CONF_PASSWORD)
        toggle_setting = config_parser.get(CONF_DEFAULT_SECTION, CONF_TOGGLE)
    logger.info('Username: '******'Toggle setting: ' + toggle_setting)
    refresh_menu = rumps.MenuItem(title=REFRESH_MENU, 
                                  callback=refresh_callback,
                                  icon=ICONS_TEMPLATE_PATH.format(app_path, REFRESH_ICON), 
                                  dimensions=(16, 16))
    toggle_menu = rumps.MenuItem(title=TOGGLE_MENU,
                                 callback=toggle_callback)
    app = rumps.App(APP_NAME,
                    icon=ICONS_TEMPLATE_PATH.format(app_path, APP_ICON),
                    menu=(refresh_menu, toggle_menu, None))
    logger.info('Running')
    app.title = APP_NAME
    app.menu[TOGGLE_MENU].title = TOGGLE_TEMPLATE.format(_toggle(toggle_setting))
    app.run()
Example #4
0
    def insert_extension_into_menu(self, extension, parent):
        keys = [x for i, x in enumerate(parent.keys())
                if i > 2]  # The number of non-extension menus at the top
        menu = rumps.MenuItem(extension,
                              callback=self.make_toggle_of_extension(
                                  extension, parent.title))
        menu.state = self.fs.extensions[parent.title][0][extension]

        def callback(sender):
            if self.fs.delete_extension_from_group(parent.title, extension):
                del parent[extension]
                self.notify('Extension Deleted', subtitle=parent.title)

        remove_menu = rumps.MenuItem("Delete", callback=callback)
        menu.add(remove_menu)
        keys.append(extension)
        key_to_use = None
        for key in sorted(keys):
            if key == extension:
                break
            key_to_use = key

        if key_to_use:
            parent.insert_after(key_to_use, menu)
        else:
            parent.add(menu)
Example #5
0
File: app.py Project: rebryk/neurox
    def render_menu(self):
        quit_button = self.menu.get('Quit')
        self.menu.clear()

        self.menu.add(
            rumps.MenuItem(self.ABOUT,
                           lambda _: webbrowser.open(self.GITHUB_ULR)))
        self.menu.add(self.render_settings_item())
        self.menu.add(rumps.separator)

        # Active jobs sorted by created time
        jobs = sorted(
            self.client.get_active_jobs(),
            key=lambda it: datetime.fromisoformat(it.history.created_at))

        if jobs:
            for job in jobs:
                self.menu.add(self.render_job_item(job))
        else:
            self.menu.add(rumps.MenuItem('No active jobs'))

        self.menu.add(rumps.separator)
        self.menu.add(rumps.MenuItem('Create job...', self.create_job))
        self.menu.add(self.render_presets_item())
        self.menu.add(rumps.separator)
        self.menu.add(quit_button)
Example #6
0
    def addPortItem(self, parent, item_dict, namespace):

        names = item_dict.keys()
        names.sort()

        for name in names:
            rmi = rumps.MenuItem('/%s' % name)
            rmi.port = namespace + name
            parent.add(rmi)

            # add children
            if item_dict[name]:
                self.addPortItem(rmi, item_dict[name], namespace + name + '/')

            # or add a callback function
            else:
                if 'yarpTab' not in namespace:
                    rmi.set_callback(self.callPort)

                    # create sub menus
                    rmiIO = rumps.MenuItem('Image Output', self.callIO)
                    rmiIO.port = namespace + name
                    rmi.add(rmiIO)

                    rmiTO = rumps.MenuItem('Text Output', self.callTO)
                    rmiTO.port = namespace + name
                    rmi.add(rmiTO)

                    rmiTI = rumps.MenuItem('Text Input', self.callTI)
                    rmiTI.port = namespace + name
                    rmi.add(rmiTI)
Example #7
0
    def __init__(self):
        self.config = {
            'app_name': 'Virtual School Controller',
            'join_class_title': 'Class Options'
        }
        self.app = rumps.App(self.config['app_name'], '📅')
        self.text = rumps.MenuItem(None)

        self.pauseButton = rumps.MenuItem(title='Pause', callback=self.pause)

        self.app.menu.add(self.text)

        self.app.menu.add(None)
        self.app.menu.add(
            rumps.MenuItem(title=self.config['join_class_title']))

        self.app.menu.add(None)
        self.app.menu.add(self.pauseButton)
        self.app.menu.add(
            rumps.MenuItem(title="Set config file path",
                           callback=self.set_config_path))

        self.links = {}

        global weekDays
        global schoolController
        schoolController = self
        self.update()
 def preferences_menu_item(self):
     return {
         'Preferences': [
             rumps.MenuItem('Edit', callback=self.hook_open_preferences),
             rumps.MenuItem('Reload', callback=self.hook_reload_preferences)
         ]
     }
Example #9
0
 def __init__(self):
     self.config = {
         "app_name": "Pomodoro",
         "start": "Bắt Đầu 🏁",
         "pause": "Tạm Dừng ⏸",
         "continue": "Tiếp Tục ▶️",
         "stop": "Dừng Lại 🛑",
         "break_message": "25 phút đã trôi qua! +1 🍅",
         "interval": 1500,
         "reset_round": "Đặt Lại Số Lượt 🍅",
         "work_mode": "Tập Trung 💪",
         "rest_mode": "Giải Lao 💤"
     }
     self.round = 0
     self.app = rumps.App(self.config["app_name"])
     self.timer = rumps.Timer(self.on_tick, 1)
     self.timer.count = 0
     self.interval = self.config["interval"]
     self.start_pause_button = rumps.MenuItem(title=self.config["start"],
                                              callback=self.start_timer)
     self.stop_button = rumps.MenuItem(title=self.config["stop"],
                                       callback=None)
     self.set_up_menu()
     self.is_in_mode = self.config["work_mode"]
     self.reset_round_button = rumps.MenuItem(
         title=self.config["reset_round"], callback=self.reset_round)
     self.mode_button = rumps.MenuItem(title=self.config["rest_mode"],
                                       callback=self.rest)
     self.app.menu = [
         self.start_pause_button, self.stop_button, self.reset_round_button,
         self.mode_button
     ]
 def _start_event(self):
     self.debug(f"Inserting data into database \
                 {self.key_input.text()} as command\
                 {self.paste_input.text()} as key")
     keypaste = Keypaste(
         self.key_input.text(),
         self.paste_input.text()
     )
     try:
         self.pickle.append_and_reload(keypaste)
     except KeyPasteException:
         self.debug("Key is already in there")
         self.window.close()
     self.debug("Successfully ran query into database")
     self.debug("Updating app with new entries")
     pastes = self.menu.get("Pastes")
     if not self.copy_clipboard:
         self.debug("Config says to use write to screen")
         menu_add = rumps.MenuItem(
             title=keypaste.get_command(),
             callback=keypaste.write
             )
     else:
         self.debug("Config says to copy to buffer")
         menu_add = rumps.MenuItem(
             title=keypaste.get_command(),
             callback=keypaste.copy_to_clipboard
         )
     pastes.add(menu_add)
     self.debug("Killing Entry app cause operation is done")
     self.window.close()
Example #11
0
 def __init__(self, timer_interval=1):
     self.timer = rumps.Timer(self.on_tick, 1)
     self.timer.stop()  # timer running when initialized
     self.timer.count = 0
     self.app = rumps.App("Timebox", "🥊")
     self.start_pause_button = rumps.MenuItem(title='Start Timer',
                                              callback=lambda _: self.start_timer(_, self.interval))
     self.stop_button = rumps.MenuItem(title='Stop Timer',
                                       callback=None)
     self.buttons = {}
     self.buttons_callback = {}
     for i in [5, 10, 15, 20, 25]:
         title = str(i) + ' Minutes'
         callback = lambda _, j=i: self.set_mins(_, j)
         self.buttons["btn_" + str(i)] = rumps.MenuItem(title=title, callback=callback)
         self.buttons_callback[title] = callback
     self.interval = get_things_min()*SEC_TO_MIN
     self.button_things = rumps.MenuItem(title="Things Interval ("+str(round(self.interval/SEC_TO_MIN))+"min)", callback=lambda _: self.set_things_mins(_))
     self.button_things.state = True
     self.app.menu = [
         self.start_pause_button,
         None,
         self.button_things,
         None,
         *self.buttons.values(),
         None,
         self.stop_button]
def post_history_menu_options():
    mgdl = rumps.MenuItem('mg/dL', callback=choose_units_mgdl)
    mgdl.state = not config.get_use_mmol()
    mmol = rumps.MenuItem('mmol/L', callback=choose_units_mmol)
    mmol.state = config.get_use_mmol()
    open_ns_url = rumps.MenuItem('Open Nightscout site...', callback=None)
    if config.get_host():
        open_ns_url.set_callback(open_nightscout_url)
    items = [
        None,
        [
            'Settings',
            [
                mgdl,
                mmol,
                None,
                rumps.MenuItem('Set Nightscout URL...', callback=configuration_window),
                rumps.MenuItem('Help...', callback=open_project_homepage),
                None,
                "Version {}".format(VERSION)
            ],
        ],
        None,
        open_ns_url,
        None,
    ]
    return items
Example #13
0
    def __init__(self):
        super().__init__("AirConnectMenu", title=off)

        locations = []

        # create cached if it doesn't exit otherwise parse
        if not cached.parent.exists():
            cached.parent.mkdir(parents=True)
        if not cached.exists():
            cached.touch()

        with open(cached) as fp:
            for line in fp.readlines():
                loc = parseip(line)
                if loc is not None:
                    locations.append(loc)

        self.locations = locations

        self.previous = rumps.MenuItem('Previous')

        self.menu.add(self.previous)
        self.menu.add(
            rumps.MenuItem(title='New Server IP', callback=self.serverip))
        self.menu.add(rumps.MenuItem(title='Stop', callback=self.stop))
        self.menu.add(rumps.separator)

        self.setMenus()
        self.connected = False
Example #14
0
 def __init__(self, timer_interval=1):
     self.timer = rumps.Timer(self.on_tick, 1)
     self.timer.stop()  # timer running when initialized
     self.timer.count = 0
     self.app = rumps.App("Raindrop", "🍅")
     self.start_pause_button = rumps.MenuItem(
         title='Start Timer',
         callback=lambda _: self.start_timer(_, self.interval))
     self.stop_button = rumps.MenuItem(title='Stop Timer', callback=None)
     self.buttons = {}
     self.buttons_callback = {}
     for i in [5, 10, 15, 20, 25]:
         title = str(i) + ' Minutes'
         callback = lambda _, j=i: self.set_mins(_, j)
         self.buttons["btn_" + str(i)] = rumps.MenuItem(title=title,
                                                        callback=callback)
         self.buttons_callback[title] = callback
     self.interval = 5 * SEC_TO_MIN  # current 5 min by default
     self.buttons['btn_5'].state = True
     self.app.menu = [
         self.start_pause_button,
         None,
         # self.button_things,
         # None,
         *self.buttons.values(),
         None,
         self.stop_button
     ]
Example #15
0
 def create_country_listing(self, country):
     data = self.get_country_data(country.title)
     for k, v in data.items():
         self.app.menu.add(rumps.MenuItem(self.string_mapper(k, v)))
     current_time = datetime.datetime.now().strftime("%H:%M")
     self.app.menu.add(rumps.MenuItem(title=f"Updated at {current_time}"))
     self.timer = rumps.Timer(self.on_update, self.update_interval)
     self.timer.start()
Example #16
0
 def __init__(self):
     self.app = rumps.App("twenny")
     self.timer = rumps.Timer(self.ticker, 1)
     self.interval = 1200
     self.bau_menu()
     self.start_knopf = rumps.MenuItem(title="Start Timer", callback=self.start_timer)
     self.stopuhr = rumps.MenuItem(title="20:00")
     self.app.menu = [self.stopuhr, self.start_knopf]
Example #17
0
 def load_all_sessions(self):
     """This method is for initializing the sessions from the init function."""
     session_names = self.get_session_names()
     for name in session_names:
         load_item = rumps.MenuItem(name, callback=self.load_session)
         delete_item = rumps.MenuItem(name, callback=self.delete_session)
         self.load_menu.append(load_item)
         self.delete_menu.append(delete_item)
Example #18
0
    def setup(self, province_list, default_province):
        for province in province_list:
            self.provinces.add(
                rumps.MenuItem(title=f"{province}",
                               callback=self.update_province_listing))

        self.create_province_listing(
            rumps.MenuItem(title=f"{self.default_province}"))
Example #19
0
 def __init__(self):
     super(Pomodoro, self).__init__("20Twenty20",icon="data/icon.tiff")
     self.work_menu = rumps.MenuItem("work", callback=self.work)
     self.rest_menu = rumps.MenuItem("rest",callback=None)
     self.menu = [self.work_menu, self.rest_menu, None]
     self.alarm_time = [int(i) * 60 for i in Flags.notice_interval]
     self.time_idx = 0
     self.mainloopStart()
Example #20
0
    def setup(self, country_list, default_country):
        for country in country_list:
            self.countries.add(
                rumps.MenuItem(title=f"{country}",
                               callback=self.update_country_listing))

        self.create_country_listing(
            rumps.MenuItem(title=f"{self.default_country}"))
Example #21
0
 def __init__(self):
     self.app = rumps.App("BaconPaper", "🥓")
     self.set_up_menu()
     self.changeFromURLButton = rumps.MenuItem(title="Change From URL",
                                               callback=self.changeFromURL)
     self.changeFromFileButton = rumps.MenuItem(
         title="Change From File", callback=self.changeFromFile)
     self.app.menu = [self.changeFromURLButton, self.changeFromFileButton]
Example #22
0
 def __init__(self):
     self.app = rumps.App("Strainy the Elf", icon='normal_eye.ico')
     self.interval_minutes = 20
     self.last_break = datetime.strftime(datetime.now(), '%d %B %Y %I:%M%p')
     self.next_break = datetime.strftime(datetime.now()  + timedelta(minutes=self.interval_minutes), '%d %B %Y %I:%M%p')
     self.menu = self.app.menu = [
         rumps.MenuItem('Back from break'),
         rumps.MenuItem(f"Next break @ {self.next_break.split()[-1]}"),
     ]
Example #23
0
def insert_unload_reload(ar: rumps.MenuItem, j: launchd.LaunchdJob):
    print(j.plistfilename)
    ar.add(
        rumps.MenuItem("Unload",
                       callback=lambda x: launchd.unload(j.plistfilename)))
    ar.add(
        rumps.MenuItem("Reload",
                       callback=lambda x: launchd.unload(j.plistfilename) and
                       launchd.load(j.plistfilename)))
Example #24
0
def insert_log_menu_items(ar: rumps.MenuItem, ag):
    log = ag['StandardOutPath']
    log_cb = lambda x: subprocess.call(["open", "-a", "Console", log])
    err = ag['StandardErrorPath']
    err_cb = lambda x: subprocess.call(["open", "-a", "Console", err])
    ar.add(rumps.separator)
    ar.add(rumps.MenuItem("View Log", callback=log_cb if log else None))
    ar.add(rumps.MenuItem("View Error Log", callback=err_cb if err else None))
    ar.add(rumps.separator)
 def __init__(self):
     su = StatusUtility()
     self.app = rumps.App("SystemId", "ℹ️")
     self.app.title = "ℹ️ " + su.get_hostname()
     self.open_panel_button = rumps.MenuItem(title="Show Panel", callback=self.manage_floating_window)
     self.user_button = rumps.MenuItem(title=su.get_user())
     self.uptime_button = rumps.MenuItem(title=su.get_uptime())
     self.ip_button = rumps.MenuItem(title=su.get_ip())
     self.app.menu = [self.open_panel_button, None, self.user_button, self.uptime_button, self.ip_button, None]
Example #26
0
 def __init__(self):
     super(UnplugMe, self).__init__("UnplugMe")
     self.icon = '/Users/januszpolowczyk/Documents/StatusBarApp/icons/charging_station.png'
     self.menu.add(rumps.MenuItem(title = "Charge: "))
     self.menu.add(rumps.MenuItem(title = "Current Threshold: 85%"))
     self.menu.add(rumps.MenuItem(title = "Plugged in: "))
     self.menu.add(rumps.MenuItem(title = "Change Threshold"))
     self.menu.add(rumps.separator)
     self.menu.add(rumps.MenuItem(title = "About"))
     self.battery = psutil.sensors_battery()
Example #27
0
 def create_province_listing(self, province):
     # print("Creating")
     data = self.get_province_data(province.title)
     for k, v in data.items():
         self.app.menu.add(rumps.MenuItem(self.string_mapper(k, v)))
     current_time = datetime.datetime.now().strftime("%H:%M")
     self.app.menu.add(rumps.MenuItem(title=f"Updated at {current_time}"))
     # print("Created")
     self.timer = rumps.Timer(self.on_update, self.update_interval)
     self.timer.start()
Example #28
0
 def __init__(self):
     super(App, self).__init__("🍺") 
     self.menu.add(rumps.MenuItem(title='Version: 1.0'))
     self.menu.add(rumps.MenuItem(title='Updated:'))
     self.menu.add(rumps.MenuItem(title='Install Program'))
     self.menu.add(rumps.MenuItem(title='Update All'))
     self.menu.add(rumps.separator)
     self.menu.add(rumps.MenuItem(title='Info'))
     self.bm = BrewManager()
     self.scraper = Scraper()
     self.get_last_refresh()
 def __init__(self, app):
     super().__init__(Menus.time_period())
     self.app = app
     self[TimePeriods.today()] = rumps.MenuItem(
         TimePeriods.today(), callback=self._set_time_period)
     # HACK: would love a cleaner way to do this default menu setting
     self[TimePeriods.today()].state = MenuState.on()
     self[TimePeriods.this_week()] = rumps.MenuItem(
         TimePeriods.this_week(), callback=self._set_time_period)
     self[TimePeriods.this_month()] = rumps.MenuItem(
         TimePeriods.this_month(), callback=self._set_time_period)
Example #30
0
 def __init__(self):
     self.config = {
         "app_name": "My Todos",
     }
     self.app = rumps.App(self.config["app_name"])
     self.app.quit_button = None
     self.app.title = "💻"
     self.quit_button = rumps.MenuItem(title="Quit 👋🏻")
     self.refresh_button = rumps.MenuItem(title="Refresh ⚡️",
                                          callback=self.get_data)
     self.get_data(BOOTSTRAP)