zsh-users
 help / color / mirror / code / Atom feed
* Completion nyxmms2
@ 2010-11-20 18:05 Michel
  2010-11-20 19:56 ` Bart Schaefer
  0 siblings, 1 reply; 3+ messages in thread
From: Michel @ 2010-11-20 18:05 UTC (permalink / raw)
  To: zsh-users

Hello everybody !

I use xmms2 with nyxmms2 to listen my songs but I don't have the
completion with nyxmms2.
Exist a file for the completion of nyxmms2 ?

Thanks for your answer.
_____________________
Michel BARRET


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Completion nyxmms2
  2010-11-20 18:05 Completion nyxmms2 Michel
@ 2010-11-20 19:56 ` Bart Schaefer
  2010-11-21 14:56   ` Eike von Seggern
  0 siblings, 1 reply; 3+ messages in thread
From: Bart Schaefer @ 2010-11-20 19:56 UTC (permalink / raw)
  To: zsh-users

On Nov 20,  6:05pm, Michel wrote:
} Subject: Completion nyxmms2
}
} Hello everybody !
} 
} I use xmms2 with nyxmms2 to listen my songs but I don't have the
} completion with nyxmms2.
} Exist a file for the completion of nyxmms2 ?

http://www.mail-archive.com/xmms2-devel@lists.xmms.se/msg02017.html

That thread mentions sending us the completions to include with zsh,
but I don't think that ever happened.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Completion nyxmms2
  2010-11-20 19:56 ` Bart Schaefer
@ 2010-11-21 14:56   ` Eike von Seggern
  0 siblings, 0 replies; 3+ messages in thread
From: Eike von Seggern @ 2010-11-21 14:56 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 691 bytes --]

On Sat, Nov 20, 2010 at 11:56 -0800, Bart Schaefer wrote:
> On Nov 20,  6:05pm, Michel wrote:
>} Subject: Completion nyxmms2
>}
>} Hello everybody !
>} 
>} I use xmms2 with nyxmms2 to listen my songs but I don't have the
>} completion with nyxmms2.
>} Exist a file for the completion of nyxmms2 ?
> 
> http://www.mail-archive.com/xmms2-devel@lists.xmms.se/msg02017.html
> 
> That thread mentions sending us the completions to include with zsh,
> but I don't think that ever happened.

Hi,

attached is the _nyxmms2 file that I use. I don't remember where I got
it from. Probably from the xmms2 web site. I haven't updated it
recently, but it works well with Dr.No for me.

tschuess
    eike

[-- Attachment #2: _nyxmms2 --]
[-- Type: text/plain, Size: 4671 bytes --]

#compdef nyxmms2

_nyxmms2_command() {
    local nyxmms2_cmds

    nyxmms2_cmds=(
        add:"add the matching media or files to a playlist"
        addpls:"add a playlist file"
        scap:"stop, clear playlist, add arguments and start playing"
        list:"lists the playlist"
        search:"Search and print all media matching the pattern"
        remove:"remove the matching media from a playlist"
        clear:"clears the playlist"

        play:"starts playback"
        pause:"pause playback"
        stop:"stops playback"
        toggle:"toggles playback status between play/pause"

        seek:"seek to a specific place in current song"
        next:"play next song"
        prev:"play previous song"
        jump:"take a leap in the playlist"

        move:"move a entry in the playlist"
        collection:"collection manipulation - type 'nyxmms2 help collection' for more extensive help"
        playlist:"playlist manipulation - type 'nyxmms2 help playlist' for more
extensive help"
        server:"server manipulation - type 'nyxmms2 help server' for more extensive help"

        status:"display playback status, either continuously or once"
        info:"display all the properties for all media matching the pattern"
        help:"print help about a command"
    )

    if (( CURRENT == 1 )); then
        _describe -t command "nyxmms2 commands" nyxmms2_cmds
    else
        local curcontext="$curcontext"
    fi

    local cmd=$words[1]

    local curcontext="${curcontext%:*}:nyxmms2-${cmd}"
    _call_function ret _nyxmms2_$cmd
}

_nyxmms2_jump() {
    songlist=(${"$(nyxmms2 list)"})
    playlistitems=()
    for song ($songlist); do
        if [[ $song = (#b)'  '\[(<->)/(<->)\]' '(*)' '\((*)\) ]]; then
                        playlistitems+=("$match[1][$match[3]]")
        fi
    done

    _values -s ' ' 'playlist items' ${(On)playlistitems}

}

_nyxmms2_playlist() {
    local playlist_cmds
    playlist_cmds=(
        list:"list all playlists"
        switch:"change the active playlist"
        create:"create a new playlist"
        rename:"rename a playlist"
        remove:"remove the given playlist"
        clear:"clear a playlist, by default, clear the active playlist"
        shuffle:"shuffle a playlist, by default, shuffle the active playlist"
        sort:"sort a playlist, by default, sort the active playlist."
        config:"configure a playlist, by default, sort the active playlist."
    )
    if (( CURRENT == 2 )); then
        _describe -t command "nyxmms2 playlist commands" playlist_cmds
    else
        local curcontext="$curcontext"
    fi

    local cmd=$words[2]

    local curcontext="${curcontext%:*}:nyxmms2-${cmd}"
    _call_function ret _nyxmms2_playlist_$cmd
}

_nyxmms2_playlist_helper() {
    local list
    oifs="$IFS"
    IFS="

    list=($(nyxmms2 playlist list|sed 's/^..//'))
    IFS="$oifs"
    _describe -t command "nyxmms2 playlists" list
}

_nyxmms2_playlist_switch() {
    _nyxmms2_playlist_helper
}

_nyxmms2_playlist_sort() {
    _nyxmms2_playlist_helper
}

_nyxmms2_playlist_shuffle() {
    _nyxmms2_playlist_helper
}

_nyxmms2_playlist_clear() {
    _nyxmms2_playlist_helper
}

_nyxmms2_playlist_remove() {
    _nyxmms2_playlist_helper
}

#FIXME: TODO rename, other sort args, config

_nyxmms2_collection() {
    local collection_cmds
    collection_cmds=(
        list:"list all collection" 
        show:"display a human-readable description of a collection"
        create:"create a new collection"
        rename:"rename a collection"
        remove:"remove a collection"
        config:"get or set attributes for the given collection"
    )
    if (( CURRENT == 2 )); then
        _describe -t command "nyxmms2 collection commands" collection_cmds
    else
        local curcontext="$curcontext"
    fi

    local cmd=$words[2]

    local curcontext="${curcontext%:*}:nyxmms2-${cmd}"
    _call_function ret _nyxmms2_collection_$cmd
}

_nyxmms2_collection_helper() {
    local list
    oifs="$IFS"
    IFS="

    list=($(nyxmms2 collection list|sed 's/^..//'))
    IFS="$oifs"
    _describe -t command "nyxmms2 playlists" list
}

_nyxmms2_collection_rename() {
    _nyxmms2_collection_helper
}

_nyxmms2_collection_config() {
    _nyxmms2_collection_helper
}
_nyxmms2_collection_remove() {
    _nyxmms2_collection_helper
}

_nyxmms2_collection_show() {
    _nyxmms2_collection_helper
}

_nyxmms2_add() {
    _files
}

_nyxmms2_scap() {
    _files
}

_nyxmms2() {
    _arguments \
        '--format[specify the format of song display]:format string' \
        '--no-status[prevent printing song status on completion]' \
        '*::nyxmms2 command:_nyxmms2_command'
}

_nyxmms2 "$@"

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-21 15:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-20 18:05 Completion nyxmms2 Michel
2010-11-20 19:56 ` Bart Schaefer
2010-11-21 14:56   ` Eike von Seggern

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).