NAME
       disorder - DisOrder jukebox client

SYNOPSIS
       disorder [OPTIONS] [--] [COMMANDS...]

DESCRIPTION
       disorder  is  used  to  query  the disorderd(8) daemon from the command
       line.  It may be used to request tracks, scratch tracks, query the cur-
       rent state, etc, and by an administrator to shutdown or reconfigure the
       daemon.

       If no commands are specified then disorder connects to the  daemon  and
       then  immediately  disconnects.   This  can be used to test whether the
       daemon is running.  Otherwise, it executes the commands specified.

       This man page documents the command-line client.  See disorderd (8) for
       information  about the server process and disorder_config (5) for docu-
       mentation of the configuration file.

OPTIONS
       --config PATH, -c PATH
              Set the configuration file.  The default  is  /etc/disorder/con-
              fig.

       --debug, -d
              Enable debugging.

       --help, -h
              Display a usage message.

       --version, -V
              Display version number.

       --help-commands, -H
              List all known commands.

COMMANDS
       adduser USERNAME PASSWORD [RIGHTS]
              Create  a  new  user.   If  RIGHTS  is  not  specified  then the
              default_rights setting  from  the  server's  configuration  file
              applies.

       adopt ID
              Adopts  track ID (in the queue).  The track will show up as sub-
              mitted by the calling user.

       authorize USERNAME [RIGHTS]
              Create user USERNAME with a random password.  User USERNAME must
              be  a  UNIX  login user (not just any old string).  If RIGHTS is
              not specified then the default_rights setting from the  server's
              configuration file applies.

              ~USERNAME/.disorder/passwd  is  created with the password in it,
              so the new user should be able to log in immediately.

              If writing the passwd file fails then the user will already have
              been  created in DisOrder's user database.  Use disorder deluser
              to remove them before trying again.

       deluser USERNAME
              Delete a user.

       dirs DIRECTORY [~REGEXP]
              List all the directories in DIRECTORY.

              An optional regexp may be specified, marked with an  initial  ~.
              Only  directories  with  a  basename matching the regexp will be
              returned.

       disable
              Disable playing after the current track finishes.

       edituser USERNAME PROPERTY VALUE
              Set some property of a user.

       enable (Re-)enable playing.

       files DIRECTORY [~REGEXP]
              List all the files in DIRECTORY.

              An optional regexp may be specified, marked with an  initial  ~.
              Only files with a basename matching the regexp will be returned.

       get TRACK KEY
              Display  the preference KEY for TRACK.  See disorder_preferences
              (5).

       get-global KEY
              Get a global preference.  See disorder_preferences (5).

       get-volume
              Display the current volume settings.

       length TRACK
              Display the length of TRACK in seconds.

       log    Write event log messages to standard output, until the server is
              terminated.  See disorder_protocol (5) for details of the output
              syntax.

       move TRACK DELTA
              Move TRACK by DELTA within  the  queue.   Positive  values  move
              towards the head of the queue, negative values towards the tail.

              Note  that  if  you  specify a negative value then the -- option
              separate (before all commands) becomes mandatory,  as  otherwise
              the negative value is misinterpreted an an option.

       part TRACK CONTEXT PART
              Get a track name part.

              CONTEXT  should  be either sort or display.  part is the part of
              the name desired, typically artist, album or title.

       pause  Pause the current track.  (Note that  not  all  players  support
              pausing.)

       play TRACKS...
              Add TRACKS to the end of the queue.

       playing
              Report the currently playing track.

       playlist-del PLAYLIST
              Deletes playlist PLAYLIST.

       playlist-get PLAYLIST
              Gets the contents of playlist PLAYLIST.

       playlist-set PLAYLIST [PATH]
              Set the contents of playlist PLAYLIST.  If an absolute path name
              is specified then the track list is  read  from  that  filename.
              Otherwise the track list is read from standard input.  In either
              case, the list is terminated either by end of file or by a  line
              containing a single ".".

       playlists
              Lists known playlists (in no particular order).

       prefs TRACK
              Display all the preferences for TRACK.  See disorder_preferences
              (5).

       queue  List the current queue.  The first entry in the list is the next
              track to play.

       random-disable
              Disable random play.

       random-enable
              Enable random play.

       recent List  recently  played  tracks.   The  first entry is the oldest
              track, the last entry is the most recently played one.

       reconfigure
              Make the daemon reload its configuration file.

              Not all configuration options can be modified during  the  life-
              time  of  the  server;  of  those  that can't, some will just be
              ignored if they change while others will cause the new  configu-
              ration to be rejected.  See disorder_config(5) for details.

       remove TRACK
              Remove a track from the queue.

       rescan Rescan  the  filesystem  for  new tracks.  There is an automatic
              daily rescan but if you've just added some tracks and want  them
              to show up immediately, use this command.

       resolve TRACK
              Resolve aliases for TRACK and print out the real track name.

       resume Resume the current track after a pause.

       rtp-address
              Report the RTP brodcast address used by the server (if any).

       schedule-del EVENT
              Delete a scheduled event.

       schedule-list
              List  scheduled events.  Each line contains the ID, a timestamp,
              'N' or 'J' for normal or junk priority, the user, the action and
              action-specific data.

       schedule-play WHEN PRIORITY TRACK
              Play  TRACK  at  time  WHEN.  Various time/date formats are sup-
              ported depending on locale but the following three  will  always
              work:

                     YYYY-MM-DD HH:MM:SS

                     HH:MM:SS

                     HH:MM

              PRIORITY  should  be  junk  or  normal.  This determines how the
              event is handled if it becomes due  when  the  server  is  down.
              Junk events are just discarded in this case, while normal events
              will be executed when the server comes back up, even if this  is
              much later.

       schedule-set-global WHEN PRIORITY NAME VALUE
              Set global preference NAME to VALUE at time WHEN.

       schedule-unset-global WHEN PRIORITY NAME
              Unset global preference NAME at time WHEN.

       scratch
              Scratch the currently playing track.

       scratch-id ID
              Scratch  the  currently playing track, provided it has the given
              ID.

       search TERMS
              Search for tracks containing all of the listed terms.  The terms
              are  separated  by spaces and form a single argument, so must be
              quoted, for example:

              disorder search 'bowie china'

              You can limit the search to tracks with a particular  tag,  too,
              using the tag: modifier.  For example:

              disorder search 'love tag:depressing'

       set TRACK KEY VALUE
              Set the preference KEY for TRACK to VALUE.  See disorder_prefer-
              ences (5).

       set-global KEY VALUE
              Set a global preference.  See disorder_preferences (5).

       set-volume LEFT RIGHT
              Set the volume.

       setup-guest [--no-online-registration]
              Create the "guest" user for use by the web interface.  This user
              will  have no password and will only have the "read" and "regis-
              ter" rights, the latter allowing new users to automatically reg-
              ister themselves via the web interface.

              With  the  option --no-online-registration, the "register" right
              is suppressed and users must be manually created by an  adminis-
              trator.

              If  online  registration is desired then mail_sender must be set
              in the configuration file.  See disorder_config(5).

       shutdown
              Shut down the daemon.

       stats  List server statistics.

       tags   List known tags.

       unset TRACK KEY
              Unset the preference KEY for  TRACK.   See  disorder_preferences
              (5).

       unset-global KEY
              Unset the global preference KEY.  See disorder_preferences (5).

       userinfo USERNAME PROPERTY
              Get some property of a user.

       users  List known users.

       version
              Report the daemon's version number.

       For  move and remove, tracks may be specified by name or by ID.  If you
       use the name and a track appears twice in the  queue  it  is  undefined
       which is affected.

NOTES
       disorder  is locale-aware.  If you do not set the locale correctly then
       it may not handle non-ASCII data properly.

       The client determines which user to attempt to authenticate as by exam-
       ining the current UID.  This can be overridden in a per-user configura-
       tion file, see disorder_config(5).

       See disorder_protocol(5) for the rights required to run  each  command.
       (For  instance,  shutdown  requires  the  admin right, which most users
       would not normally have.)

       This program is not intended to run in a setuid environment.

       The regexp syntax used by the files and dirs commands  use  the  syntax
       described  in  pcrepattern(3).   Matching  is  case-independent.  It is
       strongly recommended that you quote regexps, since they  often  contain
       characters treated specially by the shell.  For example:

       disorder dirs /Music ~'^(?!the [^t])t'

TROUBLESHOOTING
       If  you cannot play a track, or it does not appear in the database even
       after a rescan, check the following things:

       .      Are there any error messages in the system log?  The server logs
              to LOG_DAEMON, which typically ends up in /var/log/daemon.log or
              /var/log/messages, though this depends on local configuration.

       .      Is the track in a known format?   Have  a  look  at  /etc/disor-
              der/config for the formats recognized by the local installation.
              The filename matching is case-sensitive.

       .      Do permissions on the track allow the server to read it?

       .      Do the permissions  on  the  containing  directories  allow  the
              server to read and execute them?

       The  user the server runs as is determined by the user directive in the
       configuration file.  The README recommends using jukebox for this  pur-
       pose but it could be different locally.

ENVIRONMENT
       HOME   The user's home directory.

       LC_ALL, LANG, etc
              Current locale.  See locale(7).

FILES
       /etc/disorder/config
              Global configuration file.  See disorder_config(5).

       ~/.disorder/passwd
              Per-user password file

       /var/lib/disorder/socket
              Communication socket for disorder(1).

SEE ALSO
       disorderd(8),  disorder_config(5),  syslog(3), time(2), pcrepattern(3),
       disobedience(1), disorder.cgi(8), disorder_preferences(5)

       "pydoc disorder" for the Python API documentation.