Пример #1
0
class ProjectsMenu(rofi_menu.Menu):
    prompt = "Projects"
    items = [
        rofi_menu.BackItem(),
        rofi_menu.ShellItem("Project 1", "code-insiders ~/Develop/project1"),
        rofi_menu.ShellItem("Project 2", "code-insiders ~/Develop/project2"),
        rofi_menu.Delimiter(),
        rofi_menu.ShellItem("Project X", "code-insiders ~/Develop/projectx"),
    ]
Пример #2
0
 async def generate_menu_items(self, meta):
     """ All playlists from the current user as nested menus
     """
     nested_playlist_menus = [rofi_menu.BackItem()]
     for playlist in (await spotify.async_all_playlists()):
         nested_playlist_menus.append(
             DynamicNestedMenu(
                 sub_menu_type=TrackMenu.from_playlist,
                 playlist=playlist,
                 text=config.playlist_item_label(playlist),
             ))
     return nested_playlist_menus
Пример #3
0
    async def generate_menu_items(self, meta):

        await self.update_popup_meta(meta)

        tracks = []
        for offset, track in enumerate(self.tracks):
            tracks.append(
                TrackItem(track=track,
                          offset=track['offset']
                          if track.get('offset') is not None else offset,
                          text=track['name']))

        return [rofi_menu.BackItem()] + tracks
Пример #4
0
    async def generate_menu_items(self, meta):
        """
        Generate a list of selected album items
        """
        items = [rofi_menu.BackItem()]
        for artist in self.artists['items']:
            items.append(
                DynamicNestedMenu(
                    text=artist['name'],
                    sub_menu_type=ArtistPage,
                    artist=artist,
                )
            )

        return items
Пример #5
0
    async def generate_menu_items(self, meta):

        if not spotify.playback._playback:
            await spotify.playback.update_playback()

        items = [
            rofi_menu.BackItem(),
            PlayPauseItem(),
            NextItem(),
            PreviousItem(),
            ShuffleItem(),
            RepeatItem(),
        ]

        return items
Пример #6
0
    async def generate_menu_items(self, meta):

        items = [rofi_menu.BackItem()]

        # This is used to keep track of which device is active between user input
        meta.session.setdefault('active_device', None)

        # Populate items with DeviceItems for each device
        devices = spotify.device.all_devices()
        for device in devices:
            if device['is_active']:
                meta.session['active_device'] = device['id']
            items.append(DeviceItem(device=device))

        return items
Пример #7
0
    async def generate_menu_items(self, meta):

        # Set the element to bring up device menu if there is no set device
        meta.session.setdefault('popup_device_menu', False)
        if not spotify.device.current_device:
            meta.session['popup_device_menu'] = True
        else:
            meta.session['popup_device_menu'] = False

        items = [rofi_menu.BackItem()]

        top_tracks = rofi_menu.Item(nonselectable=True, text=f"{self.artist['name']} Top Tracks:")
        items.append(top_tracks)

        top_tracks = spotify.client.artist_top_tracks(self.artist['id'])['tracks']
        albums = spotify.client.artist_albums(self.artist['id'])['items']

        for track in top_tracks:
            items.append(
                TrackItem(
                    track=track
                )
            )

        artist_albums = rofi_menu.Item(nonselectable=True, text=f"{self.artist['name']} Albums:")
        items.append(artist_albums)

        for album in albums:
            items.append(
                DynamicNestedMenu(
                    text=substitute_pango_escape(album['name']),
                    sub_menu_type=TrackMenu.from_album,
                    album=album,
                )
            )

        return items