Provided by: ncdc_1.23.1-1build2_amd64 bug

NAME

       ncdc - Ncurses Direct Connect Client

SYNOPSIS

       ncdc [options]

DESCRIPTION

       Ncdc is a modern and lightweight direct connect client with a friendly ncurses interface.

GETTING STARTED

       This is a basic introduction for those who are new to ncdc. See the chapters below for a more detailed
       description of the available functionality.

       What you see when starting up ncdc is an input line where you can input commands and a log window where
       the results are displayed, much like a regular terminal. Commands within ncdc start with a slash (e.g.
       "/help") and have tab completion to help you.

       The first thing you will want to do after starting ncdc for the first time is to setup some basic
       information and settings:

         /set nick MyNick
         /set description ncdc is awesome!
         /set connection 10
         /share "My Awesome Files" /path/to/files

       And if you have a direct connection to the internet or if your router allows port forwarding, you may
       also want to enable active mode:

         /set active_port 34194
         /set active true

       See the help text for each of the commands and settings for more information.  Of course, all of the
       above settings are saved to the database and will be used again on the next run.

       To connect to a hub, use /open:

         /open ncdc adc://dc.blicky.net:2780/

       Here ncdc is the personal name you give to the hub, and the second argument the URL. This URL will be
       saved in the database, so the next time you want to connect to this hub, you can simply do "/open ncdc".
       See the help text for "/open" and "/connect" for more information. If you want to automatically connect
       to a hub when ncdc starts up, use the "autoconnect" setting.

       Ncdc uses a tabbed interface: every hub opens in a new tab, and there are several other kinds of tabs
       available as well. The type of tab is indicated in the tab list on the bottom of the screen with a
       character prefix. Hubs, for example, are prefixed with a "#". If a tab needs your attention, a colored
       exclamation mark is displayed before the tab name, different colors are used for different types of
       activity.

       Everything else should be fairly self-explanatory: To search for files, use the "/search" command. To
       browse through the user list of a hub, use "/userlist" or hit Alt+u. To browse someone's file list, use
       "/browse" or hit the 'b' key in the user list. And to monitor your upload and download connections, use
       "/connections" or hit Alt+n.

OPTIONS

       -c, --session-dir= dir
           Use  a  different session directory. Defaults to the contents of the environment variable `$NCDC_DIR'
           or if this is unset to `$HOME/.ncdc'.

       -h, --help
           Display summary of options.

       -n, --no-autoconnect
           Don't automatically connect to hubs with the "autoconnect" option set.

       --no-bracketed-paste
           Disable bracketed pasting.

       -v, --version
           Display ncdc version.

GETTING CONNECTED

       As with most file sharing clients, ncdc supports two modes of being connected:  active  and  passive.  In
       passive  mode  (the  default),  you can connect to the outside world but nobody can connect (directly) to
       you. When passive, you will only be able to transfer files with people who are in active mode. In  active
       mode,  however,  you  will  have  some  port  open  to the rest of the network to which other clients can
       connect. When active, you will be able to transfer files with everyone and you may get  more  and  faster
       search results. Configuring active mode is therefore recommended.

       In  many  setups,  all  you  need  to do to switch to active mode is to set a TCP/UDP port and enable the
       "active" setting:

         /set active_port 34194
         /set active true

       When you connect to a hub, the status bar will tell you  whether  you  are  active  or  passive  on  that
       particular  hub, and what IP address is being used to allow others to connect to you. For most hubs, your
       IP address will be detected automatically, but in the  event  that  this  fails,  you  can  also  set  it
       yourself:

         /set active_ip 13.33.33.7

       If  you  are behind a NAT or firewall, you have to ensure that the port you configured is somehow allowed
       and/or forwarded. The "active_port" setting is used for incoming TCP connections and  UDP  messages.  You
       can  configure  a  different  UDP  port with the "active_udp_port" setting. Contrary to many toher Direct
       Connect clients, ncdc only uses a single port for incoming TCP and TLS connections; There is no  separate
       port for TLS.

       The "/listen" command can tell you which ports it expects to be forwarded, and for which hubs these ports
       will  be  used.  It only lists hubs on which you are currently active, so the output will change when you
       open or close a hub connection.

       If you have multiple network interfaces, you can force ncdc to use only a single interface by setting the
       "local_address" setting to the address of that interface. This affects both  outgoing  connections  (they
       will  be forced to go through the configured interface) and incoming connections (the ports will be bound
       to the configured interface).

       All of the previously mentioned settings can be set globally (with "/set") and on a per-hub  basis  (with
       "/hset").  This  allows  you to be active on an internet hub and a LAN-only hub at the same time. It also
       allows you to be active in one hub while passive in another, or to use different ports for each hub.

INTERACTIVE COMMANDS

       The following is the list of commands that can be used within ncdc. The /help command can  also  be  used
       get a list of available commands and to access this documentation.

       /accept
           Use  this  command  to accept the TLS certificate of a hub. This command is used only in the case the
           keyprint of the TLS certificate of a hub does not match the keyprint stored in the database.

       /browse [[-f] <user>]
           Without arguments, this opens a new tab where you can browse your own file list. Note that changes to
           your list are not immediately visible in the browser. You need to re-open the tab to get  the  latest
           version of your list.

           With arguments, the file list of the specified user will be downloaded (if it has not been downloaded
           already) and the browse tab will open once it's complete. The `-f' flag can be used to force the file
           list to be (re-)downloaded.

       /clear
           Clears  the  log  displayed  on  the  screen.  Does  not affect the log files in any way. Ctrl+l is a
           shortcut for this command.

       /close
           Close the current tab. When closing a hub tab, you will be disconnected from the hub and all  related
           userlist and PM tabs will also be closed. Alt+c is a shortcut for this command.

       /connect [<address>]
           Initiate  a  connection with a hub. If no address is specified, will connect to the hub you last used
           on the current tab. The address should be in the form of `protocol://host:port/' or `host:port'.  The
           `:port'  part is in both cases optional and defaults to :411. The following protocols are recognized:
           dchub, nmdc, nmdcs, adc, adcs. When connecting to an nmdcs or adcs hub and  the  SHA256  keyprint  is
           known, you can attach this to the url as `?kp=SHA256/<base32-encoded-keyprint>'

           Note  that  this command can only be used on hub tabs. If you want to open a new connection to a hub,
           you need to use /open first. For example:

             /open testhub
             /connect dchub://dc.some-test-hub.com/

           See the /open command for more information.

       /connections
           Open the connections tab.

       /delhub <name>
           Remove a hub from the configuration

       /disconnect
           Disconnect from a hub.

       /gc Cleans up unused data and reorganizes existing data  to  allow  more  efficient  storage  and  usage.
           Currently,  this commands removes unused hash data, does a VACUUM on db.sqlite3, removes unused files
           in inc/ and old files in fl/.

           This command may take some time to complete, and will fully block ncdc while it  is  running.  It  is
           recommended to run this command every once in a while. Every month is a good interval. Note that when
           ncdc  says  that  it  has  completed this command, it's lying to you. Ncdc will still run a few large
           queries on the background, which may take up to a minute to complete.

       /grant [-list|<user>]
           Grant someone a slot. This allows the user to download from you even if you have no free slots.   The
           slot  will  remain granted until the /ungrant command is used, even if ncdc has been restarted in the
           mean time.

           To get a list of users whom you have granted a slot, use `/grant' without arguments or with  `-list'.
           Be  warned  that using `/grant' without arguments on a PM tab will grant the slot to the user you are
           talking with. Make sure to use `-list' in that case.

           Note that a granted slot is specific to a single hub. If the same user is also on other hubs,  he/she
           will not be granted a slot on those hubs.

       /help [<command>|set <key>|keys [<section>]]
           To get a list of available commands, use /help without arguments.  To get information on a particular
           command,  use  /help  <command>.   To  get  information  on  a  configuration  setting, use /help set
           <setting>.  To get help on key bindings, use /help keys.

       /hset [<key> [<value>]]
           Get or set per-hub configuration variables. Works equivalent to the `/set' command, but can  only  be
           used on hub tabs. Use `/hunset' to reset a variable back to its global value.

       /hunset [<key>]
           This command can be used to reset a per-hub configuration variable back to its global value.

       /kick <user>
           Kick  a  user from the hub. This command only works on NMDC hubs, and you need to be an OP to be able
           to use it.

       /listen
           List currently opened ports.

       /me <message>
           This allows you to talk in third person. Most clients will display your message as something like:

             ** Nick is doing something

           Note that this command only works correctly on ADC  hubs.  The  NMDC  protocol  does  not  have  this
           feature, and your message will be sent as-is, including the /me.

       /msg <user> [<message>]
           Send a private message to a user on the currently opened hub. If no message is given, the tab will be
           opened but no message will be sent.

       /nick [<nick>]
           Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.

       /open [-n] [<name>] [<address>]
           Without  arguments, list all hubs known by the current configuration. Otherwise, this opens a new tab
           to use for a hub. The name is a (short) personal  name you use to identify the hub, and will be  used
           for storing hub-specific  configuration.

           If you have specified an address or have previously connected to a hub from a tab with the same name,
           /open will automatically connect to the hub. Use the `-n' flag to disable this behaviour.

           See /connect for more information on connecting to a hub.

       /password <password>
           This command can be used to send a password to the hub without saving it to the database. If you wish
           to  login automatically without having to type /password every time, use '/hset password <password>'.
           Be warned, however, that your password will be saved unencrypted in that case.

       /pm <user> [<message>]
           Alias for /msg

       /queue
           Open the download queue.

       /quit
           Quit ncdc.

       /reconnect
           Reconnect to the hub. When your nick or the hub encoding have been changed, the new settings will  be
           used after the reconnect.

           This command can also be used on the main tab, in which case all connected hubs will be reconnected.

       /refresh [<path>]
           Initiates share refresh. If no argument is given, the complete list will be refreshed. Otherwise only
           the  specified  directory  will  be refreshed. The path argument can be either an absolute filesystem
           path or a virtual path within your share.

       /say <message>
           Sends a chat message to the current hub or user. You normally don't have  to  use  the  /say  command
           explicitly,  any command not staring with '/' will automatically imply `/say <command>'. For example,
           typing `hello.' in the command line is equivalent to `/say hello.'. Using the /say command explicitly
           may be useful to send message starting with '/' to the chat, for example `/say /help is what you  are
           looking for'.

       /search [options] <query>
           Performs a file search, opening a new tab with the results.

           Available options:

             -hub      Search the current hub only. (default)
             -all      Search all connected hubs, except those with `chat_only' set.
             -le  <s>  Size of the file must be less than <s>.
             -ge  <s>  Size of the file must be larger than <s>.
             -t   <t>  File must be of type <t>. (see below)
             -tth <h>  TTH root of this file must match <h>.

           File sizes (<s> above) accept the following suffixes: G (GiB), M (MiB) and K (KiB).

           The following file types can be used with the -t option:

             1  any      Any file or directory. (default)
             2  audio    Audio files.
             3  archive  (Compressed) archives.
             4  doc      Text documents.
             5  exe      Windows executables.
             6  img      Image files.
             7  video    Video files.
             8  dir      Directories.

           Note that file type matching is done using file extensions, and is not very reliable.

       /set [<key> [<value>]]
           Get or set global configuration variables. Use without arguments to get a list of all global settings
           and  their  current  value.  Glob-style  pattern  matching on the settings is also possible. Use, for
           example, `/set color*' to list all color-related settings.

           See the `/unset' command to change a setting back to its default, and the `/hset' command  to  manage
           configuration  on  a  per-hub basis. Changes to the settings are automatically saved to the database,
           and will not be lost after restarting ncdc.

           To get information on a particular setting, use `/help set <key>'.

       /share [<name> <path>]
           Use /share without arguments to get a list of shared directories.  When called  with  a  name  and  a
           path,  the  path  will  be added to your share. Note that shell escaping may be used in the name. For
           example, to add a directory with the name `Fun Stuff', you could do the following:

             /share "Fun Stuff" /path/to/fun/stuff

           Or:

             /share Fun\ Stuff /path/to/fun/stuff

           The full path to the directory will not be visible to others, only the  name  you  give  it  will  be
           public. An initial `/refresh' is done automatically on the added directory.

       /ungrant [<user>]
           Revoke a granted slot.

       /unset [<key>]
           This command can be used to reset a global configuration variable back to its default value.

       /unshare [<name>]
           To  remove  a single directory from your share, use `/unshare <name>', to remove all directories from
           your share, use `/unshare /'.

           Note that the hash data associated with the removed files will remain in the  database.  This  allows
           you  to  re-add  the  files  to  your share without needing to re-hash them. The downside is that the
           database file may grow fairly large with unneeded information. See the `/gc' command  to  clean  that
           up.

       /userlist
           Opens the user list of the currently selected hub. Can also be accessed using Alt+u.

       /version
           Display version information.

       /whois <user>
           This will open the user list and select the given user.

SETTINGS

       The  following  is  a list of configuration settings. These settings can be changed and queried using the
       "/set" command for global settings and "/hset" for hub-local settings. All configuration data  is  stored
       in the db.sqlite3 file in the session directory.

       active <boolean>
           Enables  or  disables  active mode. You may have to configure your router and/or firewall for this to
           work, see the `active_ip' and `active_port' settings for more information.

       active_ip <string>
           Your public IP address for use in active mode. If this is not set or set to  '0.0.0.0'  for  IPv4  or
           '::'  for  IPv6,  then ncdc will try to automatically get your IP address from the hub. If you do set
           this manually, it is important that other clients can reach you using this IP address. If you connect
           to a hub on the internet, this should be your internet (WAN) IP. Likewise, if you connect to a hub on
           your LAN, this should be your LAN IP.

           Both an IPv4 and an IPv6 address are set by providing two IP addresses separated with a  comma.  When
           unset,  '0.0.0.0,::'  is assumed. Only the IP version used to connect to the hub is used. That is, if
           you connect to an IPv6 hub, then the configured IPv6 address is used and the IPv4 address is ignored.

           When set to the special value `local', ncdc will automatically get your IP  address  from  the  local
           network  interface that is used to connect to the hub. This option should only be used if there is no
           NAT between you and the hub, because this will give the wrong IP if you are behind a NAT.

       active_port <integer>
           The listen port for incoming connections in active mode. Set to `0' to automatically assign a  random
           port.  This  setting  is by default also used for the UDP port, see the `active_tls_port' settings to
           change that. If you are behind a router or firewall, make sure that you have configured it to forward
           and allow these ports.

       active_udp_port <integer>
           The listen port for incoming UDP connections in active mode. Defaults to the  `active_port'  setting,
           or to a random number if `active_port' is not set.

       adc_blom <boolean>
           Whether  to  support the BLOM extension on ADC hubs. This may decrease the bandwidth usage on the hub
           connection, in exchange for a bit of computational overhead. Some hubs require  this  setting  to  be
           enabled. This setting requires a reconnect with the hub to be active.

       autoconnect <boolean>
           Set to true to automatically connect to the current hub when ncdc starts up.

       autorefresh <interval>
           The  time between automatic file refreshes. Recognized suffices are 's' for seconds, 'm' for minutes,
           'h' for hours and 'd' for days. Set to 0 to disable automatically  refreshing  the  file  list.  This
           setting also determines whether ncdc will perform a refresh on startup. See the `/refresh' command to
           manually refresh your file list.

       backlog <integer>
           When  opening a hub or PM tab, ncdc can load a certain amount of lines from the log file into the log
           window. Setting this to a positive value enables this feature and configures the number of  lines  to
           load.  Note  that,  while  this setting can be set on a per-hub basis, PM windows will use the global
           value (global.backlog).

       chat_only <boolean>
           Set to true to indicate that this hub is only used for chatting. That is, you won't or can't download
           from it. This setting affects the /search command when it is given the -all option.

       color_* <color>
           The settings starting with the `color_'  prefix  allow  you  to  change  the  interface  colors.  The
           following is a list of available color settings:

             list_default  - default item in a list
             list_header   - header of a list
             list_select   - selected item in a list
             log_default   - default log color
             log_time      - the time prefix in log messages
             log_nick      - default nick color
             log_highlight - nick color of a highlighted line
             log_ownnick   - color of your own nick
             log_join      - color of join messages
             log_quit      - color of quit messages
             separator     - the list separator/footer bar
             tab_active    - the active tab in the tab list
             tabprio_low   - low priority tab notification color
             tabprio_med   - medium priority tab notification color
             tabprio_high  - high priority tab notification color
             title         - the title bar

           The  actual  color value can be set with a comma-separated list of color names and/or attributes. The
           first color in the list is the foreground color, the second color is used for  the  background.  When
           the  fore-  or  background  color is not specified, the default colors of your terminal will be used.
           The following color names can be used: black, blue, cyan, default, green,  magenta,  red,  white  and
           yellow.   The following attributes can be used: bold, blink, reverse and underline.  The actual color
           values displayed by your terminal may vary. Adding the `bold' attribute usually makes the  foreground
           color appear brighter as well.

       connection <string>
           Set  your  upload speed. This is just an indication for other users in the hub so that they know what
           speed they can expect when downloading from you. The actual format you can use here may vary, but  it
           is recommended to set it to either a plain number for Mbit/s (e.g. `50' for 50 mbit) or a number with
           a  `KiB/s'  indicator  (e.g.  `2300 KiB/s'). On ADC hubs you must use one of the previously mentioned
           formats, otherwise no upload speed will be broadcasted. This setting is  broadcasted  as-is  on  NMDC
           hubs,  to  allow  for  using old-style connection values (e.g. `DSL' or `Cable') on hubs that require
           this.

           This setting is ignored if `upload_rate' has been set. If it is, that value is broadcasted instead.

       description <string>
           A short public description that will be displayed in the user list of a hub.

       disconnect_offline <boolean>
           Automatically disconnect any upload or download transfers when a user leaves the  hub,  or  when  you
           leave  the hub. Setting this to `true' ensures that you are only connected with people who are online
           on the same hubs as you are.

       download_dir <path>
           The directory where finished downloads are moved to. Finished downloads  are  by  default  stored  in
           <session  directory>/dl/.  It is possible to set this to a location that is on a different filesystem
           than the incoming directory, but doing so is  not  recommended:  ncdc  will  block  when  moving  the
           completed files to their final destination.

       download_exclude <regex>
           When  recursively  adding  a  directory to the download queue - by pressing `d' on a directory in the
           file list browser - any item in the  selected  directory  with  a  name  that  matches  this  regular
           expression will not be added to the download queue.

           This  regex  is  not  checked  when  adding individual files from either the file list browser or the
           search results.

       download_rate <speed>
           Maximum combined transfer rate of all downloads. The total download speed will  be  limited  to  this
           value.  The  suffixes  `G',  'M',  and 'K' can be used for GiB/s, MiB/s and KiB/s, respectively. Note
           that, similar to upload_rate, TCP overhead  are  not  counted  towards  this  limit,  so  the  actual
           bandwidth usage might be a little higher.

       download_segment <size>
           Minimum  segment  size  to  use  when  requesting  file  data  from another user. Set to 0 to disable
           segmented downloading.

       download_shared <boolean>
           Whether to download files which are already present in your share.  When  this  is  set  to  `false',
           adding already shared files results in a UI message instead of adding the file to the download queue.

       download_slots <integer>
           Maximum number of simultaneous downloads.

       email <string>
           Your  email address. This will be displayed in the user list of the hub, so only set this if you want
           it to be public.

       encoding <string>
           The character set/encoding to use for hub and PM messages. This setting is only used  on  NMDC  hubs,
           ADC always uses UTF-8. Some common values are:

             CP1250      (Central Europe)
             CP1251      (Cyrillic)
             CP1252      (Western Europe)
             ISO-8859-7  (Greek)
             KOI8-R      (Cyrillic)
             UTF-8       (International)

       filelist_maxage <interval>
           The  maximum  age  of  a  downloaded  file  list.  If  a file list was downloaded longer ago than the
           configured interval, it will be removed from the cache (the fl/ directory) and subsequent requests to
           open the file list will result in the list being downloaded from the user again. Recognized  suffices
           are  's'  for seconds, 'm' for minutes, 'h' for hours and 'd' for days. Set to 0 to disable the cache
           altogether.

       flush_file_cache <none|upload|download|hash>[,...]
           Tell the OS to flush the file (disk) cache for file contents read while hashing and/or  uploading  or
           written  to while downloading. On one hand, this will avoid trashing your disk cache with large files
           and thus improve the overall responsiveness of your system. On the other hand,  ncdc  may  purge  any
           shared  files  from the cache, even if they are still used by other applications. In general, it is a
           good idea to enable this if you also use your system for other things besides ncdc, you  share  large
           files (>100MB) and people are not constantly downloading the same file from you.

       geoip_cc <path>|disabled
           Path  to  the  GeoIP2  Country  database file (GeoLite2-Country.mmdb), or 'disabled' to disable GeoIP
           lookups. The database can be downloaded  from https://dev.maxmind.com/geoip/geoip2/geolite2/.

       hash_rate <speed>
           Maximum file hashing speed. See the `download_rate' setting for allowed formats for this setting.

       hubname <string>
           The name of the currently opened hub tab. This is a user-assigned name, and is only used within  ncdc
           itself. This is the same name as given to the `/open' command.

       incoming_dir <path>
           The  directory  where  incomplete  downloads  are  stored.  This setting can only be changed when the
           download queue is empty. Also see the download_dir setting.

       local_address <string>
           Specifies the address of the local network interface to use for connecting to  the  outside  and  for
           accepting  incoming connections in active mode. Both an IPv4 and an IPv6 address are set by providing
           two IP addresses separated with a comma. When unset, '0.0.0.0,::' is assumed.

           If no IPv4 address is specified, '0.0.0.0' is added automatically. Similarly, if no IPv6  address  is
           specified,  '::'  is added automatically. The address that is actually used depends on the IP version
           actually used. That is, if you're on an IPv6 hub,  then  ncdc  will  listen  on  the  specified  IPv6
           address.  Note  that,  even if the hub you're on is on IPv6, ncdc may still try to connect to another
           client over IPv4, at which point the socket will be bound to the configured IPv4 address.

       log_debug <boolean>
           Log debug messages to stderr.log in the session directory. It is highly recommended  to  enable  this
           setting  if  you wish to debug or hack ncdc. Be warned, however, that this may generate a lot of data
           if you're connected to a large hub.

       log_downloads <boolean>
           Log downloaded files to transfers.log.

       log_hubchat <boolean>
           Log the main hub chat. Note that changing this requires any  affected  hub  tabs  to  be  closed  and
           reopened before the change is effective.

       log_uploads <boolean>
           Log file uploads to transfers.log.

       max_ul_per_user <integer>
           The maximum number of simultaneous upload connections to one user.

       minislots <integer>
           Set  the  number of available minislots. A `minislot' is a special slot that is used when all regular
           upload slots are in use and someone is requesting your filelist or a small file. In  this  case,  the
           other client automatically applies for a minislot, and can still download from you as long as not all
           minislots  are  in  use.  What  constitutes  a  `small'  file can be changed with the `minislot_size'
           setting. Also see the `slots' configuration setting and the `/grant' command.

       minislot_size <integer>
           The maximum size of a file that may be downloaded using a `minislot', in  KiB.  See  the  `minislots'
           setting for more information.

       nick <string>
           Your  nick.  Nick  changes are only visible on newly connected hubs, use the  `/reconnect' command to
           use your new nick immediately. Note that it is highly discouraged to change your nick on  NMDC  hubs.
           This  is  because clients downloading from you have no way of knowing that you changed your nick, and
           therefore can't immediately continue to download from you.

       notify_bell <disable|low|medium|high>
           When enabled, ncdc will send a bell to your  terminal  when  a  tab  indicates  a  notification.  The
           notification types are:

             high   - Messages directed to you (PM or highlight in hub chat),
             medium - Regular hub chat,
             low    - User joins/quits, new search results, etc.

           How  a "bell" (or "beep" or "alert", whatever you prefer to call it) manifests itself depends on your
           terminal. In some setups, this generates an audible system bell. In other setups it  can  makes  your
           terminal  window  flash  or do other annoying things to get your attention.  And in some setups it is
           ignored completely.

       password <string>
           Sets your password for the current hub and enables auto-login on connect. If you just want  to  login
           to  a  hub  without  saving  your  password, use the `/password' command instead. Passwords are saved
           unencrypted in the config file.

       reconnect_timeout <interval>
           The time to wait before automatically reconnecting to a hub. Set to 0 to disable automatic reconnect.

       sendfile <boolean>
           Whether or not to use the sendfile() system call to upload  files,  if  supported.  Using  sendfile()
           allows less resource usage while uploading, but may not work well on all systems.

       share_emptydirs <boolean>
           Share  empty  directories.  When  disabled (the default), empty directories in your share will not be
           visible to others. This also affects empty directories containing only empty directories, etc. A file
           list refresh is required for this setting to be effective.

       share_exclude <regex>
           Any file or directory with a name that matches this regular expression will not  be  shared.  A  file
           list refresh is required for this setting to be effective.

       share_hidden <boolean>
           Whether  to share hidden files and directories. A `hidden' file or directory is one of which the file
           name starts with a dot. (e.g. `.bashrc'). A file list refresh is required  for  this  setting  to  be
           effective.

       share_symlinks <boolean>
           Whether  to follow symlinks in shared directories. When disabled (default), ncdc will never share any
           files outside of the directory you specified. When enabled, any symlinks in your  shared  directories
           will be followed, even when they point to a directory outside your share.

       show_free_slots <boolean>
           When  set  to  true, [n sl] will be prepended to your description, where n is the number of currently
           available upload slots.

       show_joinquit <boolean>
           Whether to display join/quit messages in the hub chat.

       slots <integer>
           The number of upload slots. This determines for the most part how many people can download  from  you
           simultaneously.  It  is  possible  that  this  limit  is  exceeded  in certain circumstances, see the
           `minislots' setting and the `/grant' command.

       sudp_policy <disabled|allow|prefer>
           Set the policy for sending or receiving encrypted UDP search results. When set to `disabled', all UDP
           search results will be sent and received in plain text. Set this to `allow' to let  ncdc  reply  with
           encrypted  search  results  if the other client requested it. `prefer' will also cause ncdc itself to
           request encryption.

           Note that, regardless of this setting, encrypted UDP search results are only used on ADCS hubs.  They
           will  never  be  sent  on NMDC or non-TLS ADC hubs. Also note that, even if you set this to `prefer',
           encryption is still only used when the client on the other side of the connection also supports it.

       tls_policy <disabled|allow|prefer|force>
           Set the policy for secure client-to-client connections.  Setting  this  to  `disabled'  disables  TLS
           support  for  client  connections,  but still allows you to connect to TLS-enabled hubs. `allow' will
           allow the use of TLS if the other client requests this, but ncdc itself will  not  request  TLS  when
           connecting  to  others, `prefer' tells ncdc to request TLS when connecting to others. Setting this to
           'force' will disallow non-TLS connections and also requires that the hub connection itself is TLS.

           The use of TLS for client connections usually results in less optimal performance when uploading  and
           downloading,  but is quite effective at avoiding protocol-specific traffic shaping that some ISPs may
           do.

       tls_priority <string>
           Set the GnuTLS priority string used for all  TLS-enabled  connections.  See  the  "Priority  strings"
           section  in  the  GnuTLS  manual  for details on what this does and how it works. Currently it is not
           possible to set a different  priority  string  for  different  types  of  connections  (e.g.  hub  or
           incoming/outgoing client connections).

       ui_time_format <string>
           The  format  of  the time displayed in the lower-left of the screen. Set `-' to not display a time at
           all. The string is passed to the Glib g_date_time_format() function, which accepts roughly  the  same
           formats  as  strftime().  Check  out  the  strftime(3)  man  page  or the Glib documentation for more
           information. Note that this setting does not influence the date/time format  used  in  other  places,
           such as the chat window or log files.

       upload_rate <speed>
           Maximum  combined  transfer rate of all uploads. See the `download_rate' setting for more information
           on rate limiting. Note that this setting also overrides any `connection' setting.

KEY BINDINGS

       On any tab without the text input line, you can press `?' to get the key bindings for that tab. The  list
       of key bindings is available through the "/help keys" command, and is reproduced below.

       Global key bindings
             Alt+j        Open previous tab.
             Alt+k        Open next tab.
             Alt+h        Move current tab left.
             Alt+l        Move current tab right.
             Alt+a        Move tab with recent activity.
             Alt+<num>    Open tab with number <num>.
             Alt+c        Close current tab.
             Alt+n        Open the connections tab.
             Alt+q        Open the download queue tab.
             Alt+o        Open own file list.
             Alt+r        Refresh file list.

             Keys for tabs with a log window:
             Ctrl+l       Clear current log window.
             PgUp         Scroll the log backward.
             PgDown       Scroll the log forward.

             Keys for tabs with a text input line:
             Left/Right   Move cursor one character left or right.
             End/Home     Move cursor to the end / start of the line.
             Up/Down      Scroll through the command history.
             Tab          Auto-complete current command, nick or argument.
             Alt+b        Move cursor one word backward.
             Alt+f        Move cursor one word forward.
             Backspace    Delete character before cursor.
             Delete       Delete character under cursor.
             Ctrl+w       Delete to previous space.
             Alt+d        Delete to next space.
             Ctrl+k       Delete everything after cursor.
             Ctrl+u       Delete entire line.

       File browser
             Up/Down      Select one item up/down.
             k/j          Select one item up/down.
             PgUp/PgDown  Select one page of items up/down.
             End/Home     Select last/first item in the list.
             /            Start incremental regex search (press Return to stop editing).
             ,/.          Search next / previous.
             Right/l      Open selected directory.
             Left/h       Open parent directory.
             t            Toggle sorting directories before files.
             s            Order by file size.
             n            Order by file name.
             d            Add selected file/directory to the download queue.
             m            Match selected item with the download queue.
             M            Match entire file list with the download queue.
             a            Search for alternative download sources.

       Connection list
             Up/Down      Select one item up/down.
             k/j          Select one item up/down.
             PgUp/PgDown  Select one page of items up/down.
             End/Home     Select last/first item in the list.
             d            Disconnect selected connection.
             i/Return     Toggle information box.
             f            Find user in user list.
             m            Send a PM to the selected user.
             q            Find file in download queue.
             b/B          Browse the selected user's list, B to force a redownload.

       Download queue
             Up/Down      Select one item up/down.
             k/j          Select one item up/down.
             PgUp/PgDown  Select one page of items up/down.
             End/Home     Select last/first item in the list.
             K/J          Select one user up/down.
             f            Find user in user list.
             c            Find connection in the connection list.
             a            Search for alternative download sources.
             d            Remove selected file from the queue.
             +/-          Increase/decrease priority.
             i/Return     Toggle user list.
             r            Remove selected user for this file.
             R            Remove selected user from all files in the download queue.
             x            Clear error state for the selected user for this file.
             X            Clear error state for the selected user for all files.

             Note: when an item in the queue has `ERR' indicated in the
             priority column, you have two choices: You can remove the
             item from the queue using `d', or attempt to continue the
             download by increasing its priority using `+'.

       Search results tab
             Up/Down      Select one item up/down.
             k/j          Select one item up/down.
             PgUp/PgDown  Select one page of items up/down.
             End/Home     Select last/first item in the list.
             f            Find user in user list.
             b/B          Browse the selected user's list, B to force a redownload.
             d            Add selected file to the download queue.
             h            Toggle hub column visibility.
             u            Order by username.
             s            Order by file size.
             l            Order by free slots.
             n            Order by file name.
             m            Match selected item with the download queue.
             M            Match all search results with the download queue.
             q            Match selected users' list with the download queue.
             Q            Match all matched users' lists with the download queue.
             a            Search for alternative download sources.

       User list tab
             Up/Down      Select one item up/down.
             k/j          Select one item up/down.
             PgUp/PgDown  Select one page of items up/down.
             End/Home     Select last/first item in the list.
             /            Start incremental regex search (press Return to stop editing).
             ,/.          Search next / previous.
             o            Toggle sorting OPs before others.
             s/S          Order by share size.
             u/U          Order by username.
             t/T          Toggle visibility / order by tag column.
             e/E          Toggle visibility / order by email column.
             c/C          Toggle visibility / order by connection column.
             p/P          Toggle visibility / order by IP column.
             i/Return     Toggle information box.
             m            Send a PM to the selected user.
             g            Grant a slot to the selected user.
             b/B          Browse the selected users' list, B to force a redownload.
             q            Match selected users' list with the download queue.

WEIRD UI FLAGS

       Some listings have a flags display, and their meaning may not be immediately obvious.

   File status
       You  may  see  one-letter  flags  to  the  left of file names in search results and file list tabs. Their
       meaning is as follows:

       H   The file had been added to the file list, but has not been hashed yet and  thus  is  not  visible  to
           others. This flag can appear only when browsing your own list.

       S   The file is already in your share. If "download_shared" is set to "false", trying to download it will
           result only in an informational message. This flag never appears when browsing your own file list.

       Q   The  file  is  currently  in  your  download  queue.  Trying  to  download  it will result only in an
           informational message.

   Connection flags
       On the connection list window, there are two flags:

       S   Connection state, can be  either  Connecting,  Handshake,  Idle,  Downloading,  Uploading  or  -  for
           disconnected.

       t   This means that the connection is encrypted with TLS.

   User flags
       The user list has some flags too:

       o   Set if the user is an operator in the hub.

       p   When the user is passive. If this flag is not set, the user is active.

       t   Set if connections with this user will be encrypted with TLS.

ENVIRONMENT

       $NCDC_DIR is used to determine the session dir, it is only honoured if -c is not set on the command line.

FILES

       $NCDC_DIR corresponds to the session dir set via -c, environment variable $NCDC_DIR or $HOME/.ncdc.

       $NCDC_DIR/cert/
           Directory  where the client certificates are stored. Must contain a private key file (client.key) and
           public certificate (client.crt). These will be generated automatically when ncdc starts up the  first
           time.

       $NCDC_DIR/db.sqlite3
           The  database.  This  stores  all  configuration variables, hash data of shared files, download queue
           information and other state information. Manually editing this file with  the  `sqlite3'  commandline
           tool  is possible but discouraged. Any changes made to the database while ncdc is running will not be
           read, and may even get overwritten by ncdc.

       $NCDC_DIR/dl/
           Directory where completed downloads are moved to by default. Can be changed with  the  "download_dir"
           configuration option.

       $NCDC_DIR/files.xml.bz2
           Filelist containing a listing of all shared files.

       $NCDC_DIR/fl/
           Directory  where  downloaded  file lists from other users are stored. The names of the files are hex-
           encoded user IDs that are used internally by ncdc. Old file lists are deleted automatically  after  a
           configurable interval. See the "filelist_maxage" configuration option.

       $NCDC_DIR/history
           Command history.

       $NCDC_DIR/inc/
           Default  location  for incomplete downloads. Can be changed with the "incoming_dir" setting. The file
           names in this directory are the base32-encoded TTH root of the completed file.

       $NCDC_DIR/logs/
           Directory where all the log files are stored. File names starting with `#' are hub logs and  `~'  are
           user (PM) logs. Special log files are transfers.log and main.log.

           ncdc  does  not  have  built-in  functionality  to  rotate  or compress log files automatically. When
           rotating log files manually (e.g. via a cron job), make sure to send the SIGUSR1 signal afterwards to
           force ncdc to flush the old logs and create or open the new log files.

       $NCDC_DIR/stderr.log
           Error/debug log. This file is cleared every time ncdc starts up.

       $NCDC_DIR/version
           Version of the data directory. This file locked while an ncdc instance is running, making  sure  that
           no two ncdc instances work with the same session directory at the same time.

   Format of transfers.log
       Uploads  and downloads are logged in the transfers.log file. Transfers are separated by a newline (0x0a).
       Each log line has the following fields, separated by a space:

       1.  Date/time when the transfer ended, formatted as "[YYYY-MM-DD HH:MM:SS ZONE]",

       2.  Hub name, including the "#" prefix,

       3.  Base32-encoded CID of the other user for ADC transfers, or a '-' for NMDC,

       4.  User name (escaped),

       5.  IPv4 or IPv6 address,

       6.  Direction, "u" for upload or "d" for download,

       7.  Whether the transfer completed successfully ("c") or has  been  interrupted/disconnected  before  all
           requested file data has been transferred ("i"),

       8.  Base32-encoded TTH of the transferred file, or '-' for "files.xml.bz2",

       9.  Total transfer time, in seconds,

       10. File size, in bytes,

       11. File offset, in bytes,

       12. Transfer size, in bytes,

       13. File path (escaped). Absolute virtual path for uploads, destination path for downloads.

       All  fields  are  encoded  in UTF-8. Fields that may contain a space or newline are escaped as follows: A
       space is escaped as "\s", a newline as "\n" and a backslash as "\\". The timestamp is not escaped.

       Many clients download files is separate (smallish) chunks. Ncdc makes  no  attempt  to  combine  multiple
       chunk  requests  in  a  single  log  entry,  so  you  may see the same uploaded file several times with a
       different file offset.

LICENSE

       Copyright (C) 2011-2019 Yoran Heling <projects@yorhel.nl>

       ncdc is distributed under the MIT license, please read the COPYING file for more information.

BUGS

       Please report bugs or feature requests to the bug tracker or the mailing list.  Both can be found on  the
       ncdc   homepage   at   <https://dev.yorhel.nl/ncdc>.   There   is   also   an   ADC   hub   available  at
       "adc://dc.blicky.net:2780/" for general support and discussions.

AUTHOR

       ncdc is written by Yoran Heling <projects@yorhel.nl>

       Web: <https://dev.yorhel.nl/ncdc>

ncdc-1.23.1                                        2024-04-01                                            NCDC(1)