1NCDC(1) ncdc manual NCDC(1)
2
3
4
6 ncdc - Ncurses Direct Connect Client
7
9 ncdc [options]
10
12 Ncdc is a modern and lightweight direct connect client with a friendly
13 ncurses interface.
14
16 This is a basic introduction for those who are new to ncdc. See the
17 chapters below for a more detailed description of the available
18 functionality.
19
20 What you see when starting up ncdc is an input line where you can input
21 commands and a log window where the results are displayed, much like a
22 regular terminal. Commands within ncdc start with a slash (e.g.
23 "/help") and have tab completion to help you.
24
25 The first thing you will want to do after starting ncdc for the first
26 time is to setup some basic information and settings:
27
28 /set nick MyNick
29 /set description ncdc is awesome!
30 /set connection 10
31 /share "My Awesome Files" /path/to/files
32
33 And if you have a direct connection to the internet or if your router
34 allows port forwarding, you may also want to enable active mode:
35
36 /set active_port 34194
37 /set active true
38
39 See the help text for each of the commands and settings for more
40 information. Of course, all of the above settings are saved to the
41 database and will be used again on the next run.
42
43 To connect to a hub, use /open:
44
45 /open ncdc adc://dc.blicky.net:2780/
46
47 Here ncdc is the personal name you give to the hub, and the second
48 argument the URL. This URL will be saved in the database, so the next
49 time you want to connect to this hub, you can simply do "/open ncdc".
50 See the help text for "/open" and "/connect" for more information. If
51 you want to automatically connect to a hub when ncdc starts up, use the
52 "autoconnect" setting.
53
54 Ncdc uses a tabbed interface: every hub opens in a new tab, and there
55 are several other kinds of tabs available as well. The type of tab is
56 indicated in the tab list on the bottom of the screen with a character
57 prefix. Hubs, for example, are prefixed with a "#". If a tab needs your
58 attention, a colored exclamation mark is displayed before the tab name,
59 different colors are used for different types of activity.
60
61 Everything else should be fairly self-explanatory: To search for files,
62 use the "/search" command. To browse through the user list of a hub,
63 use "/userlist" or hit Alt+u. To browse someone's file list, use
64 "/browse" or hit the 'b' key in the user list. And to monitor your
65 upload and download connections, use "/connections" or hit Alt+n.
66
68 -c, --session-dir= dir
69 Use a different session directory. Defaults to the contents of the
70 environment variable `$NCDC_DIR' or if this is unset to
71 `$HOME/.ncdc'.
72
73 -h, --help
74 Display summary of options.
75
76 -n, --no-autoconnect
77 Don't automatically connect to hubs with the "autoconnect" option
78 set.
79
80 --no-bracketed-paste
81 Disable bracketed pasting.
82
83 -v, --version
84 Display ncdc version.
85
87 As with most file sharing clients, ncdc supports two modes of being
88 connected: active and passive. In passive mode (the default), you can
89 connect to the outside world but nobody can connect (directly) to you.
90 When passive, you will only be able to transfer files with people who
91 are in active mode. In active mode, however, you will have some port
92 open to the rest of the network to which other clients can connect.
93 When active, you will be able to transfer files with everyone and you
94 may get more and faster search results. Configuring active mode is
95 therefore recommended.
96
97 In many setups, all you need to do to switch to active mode is to set a
98 TCP/UDP port and enable the "active" setting:
99
100 /set active_port 34194
101 /set active true
102
103 When you connect to a hub, the status bar will tell you whether you are
104 active or passive on that particular hub, and what IP address is being
105 used to allow others to connect to you. For most hubs, your IP address
106 will be detected automatically, but in the event that this fails, you
107 can also set it yourself:
108
109 /set active_ip 13.33.33.7
110
111 If you are behind a NAT or firewall, you have to ensure that the port
112 you configured is somehow allowed and/or forwarded. The "active_port"
113 setting is used for incoming TCP connections and UDP messages. You can
114 configure a different UDP port with the "active_udp_port" setting.
115 Contrary to many toher Direct Connect clients, ncdc only uses a single
116 port for incoming TCP and TLS connections; There is no separate port
117 for TLS.
118
119 The "/listen" command can tell you which ports it expects to be
120 forwarded, and for which hubs these ports will be used. It only lists
121 hubs on which you are currently active, so the output will change when
122 you open or close a hub connection.
123
124 If you have multiple network interfaces, you can force ncdc to use only
125 a single interface by setting the "local_address" setting to the
126 address of that interface. This affects both outgoing connections (they
127 will be forced to go through the configured interface) and incoming
128 connections (the ports will be bound to the configured interface).
129
130 All of the previously mentioned settings can be set globally (with
131 "/set") and on a per-hub basis (with "/hset"). This allows you to be
132 active on an internet hub and a LAN-only hub at the same time. It also
133 allows you to be active in one hub while passive in another, or to use
134 different ports for each hub.
135
137 The following is the list of commands that can be used within ncdc. The
138 /help command can also be used get a list of available commands and to
139 access this documentation.
140
141 /accept
142 Use this command to accept the TLS certificate of a hub. This
143 command is used only in the case the keyprint of the TLS
144 certificate of a hub does not match the keyprint stored in the
145 database.
146
147 /browse [[-f] <user>]
148 Without arguments, this opens a new tab where you can browse your
149 own file list. Note that changes to your list are not immediately
150 visible in the browser. You need to re-open the tab to get the
151 latest version of your list.
152
153 With arguments, the file list of the specified user will be
154 downloaded (if it has not been downloaded already) and the browse
155 tab will open once it's complete. The `-f' flag can be used to
156 force the file list to be (re-)downloaded.
157
158 /clear
159 Clears the log displayed on the screen. Does not affect the log
160 files in any way. Ctrl+l is a shortcut for this command.
161
162 /close
163 Close the current tab. When closing a hub tab, you will be
164 disconnected from the hub and all related userlist and PM tabs will
165 also be closed. Alt+c is a shortcut for this command.
166
167 /connect [<address>]
168 Initiate a connection with a hub. If no address is specified, will
169 connect to the hub you last used on the current tab. The address
170 should be in the form of `protocol://host:port/' or `host:port'.
171 The `:port' part is in both cases optional and defaults to :411.
172 The following protocols are recognized: dchub, nmdc, nmdcs, adc,
173 adcs. When connecting to an nmdcs or adcs hub and the SHA256
174 keyprint is known, you can attach this to the url as
175 `?kp=SHA256/<base32-encoded-keyprint>'
176
177 Note that this command can only be used on hub tabs. If you want to
178 open a new connection to a hub, you need to use /open first. For
179 example:
180
181 /open testhub
182 /connect dchub://dc.some-test-hub.com/
183
184 See the /open command for more information.
185
186 /connections
187 Open the connections tab.
188
189 /delhub <name>
190 Remove a hub from the configuration
191
192 /disconnect
193 Disconnect from a hub.
194
195 /gc Cleans up unused data and reorganizes existing data to allow more
196 efficient storage and usage. Currently, this commands removes
197 unused hash data, does a VACUUM on db.sqlite3, removes unused files
198 in inc/ and old files in fl/.
199
200 This command may take some time to complete, and will fully block
201 ncdc while it is running. It is recommended to run this command
202 every once in a while. Every month is a good interval. Note that
203 when ncdc says that it has completed this command, it's lying to
204 you. Ncdc will still run a few large queries on the background,
205 which may take up to a minute to complete.
206
207 /grant [-list|<user>]
208 Grant someone a slot. This allows the user to download from you
209 even if you have no free slots. The slot will remain granted until
210 the /ungrant command is used, even if ncdc has been restarted in
211 the mean time.
212
213 To get a list of users whom you have granted a slot, use `/grant'
214 without arguments or with `-list'. Be warned that using `/grant'
215 without arguments on a PM tab will grant the slot to the user you
216 are talking with. Make sure to use `-list' in that case.
217
218 Note that a granted slot is specific to a single hub. If the same
219 user is also on other hubs, he/she will not be granted a slot on
220 those hubs.
221
222 /help [<command>|set <key>|keys [<section>]]
223 To get a list of available commands, use /help without arguments.
224 To get information on a particular command, use /help <command>.
225 To get information on a configuration setting, use /help set
226 <setting>. To get help on key bindings, use /help keys.
227
228 /hset [<key> [<value>]]
229 Get or set per-hub configuration variables. Works equivalent to the
230 `/set' command, but can only be used on hub tabs. Use `/hunset' to
231 reset a variable back to its global value.
232
233 /hunset [<key>]
234 This command can be used to reset a per-hub configuration variable
235 back to its global value.
236
237 /kick <user>
238 Kick a user from the hub. This command only works on NMDC hubs, and
239 you need to be an OP to be able to use it.
240
241 /listen
242 List currently opened ports.
243
244 /me <message>
245 This allows you to talk in third person. Most clients will display
246 your message as something like:
247
248 ** Nick is doing something
249
250 Note that this command only works correctly on ADC hubs. The NMDC
251 protocol does not have this feature, and your message will be sent
252 as-is, including the /me.
253
254 /msg <user> [<message>]
255 Send a private message to a user on the currently opened hub. If no
256 message is given, the tab will be opened but no message will be
257 sent.
258
259 /nick [<nick>]
260 Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.
261
262 /open [-n] [<name>] [<address>]
263 Without arguments, list all hubs known by the current
264 configuration. Otherwise, this opens a new tab to use for a hub.
265 The name is a (short) personal name you use to identify the hub,
266 and will be used for storing hub-specific configuration.
267
268 If you have specified an address or have previously connected to a
269 hub from a tab with the same name, /open will automatically connect
270 to the hub. Use the `-n' flag to disable this behaviour.
271
272 See /connect for more information on connecting to a hub.
273
274 /password <password>
275 This command can be used to send a password to the hub without
276 saving it to the database. If you wish to login automatically
277 without having to type /password every time, use '/hset password
278 <password>'. Be warned, however, that your password will be saved
279 unencrypted in that case.
280
281 /pm <user> [<message>]
282 Alias for /msg
283
284 /queue
285 Open the download queue.
286
287 /quit
288 Quit ncdc.
289
290 /reconnect
291 Reconnect to the hub. When your nick or the hub encoding have been
292 changed, the new settings will be used after the reconnect.
293
294 This command can also be used on the main tab, in which case all
295 connected hubs will be reconnected.
296
297 /refresh [<path>]
298 Initiates share refresh. If no argument is given, the complete list
299 will be refreshed. Otherwise only the specified directory will be
300 refreshed. The path argument can be either an absolute filesystem
301 path or a virtual path within your share.
302
303 /say <message>
304 Sends a chat message to the current hub or user. You normally don't
305 have to use the /say command explicitly, any command not staring
306 with '/' will automatically imply `/say <command>'. For example,
307 typing `hello.' in the command line is equivalent to `/say hello.'.
308 Using the /say command explicitly may be useful to send message
309 starting with '/' to the chat, for example `/say /help is what you
310 are looking for'.
311
312 /search [options] <query>
313 Performs a file search, opening a new tab with the results.
314
315 Available options:
316
317 -hub Search the current hub only. (default)
318 -all Search all connected hubs, except those with `chat_only' set.
319 -le <s> Size of the file must be less than <s>.
320 -ge <s> Size of the file must be larger than <s>.
321 -t <t> File must be of type <t>. (see below)
322 -tth <h> TTH root of this file must match <h>.
323
324 File sizes (<s> above) accept the following suffixes: G (GiB), M
325 (MiB) and K (KiB).
326
327 The following file types can be used with the -t option:
328
329 1 any Any file or directory. (default)
330 2 audio Audio files.
331 3 archive (Compressed) archives.
332 4 doc Text documents.
333 5 exe Windows executables.
334 6 img Image files.
335 7 video Video files.
336 8 dir Directories.
337
338 Note that file type matching is done using file extensions, and is
339 not very reliable.
340
341 /set [<key> [<value>]]
342 Get or set global configuration variables. Use without arguments to
343 get a list of all global settings and their current value. Glob-
344 style pattern matching on the settings is also possible. Use, for
345 example, `/set color*' to list all color-related settings.
346
347 See the `/unset' command to change a setting back to its default,
348 and the `/hset' command to manage configuration on a per-hub basis.
349 Changes to the settings are automatically saved to the database,
350 and will not be lost after restarting ncdc.
351
352 To get information on a particular setting, use `/help set <key>'.
353
354 /share [<name> <path>]
355 Use /share without arguments to get a list of shared directories.
356 When called with a name and a path, the path will be added to your
357 share. Note that shell escaping may be used in the name. For
358 example, to add a directory with the name `Fun Stuff', you could do
359 the following:
360
361 /share "Fun Stuff" /path/to/fun/stuff
362
363 Or:
364
365 /share Fun\ Stuff /path/to/fun/stuff
366
367 The full path to the directory will not be visible to others, only
368 the name you give it will be public. An initial `/refresh' is done
369 automatically on the added directory.
370
371 /ungrant [<user>]
372 Revoke a granted slot.
373
374 /unset [<key>]
375 This command can be used to reset a global configuration variable
376 back to its default value.
377
378 /unshare [<name>]
379 To remove a single directory from your share, use `/unshare
380 <name>', to remove all directories from your share, use `/unshare
381 /'.
382
383 Note that the hash data associated with the removed files will
384 remain in the database. This allows you to re-add the files to your
385 share without needing to re-hash them. The downside is that the
386 database file may grow fairly large with unneeded information. See
387 the `/gc' command to clean that up.
388
389 /userlist
390 Opens the user list of the currently selected hub. Can also be
391 accessed using Alt+u.
392
393 /version
394 Display version information.
395
396 /whois <user>
397 This will open the user list and select the given user.
398
400 The following is a list of configuration settings. These settings can
401 be changed and queried using the "/set" command for global settings and
402 "/hset" for hub-local settings. All configuration data is stored in the
403 db.sqlite3 file in the session directory.
404
405 active <boolean>
406 Enables or disables active mode. You may have to configure your
407 router and/or firewall for this to work, see the `active_ip' and
408 `active_port' settings for more information.
409
410 active_ip <string>
411 Your public IP address for use in active mode. If this is not set
412 or set to '0.0.0.0' for IPv4 or '::' for IPv6, then ncdc will try
413 to automatically get your IP address from the hub. If you do set
414 this manually, it is important that other clients can reach you
415 using this IP address. If you connect to a hub on the internet,
416 this should be your internet (WAN) IP. Likewise, if you connect to
417 a hub on your LAN, this should be your LAN IP.
418
419 Both an IPv4 and an IPv6 address are set by providing two IP
420 addresses separated with a comma. When unset, '0.0.0.0,::' is
421 assumed. Only the IP version used to connect to the hub is used.
422 That is, if you connect to an IPv6 hub, then the configured IPv6
423 address is used and the IPv4 address is ignored.
424
425 When set to the special value `local', ncdc will automatically get
426 your IP address from the local network interface that is used to
427 connect to the hub. This option should only be used if there is no
428 NAT between you and the hub, because this will give the wrong IP if
429 you are behind a NAT.
430
431 active_port <integer>
432 The listen port for incoming connections in active mode. Set to `0'
433 to automatically assign a random port. This setting is by default
434 also used for the UDP port, see the `active_tls_port' settings to
435 change that. If you are behind a router or firewall, make sure that
436 you have configured it to forward and allow these ports.
437
438 active_udp_port <integer>
439 The listen port for incoming UDP connections in active mode.
440 Defaults to the `active_port' setting, or to a random number if
441 `active_port' is not set.
442
443 adc_blom <boolean>
444 Whether to support the BLOM extension on ADC hubs. This may
445 decrease the bandwidth usage on the hub connection, in exchange for
446 a bit of computational overhead. Some hubs require this setting to
447 be enabled. This setting requires a reconnect with the hub to be
448 active.
449
450 autoconnect <boolean>
451 Set to true to automatically connect to the current hub when ncdc
452 starts up.
453
454 autorefresh <interval>
455 The time between automatic file refreshes. Recognized suffices are
456 's' for seconds, 'm' for minutes, 'h' for hours and 'd' for days.
457 Set to 0 to disable automatically refreshing the file list. This
458 setting also determines whether ncdc will perform a refresh on
459 startup. See the `/refresh' command to manually refresh your file
460 list.
461
462 backlog <integer>
463 When opening a hub or PM tab, ncdc can load a certain amount of
464 lines from the log file into the log window. Setting this to a
465 positive value enables this feature and configures the number of
466 lines to load. Note that, while this setting can be set on a per-
467 hub basis, PM windows will use the global value (global.backlog).
468
469 chat_only <boolean>
470 Set to true to indicate that this hub is only used for chatting.
471 That is, you won't or can't download from it. This setting affects
472 the /search command when it is given the -all option.
473
474 color_* <color>
475 The settings starting with the `color_' prefix allow you to change
476 the interface colors. The following is a list of available color
477 settings:
478
479 list_default - default item in a list
480 list_header - header of a list
481 list_select - selected item in a list
482 log_default - default log color
483 log_time - the time prefix in log messages
484 log_nick - default nick color
485 log_highlight - nick color of a highlighted line
486 log_ownnick - color of your own nick
487 log_join - color of join messages
488 log_quit - color of quit messages
489 separator - the list separator/footer bar
490 tab_active - the active tab in the tab list
491 tabprio_low - low priority tab notification color
492 tabprio_med - medium priority tab notification color
493 tabprio_high - high priority tab notification color
494 title - the title bar
495
496 The actual color value can be set with a comma-separated list of
497 color names and/or attributes. The first color in the list is the
498 foreground color, the second color is used for the background. When
499 the fore- or background color is not specified, the default colors
500 of your terminal will be used. The following color names can be
501 used: black, blue, cyan, default, green, magenta, red, white and
502 yellow. The following attributes can be used: bold, blink, reverse
503 and underline. The actual color values displayed by your terminal
504 may vary. Adding the `bold' attribute usually makes the foreground
505 color appear brighter as well.
506
507 connection <string>
508 Set your upload speed. This is just an indication for other users
509 in the hub so that they know what speed they can expect when
510 downloading from you. The actual format you can use here may vary,
511 but it is recommended to set it to either a plain number for Mbit/s
512 (e.g. `50' for 50 mbit) or a number with a `KiB/s' indicator (e.g.
513 `2300 KiB/s'). On ADC hubs you must use one of the previously
514 mentioned formats, otherwise no upload speed will be broadcasted.
515 This setting is broadcasted as-is on NMDC hubs, to allow for using
516 old-style connection values (e.g. `DSL' or `Cable') on hubs that
517 require this.
518
519 This setting is ignored if `upload_rate' has been set. If it is,
520 that value is broadcasted instead.
521
522 description <string>
523 A short public description that will be displayed in the user list
524 of a hub.
525
526 disconnect_offline <boolean>
527 Automatically disconnect any upload or download transfers when a
528 user leaves the hub, or when you leave the hub. Setting this to
529 `true' ensures that you are only connected with people who are
530 online on the same hubs as you are.
531
532 download_dir <path>
533 The directory where finished downloads are moved to. Finished
534 downloads are by default stored in <session directory>/dl/. It is
535 possible to set this to a location that is on a different
536 filesystem than the incoming directory, but doing so is not
537 recommended: ncdc will block when moving the completed files to
538 their final destination.
539
540 download_exclude <regex>
541 When recursively adding a directory to the download queue - by
542 pressing `d' on a directory in the file list browser - any item in
543 the selected directory with a name that matches this regular
544 expression will not be added to the download queue.
545
546 This regex is not checked when adding individual files from either
547 the file list browser or the search results.
548
549 download_rate <speed>
550 Maximum combined transfer rate of all downloads. The total download
551 speed will be limited to this value. The suffixes `G', 'M', and 'K'
552 can be used for GiB/s, MiB/s and KiB/s, respectively. Note that,
553 similar to upload_rate, TCP overhead are not counted towards this
554 limit, so the actual bandwidth usage might be a little higher.
555
556 download_segment <size>
557 Minimum segment size to use when requesting file data from another
558 user. Set to 0 to disable segmented downloading.
559
560 download_slots <integer>
561 Maximum number of simultaneous downloads.
562
563 email <string>
564 Your email address. This will be displayed in the user list of the
565 hub, so only set this if you want it to be public.
566
567 encoding <string>
568 The character set/encoding to use for hub and PM messages. This
569 setting is only used on NMDC hubs, ADC always uses UTF-8. Some
570 common values are:
571
572 CP1250 (Central Europe)
573 CP1251 (Cyrillic)
574 CP1252 (Western Europe)
575 ISO-8859-7 (Greek)
576 KOI8-R (Cyrillic)
577 UTF-8 (International)
578
579 filelist_maxage <interval>
580 The maximum age of a downloaded file list. If a file list was
581 downloaded longer ago than the configured interval, it will be
582 removed from the cache (the fl/ directory) and subsequent requests
583 to open the file list will result in the list being downloaded from
584 the user again. Recognized suffices are 's' for seconds, 'm' for
585 minutes, 'h' for hours and 'd' for days. Set to 0 to disable the
586 cache altogether.
587
588 flush_file_cache <none|upload|download|hash>[,...]
589 Tell the OS to flush the file (disk) cache for file contents read
590 while hashing and/or uploading or written to while downloading. On
591 one hand, this will avoid trashing your disk cache with large files
592 and thus improve the overall responsiveness of your system. On the
593 other hand, ncdc may purge any shared files from the cache, even if
594 they are still used by other applications. In general, it is a good
595 idea to enable this if you also use your system for other things
596 besides ncdc, you share large files (>100MB) and people are not
597 constantly downloading the same file from you.
598
599 geoip_cc4 <path>|disabled
600 Path to the GeoIP Country database file for IPv4, or 'disabled' to
601 disable GeoIP lookup for IPv4 addresses.
602
603 geoip_cc6 <path>|disabled
604 Path to the GeoIP Country database file for IPv6, or 'disabled' to
605 disable GeoIP lookup for IPv6 addresses.
606
607 hash_rate <speed>
608 Maximum file hashing speed. See the `download_rate' setting for
609 allowed formats for this setting.
610
611 hubname <string>
612 The name of the currently opened hub tab. This is a user-assigned
613 name, and is only used within ncdc itself. This is the same name as
614 given to the `/open' command.
615
616 incoming_dir <path>
617 The directory where incomplete downloads are stored. This setting
618 can only be changed when the download queue is empty. Also see the
619 download_dir setting.
620
621 local_address <string>
622 Specifies the address of the local network interface to use for
623 connecting to the outside and for accepting incoming connections in
624 active mode. Both an IPv4 and an IPv6 address are set by providing
625 two IP addresses separated with a comma. When unset, '0.0.0.0,::'
626 is assumed.
627
628 If no IPv4 address is specified, '0.0.0.0' is added automatically.
629 Similarly, if no IPv6 address is specified, '::' is added
630 automatically. The address that is actually used depends on the IP
631 version actually used. That is, if you're on an IPv6 hub, then ncdc
632 will listen on the specified IPv6 address. Note that, even if the
633 hub you're on is on IPv6, ncdc may still try to connect to another
634 client over IPv4, at which point the socket will be bound to the
635 configured IPv4 address.
636
637 log_debug <boolean>
638 Log debug messages to stderr.log in the session directory. It is
639 highly recommended to enable this setting if you wish to debug or
640 hack ncdc. Be warned, however, that this may generate a lot of data
641 if you're connected to a large hub.
642
643 log_downloads <boolean>
644 Log downloaded files to transfers.log.
645
646 log_hubchat <boolean>
647 Log the main hub chat. Note that changing this requires any
648 affected hub tabs to be closed and reopened before the change is
649 effective.
650
651 log_uploads <boolean>
652 Log file uploads to transfers.log.
653
654 minislots <integer>
655 Set the number of available minislots. A `minislot' is a special
656 slot that is used when all regular upload slots are in use and
657 someone is requesting your filelist or a small file. In this case,
658 the other client automatically applies for a minislot, and can
659 still download from you as long as not all minislots are in use.
660 What constitutes a `small' file can be changed with the
661 `minislot_size' setting. Also see the `slots' configuration setting
662 and the `/grant' command.
663
664 minislot_size <integer>
665 The maximum size of a file that may be downloaded using a
666 `minislot', in KiB. See the `minislots' setting for more
667 information.
668
669 nick <string>
670 Your nick. Nick changes are only visible on newly connected hubs,
671 use the `/reconnect' command to use your new nick immediately.
672 Note that it is highly discouraged to change your nick on NMDC
673 hubs. This is because clients downloading from you have no way of
674 knowing that you changed your nick, and therefore can't immediately
675 continue to download from you.
676
677 notify_bell <disable|low|medium|high>
678 When enabled, ncdc will send a bell to your terminal when a tab
679 indicates a notification. The notification types are:
680
681 high - Messages directed to you (PM or highlight in hub chat),
682 medium - Regular hub chat,
683 low - User joins/quits, new search results, etc.
684
685 How a "bell" (or "beep" or "alert", whatever you prefer to call it)
686 manifests itself depends on your terminal. In some setups, this
687 generates an audible system bell. In other setups it can makes your
688 terminal window flash or do other annoying things to get your
689 attention. And in some setups it is ignored completely.
690
691 password <string>
692 Sets your password for the current hub and enables auto-login on
693 connect. If you just want to login to a hub without saving your
694 password, use the `/password' command instead. Passwords are saved
695 unencrypted in the config file.
696
697 reconnect_timeout <interval>
698 The time to wait before automatically reconnecting to a hub. Set to
699 0 to disable automatic reconnect.
700
701 sendfile <boolean>
702 Whether or not to use the sendfile() system call to upload files,
703 if supported. Using sendfile() allows less resource usage while
704 uploading, but may not work well on all systems.
705
706 share_emptydirs <boolean>
707 Share empty directories. When disabled (the default), empty
708 directories in your share will not be visible to others. This also
709 affects empty directories containing only empty directories, etc. A
710 file list refresh is required for this setting to be effective.
711
712 share_exclude <regex>
713 Any file or directory with a name that matches this regular
714 expression will not be shared. A file list refresh is required for
715 this setting to be effective.
716
717 share_hidden <boolean>
718 Whether to share hidden files and directories. A `hidden' file or
719 directory is one of which the file name starts with a dot. (e.g.
720 `.bashrc'). A file list refresh is required for this setting to be
721 effective.
722
723 share_symlinks <boolean>
724 Whether to follow symlinks in shared directories. When disabled
725 (default), ncdc will never share any files outside of the directory
726 you specified. When enabled, any symlinks in your shared
727 directories will be followed, even when they point to a directory
728 outside your share.
729
730 show_joinquit <boolean>
731 Whether to display join/quit messages in the hub chat.
732
733 slots <integer>
734 The number of upload slots. This determines for the most part how
735 many people can download from you simultaneously. It is possible
736 that this limit is exceeded in certain circumstances, see the
737 `minislots' setting and the `/grant' command.
738
739 sudp_policy <disabled|allow|prefer>
740 Set the policy for sending or receiving encrypted UDP search
741 results. When set to `disabled', all UDP search results will be
742 sent and received in plain text. Set this to `allow' to let ncdc
743 reply with encrypted search results if the other client requested
744 it. `prefer' will also cause ncdc itself to request encryption.
745
746 Note that, regardless of this setting, encrypted UDP search results
747 are only used on ADCS hubs. They will never be sent on NMDC or non-
748 TLS ADC hubs. Also note that, even if you set this to `prefer',
749 encryption is still only used when the client on the other side of
750 the connection also supports it.
751
752 tls_policy <disabled|allow|prefer>
753 Set the policy for secure client-to-client connections. Setting
754 this to `disabled' disables TLS support for client connections, but
755 still allows you to connect to TLS-enabled hubs. `allow' will allow
756 the use of TLS if the other client requests this, but ncdc itself
757 will not request TLS when connecting to others. Setting this to
758 `prefer' tells ncdc to also request TLS when connecting to others.
759
760 The use of TLS for client connections usually results in less
761 optimal performance when uploading and downloading, but is quite
762 effective at avoiding protocol-specific traffic shaping that some
763 ISPs may do. Also note that, even if you set this to `prefer', TLS
764 will only be used if the connecting party also supports it.
765
766 tls_priority <string>
767 Set the GnuTLS priority string used for all TLS-enabled
768 connections. See the "Priority strings" section in the GnuTLS
769 manual for details on what this does and how it works. Currently it
770 is not possible to set a different priority string for different
771 types of connections (e.g. hub or incoming/outgoing client
772 connections).
773
774 ui_time_format <string>
775 The format of the time displayed in the lower-left of the screen.
776 Set `-' to not display a time at all. The string is passed to the
777 Glib g_date_time_format() function, which accepts roughly the same
778 formats as strftime(). Check out the strftime(3) man page or the
779 Glib documentation for more information. Note that this setting
780 does not influence the date/time format used in other places, such
781 as the chat window or log files.
782
783 upload_rate <speed>
784 Maximum combined transfer rate of all uploads. See the
785 `download_rate' setting for more information on rate limiting. Note
786 that this setting also overrides any `connection' setting.
787
789 On any tab without the text input line, you can press `?' to get the
790 key bindings for that tab. The list of key bindings is available
791 through the "/help keys" command, and is reproduced below.
792
793 Global key bindings
794 Alt+j Open previous tab.
795 Alt+k Open next tab.
796 Alt+h Move current tab left.
797 Alt+l Move current tab right.
798 Alt+a Move tab with recent activity.
799 Alt+<num> Open tab with number <num>.
800 Alt+c Close current tab.
801 Alt+n Open the connections tab.
802 Alt+q Open the download queue tab.
803 Alt+o Open own file list.
804 Alt+r Refresh file list.
805
806 Keys for tabs with a log window:
807 Ctrl+l Clear current log window.
808 PgUp Scroll the log backward.
809 PgDown Scroll the log forward.
810
811 Keys for tabs with a text input line:
812 Left/Right Move cursor one character left or right.
813 End/Home Move cursor to the end / start of the line.
814 Up/Down Scroll through the command history.
815 Tab Auto-complete current command, nick or argument.
816 Alt+b Move cursor one word backward.
817 Alt+f Move cursor one word forward.
818 Backspace Delete character before cursor.
819 Delete Delete character under cursor.
820 Ctrl+w Delete to previous space.
821 Alt+d Delete to next space.
822 Ctrl+k Delete everything after cursor.
823 Ctrl+u Delete entire line.
824
825 File browser
826 Up/Down Select one item up/down.
827 k/j Select one item up/down.
828 PgUp/PgDown Select one page of items up/down.
829 End/Home Select last/first item in the list.
830 / Start incremental regex search (press Return to stop editing).
831 ,/. Search next / previous.
832 Right/l Open selected directory.
833 Left/h Open parent directory.
834 t Toggle sorting directories before files.
835 s Order by file size.
836 n Order by file name.
837 d Add selected file/directory to the download queue.
838 m Match selected item with the download queue.
839 M Match entire file list with the download queue.
840 a Search for alternative download sources.
841
842 Connection list
843 Up/Down Select one item up/down.
844 k/j Select one item up/down.
845 PgUp/PgDown Select one page of items up/down.
846 End/Home Select last/first item in the list.
847 d Disconnect selected connection.
848 i/Return Toggle information box.
849 f Find user in user list.
850 m Send a PM to the selected user.
851 q Find file in download queue.
852
853 Download queue
854 Up/Down Select one item up/down.
855 k/j Select one item up/down.
856 PgUp/PgDown Select one page of items up/down.
857 End/Home Select last/first item in the list.
858 K/J Select one user up/down.
859 f Find user in user list.
860 c Find connection in the connection list.
861 a Search for alternative download sources.
862 d Remove selected file from the queue.
863 +/- Increase/decrease priority.
864 i/Return Toggle user list.
865 r Remove selected user for this file.
866 R Remove selected user from all files in the download queue.
867 x Clear error state for the selected user for this file.
868 X Clear error state for the selected user for all files.
869
870 Note: when an item in the queue has `ERR' indicated in the
871 priority column, you have two choices: You can remove the
872 item from the queue using `d', or attempt to continue the
873 download by increasing its priority using `+'.
874
875 Search results tab
876 Up/Down Select one item up/down.
877 k/j Select one item up/down.
878 PgUp/PgDown Select one page of items up/down.
879 End/Home Select last/first item in the list.
880 f Find user in user list.
881 b/B Browse the selected users' list, B to force a redownload.
882 d Add selected file to the download queue.
883 h Toggle hub column visibility.
884 u Order by username.
885 s Order by file size.
886 l Order by free slots.
887 n Order by file name.
888 m Match selected item with the download queue.
889 M Match all search results with the download queue.
890 q Match selected users' list with the download queue.
891 Q Match all matched users' lists with the download queue.
892 a Search for alternative download sources.
893
894 User list tab
895 Up/Down Select one item up/down.
896 k/j Select one item up/down.
897 PgUp/PgDown Select one page of items up/down.
898 End/Home Select last/first item in the list.
899 / Start incremental regex search (press Return to stop editing).
900 ,/. Search next / previous.
901 o Toggle sorting OPs before others.
902 s/S Order by share size.
903 u/U Order by username.
904 t/T Toggle visibility / order by tag column.
905 e/E Toggle visibility / order by email column.
906 c/C Toggle visibility / order by connection column.
907 p/P Toggle visibility / order by IP column.
908 i/Return Toggle information box.
909 m Send a PM to the selected user.
910 g Grant a slot to the selected user.
911 b/B Browse the selected users' list, B to force a redownload.
912 q Match selected users' list with the download queue.
913
915 $NCDC_DIR is used to determine the session dir, it is only honoured if
916 -c is not set on the command line.
917
919 $NCDC_DIR corresponds to the session dir set via -c, environment
920 variable $NCDC_DIR or $HOME/.ncdc.
921
922 $NCDC_DIR/cert/
923 Directory where the client certificates are stored. Must contain a
924 private key file (client.key) and public certificate (client.crt).
925 These will be generated automatically when ncdc starts up the first
926 time.
927
928 $NCDC_DIR/db.sqlite3
929 The database. This stores all configuration variables, hash data of
930 shared files, download queue information and other state
931 information. Manually editing this file with the `sqlite3'
932 commandline tool is possible but discouraged. Any changes made to
933 the database while ncdc is running will not be read, and may even
934 get overwritten by ncdc.
935
936 $NCDC_DIR/dl/
937 Directory where completed downloads are moved to by default. Can be
938 changed with the "download_dir" configuration option.
939
940 $NCDC_DIR/files.xml.bz2
941 Filelist containing a listing of all shared files.
942
943 $NCDC_DIR/fl/
944 Directory where downloaded file lists from other users are stored.
945 The names of the files are hex-encoded user IDs that are used
946 internally by ncdc. Old file lists are deleted automatically after
947 a configurable interval. See the "filelist_maxage" configuration
948 option.
949
950 $NCDC_DIR/history
951 Command history.
952
953 $NCDC_DIR/inc/
954 Default location for incomplete downloads. Can be changed with the
955 "incoming_dir" setting. The file names in this directory are the
956 base32-encoded TTH root of the completed file.
957
958 $NCDC_DIR/logs/
959 Directory where all the log files are stored. File names starting
960 with `#' are hub logs and `~' are user (PM) logs. Special log files
961 are transfers.log and main.log.
962
963 ncdc does not have built-in functionality to rotate or compress log
964 files automatically. When rotating log files manually (e.g. via a
965 cron job), make sure to send the SIGUSR1 signal afterwards to force
966 ncdc to flush the old logs and create or open the new log files.
967
968 $NCDC_DIR/stderr.log
969 Error/debug log. This file is cleared every time ncdc starts up.
970
971 $NCDC_DIR/version
972 Version of the data directory. This file locked while an ncdc
973 instance is running, making sure that no two ncdc instances work
974 with the same session directory at the same time.
975
976 Format of transfers.log
977 Uploads and downloads are logged in the transfers.log file. Transfers
978 are separated by a newline (0x0a). Each log line has the following
979 fields, separated by a space:
980
981 1. Date/time when the transfer ended, formatted as "[YYYY-MM-DD
982 HH:MM:SS ZONE]",
983
984 2. Hub name, including the "#" prefix,
985
986 3. Base32-encoded CID of the other user for ADC transfers, or a '-'
987 for NMDC,
988
989 4. User name (escaped),
990
991 5. IPv4 or IPv6 address,
992
993 6. Direction, "u" for upload or "d" for download,
994
995 7. Whether the transfer completed successfully ("c") or has been
996 interrupted/disconnected before all requested file data has been
997 transferred ("i"),
998
999 8. Base32-encoded TTH of the transferred file, or '-' for
1000 "files.xml.bz2",
1001
1002 9. Total transfer time, in seconds,
1003
1004 10. File size, in bytes,
1005
1006 11. File offset, in bytes,
1007
1008 12. Transfer size, in bytes,
1009
1010 13. File path (escaped). Absolute virtual path for uploads, destination
1011 path for downloads.
1012
1013 All fields are encoded in UTF-8. Fields that may contain a space or
1014 newline are escaped as follows: A space is escaped as "\s", a newline
1015 as "\n" and a backslash as "\\". The timestamp is not escaped.
1016
1017 Many clients download files is separate (smallish) chunks. Ncdc makes
1018 no attempt to combine multiple chunk requests in a single log entry, so
1019 you may see the same uploaded file several times with a different file
1020 offset.
1021
1023 Copyright (C) 2011-2013 Yoran Heling <projects@yorhel.nl>
1024
1025 ncdc is distributed under the MIT license, please read the COPYING file
1026 for more information.
1027
1029 Please report bugs or feature requests to the bug tracker or the
1030 mailing list. Both can be found on the ncdc homepage at
1031 <http://dev.yorhel.nl/ncdc>. There is also an ADC hub available at
1032 "adc://dc.blicky.net:2780/" for general support and discussions.
1033
1035 ncdc is written by Yoran Heling <projects@yorhel.nl>
1036
1037 Web: <http://dev.yorhel.nl/ncdc>
1038
1039
1040
1041ncdc-1.20 2016-12-30 NCDC(1)