Ncurses Direct Connect Client
ncdc is a modern and lightweight direct connect client with a friendly ncurses interface
Install ncdc on Gentoo Linux
Transfer window will show up when you have active transfers
Prepare GeoIP Location
Bypass the requirements from Maxmind for keys/usernames/license keys
Customized options
Apply the following settings after modifying the IP and Port fields to match your environment
Benchmark disk performance using hdparm -tT /dev/sdX to select an appropriate hash_rate value.
/set global.active true
/set global.active_ip 127.0.0.1,::
/set global.active_port 5454
/set global.active_udp_port 5455
/set global.adc_blom false
/set global.autorefresh 0s (disabled)
/set global.backlog 0
/set global.chat_only false
/set global.color_list_default white
/set global.color_list_header magenta,bold
/set global.color_list_select magenta,bold
/set global.color_log_default white
/set global.color_log_highlight white,bold
/set global.color_log_join green,bold
/set global.color_log_nick white,bold
/set global.color_log_ownnick green,bold
/set global.color_log_quit red,bold
/set global.color_log_time magenta
/set global.color_separator white,reverse
/set global.color_tab_active magenta,bold
/set global.color_tabprio_high green,bold
/set global.color_tabprio_low darkgray
/set global.color_tabprio_med cyan,bold
/set global.color_title = white,reverse
/set global.connection 1000
/set global.description linux / ebooks / tutorial / software
/set global.disconnect_offline true
/set global.download_dir /mnt/usb/glftpd/site/incoming
/set global.download_rate 1024M
/set global.download_segment 0
/set global.download_shared true
/set global.download_slots 25
/set global.email none@no-email.com
/set global.encoding UTF-8
/set global.encoding UTF-8
/set global.filelist_maxage 7d
/set global.flush_file_cache download
/set global.geoip_cc GeoLite.mmdb
/set global.hash_rate 172M
/set global.incoming_dir /mnt/usb/glftpd/site/incoming/
/set global.local_address 192.168.1.64,::
/set global.location_db is not set.
/set global.log_debug false
/set global.log_downloads true
/set global.log_hubchat true
/set global.log_uploads true
/set global.max_ul_per_user 8
/set global.minislots 1
/set global.minislot_size 128k
/set global.nick [1000]wuseman
/set global.notify_bell medium
/set global.reconnect_timeout 10s
/set global.sendfile true
/set global.share_emptydirs false
/set global.share_exclude (.*(\#|\%).*|[�|�|�|,|']|.*All-Files-CRC-OK.*|.*xCOMPLETEx.*|(\(|\[)(incomplete|INCOMPLETE)(\)|\]).*|.*cdcovers_cc.*|.*F\].*|(AlbumArt.*|.*albumart.*|.*custom.*cover.*|folder|.*FreeCovers.*|sample_s)\.jpg)|.*\s.*|.*(\(\d\)\.(avi|jpg|mkv|mp3|mp4|nfo|sfv|zip)|(^kolla|^imdb|^lw|^mm|^cmt|^scc)\.nfo\b)|(\.(!ut|1|aac|ac3|acl|ape|asd|b4s|bad|bak|banana|bat|bc!|bdmv|bgl|bin|bmp|cab|cat|ccd|cfg|checked|clpi|cmd|conf|conflict|crc|db|debug|diz|dll|ds_store|dat|doc(x)?|exe|filled|htm|html|ico|idx|img|inf|ini|lnk|ioFTPD|ion|iso|log|lst|md5|message|missing|r(ar|\d\d)-missing|mpls|mrg|msg|msi|mxm|nrg|par2|pdf|permissions|pls|scn|sfk|srr|srt|sub|sup|tmp|torrent|txt|url|xml|avi\.avi|flac\.flac|jpg\.jpg|m3u\.m3u|mkv\.mkv|mp3\.mp3|mp4\.mp4|nfo\.nfo|r..\.r..|sfv\.sfv|zip\.zip))$
/set global.share_exclude is not set.
/set global.share_hidden false
/set global.share_symlinks false
/set global.show_free_slots true
/set global.show_joinquit false
/set global.slots 8
/set global.sudp_policy prefer
/set global.tls_policy prefer
/set global.tls_priority NORMAL:-ARCFOUR-128
/set global.ui_time_format [%H:%M:%S]
/set upload_rate 1024M
To add a new private hub we must use /open command
#Hubname will be saved as #Hubname and from now you just type /open #Hubname after you started ncdc unless you set autoconnect to true
Configure hset for private hubs
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.
/hset active = true (global)
/hset active_ip = 127.0.0.1,::
/hset active_port = 5454
/hset active_udp_port = 5455
/hset adc_blom = false
/hset autoconnect = true
/hset backlog = 0
/hset chat_only = false
/hset connection = 1000
/hset description linux / ebooks / tutorial / software
/hset disconnect_offline = true
/hset email = none@no-email.com
/hset encoding = UTF-8
/hset hubname = #Hubname
/hset local_address = 192.168.1.64,::
/hset log_hubchat = true
/hset max_ul_per_user = 8
/hset nick = [1000]username
/hset password = ******************
/hset reconnect_timeout = 10s
/hset show_free_slots = true
/hset show_joinquit = false
/hset tls_policy = prefer
Key Bindings
Custom key bindings
| Keys | Description |
|---|---|
| p | Toggle IP addresses (default: disabled). |
| r | Toggle show tag (default: enabled). |
| d | Toggle description (default: enabled). |
| c | Toggle connection (default: disabled). |
| i | Toggle bottom info bar showing detailed information (default: disabled). |
| m | Send message to selected user. |
| b | Browse selected user’s file list. |
| s | Sort user list by size. |
| b | Browse your own list. |
Global Key Bindings
| Key | Description |
|---|---|
| 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+ |
Open tab with number |
| 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
| Keys Description | |------------|----------------------------------| | Ctrl+l | Clear current log window | | PgUp | Scroll the log backward | | PgDown | Scroll the log forward |
Keys for tabs with a text input line
| Keys | Description |
|---|---|
| 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. |
Keys for file browser
| Keys | Description |
|---|---|
| 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. |
| u | Toggle sorting unknown files before files existing locally. |
| 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. |
Keys for connection list
| Keys | Description |
|---|---|
| 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 forces a redownload. |
Key bindings for: queue – Download queue
Notes
When an item in the queue has ERR in the priority column, you have two options:
- Remove the item from the queue using
d - Attempt to continue the download by increasing its priority using
+
| Keys | Description |
|---|---|
| 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. |
Keys for search/searching
| Keys | Description |
|---|---|
| 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 forces 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. |
Keys for userlist and user list tabs
| Keys | Description |
|---|---|
| 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 forces a redownload. |
| q | Match selected users' list with the download queue. |
Available help commands
| Command | Description |
|---|---|
| /accept | Accept the TLS certificate of a hub. |
| /browse | Download and browse someone's file list. |
| /clear | Clear the display. |
| /close | Close the current tab. |
| /connect | Connect to a hub. |
| /connections | Open the connections tab. |
| /delhub | Remove a hub from the configuration. |
| /disconnect | Disconnect from a hub. |
| /gc | Perform garbage collection. |
| /grant | Grant someone a slot. |
| /help | Request information on commands. |
| /hset | Get or set per-hub configuration variables. |
| /hunset | Unset a per-hub configuration variable. |
| /kick | Kick a user from the hub. |
| /listen | List currently opened ports. |
| /me | Chat in third person. |
| /msg | Send a private message. |
| /nick | Alias for /hset nick on hub tabs, and /set nick otherwise. |
| /open | Open a new hub tab and connect to the hub. |
| /password | Send your password to the hub. |
| /pm | Alias for /msg. |
| /queue | Open the download queue. |
| /quit | Quit ncdc. |
| /reconnect | Shortcut for /disconnect and /connect. |
| /refresh | Refresh file list. |
| /say | Send a chat message. |
| /search | Search for files. |
| /set | Get or set global configuration variables. |
| /share | Add a directory to your share. |
| /ungrant | Revoke a granted slot. |
| /unset | Unset a global configuration variable. |
| /unshare | Remove a directory from your share. |
| /userlist | Open the user list. |
| /version | Display version information. |
| /whois | Locate a user in the user list. |
Color configuration options
| Option | Description |
|---|---|
global.color_list_default |
Default item in a list. |
global.color_list_header |
Header of a list. |
global.color_list_select |
Selected item in a list. |
global.color_log_default |
Default log color. |
global.color_log_time |
Time prefix in log messages. |
global.color_log_nick |
Default nick color. |
global.color_log_highlight |
Nick color of a highlighted line. |
global.color_log_ownnick |
Color of your own nick. |
global.color_log_join |
Color of join messages. |
global.color_log_quit |
Color of quit messages. |
global.color_separator |
List separator/footer bar. |
global.color_tab_active |
Active tab in the tab list. |
global.color_tabprio_low |
Low‑priority tab notification color. |
global.color_tabprio_med |
Medium‑priority tab notification color. |
global.color_tabprio_high |
High‑priority tab notification color. |
global.color_title |
Title bar. |